Open
Graph Drawing
Framework

 v. 2023.09 (Elderberry)
 

SeparatorLiptonTarjanFC.h
Go to the documentation of this file.
1 
32 #pragma once
33 
35 
36 #include <set>
37 
38 namespace ogdf {
39 
40 namespace planar_separators {
41 
46 public:
53  BFSTreeFC(GraphCopy& G, node rootNode) : ArrayBFSTree(G, rootNode) { construct(); }
54 
55  void construct();
56 };
57 
63 public:
70  TriangulatingBFSTree(GraphCopy& G, node rootNode) : ArrayBFSTree(G, rootNode) { construct(); }
71 
72  void construct();
73 
74  void visit(node v, node parent, adjEntry adj, SListPure<node>& bfs);
75 };
76 
77 }
78 
80 
87 public:
93  SeparatorLiptonTarjanFC(bool useTriBFS = false) : useTriangulatingBFS {useTriBFS} { }
94 
95  virtual double getMaxSeparatorSize(int n) const override { return -1; }
96 
97 protected:
98  virtual bool doSeparate(const Graph& G, List<node>& separator, List<node>& first,
99  List<node>& second) override;
100 
102  std::shared_ptr<ArrayBFSTree> tree;
103 
104  virtual std::string getSpecificName() const override {
105  std::string name = "LTFC";
106  if (useTriangulatingBFS) {
107  name += "-triBFS";
108  }
109  return name;
110  }
111 
120  virtual bool findCycle(List<node>& separator, List<node>& first, List<node>& second);
121 
127  edge chooseEdge() const;
128 };
129 
130 }
ogdf
The namespace for all OGDF objects.
Definition: AugmentationModule.h:36
ogdf::SeparatorLiptonTarjanFC::getMaxSeparatorSize
virtual double getMaxSeparatorSize(int n) const override
Provides the maximal separator size that this algorithm guarantees as a function of the number of nod...
Definition: SeparatorLiptonTarjanFC.h:95
ogdf::SeparatorLiptonTarjanFC::useTriangulatingBFS
bool useTriangulatingBFS
Definition: SeparatorLiptonTarjanFC.h:101
ogdf::SeparatorLiptonTarjanFC::getSpecificName
virtual std::string getSpecificName() const override
Returns the unique name of the core algorithm, to be combined with postprocessors later.
Definition: SeparatorLiptonTarjanFC.h:104
ogdf::planar_separators::ArrayBFSTree
Abstract BFSTree that is realized via NodeArrays.
Definition: PlanarSeparatorModule.h:123
ogdf::GraphCopy
Copies of graphs supporting edge splitting.
Definition: GraphCopy.h:384
ogdf::SeparatorLiptonTarjanFC::SeparatorLiptonTarjanFC
SeparatorLiptonTarjanFC(bool useTriBFS=false)
Constructor.
Definition: SeparatorLiptonTarjanFC.h:93
ogdf::AdjElement
Class for adjacency list elements.
Definition: Graph_d.h:135
ogdf::planar_separators::BFSTreeFC
Custom BFS Tree.
Definition: SeparatorLiptonTarjanFC.h:45
ogdf::PlanarSeparatorModule
Abstract description of all planar separator algorithms.
Definition: PlanarSeparatorModule.h:916
ogdf::SListPure
Singly linked lists.
Definition: SList.h:39
ogdf::planar_separators::TriangulatingBFSTree
Triangulating BFS tree that operates on a non-triangulated graph and constructs the triangulation tog...
Definition: SeparatorLiptonTarjanFC.h:62
ogdf::planar_separators::TriangulatingBFSTree::TriangulatingBFSTree
TriangulatingBFSTree(GraphCopy &G, node rootNode)
Constructor.
Definition: SeparatorLiptonTarjanFC.h:70
ogdf::List
Doubly linked lists (maintaining the length of the list).
Definition: List.h:42
ogdf::Graph
Data type for general directed graphs (adjacency list representation).
Definition: Graph_d.h:862
ogdf::planar_separators::BFSTreeFC::BFSTreeFC
BFSTreeFC(GraphCopy &G, node rootNode)
Constructor.
Definition: SeparatorLiptonTarjanFC.h:53
OGDF_EXPORT
#define OGDF_EXPORT
Specifies that a function or class is exported by the OGDF DLL.
Definition: config.h:101
ogdf::EdgeElement
Class for the representation of edges.
Definition: Graph_d.h:356
ogdf::SeparatorLiptonTarjanFC
Computes planar separators using Fundamental Cycles.
Definition: SeparatorLiptonTarjanFC.h:86
ogdf::SeparatorLiptonTarjanFC::tree
std::shared_ptr< ArrayBFSTree > tree
Definition: SeparatorLiptonTarjanFC.h:102
ogdf::NodeElement
Class for the representation of nodes.
Definition: Graph_d.h:233
PlanarSeparatorModule.h
Declaration of base class of all planar separator algorithms.