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

stronglyconnected.h

00001 #ifndef STRONGLY_CONNECTED_H
00002 #define STRONGLY_CONNECTED_H
00003 
00004 #include<scil/scil.h>
00005 #include<boost/graph/strong_components.hpp>
00006 #include<boost/graph/adjacency_list.hpp>
00007 #include<boost/graph/adjacency_matrix.hpp>
00008 #include<boost/graph/boykov_kolmogorov_max_flow.hpp>
00009 #include <boost/graph/iteration_macros.hpp>
00010 #include <boost/graph/graph_traits.hpp>
00011 
00012 
00013 namespace SCIL {
00014 
00028 template<typename Graph>
00029 class StronglyConnected : public sym_constraint { 
00030    private:
00031 
00032       typedef boost::graph_traits<Graph> GraphTraits;
00033       typedef typename GraphTraits::vertex_descriptor vertex_descriptor;
00034       typedef typename GraphTraits::edge_descriptor edge_descriptor;
00035       typedef map<edge_descriptor, int> capacity_map_t;
00036       typedef map<vertex_descriptor, size_t> vertex_index_t;   
00037       typedef map<edge_descriptor, edge_descriptor> edge_reverse_t;
00038 
00039       Graph G;
00040       var_map<edge_descriptor> VM;
00041       edge_reverse_t edge_reverse;
00042       
00043 
00044    public:
00045 
00046       /*{\Mtext {\bf Interface and Preconditions}}*/
00047 
00055       StronglyConnected(Graph& G_, var_map<edge_descriptor>& VM_);
00056 
00059       void min_cut(vertex_descriptor u,map<edge_descriptor, int>& C, map<edge_descriptor, int>& F, 
00060          map<vertex_descriptor, bool>& R, int& k);
00061 
00064       status standard_separation(subproblem& S);
00065 
00068       status feasible(solution& S);
00069 
00072       void info();
00073 
00074 };
00075 
00076 }
00077 
00078 #include "../../../src/constraints/stronglyconnected.cc"
00079 #endif
Generated on Mon Mar 28 22:03:50 2011 for SCIL by  doxygen 1.6.3