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
00006 
00007 /* This library is free software; you can redistribute it and/or
00008    modify it under the terms of the GNU Lesser General Public
00009    License as published by the Free Software Foundation; either
00010    version 2 of the License, or (at your option) any later version.
00011    
00012    This library is distributed in the hope that it will be useful,
00013    but WITHOUT ANY WARRANTY; without even the implied warranty of
00014    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00015    Lesser General Public License for more details.
00016    
00017    You should have received a copy of the GNU Lesser General Public
00018    License along with this library; if not, write to the Free Software
00019    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
00020    
00021    Contact: cahon@lifl.fr
00022 */
00023 
00024 #ifndef edge_xover_h
00025 #define edge_xover_h
00026 
00027 #include <vector>
00028 #include <set>
00029 
00030 #include <eoOp.h>
00031 
00032 #include "route.h"
00033 
00035 class EdgeXover : public eoQuadOp <Route> {
00036   
00037 public :
00038   
00039   bool operator () (Route & __route1, Route & __route2) ;
00040 
00041 private :
00042   
00043   void cross (const Route & __par1, const Route & __par2, Route & __child) ; /* Binary */
00044 
00045   void remove_entry (unsigned __vertex, std :: vector <std :: set <unsigned> > & __map) ;
00046   /* Updating the map of entries */
00047 
00048   void build_map (const Route & __par1, const Route & __par2) ;
00049 
00050   void add_vertex (unsigned __vertex, Route & __child) ;
00051 
00052   std :: vector <std :: set <unsigned> > _map ; /* The handled map */
00053 
00054   std :: vector <bool> visited ; /* Vertices that are already visited */
00055 
00056 } ;
00057 
00058 #endif

Generated on Fri Dec 22 16:54:58 2006 for ParadisEO by  doxygen 1.4.7