Multi-Level Mid-Level Partition Manager (2-way)
More...
#include <MLMidLvlPartMgr.hpp>
|
| int | total_cost {} |
| | Total cost of the current partitioning solution.
|
| |
Multi-Level Mid-Level Partition Manager (2-way)
The MLMidLvlPartMgr class combines multi-level partitioning with mid-level (exhaustive) refinement for 2-way partitioning. For small hypergraphs it uses the exhaustive mid-level search directly; for larger instances it applies multi-level coarsening followed by mid-level refinement on the coarsened graph.
◆ MLMidLvlPartMgr() [1/2]
| MLMidLvlPartMgr::MLMidLvlPartMgr |
( |
double |
bal_tol | ) |
|
|
explicit |
Constructs a new MLMidLvlPartMgr object (default 2 partitions)
- Parameters
-
| [in] | bal_tol | The balance tolerance for the partitioning |
◆ MLMidLvlPartMgr() [2/2]
| MLMidLvlPartMgr::MLMidLvlPartMgr |
( |
double |
bal_tol, |
|
|
std::uint8_t |
num_parts |
|
) |
| |
Constructs a new MLMidLvlPartMgr object.
- Parameters
-
| [in] | bal_tol | The balance tolerance for the partitioning |
| [in] | num_parts | The number of partitions (must be 2 for this type) |
◆ run_Partition()
template<typename Gnl >
| auto MLMidLvlPartMgr::run_Partition |
( |
const Gnl & |
hyprgraph, |
|
|
std::span< std::uint8_t > |
part |
|
) |
| -> LegalCheck |
Runs the multi-level mid-level partitioning algorithm.
- Template Parameters
-
- Parameters
-
| [in] | hyprgraph | The input hypergraph |
| [in,out] | part | The partition vector |
- Returns
- LegalCheck The legality check result
◆ set_limitsize()
| void MLMidLvlPartMgr::set_limitsize |
( |
size_t |
limit | ) |
|
|
inline |
Sets the size limit for multi-level coarsening.
- Parameters
-
| [in] | limit | The minimum module count to trigger coarsening |
◆ total_cost
| int MLMidLvlPartMgr::total_cost {} |
Total cost of the current partitioning solution.
The documentation for this class was generated from the following file: