|
Aleph-w 3.0
A C++ Library for Data Structures and Algorithms
|
Represents a non-trivial blossom (an odd cycle of sub-blossoms). More...
#include <blossom_weighted_mwmatching.H>
Classes | |
| struct | SubBlossom |
Public Member Functions | |
| NonTrivialBlossom () | |
| template<class Blossom_Container , class Edge_Container > | |
| NonTrivialBlossom (const Blossom_Container &subblossoms, const Edge_Container &edges) | |
| Construct a new non-trivial blossom. | |
| VertexId | find_subblossom_pos (Blossom< WeightType > *subblossom) const |
Public Member Functions inherited from Aleph::blossom_weighted_detail::mwmatching::impl::Blossom< WeightType > | |
| Blossom () | |
| Blossom (VertexId base_vertex) | |
| NonTrivialBlossom< WeightType > * | nontrivial () |
| Safe downcast to NonTrivialBlossom. | |
| const NonTrivialBlossom< WeightType > * | nontrivial () const |
| Safe downcast to NonTrivialBlossom (const version). | |
Public Attributes | |
| DynDlist< SubBlossom > | subblossoms |
| Ring of sub-blossoms forming this blossom. | |
| WeightType | dual_var |
| Dual variable value for this blossom. | |
| DynDlist< const Edge< WeightType > * > | best_edge_set |
Public Attributes inherited from Aleph::blossom_weighted_detail::mwmatching::impl::Blossom< WeightType > | |
| NonTrivialBlossom< WeightType > * | parent |
| Parent in the blossom hierarchy, or null if top-level. | |
| VertexId | base_vertex |
| Index of the base vertex (the unmatched vertex in the blossom). | |
| BlossomLabel | label |
| Label S or T if this is part of the current alternating forest. | |
| bool | is_nontrivial_blossom |
| Flag to distinguish between Blossom and NonTrivialBlossom. | |
| VertexPair | tree_edge |
| Tree edge attaching this blossom to its parent in the alternating forest. | |
| const Edge< WeightType > * | best_edge |
| Best edge for dual variable calculation (least slack). | |
Additional Inherited Members | |
Protected Member Functions inherited from Aleph::blossom_weighted_detail::mwmatching::impl::Blossom< WeightType > | |
| Blossom (const VertexId base_vertex, const bool is_nontrivial_blossom) | |
Represents a non-trivial blossom (an odd cycle of sub-blossoms).
Non-trivial blossoms have associated dual variables in the LPP.
Definition at line 383 of file blossom_weighted_mwmatching.H.
|
inline |
Definition at line 404 of file blossom_weighted_mwmatching.H.
|
inline |
Construct a new non-trivial blossom.
Definition at line 411 of file blossom_weighted_mwmatching.H.
References Aleph::divide_and_conquer_partition_dp(), and Aleph::blossom_weighted_detail::mwmatching::impl::NonTrivialBlossom< WeightType >::subblossoms.
|
inline |
Definition at line 433 of file blossom_weighted_mwmatching.H.
References Aleph::divide_and_conquer_partition_dp(), and Aleph::blossom_weighted_detail::mwmatching::impl::NonTrivialBlossom< WeightType >::subblossoms.
Referenced by Aleph::blossom_weighted_detail::mwmatching::impl::MatchingContext< WeightType >::augment_blossom_rec(), and Aleph::blossom_weighted_detail::mwmatching::impl::MatchingContext< WeightType >::expand_t_blossom().
| DynDlist<const Edge<WeightType> *> Aleph::blossom_weighted_detail::mwmatching::impl::NonTrivialBlossom< WeightType >::best_edge_set |
Definition at line 401 of file blossom_weighted_mwmatching.H.
Referenced by Aleph::blossom_weighted_detail::mwmatching::impl::MatchingContext< WeightType >::lset_merge_blossoms().
| WeightType Aleph::blossom_weighted_detail::mwmatching::impl::NonTrivialBlossom< WeightType >::dual_var |
Dual variable value for this blossom.
Definition at line 398 of file blossom_weighted_mwmatching.H.
Referenced by Aleph::blossom_weighted_detail::mwmatching::impl::MatchingVerifier< WeightType >::check_blossom().
| DynDlist<SubBlossom> Aleph::blossom_weighted_detail::mwmatching::impl::NonTrivialBlossom< WeightType >::subblossoms |
Ring of sub-blossoms forming this blossom.
Definition at line 395 of file blossom_weighted_mwmatching.H.
Referenced by Aleph::blossom_weighted_detail::mwmatching::impl::NonTrivialBlossom< WeightType >::NonTrivialBlossom(), Aleph::blossom_weighted_detail::mwmatching::impl::MatchingContext< WeightType >::augment_blossom_rec(), Aleph::blossom_weighted_detail::mwmatching::impl::MatchingVerifier< WeightType >::check_blossom(), Aleph::blossom_weighted_detail::mwmatching::impl::MatchingContext< WeightType >::expand_t_blossom(), Aleph::blossom_weighted_detail::mwmatching::impl::MatchingContext< WeightType >::expand_unlabeled_blossom(), Aleph::blossom_weighted_detail::mwmatching::impl::NonTrivialBlossom< WeightType >::find_subblossom_pos(), Aleph::blossom_weighted_detail::mwmatching::impl::for_vertices_in_blossom(), and Aleph::blossom_weighted_detail::mwmatching::impl::MatchingContext< WeightType >::lset_merge_blossoms().