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