Namespaces | |
namespace | goemans |
Classes | |
class | Full2ComponentGenerator |
Trivial full 2-component generation by lookups of shortest paths between terminal pairs. More... | |
class | Full3ComponentGeneratorEnumeration |
Full 3-component generation using enumeration. More... | |
class | Full3ComponentGeneratorModule |
Interface for full 3-component generation including auxiliary functions. More... | |
class | Full3ComponentGeneratorVoronoi |
Full 3-component generation using Voronoi regions. More... | |
struct | FullComponentDecisions |
Contains rules of thumb to decide which (sub-)algorithms to use for the generation of full components. More... | |
class | FullComponentGeneratorCaller |
class | FullComponentGeneratorDreyfusWagner |
A generator for restricted full components (for Steiner tree approximations) based on the Dreyfus-Wagner algorithm. More... | |
class | FullComponentGeneratorDreyfusWagnerWithoutMatrix |
A generator for restricted full components (for Steiner tree approximations) based on the Dreyfus-Wagner algorithm that does not need a precomputed all-pair-shortest-paths matrix because single-source-shortest-path are used within. More... | |
class | FullComponentStore |
A data structure to store full components. More... | |
class | FullComponentWithExtraStore |
A data structure to store full components with extra data for each component. More... | |
class | FullComponentWithLossStore |
A data structure to store full components with additional "loss" functionality. More... | |
class | HeavyPathDecomposition |
An implementation of the heavy path decomposition on trees. More... | |
struct | LossMetadata |
class | LowerBoundDualAscent |
Computes lower bounds for minimum Steiner tree instances. More... | |
class | LPRelaxationSER |
Class managing the component-based subtour elimination LP relaxation for the Steiner tree problem and its solving. More... | |
class | Save |
This class serves as an interface for different approaches concerning the calculation of save edges. More... | |
class | SaveDynamic |
Dynamically updatable weighted Tree for determining save edges via LCA computation. More... | |
class | SaveEnum |
This class computes save edges recursively and stores for every node pair their save edge in a HashArray. More... | |
class | SaveStatic |
This class behaves basically the same as SaveDynamic except that the update of the weighted graph is not done dynamically here. More... | |
class | Triple |
This class represents a triple used by various contraction-based minimum Steiner tree approximations. More... | |
class | UnorderedNodePairEquality |
A class used by the unordered_maps inside the reductions. More... | |
class | UnorderedNodePairHasher |
A class used by the unordered_maps inside the reductions. More... | |
node ogdf::steiner_tree::buildHeaviestEdgeInComponentTree | ( | const EdgeWeightedGraphCopy< T > & | inputTree, |
NodeArray< node > & | externalNodes, | ||
NodeArray< edge > & | treeEdge, | ||
Graph & | outputTree | ||
) |
Given an edge-weighted tree, builds an auxiliary arborescence where each arc of the input tree is a node in the arborescence.
The weight of each node is at least the weight of its children. The construction algorithm takes time O(n log n).
inputTree | the input tree |
externalNodes | the resulting mapping from input nodes to arborescence leaves (must be nullptr'ed in input!) |
treeEdge | the resulting mapping from each (inner) node of the arborescence to an edge in the input tree |
outputTree | the output arborescence |
Definition at line 53 of file common_algorithms.h.
T ogdf::steiner_tree::constructTerminalSpanningTreeUsingVoronoiRegions | ( | EdgeWeightedGraphCopy< T > & | terminalSpanningTree, |
const EdgeWeightedGraph< T > & | graph, | ||
const List< node > & | terminals | ||
) |
Definition at line 295 of file MinSteinerTreeMehlhorn.h.
|
inline |
Definition at line 157 of file common_algorithms.h.
void ogdf::steiner_tree::contractTripleInSteinerTree | ( | const Triple< T > & | t, |
EdgeWeightedGraphCopy< T > & | st, | ||
edge | save0, | ||
edge | save1, | ||
edge | save2, | ||
edge & | ne0, | ||
edge & | ne1 | ||
) |
Updates the Steiner tree by deleting save edges, removing all direct connections between the terminals of the contracted triple and connecting them through 0-cost edges.
t | The contracted triple |
st | The Steiner Tree |
save0 | One of the three save edges of the triple |
save1 | One of the three save edges of the triple |
save2 | One of the three save edges of the triple |
ne0 | One of the new zero-weight edges |
ne1 | One of the new zero-weight edges |
Definition at line 143 of file common_algorithms.h.
T ogdf::steiner_tree::obtainFinalSteinerTree | ( | const EdgeWeightedGraph< T > & | G, |
const NodeArray< bool > & | isTerminal, | ||
const NodeArray< bool > & | isOriginalTerminal, | ||
EdgeWeightedGraphCopy< T > *& | finalSteinerTree | ||
) |
Definition at line 164 of file common_algorithms.h.