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