#include <ogdf/graphalg/matching_blossom/AuxGraph.h>
Public Member Functions | |
AuxGraph (BlossomVHelper< TWeight > &helper) | |
AuxEdge< TWeight > * | assertCurrentEdge (AuxNode< TWeight > *auxNode, AuxNode< TWeight > *current) |
Creates an AuxEdge between auxNode and current if it does not exist and sets the currentEdge of auxNode accordingly. More... | |
AuxEdge< TWeight > * | auxEdge (edge e) |
Returns the AuxEdge corresponding to e , which must be an edge of the auxiliary graph. More... | |
AuxNode< TWeight > * | auxNode (node v) |
Returns the AuxNode corresponding to v , which must be a node of the auxiliary graph. More... | |
AuxNode< TWeight > * | auxNodeForEdge (edge e) |
Returns the AuxNode of the auxiliary graph whose tree contains at least one endpoint of e . e must be part of the actual graph. More... | |
void | connectedComponents (std::vector< std::unordered_set< node >> &components) |
Calculates the connected components of the auxiliary graph and stores them in components . Only tight even-odd/odd-even edges between different trees are taken into account. More... | |
void | deleteNode (AuxNode< TWeight > *auxNode) |
Removes auxNode and all incident edges from the auxiliary graph. More... | |
const EdgeArray< AuxEdge< TWeight > * > & | edges () const |
GraphCopySimple & | graph () |
const NodeArray< AuxNode< TWeight > * > & | nodes () const |
void | reset () |
Rebuilds the auxiliary graph from the current graph. More... | |
void | setAuxNode (node v, AuxNode< TWeight > *auxNode) |
Sets the AuxNode of v to auxNode . More... | |
AuxNode< TWeight > * | treeAuxNode (node v) |
Returns the AuxNode of whose tree the node v of the actual graph is a part of. More... | |
AlternatingTree< TWeight > * | treeOf (node v) |
Returns the tree which contains v , or nullptr if v is free. More... | |
Private Member Functions | |
AuxEdge< TWeight > * | createAuxEdge (edge e) |
Creates an AuxEdge for e and stores it in the appropriate maps. More... | |
AuxNode< TWeight > * | createAuxNode (node v) |
Creates an AuxNode for v and stores it in the appropriate maps. More... | |
Private Attributes | |
EdgeArray< AuxEdge< TWeight > * > | m_auxGraphEdgeMap |
maps auxiliary graph edges to their AuxEdge objects More... | |
NodeArray< AuxNode< TWeight > * > | m_auxGraphNodeMap |
maps auxiliary graph nodes to their AuxNode objects More... | |
GraphCopySimple | m_graph |
BlossomVHelper< TWeight > & | m_helper |
NodeArray< AuxNode< TWeight > * > | m_nodeAuxNodeMap |
maps normal graph nodes to the AuxNode whose tree they belong to More... | |
Definition at line 215 of file AuxGraph.h.
|
inline |
Definition at line 245 of file AuxGraph.h.
|
inline |
Creates an AuxEdge between auxNode
and current
if it does not exist and sets the currentEdge of auxNode
accordingly.
Definition at line 320 of file AuxGraph.h.
|
inline |
Returns the AuxEdge corresponding to e
, which must be an edge of the auxiliary graph.
Definition at line 262 of file AuxGraph.h.
|
inline |
Returns the AuxNode corresponding to v
, which must be a node of the auxiliary graph.
Definition at line 265 of file AuxGraph.h.
|
inline |
Returns the AuxNode of the auxiliary graph whose tree contains at least one endpoint of e
. e
must be part of the actual graph.
Definition at line 303 of file AuxGraph.h.
|
inline |
Calculates the connected components of the auxiliary graph and stores them in components
. Only tight even-odd/odd-even edges between different trees are taken into account.
Note: We cannot use connectedComponents from simple_graph_alg.h since we need to iterate the components one after another and not all edges are taken into account.
Definition at line 356 of file AuxGraph.h.
|
inlineprivate |
Creates an AuxEdge for e
and stores it in the appropriate maps.
Definition at line 238 of file AuxGraph.h.
|
inlineprivate |
Creates an AuxNode for v
and stores it in the appropriate maps.
Definition at line 229 of file AuxGraph.h.
|
inline |
Removes auxNode
and all incident edges from the auxiliary graph.
Definition at line 335 of file AuxGraph.h.
|
inline |
Definition at line 259 of file AuxGraph.h.
|
inline |
Definition at line 255 of file AuxGraph.h.
|
inline |
Definition at line 257 of file AuxGraph.h.
|
inline |
Rebuilds the auxiliary graph from the current graph.
Definition at line 273 of file AuxGraph.h.
|
inline |
Sets the AuxNode of v
to auxNode
.
Definition at line 332 of file AuxGraph.h.
|
inline |
Returns the AuxNode of whose tree the node v
of the actual graph is a part of.
Definition at line 268 of file AuxGraph.h.
|
inline |
Returns the tree which contains v
, or nullptr if v
is free.
Definition at line 313 of file AuxGraph.h.
|
private |
maps auxiliary graph edges to their AuxEdge objects
Definition at line 224 of file AuxGraph.h.
|
private |
maps auxiliary graph nodes to their AuxNode objects
Definition at line 222 of file AuxGraph.h.
|
private |
Definition at line 219 of file AuxGraph.h.
|
private |
Definition at line 216 of file AuxGraph.h.
|
private |
maps normal graph nodes to the AuxNode whose tree they belong to
Definition at line 226 of file AuxGraph.h.