|
HLIBpro
2.5.1
|
Base class for cluster tree construction algorithms based on graph partitioning with graph defined by a sparse matrix.
#include <TAlgCTBuilder.hh>
Public Member Functions | |
| TAlgCTBuilder (TAlgPartStrat *part_strat, const uint n_min=CFG::Cluster::nmin, const uint min_leaf_lvl=0) | |
| construct cluster tree builder with given partition strategy and tree parameters | |
| virtual | ~TAlgCTBuilder () |
| dtor | |
| void | set_high_deg_fac (const uint fac) |
| activate/deactivate (if fac = 0) high degree node separation | |
| void | set_edge_weights_mode (const edge_weights_mode_t edge_weights_mode) |
| set mode for edge weights | |
| virtual std::unique_ptr< TClusterTree > | build (const TSparseMatrix *S, const idx_t idx_ofs=0) const |
| build cluster tree using connectivity in sparse matrix S | |
| virtual std::unique_ptr< TCluster > | divide (const TGraph &graph, const uint lvl, TPermutation &perm, const idx_t idx_ofs, const uint n_min, const TSparseMatrix *S, const uint max_lvl) const |
| divide graph graph and build corresponding cluster tree | |
| virtual void | partition (const TGraph &graph, TNodeSet &left, TNodeSet &right) const |
| compute graph bi-partitioning of graph and store result in left and right | |
Protected Member Functions | |
| virtual void | scc_partition (const TGraph &graph, TNodeSet &left, TNodeSet &right) const |
| same as More... | |
| virtual std::unique_ptr< TCluster > | build_leaf (const TGraph &graph, const idx_t idx_ofs, TPermutation &perm) const |
| build leaf node for indices in graph | |
| virtual uint | adjust_n_min (const TSparseMatrix *S) const |
| adjust n_min based on sparse matrix if default value of 0 was given in constructor | |
| virtual void | check_flow (const TGraph &graph, TNodeSet &left, TNodeSet &right, const TSparseMatrix *S) const |
| analyze connections between sub graphs left and right and swap if necessary | |