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

matching.h

00001 #ifndef MATCHING_H
00002 #define MATCHING_H
00003 
00004 #include <boost/foreach.hpp>
00005 #include <boost/graph/adjacency_list.hpp>
00006 #include <boost/graph/adjacency_matrix.hpp>
00007 #include <boost/graph/connected_components.hpp>
00008 #include <boost/graph/iteration_macros.hpp>
00009 #include <boost/graph/graph_traits.hpp>
00010 #include <boost/property_map/property_map.hpp>
00011 #include <cstdarg>
00012 #include <iostream>
00013 #include <scil/core/cutTree.h>
00014 #include <scil/scil.h>
00015 
00016 namespace SCIL {
00017 
00022 template <typename Graph>
00023 class MATCHING : public sym_constraint { 
00024 
00025 //   class cutTree;
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       Graph& G;            
00034       map<vertex_descriptor, int> NC;  
00035       map<vertex_descriptor, int> nid;
00036       var_map<edge_descriptor>& VM;   
00037       int* os;
00038       int* ot;
00039       double* oc;
00040       int* cts;
00041       int* ctt;
00042       double* ctc;
00043       edge_descriptor* edg;
00044       bool perfect;
00045 
00048       int exactBlossomSeparation(subproblem& S);
00049 
00052       int heuristicBlossomSeparation(subproblem& S);
00053 
00054    public:
00062 
00063       MATCHING(Graph& G_, map<vertex_descriptor, int>& NC_, 
00064                var_map<edge_descriptor>& VM_, bool perfect_ = true);
00065 
00067       ~MATCHING();
00068 
00070       void init(subproblem& S);
00071 
00074       status standard_separation(subproblem& S);
00075 
00078       status fast_separation(subproblem& S);
00079 
00082       status feasible(solution& S);
00083 
00086       void info();
00087 };
00088 
00089 };
00090 
00091 #include "../../../src/constraints/matching.cc"
00092 #endif
Generated on Mon Mar 28 22:03:48 2011 for SCIL by  doxygen 1.6.3