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

tour.h

00001 #ifndef SCIL_TOUR_H
00002 #define SCIL_TOUR_H
00003 
00004 #include <algorithm>
00005 #include <scil/scil.h>
00006 #include <scil/core/var_map.h>
00007 #include <scil/core/min_cut.h>
00008 #include <boost/foreach.hpp>
00009 #include <boost/graph/adjacency_list.hpp>
00010 #include <boost/graph/adjacency_matrix.hpp>
00011 #include <boost/graph/connected_components.hpp>
00012 #include <boost/graph/graph_traits.hpp>
00013 #include <boost/graph/iteration_macros.hpp>
00014 
00015 
00016 using namespace boost;
00017 
00018 namespace SCIL {
00019 
00035 template<typename Graph>
00036 class TOUR : public sym_constraint { 
00037    private:
00038 
00039       typedef boost::graph_traits<Graph> GraphTraits;
00040       typedef typename GraphTraits::vertex_descriptor vertex_descriptor;
00041       typedef typename GraphTraits::edge_descriptor edge_descriptor;
00042 
00043       Graph& G;
00044       var_map<edge_descriptor>& VM;
00045 
00046       status separation(subproblem& S, bool fast_separation);
00047 
00048    class degree_equality;
00049 
00050    class cutset_inequality;
00051   
00052    public:
00053 
00065    TOUR(Graph& G_, var_map<edge_descriptor>& X);
00066 
00070    void init(subproblem& S);
00071   
00077    status standard_separation(subproblem& S);
00078 
00084    status fast_separation(subproblem& S);
00085 
00088    status feasible(solution& S);
00089 
00092    void info();
00093 
00094    virtual ~TOUR() {
00095    };
00096 };
00097 
00098 }
00099 #include "../../../src/constraints/tour.cc"
00100 #endif
Generated on Mon Mar 28 22:03:51 2011 for SCIL by  doxygen 1.6.3