00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #include <utils/eoRNG.h>
00013
00014 #include "route_init.h"
00015 #include "graph.h"
00016
00017 void RouteInit :: operator () (Route & __route)
00018 {
00019
00020
00021 __route.clear () ;
00022 for (unsigned int i = 0 ; i < Graph :: size () ; i ++)
00023 {
00024 __route.push_back (i) ;
00025 }
00026
00027
00028
00029 for (unsigned int i = 0 ; i < Graph :: size () ; i ++)
00030 {
00031
00032
00033 unsigned int j = (unsigned int) (Graph :: size () * (rand () / (RAND_MAX + 1.0))) ;
00034 unsigned int city = __route [i] ;
00035 __route [i] = __route [j] ;
00036 __route [j] = city ;
00037 }
00038 }