00001 #ifndef PATH_CONSTRAINT_H
00002 #define PATH_CONSTRAINT_H
00003
00004 #include<scil/scil.h>
00005 #include<LEDA/graph.h>
00006 #include<LEDA/set.h>
00007
00024 namespace SCIL {
00025
00026 #define NT int
00027
00028 class PATH : public sym_constraint {
00029 private:
00030 LEDA::graph& G;
00031 LEDA::node u, v;
00032 scil_map<LEDA::edge>& VM;
00033
00034 class path_cutset_inequality;
00035
00036 public:
00037
00045 PATH(LEDA::graph& G, LEDA::node u, LEDA::node v, scil_map<LEDA::edge>& X);
00046
00047 void dfs(LEDA::graph& G, LEDA::node u, LEDA::node_array<bool>& R);
00048
00049 void dfs(LEDA::graph& G, LEDA::node u, LEDA::edge_array<NT>& val, LEDA::edge_array<NT>& f,
00050 LEDA::node_array<bool>& R, LEDA::list<LEDA::node>& mc);
00051
00055 status separate(subproblem& S);
00056
00059 status feasible(solution& S);
00060 };
00061
00062 }
00063
00064 #endif