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

kconnected.h

00001 /******************************************************
00002  * baumann
00003  * Fri Aug 15 14:13:45 CEST 2008
00004  * symbolic constraint for k-edge-connected graphs
00005  ******************************************************/
00006 #ifndef KCONNECTED_H
00007 #define KCONNECTED_H
00008 
00009 #include <boost/foreach.hpp>
00010 #include <boost/graph/adjacency_list.hpp>
00011 #include <boost/graph/adjacency_matrix.hpp>
00012 #include <boost/graph/graph_traits.hpp>
00013 #include <boost/graph/iteration_macros.hpp>
00014 #include <boost/type_traits/is_base_and_derived.hpp>
00015 #include <boost/type_traits/is_same.hpp>
00016 #include <cstdarg>
00017 #include <iostream>
00018 #include <list>
00019 #include <scil/core/cutTree.h>
00020 #include <scil/core/min_cut.h>
00021 #include <scil/scil.h>
00022 
00023 namespace SCIL {
00024 
00029 template <typename Graph>
00030 class KCONNECTED : public sym_constraint { 
00031 
00032    private:
00033 
00034       typedef boost::graph_traits<Graph> GraphTraits;
00035       typedef typename GraphTraits::vertex_descriptor vertex_descriptor;
00036       typedef typename GraphTraits::edge_descriptor edge_descriptor;
00037 
00038       Graph& G;                     
00039       var_map<edge_descriptor>& VM; 
00040       int k;
00041 
00042    public:
00044       KCONNECTED(Graph& G_, var_map<edge_descriptor>& VM_, int k_);
00045 
00047       void init(subproblem& S);
00048 
00051       int cutTreeSeparation(solution& sol, std::list<cons_obj*>& newCons);
00052 
00055       status standard_separation(subproblem& S);
00056 
00057       /* Tests whether the subgraph induced by the edges is k-connected
00058        */
00059       status feasible(solution& S);
00060 
00063       void info();
00064 
00065 };
00066 
00067 };
00068 
00069 #include "../../../src/constraints/kconnected.cc"
00070 #endif
Generated on Mon Mar 28 22:03:48 2011 for SCIL by  doxygen 1.6.3