CkPttn 1.2.4
Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | List of all members
MLMidLvlPartMgr Class Reference

Multi-Level Mid-Level Partition Manager (2-way) More...

#include <MLMidLvlPartMgr.hpp>

Public Member Functions

 MLMidLvlPartMgr (double bal_tol)
 Constructs a new MLMidLvlPartMgr object (default 2 partitions)
 
 MLMidLvlPartMgr (double bal_tol, std::uint8_t num_parts)
 Constructs a new MLMidLvlPartMgr object.
 
void set_limitsize (size_t limit)
 Sets the size limit for multi-level coarsening.
 
template<typename Gnl >
auto run_Partition (const Gnl &hyprgraph, std::span< std::uint8_t > part) -> LegalCheck
 Runs the multi-level mid-level partitioning algorithm.
 

Public Attributes

int total_cost {}
 Total cost of the current partitioning solution.
 

Detailed Description

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.

Constructor & Destructor Documentation

◆ MLMidLvlPartMgr() [1/2]

MLMidLvlPartMgr::MLMidLvlPartMgr ( double  bal_tol)
explicit

Constructs a new MLMidLvlPartMgr object (default 2 partitions)

Parameters
[in]bal_tolThe 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_tolThe balance tolerance for the partitioning
[in]num_partsThe number of partitions (must be 2 for this type)

Member Function Documentation

◆ 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
GnlThe hypergraph type
Parameters
[in]hyprgraphThe input hypergraph
[in,out]partThe 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]limitThe minimum module count to trigger coarsening

Member Data Documentation

◆ total_cost

int MLMidLvlPartMgr::total_cost {}

Total cost of the current partitioning solution.


The documentation for this class was generated from the following file: