HLIBpro 3.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 | |
std::unique_ptr< TClusterTree > | build (any_const_sparse_matrix_t 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, any_const_sparse_matrix_t 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 | |
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 (any_const_sparse_matrix_t 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, any_const_sparse_matrix_t S) const |
analyze connections between sub graphs left and right and swap if necessary | |