ハイパーグラフはグラフの一般化であり、それぞれ(ハイパー)エッジ(ネットとも呼ばれます)が3つ以上の頂点を接続できます。 K -Way Hypergraphパーティションの問題は、よく知られているグラフパーティションの問題の一般化です。頂点を分割する頂点を境界サイズのkの分離ブロックに分割します(最大1倍の平均ブロックサイズの最大1倍)。
最も顕著な2つの目的関数は、カットネットと接続(またはλ - 1)メトリックです。 Cut-netは、グラフパーティション化におけるエッジカット目的の簡単な一般化です(つまり、複数のブロックを接続するネットの重みの合計を最小化します)。さらに、接続メトリックは、ネットで接続されたブロックの実際の数λを考慮します。すべてのネットの(λ-1)値を合計することにより、平行スパースマトリックスベクトル乗算の総通信量を正確にモデル化し、プレーングラフのエッジカットに戻るメトリックをもう一度取得します。
Kahyparは、カットおよび(λ - 1)メトリックを最適化するためのマルチレベルハイパーグラフパーティションフレームワークです。再帰的な二等分と直接K-Wayパーティションの両方をサポートします。マルチレベルアルゴリズムとして、それは3つのフェーズで構成されています。粗い段階では、ハイパーグラフが粗いハイパーグラフの階層を得るために粗いです。最初のパーティションアルゴリズムを第2フェーズで最小のハイパーグラフに適用した後、粗大化は元に戻され、各レベルで、ローカル検索方法を使用して、より粗いレベルによって誘導されるパーティションを改善します。 Kahyparは、最も極端なバージョンでマルチレベルアプローチをインスタンス化し、階層のあらゆるレベルで単一の頂点のみを削除します。強力なローカル検索ヒューリスティックと組み合わせたこの非常に細かい粒子のNレベルアプローチを使用することにより、非常に高品質のソリューションを計算します。そのアルゴリズムと詳細な実験結果は、いくつかの研究出版物に記載されています。
可変ブロック重みのハイパーグラフ分配
Kahyparは、さまざまなブロック重量をサポートしています。コマンドラインオプション--use-individual-part-weights=trueが使用される場合、パーティショナーはハイパーグラフを分割しようとします。これにより、各ブロックVXの重量はほとんどのBXです。ここで、コマンドラインパラメーター--part-weights= B1 B2 B3 ... Bk-1を使用してBXを個別に指定できます。フレームワークはまだ完全にバランスの取れたパーティション化をサポートしていないため、上限はハイパーグラフのすべての頂点の総重量よりもわずかに大きくする必要があります。この機能はまだ実験的であることに注意してください。
固定された頂点を使用したハイパーグラフパーティション
固定された頂点を使用したハイパーグラフ分配は、標準のハイパーグラフ分配のバリエーションです。この問題では、いくつかの頂点のブロック割り当てに追加の制約があります。つまり、残りの「フリー」頂点をパーティション化した後、固定頂点がまだ割り当てられたブロック内にあるという条件で分割する前に、特定のブロックにいくつかの頂点が前に署名されます。コマンドラインパラメーター--fixed / -f使用して、HMetis Fixファイル形式の修正ファイルを指定できます。 V頂点を持つハイパーグラフの場合、修正ファイルはV行で構成されます - 各頂点に1つ。 I TH行には-1が含まれているため、頂点が自由に移動できることを示すか、この頂点を<part id> <part id>をブロックするように前に署名する必要があることを示します。部品IDは0から始まることに注意してください。
Kahyparは現在、固定された頂点を使用して分割するための3つの異なる収縮ポリシーをサポートしています。
free_vertex_only 、収縮パートナーがフリー頂点であるすべての収縮を許可します。つまり、両方の頂点が自由であるか、1つの頂点が固定され、他の頂点が自由である頂点ペアの収縮を許可します。fixed_vertex_allowedさらに、両方が同じブロックに事前に署名されている場合、2つの固定頂点の収縮が可能になります。予備実験に基づいて、これは現在デフォルトのポリシーです。equivalent_vertices 、同じブロックにプリエスした2つの自由頂点または2つの固定頂点で構成される頂点ペアの収縮のみを許可します。進化的枠組み(Kahypar-E)
Kahypar-Eは、Gecco'18出版物で説明されているように、進化的枠組みでKahyparを強化します。かなり大量の実行時間を考えると、このMemetic Multilevel Algorithmは、非革新的なKahypar構成、Hmetis、およびPatohの繰り返し実行よりも優れたパフォーマンスを発揮します。コマンドラインパラメーター--time-limit=xxx使用して、最大実行時間(秒)を設定できます。パラメーター--partition-evolutionary=true進化的パーティションを有効にします。
既存のパーティションの改善
Kahyparは、直接K-Way Vサイクルを使用して、パラメーター--part-file=</path/to/file>を介して指定された既存のパーティションを改善しようとします。 Vサイクルの最大数は、パラメーター--vcycles=を介して制御できます。
指示された非環式ハイパーグラフの分割
コードはまだメインリポジトリに統合されていませんが、非環式ハイパーグラフ分配をサポートするフォークが存在します。詳細については、対応する会議の出版物をご覧ください。
パフォーマンスプロファイルを使用して、ソリューション品質の観点から、Kahyparを他のパーティション化アルゴリズムと比較します。のセットのために
アルゴリズムとベンチマークセット
含む
インスタンス、パフォーマンス比率
Partitioner Pによって計算されたカットを、たとえばすべてのアルゴリズムの最小カットに関連付けます。つまり、つまり、
。
パフォーマンスプロファイル
アルゴリズムのpは関数によって与えられます
。
接続の最適化のために、パフォーマンス比は接続値を使用して計算されます
カット値の代わりに。の値
パーティショナーPが最適なソリューションを計算したインスタンスの割合に対応し、
パフォーマンス比率です
の係数内です
可能な限り最高の比率。パフォーマンスプロファイルでは、最高のアルゴリズムと比較して各アルゴリズムのパフォーマンスのみを評価できるため、
値を使用してアルゴリズムをランク付けすることはできません(つまり、どのアルゴリズムが2番目にベストであるかを決定するために)。
実験分析では、パフォーマンスプロファイルプロットは、各インスタンスで見つかった各アルゴリズムが最適なソリューション(つまり、最小接続/カット)に基づいています。さらに、パラメーターを選択します
すべてのp 、 i 、および
パフォーマンス比
アルゴリズムPがIの実行不可能なソリューションを計算した場合にのみ、
アルゴリズムが、特定の時間制限内でIのソリューションを計算できなかった場合にのみ。パフォーマンスプロファイルプロットでは、実行可能なソリューションに対応するパフォーマンス比がX軸のX -Tickに表示されますが、制限時間内で分割できなかったインスタンスは、以下のプロットを終了する線を暗黙的に表示します。
。パフォーマンス比は非常に右に抑制されているため、パフォーマンスプロファイルプロットは、パラメーターの範囲が異なる3つのセグメントに分割されます。
関心のあるさまざまな分野を反映する。最初のセグメントは小さな値を強調しています(
)、2番目のセグメントには、最大係数のすべてのインスタンスの結果が含まれています。
可能な限り最高の比率よりも悪い。最後のセグメントには、残りのすべての比率、すなわち、いくつかのアルゴリズムが最良のアルゴリズムよりもかなり悪いパフォーマンスを発揮するインスタンス、アルゴリズムが実行可能なソリューションを生成したインスタンス、および指定された時間内に分割できなかったインスタンスが含まれます。
図では、Kahyparを品質(Patoh-Q)およびデフォルトモード(Patoh-D)、K-Way(Hmetis-K)、HMetis 2.0(P1)の再帰的二等分バリアント(HMetis-R)、Zoltan(Zoltan-algd)、Mondrian vedrian vedian v.4.2.1を使用してZoltanを比較します。アルゴリズム。
ソリューション品質
実行時間
Kahypar関連のすべての出版物に追加のリソースを提供します。
| kkahypar-sea20 / rkahypar-sea20 | Sea'20 | 紙 | tr | スライド | 実験結果 |
|---|---|---|---|---|---|
| Kkahypar / rkahypar | - | 論文 | - | スライド | 実験結果 |
| kahypar-mf / Kahypar-r-mf | Sea'88 / Jea'19 | シーペーパー / JEAペーパー | tr | スライド | 実験結果: 海 / jea |
| Kahypar-e(evohgp) | gecco'18 | 紙 | tr | スライド | 実験結果 |
| Kahypar-ca | Sea'17 | 紙 | - | スライド | 実験結果 |
| Kahypar-K | Alenex'17 | 紙 | - | スライド | 実験結果 |
| Kahypar-r | Alenex'16 | 紙 | tr | スライド | 実験結果 |
Karlsruhe Hypergraphパーティションフレームワークには次のことが必要です。
g++バージョン9以降またはclangバージョン11.0.3以降などの最新の準備ができています。-DKAHYPAR_USE_MINIMAL_BOOST=ON FLAGにCMAKEコマンドに追加して、必要な依存関係を自動的にダウンロード、抽出、および構築することができます。 サブモジュールを含むリポジトリをクローンします。
git clone --depth=1 --recursive [email protected]:SebastianSchlag/kahypar.git
ビルドディレクトリの作成: mkdir build && cd build
cmake: cmake .. -DCMAKE_BUILD_TYPE=RELEASE
run make: make
テストは、プロジェクトの構築中に自動的に実行されます。さらに、 testターゲットが提供されます。エンドツーエンドの統合テストは、 make integration_testsで開始できます。プロファイリングは、cmakeフラグ: -DENABLE_PROFILE=ONで有効にできます。
スタンドアロンプログラムは、 make KaHyParを介して構築できます。バイナリは、 build/kahypar/application/にあります。
Kahyparにはいくつかの構成パラメーターがあります。すべての可能なパラメーターのリストについては、実行してください: ./KaHyPar --help 。入力ハイパーグラフファイルには、パーティション出力ファイルにHMetis形式を使用します。
コマンドラインパラメーター--quiet=1使用して、すべてのログ出力を抑制できます。ライブラリインターフェイスを使用している場合、対応する.ini構成ファイルにquiet=1を追加すると同じ効果があります。
2つのデフォルトのフレームワーク構成を提供します。1つは再帰的な二層( r kahypar)と、直接Kウェイパーティション( k kahypar)用です。
一般に、 K Kahyparは、実行時間とソリューションの品質の両方の点で、 R Kahyparよりも優れたパフォーマンスを発揮するため、使用することをお勧めします。
K Kahyparを開始するには、(接続-1)目的実行を最適化します。
./KaHyPar -h <path-to-hgr> -k <# blocks> -e <imbalance (e.g. 0.03)> -o km1 -m direct -p ../../../config/km1_kKaHyPar_sea20.ini
k kahyparを開始するには、カットネット目標の実行を最適化します。
./KaHyPar -h <path-to-hgr> -k <# blocks> -e <imbalance (e.g. 0.03)> -o cut -m direct -p ../../../config/cut_kKaHyPar_sea20.ini
r kahyparを開始するには、(接続-1)目的実行を最適化します。
./KaHyPar -h <path-to-hgr> -k <# blocks> -e <imbalance (e.g. 0.03)> -o km1 -m recursive -p ../../../config/km1_rKaHyPar_sea20.ini
r kahyparを開始するには、カットネット目標の実行を最適化します。
./KaHyPar -h <path-to-hgr> -k <# blocks> -e <imbalance (e.g. 0.03)> -o cut -m recursive -p ../../../config/cut_rKaHyPar_sea20.ini
MEMETIC ALGORITHM K KAHYPAR -Eを開始するには、(接続-1)目的実行を最適化します。
./KaHyPar -h <path-to-hgr> -k <# blocks> -e <imbalance (e.g. 0.03)> -o km1 -m direct -p ../../../config/km1_kKaHyPar-E_sea20.ini
さらに、Alenex'16、Alenex'17、Sea'17、Sea'18、Gecco'18の出版物で使用される構成に対応するさまざまなプリセットを提供し、JEAジャーナルペーパーおよびSebastian Schlagの論文で提供します。これらの構成は、config/old_reference_configsフォルダーにあります。これらの構成を使用するには、最新のリリースで削除された古いコードがあるため、Kahyparリリース1.1.0をチェックアウトする必要があります。
KAHYPAR-MF(フローベースの改良を使用)を開始するには、(接続性-1)直接Kウェイモードの実行を最適化します。
./KaHyPar -h <path-to-hgr> -k <# blocks> -e <imbalance (e.g. 0.03)> -o km1 -m direct -p ../../../config/old_reference_configs/km1_kahypar_mf_jea19.ini
KAHYPAR-MFを開始するには(フローベースの改良を使用)、直接Kウェイモードの実行を使用してカットネット目標を最適化します。
./KaHyPar -h <path-to-hgr> -k <# blocks> -e <imbalance (e.g. 0.03)> -o cut -m direct -p ../../../config/old_reference_configs/cut_kahypar_mf_jea19.ini
EVOHGP/KAHYPAR-Eを開始するには、直接Kウェイモードを使用して(接続-1)目的を最適化します
./KaHyPar -h <path-to-hgr> -k <# blocks> -e <imbalance (e.g. 0.03)> -o km1 -m direct -p ../../../config/old_reference_configs/km1_direct_kway_gecco18.ini
構成km1_direct_kway_gecco18.iniはKahypar-caに基づいていることに注意してください。ただし、Kahypar-Eは、フローベースのローカル改善にも連絡しています。 JEAの出版物では、 km1_kahypar_e_mf_jea19.ini構成が使用されました。
Kahypar-CA(コミュニティを認識した粗大化を使用)を開始するには、(接続-1)直接Kウェイモードの実行を最適化します。
./KaHyPar -h <path-to-hgr> -k <# blocks> -e <imbalance (e.g. 0.03)> -o km1 -m direct -p ../../../config/old_reference_configs/km1_direct_kway_sea17.ini
Kahyparを直接K-Wayモード(Kahypar-K)で開始するには、(接続-1)目的実行を最適化します。
./KaHyPar -h <path-to-hgr> -k <# blocks> -e <imbalance (e.g. 0.03)> -o km1 -m direct -p ../../../config/old_reference_configs/km1_direct_kway_alenex17.ini
Cut-net Objective Runを最適化する再帰二等分モード(Kahypar-R)でKahyparを開始するには:
./KaHyPar -h <path-to-hgr> -k <# blocks> -e <imbalance (e.g. 0.03)> -o cut -m recursive -p ../../../config/old_reference_configs/cut_rb_alenex16.ini
すべてのプリセットパラメーターは、対応するコマンドラインオプションを使用して上書きできます。
Hypergraph Kahyparを作成すると、入力が実際には正しいハイパーグラフであることを検証します。そうでなければ、エラーを印刷して中止します。これは、HGR入力ファイル、Cインターフェイス、Pythonインターフェイスに適用されます。検証のランタイムコストは、ほとんどすべての場合に無視できる必要があります。ただし、CMake Flag -DKAHYPAR_INPUT_VALIDATION=OFFを使用して、入力検証を無効にすることもできます。
さらに、非致命的な問題については警告が印刷されています(例:重複したピンを備えたハイペレッジなど)。代わりに、致命的でない問題をハードエラーとして扱うには、cmakeフラグ-DKAHYPAR_INPUT_VALIDATION_PROMOTE_WARNINGS_TO_ERRORS=ON使用してください。
Kahyparをライブラリとして使用するシンプルなCスタイルインターフェイスを提供します。このインターフェイスはまだスレッドセーフではないことに注意してください。ただし、既存の回避策がいくつかあります。ライブラリは、介して構築およびインストールできます
make install.libraryそして、このように使用できます:
# include < memory >
# include < vector >
# include < iostream >
# include < libkahypar.h >
int main ( int argc, char * argv[]) {
kahypar_context_t * context = kahypar_context_new ();
kahypar_configure_context_from_file (context, " /path/to/config.ini " );
kahypar_set_seed (context, 42 );
const kahypar_hypernode_id_t num_vertices = 7 ;
const kahypar_hyperedge_id_t num_hyperedges = 4 ;
std::unique_ptr< kahypar_hyperedge_weight_t []> hyperedge_weights = std::make_unique< kahypar_hyperedge_weight_t []>( 4 );
// force the cut to contain hyperedge 0 and 2
hyperedge_weights[ 0 ] = 1 ; hyperedge_weights[ 1 ] = 1000 ;
hyperedge_weights[ 2 ] = 1 ; hyperedge_weights[ 3 ] = 1000 ;
std::unique_ptr< size_t []> hyperedge_indices = std::make_unique< size_t []>( 5 );
hyperedge_indices[ 0 ] = 0 ; hyperedge_indices[ 1 ] = 2 ;
hyperedge_indices[ 2 ] = 6 ; hyperedge_indices[ 3 ] = 9 ;
hyperedge_indices[ 4 ] = 12 ;
std::unique_ptr< kahypar_hyperedge_id_t []> hyperedges = std::make_unique< kahypar_hyperedge_id_t []>( 12 );
// hypergraph from hMetis manual page 14
hyperedges[ 0 ] = 0 ; hyperedges[ 1 ] = 2 ;
hyperedges[ 2 ] = 0 ; hyperedges[ 3 ] = 1 ;
hyperedges[ 4 ] = 3 ; hyperedges[ 5 ] = 4 ;
hyperedges[ 6 ] = 3 ; hyperedges[ 7 ] = 4 ;
hyperedges[ 8 ] = 6 ; hyperedges[ 9 ] = 2 ;
hyperedges[ 10 ] = 5 ; hyperedges[ 11 ] = 6 ;
const double imbalance = 0.03 ;
const kahypar_partition_id_t k = 2 ;
kahypar_hyperedge_weight_t objective = 0 ;
std::vector< kahypar_partition_id_t > partition (num_vertices, - 1 );
kahypar_partition (num_vertices, num_hyperedges,
imbalance, k,
/* vertex_weights */ nullptr , hyperedge_weights. get (),
hyperedge_indices. get (), hyperedges. get (),
&objective, context, partition. data ());
for ( int i = 0 ; i != num_vertices; ++i) {
std::cout << i << " : " << partition[i] << std::endl;
}
kahypar_context_free (context);
} g++実行を使用してプログラムをコンパイルするには:
g++ -std=c++14 -DNDEBUG -O3 -I/usr/local/include -L/usr/local/lib program.cc -o program -lkahypar注:リンク中にブーストが見つからない場合は、 -L/path/to/boost/lib -I/path/to/boost/include -lboost_program_optionsコマンドに追加する必要がある場合があります。
システムからライブラリを削除するには、提供されたアンインストールターゲットを使用します。
make uninstall-kahyparPythonインターフェイスをコンパイルするには、次のことを行います。
mkdir build && cd buildcmake .. -DCMAKE_BUILD_TYPE=RELEASE -DKAHYPAR_PYTHON_INTERFACE=1実行します。ブーストがインストールされていない場合は、実行: cmake .. -DCMAKE_BUILD_TYPE=RELEASE -DKAHYPAR_PYTHON_INTERFACE=1 -DKAHYPAR_USE_MINIMAL_BOOST=ON 。これにより、必要な依存関係を自動的にダウンロード、抽出、および構築します。cd pythonに移動しますmakecp kahypar.so <path-to-site-packages>その後、このようなKahypar Libaryを使用できます。
import os
import kahypar as kahypar
num_nodes = 7
num_nets = 4
hyperedge_indices = [ 0 , 2 , 6 , 9 , 12 ]
hyperedges = [ 0 , 2 , 0 , 1 , 3 , 4 , 3 , 4 , 6 , 2 , 5 , 6 ]
node_weights = [ 1 , 2 , 3 , 4 , 5 , 6 , 7 ]
edge_weights = [ 11 , 22 , 33 , 44 ]
k = 2
hypergraph = kahypar . Hypergraph ( num_nodes , num_nets , hyperedge_indices , hyperedges , k , edge_weights , node_weights )
context = kahypar . Context ()
context . loadINIconfiguration ( "<path/to/config>/km1_kKaHyPar_sea20.ini" )
context . setK ( k )
context . setEpsilon ( 0.03 )
kahypar . partition ( hypergraph , context )Pythonライブラリ機能の詳細については、module.cppを参照してください。
また、以下を介してインストールできます。
python3 -m pip install --index-url https://pypi.org/simple/ --no-deps kahypar
Jordan Jalving(@Jalving)のおかげで、KahyparはJuliaインターフェイスも提供しています。これは現在、Kahypar/Kahypar.jlにあります。
対応する依存関係は、以下を介してインストールできます。
using Pkg
Pkg . add ( PackageSpec (url = " https://github.com/jalving/KaHyPar.jl.git " ))
Pkg . test ( " KaHyPar " )その後、Kahyparを使用して、次のようなハイパーグラフを分割できます。
using KaHyPar
using SparseArrays
I = [ 1 , 3 , 1 , 2 , 4 , 5 , 4 , 5 , 7 , 3 , 6 , 7 ]
J = [ 1 , 1 , 2 , 2 , 2 , 2 , 3 , 3 , 3 , 4 , 4 , 4 ]
V = Int .( ones ( length (I)))
A = sparse (I,J,V)
h = KaHyPar . hypergraph (A)
KaHyPar . partition (h, 2 ,configuration = :edge_cut )
KaHyPar . partition (h, 2 ,configuration = :connectivity )
KaHyPar . partition (h, 2 ,configuration = joinpath ( @__DIR__ , " ../src/config/km1_kKaHyPar_sea20.ini " ))ロマン・ウォロンは、KahyparのJavaインターフェイスを作成しました。インターフェイスの構築と使用方法の詳細な説明については、READMEを参照してください。
プロジェクトのGitHub発行追跡システムを介して、Kahyparの問題を報告することをお勧めします。
Kahyparは、GNU General Public License(GPLV3)に基づいて提供されるフリーソフトウェアです。詳細については、コピーファイルを参照してください。このフレームワークを自由に配布して、ハイパーグラフ分配ツールの使用と開発を促進します。アカデミックな環境でKahyparを使用する場合は、適切な論文を引用してください。商業ライセンスに興味がある場合は、私に連絡してください。
// Overall KaHyPar framework
@phdthesis{DBLP:phd/dnb/Schlag20,
author = {Sebastian Schlag},
title = {High-Quality Hypergraph Partitioning},
school = {Karlsruhe Institute of Technology, Germany},
year = {2020}
}
@article{10.1145/3529090,
author = {Schlag, Sebastian and
Heuer, Tobias and
Gottesb"{u}ren, Lars and
Akhremtsev, Yaroslav and
Schulz, Christian and
Sanders, Peter},
title = {High-Quality Hypergraph Partitioning},
url = {https://doi.org/10.1145/3529090},
doi = {10.1145/3529090},
journal = {ACM J. Exp. Algorithmics},
year = {2022},
month = {mar}
}
// KaHyPar-R
@inproceedings{shhmss2016alenex,
author = {Sebastian Schlag and
Vitali Henne and
Tobias Heuer and
Henning Meyerhenke and
Peter Sanders and
Christian Schulz},
title = {k-way Hypergraph Partitioning via emph{n}-Level Recursive
Bisection},
booktitle = {18th Workshop on Algorithm Engineering and Experiments, (ALENEX 2016)},
pages = {53--67},
year = {2016},
}
// KaHyPar-K
@inproceedings{ahss2017alenex,
author = {Yaroslav Akhremtsev and
Tobias Heuer and
Peter Sanders and
Sebastian Schlag},
title = {Engineering a direct emph{k}-way Hypergraph Partitioning Algorithm},
booktitle = {19th Workshop on Algorithm Engineering and Experiments, (ALENEX 2017)},
pages = {28--42},
year = {2017},
}
// KaHyPar-CA
@inproceedings{hs2017sea,
author = {Tobias Heuer and
Sebastian Schlag},
title = {Improving Coarsening Schemes for Hypergraph Partitioning by Exploiting Community Structure},
booktitle = {16th International Symposium on Experimental Algorithms, (SEA 2017)},
pages = {21:1--21:19},
year = {2017},
}
// KaHyPar-MF
@inproceedings{heuer_et_al:LIPIcs:2018:8936,
author ={Tobias Heuer and Peter Sanders and Sebastian Schlag},
title ={{Network Flow-Based Refinement for Multilevel Hypergraph Partitioning}},
booktitle ={17th International Symposium on Experimental Algorithms (SEA 2018)},
pages ={1:1--1:19},
year ={2018}
}
@article{KaHyPar-MF-JEA,
author = {Heuer, T. and Sanders, P. and Schlag, S.},
title = {Network Flow-Based Refinement for Multilevel Hypergraph Partitioning},
journal = {ACM Journal of Experimental Algorithmics (JEA)}},
volume = {24},
number = {1},
month = {09},
year = {2019},
pages = {2.3:1--2.3:36},
publisher = {ACM}
}
// KaHyPar-E (EvoHGP)
@inproceedings{Andre:2018:MMH:3205455.3205475,
author = {Robin Andre and Sebastian Schlag and Christian Schulz},
title = {Memetic Multilevel Hypergraph Partitioning},
booktitle = {Proceedings of the Genetic and Evolutionary Computation Conference},
series = {GECCO '18},
year = {2018},
pages = {347--354},
numpages = {8}
}
// KaHyPar-SEA20 (KaHyPar-HFC)
@InProceedings{gottesbren_et_al:LIPIcs:2020:12085,
author = {Lars Gottesb{"u}ren and Michael Hamann and Sebastian Schlag and Dorothea Wagner},
title = {{Advanced Flow-Based Multilevel Hypergraph Partitioning}},
booktitle = {18th International Symposium on Experimental Algorithms (SEA)},
pages = {11:1--11:15},
series = {Leibniz International Proceedings in Informatics (LIPIcs)},
year = {2020}
}
Kahyparフレームワークに貢献することに興味がある場合は、お気軽に連絡するか、問題追跡システムに関する問題を作成してください。