edge_xover.h

00001 // -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
00002 
00003 // "edge_xover.h"
00004 
00005 // (c) OPAC Team, LIFL, 2003-2006
00006 
00007 /* TEXT LICENCE
00008    
00009    Contact: paradiseo-help@lists.gforge.inria.fr
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) ; /* Binary */
00033 
00034   void remove_entry (unsigned int __vertex, std :: vector <std :: set <unsigned> > & __map) ;
00035   /* Updating the map of entries */
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 ; /* The handled map */
00042 
00043   std :: vector <bool> visited ; /* Vertices that are already visited */
00044 
00045 } ;
00046 
00047 #endif

Generated on Thu Sep 20 11:30:28 2007 for ParadisEO-MOMovingObjects by  doxygen 1.5.2