Open
Graph Drawing
Framework

 v. 2023.09 (Elderberry)
 

Loading...
Searching...
No Matches
SeparatorDualFC.h
Go to the documentation of this file.
1
32#pragma once
33
34#include <ogdf/basic/Graph.h>
35#include <ogdf/basic/basic.h>
37
38#include <memory>
39#include <string>
40
42class ArrayBFSTree;
43} // namespace ogdf::planar_separators
44
45namespace ogdf {
46template<class E>
47class List;
48
50
54public:
60 SeparatorDualFC(bool useTriBFS = false) : useTriangulatingBFS {useTriBFS} { }
61
63 virtual double getMaxSeparatorSize(int n) const override { return -1; }
64
65protected:
67 std::shared_ptr<ArrayBFSTree> tree;
68
72 void makeTree();
73
74 virtual bool doSeparate(const Graph& G, List<node>& separator, List<node>& first,
75 List<node>& second) override;
76
85 virtual bool findCycle(List<node>& separator, List<node>& first, List<node>& second) override;
86
87 virtual std::string getSpecificName() const override {
88 std::string name = "DualFC";
89 if (useTriangulatingBFS) {
90 name += "-triBFS";
91 }
92 return name;
93 }
94};
95
96}
Includes declaration of graph class.
Declaration of class SeparatorLiptonTarjanFC.
Basic declarations, included by all source files.
Data type for general directed graphs (adjacency list representation).
Definition Graph_d.h:866
Doubly linked lists (maintaining the length of the list).
Definition List.h:1451
Computes planar separators by applying the Fundamental Cycle Lemma directly, without trying tree leve...
virtual std::string getSpecificName() const override
Returns the unique name of the core algorithm, to be combined with postprocessors later.
std::shared_ptr< ArrayBFSTree > tree
virtual bool findCycle(List< node > &separator, List< node > &first, List< node > &second) override
Finds a suitable cycle by performing a DFS over the faces of the dual of the graph.
virtual bool doSeparate(const Graph &G, List< node > &separator, List< node > &first, List< node > &second) override
Core of the specific separation algorithm - override this in inheriting classes.
void makeTree()
Builds the BFS tree.
virtual double getMaxSeparatorSize(int n) const override
Maximum separator size depends on diameter of graph, so returns -1.
SeparatorDualFC(bool useTriBFS=false)
Constructor.
Computes planar separators using Fundamental Cycles.
#define OGDF_EXPORT
Specifies that a function or class is exported by the OGDF dynamic library (shared object / DLL),...
Definition config.h:117
The namespace for all OGDF objects.