00001 #ifndef TJOIN_H 00002 #define TJOIN_H 00003 00004 #include<boost/graph/iteration_macros.hpp> 00005 #include<boost/graph/adjacency_list.hpp> 00006 #include<boost/graph/adjacency_matrix.hpp> 00007 #include<boost/graph/graph_traits.hpp> 00008 #include<scil/scil.h> 00009 #include<scil/core/var_map.h> 00010 #include<iostream> 00011 #include<scil/core/cutTree.h> 00012 #include<boost/graph/connected_components.hpp> 00013 00014 namespace SCIL { 00015 00024 template <typename Graph> 00025 class TJOIN : public sym_constraint { 00026 00027 private: 00028 00029 typedef boost::graph_traits<Graph> GraphTraits; 00030 typedef typename GraphTraits::vertex_descriptor vertex_descriptor; 00031 typedef typename GraphTraits::edge_descriptor edge_descriptor; 00032 00033 00034 Graph& G; 00035 var_map<edge_descriptor>& VM; 00036 std::map<vertex_descriptor,bool>& T; 00037 00038 00039 00040 public: 00041 00047 TJOIN(Graph& G_, var_map<edge_descriptor>& VM_, std::map<vertex_descriptor, bool>& T_); 00048 00049 void init(subproblem& S); 00050 00054 status standard_separation(subproblem& S); 00055 00059 status feasible(solution& S); 00060 00061 }; 00062 } 00063 00064 #include "../../../src/constraints/tjoin.cc" 00065 #endif