|
| BlossomVHelper (bool greedyInit) |
| Construct a new Blossom V Helper object.
|
|
TWeight | getRealReducedWeight (edge e) override |
| Gets the actual reduced weight of the edge, taking into account the delta of the corresponding trees.
|
|
template<class E > |
TWeight | getRealTopPriority (BlossomPQ< E, TWeight > &pq) |
| Returns the real value (realReducedWeight or realY) of the top element in the priority queue, or infinity if the queue is empty.
|
|
template<class E > |
E | getTopEligibleElement (BlossomPQ< E, TWeight > &pq) |
| Checks if the top element of the given pq has realValue == 0 and returns it, if possible.
|
|
template<class WeightContainer > |
bool | init (const Graph &graph, const WeightContainer &weights, AuxGraph< TWeight > *auxGraph) |
| Initialize the helper with the given data.
|
|
bool | isZeroCostNode (node v) |
| Checks if the realValue of b is zero.
|
|
TWeight | realValue (edge e) |
| Returns the realReducedWeight of e .
|
|
TWeight | realValue (node v) |
| Returns the realY of v .
|
|
TWeight | realY (node v) |
| Returns the actual y value of the node, taking into account the delta of the corresponding tree.
|
|
| BlossomHelper (bool greedyInit) |
| Construct a new Blossom V Helper object.
|
|
| ~BlossomHelper () |
|
void | addPseudonode (Pseudonode *pseudonode) |
| Adds a pseudonode to the current representation structure.
|
|
void | addToMatching (edge e) |
| Adds the edge e to the matching.
|
|
TWeight & | c (edge e) |
| Returns the base edge weight of e .
|
|
void | expandRepr (Pseudonode *pseudonode) |
| Expands a pseudonode in the current representation structure.
|
|
node | getBaseNode (edge e, node v) |
| Returns the original end point of e which is currently represented by v .
|
|
std::pair< node, node > | getBaseNodes (edge e, node v=nullptr) |
| Return both original end points of e where the first end point is currently represented by v .
|
|
node | getOppositeBaseNode (edge e, node v) |
| Returns the original end point of e where the other end point is currently represented by v .
|
|
void | getOriginalMatching (std::unordered_set< edge > &matching) |
| Fills matching with the original edges which correspond to the edges in m_matching after expanding it with the correct edges currently contracted in blossoms.
|
|
TWeight | getReducedWeight (edge e) |
| Returns the reduced weight of e , taking into account the y values of the endpoints.
|
|
GraphCopySimple & | graph () |
|
template<class WeightContainer > |
bool | init (const Graph &graph, const WeightContainer &weights) |
| Reinitialize the helper class with a new graph and edge weights. Resets all helper members. Returns false if the graph cannot have a perfect matching.
|
|
virtual bool | isEqualityEdge (edge e) |
| Checks whether e is an equality edge, i.e. the reduced weight is 0.
|
|
bool | isPseudonode (node v) |
| Checks whether v is a pseudonode.
|
|
bool | isZero (TWeight x) |
| Helper function to determine whether a floating point value is 0.
|
|
bool | isZeroCostNode (node v) |
| Checks whether v is a zero-cost node, i.e. the y value is 0.
|
|
NodeArray< edge > & | matching () |
|
edge & | matching (node v) |
| Returns the matching edge of v , or nullptr if v is not matched.
|
|
Pseudonode * | pseudonode (node v) |
| Returns the pseudonode corresponding to v , or nullptr if v is not a pseudonode.
|
|
std::unordered_map< node, Pseudonode * > & | pseudonodes () |
|
void | removePseudonode (Pseudonode *pseudonode) |
| Removes a pseudonode from the current representation structure.
|
|
node | repr (node v) |
| Returns the representative of v in the tree induced by the pseudonodes.
|
|
node | reprChild (node v) |
| Returns the child of the representative of v in the tree induced by the pseudonodes.
|
|
TWeight & | y (node v) |
| Returns the base y value of v .
|
|
template<class TWeight>
class ogdf::matching_blossom::BlossomVHelper< TWeight >
Helper class for the blossom matching algorithms.
Definition at line 49 of file BlossomVHelper.h.