00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #ifndef edge_xover_h
00013 #define edge_xover_h
00014
00015 #include <vector>
00016 #include <set>
00017
00018 #include <eoOp.h>
00019
00020 #include "route.h"
00021
00023 class EdgeXover : public eoQuadOp <Route>
00024 {
00025
00026 public :
00027
00028 bool operator () (Route & __route1, Route & __route2) ;
00029
00030 private :
00031
00032 void cross (const Route & __par1, const Route & __par2, Route & __child) ;
00033
00034 void remove_entry (unsigned int __vertex, std :: vector <std :: set <unsigned> > & __map) ;
00035
00036
00037 void build_map (const Route & __par1, const Route & __par2) ;
00038
00039 void add_vertex (unsigned int __vertex, Route & __child) ;
00040
00041 std :: vector <std :: set <unsigned int> > _map ;
00042
00043 std :: vector <bool> visited ;
00044
00045 } ;
00046
00047 #endif