5 #ifndef BALL_DATATYPE_GRAPH_TREEWIDTH_H
6 #define BALL_DATATYPE_GRAPH_TREEWIDTH_H
8 #ifndef BALL_COMMON_GLOBAL_H
12 #ifndef BALL_COMMON_EXCEPTION_H
16 #ifndef BALL_CONCEPT_BASEFUNCTOR_H
20 #ifndef BALL_DATATYPE_GRAPH_GRAPHALGORITHMS_H
24 #ifndef BALL_DATATYPE_GRAPH_MOLECULARGRAPH_H
35 #include <boost/graph/connected_components.hpp>
36 #include <boost/graph/filtered_graph.hpp>
37 #include <boost/graph/graph_as_tree.hpp>
38 #include <boost/graph/graphviz.hpp>
39 #include <boost/graph/copy.hpp>
58 template <
class UndirectedGraph>
101 typedef boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS,
102 boost::property<boost::vertex_bag_content_t, std::set<OriginalVertexType>,
104 boost::property<boost::vertex_bag_type_t, int> > >,
109 typedef boost::iterator_property_map<typename std::vector<TreeDecompositionBag>::iterator,
110 typename boost::property_map<TreeDecompositionGraph, boost::vertex_index_t>::type>
112 typedef boost::graph_as_tree<TreeDecompositionGraph, TreeDecompositionParentMap>
TreeDecomposition;
130 template <
typename ComponentMap>
139 template <
typename Vertex>
176 template <
class UndirectedGraph>
181 typedef typename boost::graph_traits<UndirectedGraph>::vertex_descriptor
VertexType;
183 typedef typename boost::graph_traits<UndirectedGraph>::vertex_iterator
VertexIterator;
203 template<
class Criterion,
class Reducer>
286 template<
class Criterion>
288 :
public UnaryFunctor<UndirectedGraph, typename std::pair<
289 std::vector<boost::graph_traits<typename UndirectedGraph::vertex_descriptor> >, Size> >
315 template <
class Lowerbound=MinorMinW
idth,
class Upperbound=GreedyX<FillInHeuristic> >
334 QuickBB(UndirectedGraph
const& graph);
370 typedef std::map<VertexType, bool>
BitSet;
372 typedef std::pair<typename GraphMap::iterator, bool>
MapPos;
447 template <
class OriginalGraphType>
476 boost::shared_ptr<TreeDecomposition>
makeNice(boost::shared_ptr<TreeDecompositionGraph>& nice_tree);
479 typename std::vector<TreeDecompositionBag>::iterator c_i,
typename std::vector<TreeDecompositionBag>::iterator c_end);
496 typename std::vector<TreeDecompositionBag>::iterator begin,
497 typename std::vector<TreeDecompositionBag>::iterator end);
499 boost::shared_ptr<TreeDecomposition>
tree_;
509 #include <BALL/DATATYPE/GRAPH/treeWidth.iC>
511 #endif // BALL_DATATYPE_GRAPH_TREEWIDTH_H