Main Page   Class Hierarchy   Compound List   File List   Contact   Download   Symbolic Constraints   Examples  

atour.h

00001 #include <scil/scil.h>
00002 #include <scil/core/var_map.h>
00003 #include <scil/core/min_cut.h>
00004 #include <boost/foreach.hpp>
00005 #include <boost/graph/graph_traits.hpp>
00006 #include <boost/graph/adjacency_matrix.hpp>
00007 #include <boost/graph/adjacency_list.hpp>
00008 #include <boost/graph/connected_components.hpp>
00009 #include <boost/graph/graph_concepts.hpp>
00010 #include <boost/property_map/property_map.hpp>
00011 #include <boost/graph/iteration_macros.hpp>
00012 
00013 #ifndef ATOUR_H
00014 #define ATOUR_H
00015 
00016 namespace SCIL {
00032 template <typename Graph>
00033 class ATOUR : public sym_constraint { 
00034    private:
00035       typedef boost::graph_traits<Graph> GraphTraits;
00036       typedef typename GraphTraits::vertex_descriptor vertex_descriptor;
00037       typedef typename GraphTraits::edge_descriptor edge_descriptor;
00038       Graph &G;                 
00039       var_map<edge_descriptor> &VM;
00040 
00041       status heuristic_separation(subproblem& S);
00042 
00043       status exact_separation(subproblem& S);
00044 
00045   
00046    class dir_degree_equality;
00047 
00048    class dir_cutset_inequality;
00049   
00050    public:
00061      //For a demo, see: \link ptsp/ptsp.c ptsp.c \endlink .
00063      ATOUR(Graph& G_, var_map<edge_descriptor>& X);
00064 
00069      void init(subproblem& S);
00070   
00076      status standard_separation(subproblem& S);
00077 
00083      status fast_separation(subproblem& S);
00084 
00085 
00088      status feasible(solution& S);
00089      //status feasible(solution& S);
00090 
00093       void info();
00094 
00095 };
00096 
00097 #include "../../../src/constraints/atour.cc"
00098 
00099 }
00100 
00101 #endif
Generated on Mon Mar 28 22:03:47 2011 for SCIL by  doxygen 1.6.3