Гиперграфы представляют собой обобщение графиков, где каждый (гипер) край (также называемый NET) может подключать более двух вершин. Проблема разделения гиперграфа K -это обобщение хорошо известной задачи распределения графиков: разделение вершины, установленного на K , не соответствующие блоки ограниченного размера (не более 1 + ε раз превышает средний размер блока), в то же время минимизируя целевую функцию, определенную в сетях.
Двумя наиболее заметными объективными функциями являются метрики подключения (или λ-1). Cut-Net-это простое обобщение объектива по сокращению графика (то есть минимизация суммы весов тех сетей, которые соединяют более одного блока). Метрика подключения дополнительно учитывает фактическое число λ блоков, соединенных сетью. Суммируя (λ-1)-1-й значения всех сетей, один точно моделирует общий объем коммуникации параллельного разбитого матричного вектора умножения и еще раз получает метрику, которая возвращается к краю для простых графиков.
Kahypar- это многоуровневая структура распределения гиперграфа для оптимизации Cut- и (λ- 1). Он поддерживает как рекурсивную расписание , так и прямое разделение K-Way . В качестве многоуровневого алгоритма он состоял из трех фаз: в фазе скорректирования гиперграф скорбит для получения иерархии меньших гиперграфов. После применения первоначального алгоритма разделения к наименьшему гиперграфе во втором этапе, скорлуп отключено, и на каждом уровне локальный метод поиска используется для улучшения разделения, вызванного более грубым уровнем. Kahypar создает многоуровневый подход в своей самой экстремальной версии, удаляя только одну вершину на каждом уровне иерархии. Используя этот очень мелкозернистый подход N -уровня в сочетании с сильной эвристикой локального поиска, он вычисляет решения очень высокого качества. Его алгоритмы и подробные экспериментальные результаты представлены в нескольких исследовательских публикациях.
Гиперграф раздел с переменным весом блока
Kahypar обладает поддержкой веса переменных блоков. Если вариант командной строки --use-individual-part-weights=true используется, разделятель пытается разделить гиперграф, так что каждый блок VX имеет вес в большинстве BX, где BX может быть указан для каждого блока индивидуально, используя параметр командной строки --part-weights= B1 B2 B3 ... Bk-1 . Поскольку структура еще не поддерживает идеально сбалансированную распределение, верхние границы должны быть немного больше, чем общий вес всех вершин гиперграфа. Обратите внимание, что эта функция все еще экспериментальна.
Гиперграф раздел с фиксированными вершинами
Гиперграф раздел с фиксированными вершинами - это изменение стандартного разделения гиперграфа. В этой проблеме существует дополнительное ограничение на назначение блоков некоторых вершин, то есть некоторые вершины предварительно подписаны на конкретные блоки перед разделением с условием, которое после разбивания оставшихся «свободных» вершин все еще находятся в блоке, которые им было назначено. Параметр командной строки --fixed / -f может использоваться для указания файла исправления в формате файла Fix Hmetis. Для гиперграфа с V вершинами файл Fix состоит из V -линий - по одному для каждой вершины. Я либо содержит -1 что указывает на то, что вершина может свободно перемещаться, либо <part id> чтобы указать, что эта вершина должна быть предварительно согласованной, чтобы заблокировать <part id> . Обратите внимание, что идентификаторы части начинаются с 0.
Kahypar в настоящее время поддерживает три различных политика сокращения для разделения с фиксированными вершинами:
free_vertex_only позволяет все сокращения, в которых партнер с сокращением представляет собой свободную вершину, то есть, она допускает сокращения пар вершины, где либо обе вершины свободны, либо одна вершина фиксирован, а другая вершина - бесплатная.fixed_vertex_allowed дополнительно допускает сокращения двух фиксированных вершин, при условии, что оба предварительно подписаны на один и тот же блок. Основываясь на предварительных экспериментах, в настоящее время это политика по умолчанию.equivalent_vertices позволяет только сокращать пары вершин, которые состоят из двух свободных вершин или двух фиксированных вершин, назначенных до одного и того же блока.Эволюционная структура (Kahypar-e)
Kahypar-E усиливает Kahypar с эволюционной структурой, как описано в нашей публикации Gecco'18. Учитывая довольно большое количество времени работы, этот многоуровневый алгоритм работает лучше, чем повторяющиеся выполнения неволюционных конфигураций Kahypar, Hmetis и Patoh. Параметр командной строки --time-limit=xxx можно использовать для установки максимального времени выполнения (в секундах). Параметр --partition-evolutionary=true включает эволюционное разделение.
Улучшение существующих разделов
Kahypar использует прямые V-циклы, чтобы попытаться улучшить существующий раздел, указанный через параметр --part-file=</path/to/file> . Максимальное количество V-циклов можно контролировать с помощью параметра --vcycles= .
Разделение направленных ациклических гиперграфов
Хотя код еще не был объединен в основной репозиторий, существует вилка, которая поддерживает ациклическое распределение гиперграфа. Более подробную информацию можно найти в соответствующей публикации конференции.
Мы используем профили производительности для сравнения кахипара с другими алгоритмами разделения с точки зрения качества решения. Для набора
Алгоритмы и набор эталона
содержащий
случаи, соотношение производительности
Относится к сокращению, рассчитанному по разделянику P, например, I с наименьшим минимальным разрезом всех алгоритмов, т.е.
Полем
Профиль производительности
Алгоритм P затем определяется функцией
Полем
Для оптимизации подключения коэффициенты производительности вычисляются с использованием значений подключения
вместо значений среза. Ценность
соответствует доли экземпляров, для которых разместитель P вычислил лучшее решение, в то время как
вероятность того, что соотношение производительности
находится в пределах
наилучшего возможного соотношения. Обратите внимание, что, поскольку профили производительности позволяют оценить производительность каждого алгоритма относительно лучшего алгоритма,
Значения не могут использоваться для ранжирования алгоритмов (т.е., чтобы определить, какой алгоритм является вторым лучшим и т. Д.).
В нашем экспериментальном анализе графики профиля производительности основаны на лучших решениях (то есть, минимальная связь/сокращение) каждый алгоритм, обнаруженный для каждого экземпляра. Кроме того, мы выбираем параметры
для всех p , я и
так что соотношение производительности
Если и только тогда, когда алгоритм р вычислил необываемое решение, например, I , и
Если и только если алгоритм не может вычислять решение, например, I в течение определенного срока. В наших графиках профиля производительности коэффициенты производительности, соответствующие необоснованным решениям, будут показаны на X -тике на оси x , в то время как экземпляры, которые не могут быть разделены в течение срока, неявно показаны линией, которая выходит из графика ниже.
Полем Поскольку коэффициенты производительности в значительной степени правой кнопкой
отражать различные области интереса. Первый сегмент подчеркивает небольшие значения (
), в то время как второй сегмент содержит результаты для всех экземпляров, которые до фактора
Хуже всего наилучшего соотношения. Последний сегмент содержит все оставшиеся соотношения, то есть, случаи, для которых некоторые алгоритмы выполнялись значительно хуже, чем лучший алгоритм, случаи, для которых алгоритмы давали необоснованные решения, и случаи, которые не могли быть разделены в течение определенного срока.
In the figures, we compare KaHyPar with PaToH in quality (PaToH-Q) and default mode (PaToH-D), the k-way (hMETIS-K) and the recursive bisection variant (hMETIS-R) of hMETIS 2.0 (p1), Zoltan using algebraic distance-based coarsening (Zoltan-AlgD), Mondriaan v.4.2.1 and the recently published HYPE алгоритм.
Качество решения 
Время работы 
Мы предоставляем дополнительные ресурсы для всех публикаций, связанных с Kahypar:
| kkahypar-sea20 / Rkahypar-Sea20 | Море20 | Бумага | Трэнд | Слайды | Экспериментальные результаты |
|---|---|---|---|---|---|
| Kkahypar / РКАХИПАР | - | Диссертация | - | Слайды | Экспериментальные результаты |
| Кахипар-мф / Kahypar-R-MF | Sea'18 / JEA'19 | Морская бумага / JEA Paper | Трэнд | Слайды | Экспериментальные результаты: Море / JEA |
| Kahypar-e (evohgp) | Gecco'18 | Бумага | Трэнд | Слайды | Экспериментальные результаты |
| Кахипар-Ка | SEA'17 | Бумага | - | Слайды | Экспериментальные результаты |
| Кахипар-К | Alenex'17 | Бумага | - | Слайды | Экспериментальные результаты |
| Кахипар-р | Alenex'16 | Бумага | Трэнд | Слайды | Экспериментальные результаты |
Требуется рамка разделения Hypergraph Karlsruhe.
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
Запустить: сделать: make
Тесты автоматически выполняются во время построения проекта. Кроме того, представлена test цель. Тестовые тесты на сквозные интеграции могут быть запущены с: make integration_tests . Профилирование может быть включено через флаг cmake: -DENABLE_PROFILE=ON .
Автономная программа может быть построена через make KaHyPar . Бинарник будет расположен по адресу: build/kahypar/application/ .
Kahypar имеет несколько параметров конфигурации. Для списка всех возможных параметров, пожалуйста, запустите: ./KaHyPar --help . Мы используем формат Hmetis для входного файла гиперграфа, а также выходной файл раздела.
Параметр командной строки --quiet=1 может использоваться для подавления всех выходных данных. Если вы используете библиотечные интерфейсы, добавление quiet=1 в соответствующий файл конфигурации .INI имеет тот же эффект.
Мы предоставляем две конфигурации фреймворта по умолчанию - одна для рекурсивного двухпоставления ( r kahypar) и одну для прямых перегородок K -way ( 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 , оптимизируя сетевой целевой запуск Cut :
./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
Чтобы запустить мемотический алгоритм 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 Journal и в диссертации Себастьяна Шлага. Эти конфигурации расположены в папке config/old_reference_configs. Чтобы использовать эти конфигурации, вы должны оформить выпуск Kahypar 1.1.0, так как какой -то старый код был удален в наиболее текущем выпуске.
Чтобы запустить kahypar-mf (с использованием уточнения на основе потока ) оптимизации объектива (подключение-1) с использованием прямого k-way mode run:
./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 (с использованием уточнения на основе потока ) оптимизации объектива Cut-Net с использованием прямого k-way mode run:
./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 оптимизацию объектива (подключение-1) с использованием прямого k-way-режима.
./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-way-режима.
./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-пути (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
Чтобы запустить Kahypar в рекурсивном режиме пополам (Kahypar-R) Оптимизация целевого прогона Cut-Net:
./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
Все предустановленные параметры могут быть перезаписаны, используя соответствующие параметры командной строки.
При создании гиперграфа Kahypar подтверждает, что ввод фактически является правильным гиперграфом, в противном случае печатает ошибку и прерывание. Это относится к входным файлам HGR, интерфейсу C и интерфейсу Python. Стоимость выполнения проверки должна быть незначительной практически во всех случаях. Тем не менее, входная проверка также может быть отключена с помощью флага Cmake -DKAHYPAR_INPUT_VALIDATION=OFF .
Кроме того, предупреждения напечатаны для не фатальных проблем (например, гипередж с дублирующими штифтами). Чтобы рассматривать не лечебные проблемы как жесткие ошибки, используйте флаг cmake -DKAHYPAR_INPUT_VALIDATION_PROMOTE_WARNINGS_TO_ERRORS=ON .
Мы предоставляем простой интерфейс 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++ Run:
g++ -std=c++14 -DNDEBUG -O3 -I/usr/local/include -L/usr/local/lib program.cc -o program -lkahypar ПРИМЕЧАНИЕ. Если Boost не найден во время связывания, вам может потребоваться добавить -L/path/to/boost/lib -I/path/to/boost/include -lboost_program_options в команду.
Для удаления библиотеки из вашей системы используйте предоставленную цель удаления:
make uninstall-kahyparЧтобы скомпилировать интерфейс Python, сделайте следующее:
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 pythonmakecp 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
Мы также предоставляем предварительную версию в виде A, которая может быть установлена через:
python3 -m pip install --index-url https://pypi.org/simple/ --no-deps kahypar
Благодаря Джордану Джалвину (@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 " ))Роман Уоллон создал интерфейс Java для Кахипара. Пожалуйста, обратитесь к Readme для подробного описания того, как построить и использовать интерфейс.
Мы рекомендуем вам сообщить о любых проблемах с Kahypar через систему отслеживания выпуска GitHub проекта.
Kahypar - это бесплатное программное обеспечение, предоставляемое в рамках общей публичной лицензии GNU (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, не стесняйтесь обращаться ко мне или создавать проблему в системе отслеживания вопросов.