|
| SeparatorLiptonTarjan (bool useTriangulatingBFS=false, unsigned int treeHeightIt=0) |
| Constructor. More...
|
|
virtual double | getMaxSeparatorSize (int n) const override |
| Provides the maximal separator size that this algorithm guarantees as a function of the number of nodes of the graph, or a negative value if the guarantee cannot be expressed through such a function. More...
|
|
| PlanarSeparatorModule () |
|
virtual | ~PlanarSeparatorModule () |
|
void | addPostProcessor (Postprocessor &post) |
| Adds a postprocessor to this separator, which will always be applied. More...
|
|
void | clearPostProcessors () |
| Deletes all appended postprocessors from this separator. More...
|
|
std::string | getExitPoint () const |
| Returns the exitPoint, i.e. More...
|
|
virtual std::string | getName () const |
| Returns the full name of this algorithm. More...
|
|
virtual bool | separate (const Graph &G, List< node > &separator, List< node > &first, List< node > &second, bool checkPreconditions=true) final |
| Separates a planar graph. More...
|
|
virtual bool | separate (const Graph &G, NodeArray< short > &assignments, bool checkPreconditions=true) final |
| Separates a planar graph. More...
|
|
void | setStartIndex (int index) |
|
|
edge | chooseEdge () const |
| Chooses the initial edge for the very first cycle. More...
|
|
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. More...
|
|
void | fillLists (List< node > &separator, List< node > &first, List< node > &second) const |
| Fills the lists with the cycle / inside / outside once the cycle is ready. More...
|
|
virtual std::string | getSpecificName () const override |
| Returns the unique name of the core algorithm, to be combined with postprocessors later. More...
|
|
virtual void | makeTree () |
| Creates the BFS tree used by the algorithm. More...
|
|
bool | cleanup (const Graph &G, List< node > &separator, List< node > &first, List< node > &second) |
| Performs built-in post-processing: For small instances, it can happen that all nodes are assigned to the separator, while both components are empty, which can be fixed by moving half of the nodes to the first list. More...
|
|
node | getStartNode (const Graph &G) const |
| Selects the starting node for the BFS. More...
|
|
bool | postProcess (const Graph &G, List< node > &separator, List< node > &first, List< node > &second) |
| Apply all postprocessors. More...
|
|
virtual void | reset () |
| Reset everything to enable reuse of the module. More...
|
|
bool | separateComponents (GraphCopy &G, List< node > &separator, List< node > &first, List< node > &second, bool skip=false) const |
| Checks if the graph consists of multiple connected components, takes necessary steps for fixing that, returns true if this already solved the graph, false if the core algorithm still needs to run. More...
|
|
bool | setup (const Graph &G, List< node > &separator, List< node > &first, List< node > &second, bool checkPreconditions=true) |
| Performs some initial setup to ensure that all preconditions hold and takes trivial steps to separate the graph. More...
|
|
Computes planar separators according to Lipton and Tarjan 1979.
Computes separators according to the paper "A Separator Theorem for Planar Graphs" by Richard J. Lipton and Robert Endre Tarjan, published in the SIAM Journal on Applied Mathematics, 1979.
Definition at line 54 of file SeparatorLiptonTarjan.h.
virtual double ogdf::SeparatorLiptonTarjan::getMaxSeparatorSize |
( |
int |
n | ) |
const |
|
inlineoverridevirtual |