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

stableset.h

00001 #ifndef STABLE_SET_H
00002 #define STABLE_SET_H
00003 
00004 #include <boost/graph/adjacency_list.hpp>
00005 #include <boost/graph/adjacency_matrix.hpp>
00006 #include <boost/graph/adjacency_iterator.hpp>
00007 #include <boost/graph/dijkstra_shortest_paths.hpp>
00008 #include <boost/graph/graph_traits.hpp>
00009 #include <boost/graph/iteration_macros.hpp>
00010 #include <boost/property_map/property_map.hpp>
00011 #include <cstdarg>
00012 #include <iostream>
00013 #include <cstdio>
00014 #include <map>
00015 #include <scil/scil.h>
00016 #include <scil/constraints/stableset.h>
00017 
00018 namespace SCIL {
00019 
00024 template <typename Graph>
00025 class STABLESET : public sym_constraint { 
00026 
00027    private:
00028       typedef boost::graph_traits<Graph> GraphTraits;
00029       typedef typename GraphTraits::vertex_descriptor vertex_descriptor;
00030       typedef typename GraphTraits::edge_descriptor edge_descriptor;
00031       typedef typename GraphTraits::adjacency_iterator adjacency_iterator;
00032 
00033       Graph& G;
00034       var_map<vertex_descriptor>& VM;
00035 
00036    public:
00042       STABLESET(Graph& G_, var_map<vertex_descriptor>& VM_);
00043 
00044       void init(subproblem& S);
00045 
00048       status standard_separation(subproblem& S);
00049 
00052       status fast_separation(subproblem& S);
00053 
00056       int exactOddCycleSeparation(subproblem& S, int maxnum);
00057 
00060       int heuristicCliqueSeparation(subproblem& S, int maxnum);
00061 
00064       status feasible(solution& S);
00065 
00068       void info();
00069 };
00070 
00071 };
00072 
00073 #include "../../../src/constraints/stableset.cc"
00074 #endif
Generated on Mon Mar 28 22:03:50 2011 for SCIL by  doxygen 1.6.3