|
Open Graph Drawing Framework |
v. 2023.09 (Elderberry)
|
|
|
Go to the documentation of this file.
50 namespace steiner_tree {
87 while (!queue.empty()) {
105 #ifdef OGDF_STEINER_TREE_GOEMANS_BLOWUP_COMPONENTS_LOGGING
106 std::cout <<
" * component with terminals " << terms <<
" starting with edge " <<
rootEdge
107 <<
" having cost " <<
cost <<
" and capacity "
120 #ifdef OGDF_STEINER_TREE_GOEMANS_BLOWUP_COMPONENTS_LOGGING
121 std::cout <<
"Finding components in blowup graph:" << std::endl;
124 for (
adjEntry rootAdj : t->adjEntries) {
An array that keeps track of the number of inserted elements; also usable as an efficient stack.
The namespace for all OGDF objects.
Declaration and implementation of ArrayBuffer class.
int size() const
Return number of components.
Includes declaration of graph class.
#define OGDF_ASSERT(expr)
Assert condition expr. See doc/build.md for more information.
ArrayBuffer< ArrayBuffer< node > > componentTerminals
NodeArray< int > componentId
ArrayBuffer< edge > componentRootEdge
Class for adjacency list elements.
const List< node > & terminals() const
Returns a reference to the list containing all terminals in the blowup graph.
node getOriginal(node v) const
Returns the original node of v.
edge theEdge() const
Returns the edge associated with this adjacency entry.
T getCost(edge e) const
Returns the cost of e.
BlowupComponents(const BlowupGraph< T > &blowupGraph)
Find all components in the blowup graph and initialize information them.
Decralation of GraphElement and GraphList classes.
internal::GraphObjectContainer< AdjElement > adjEntries
The container containing all entries in the adjacency list of this node.
void push(E e)
Puts a new element in the buffer.
node getSource() const
Returns the source node.
node getPseudotarget() const
Returns the pseudotarget node.
node source() const
Returns the source node of the edge.
void setRootEdge(int id, edge e)
Set the edge coming from the root for a given component.
ArrayBuffer< T > componentCost
Doubly linked lists (maintaining the length of the list).
RegisteredArray for nodes, edges and adjEntries of a graph.
Obtain and provides information about components in a given blowup graph.
node getTarget() const
Returns the target node.
E popBackRet()
Removes the last element from the list and returns it.
node twinNode() const
Returns the associated node of the corresponding adjacency entry (shorthand for twin()->theNode()).
int id(node v) const
Return the component id a given node is contained in.
const ArrayBuffer< node > & terminals(int id) const
Return list of terminals for a given component.
const T & cost(int id) const
Return total cost of a given component.
Basic declarations, included by all source files.
bool isTerminal(node v) const
Returns true if and only if v is a terminal.
void initializeComponent(edge rootEdge, const BlowupGraph< T > &blowupGraph)
Initialize all information about the component starting with rootEdge in the blowup graph.
Class for the representation of edges.
edge rootEdge(int id) const
Return the edge coming from the root of a given component.
Declaration of doubly linked lists and iterators.
A special-purpose blowup graph for gammoid computation: directed, with special source and target,...
node target() const
Returns the target node of the edge.
Class for the representation of nodes.
iterator pushBack(const E &x)
Adds element x at the end of the list.
int getCapacity(edge e) const
Returns the capacity of e.