Многостороннее разделение номеров
В информатике — многостороннее разделение чисел это проблема разделения мультимножества чисел на фиксированное количество подмножеств так, чтобы суммы подмножеств были как можно более похожими. Впервые он был представлен Рональдом Грэмом в 1969 году в контексте проблемы планирования идентичных машин . [ 1 ] : сек.5 Задача параметризуется положительным целым числом k и называется k -сторонним числовым разделением . [ 2 ] Входными данными для задачи является мультимножество S чисел (обычно целых), сумма которых равна k*T .
Соответствующая проблема принятия решения состоит в том, чтобы решить, можно ли S разделить на k подмножеств так, чтобы сумма каждого подмножества была в точности T . Существует также задача оптимизации : найти разбиение S на k подмножеств так, чтобы k сумм были «насколько это возможно». Точную цель оптимизации можно определить несколькими способами:
- Минимизируйте разницу между наибольшей и наименьшей суммами. Эта цель часто встречается в статьях о многостороннем разделении чисел, а также в статьях, посвященных физическим приложениям. [ 2 ]
- Минимизируйте наибольшую сумму. Эта цель эквивалентна одной цели для планирования идентичных машин . Имеется k одинаковых процессоров, и каждое число в S представляет время, необходимое для выполнения задания одного процессора. Цель состоит в том, чтобы распределить задания между процессорами так, чтобы время выполнения (время завершения последнего задания) было минимальным.
- Максимизируйте наименьшую сумму. Эта цель соответствует применению справедливого распределения статей , в частности максимальной доли . Это также проявляется в проблемах манипулирования голосованием. [ 3 ] и в определении последовательности действий по техническому обслуживанию модульных газотурбинных авиационных двигателей. [ 4 ] [ 5 ] Предположим, имеется несколько k двигателей, которые необходимо проработать как можно дольше. Для работы двигателя необходима определенная важная часть. Имеется набор S деталей, каждая из которых имеет разный срок службы. Цель состоит в том, чтобы распределить детали по двигателям таким образом, чтобы кратчайший срок службы двигателя был как можно большим.
Эти три целевые функции эквивалентны, когда k = 2, но все они различны, когда k ≥3. [ 6 ] [ 7 ]
Все эти задачи NP-сложны , [ 8 ] но существуют различные алгоритмы, которые во многих случаях эффективно решают эту проблему.
Вот некоторые тесно связанные проблемы:
- Проблема разделения — частный случай многостороннего разделения чисел, при котором количество подмножеств равно 2.
- Задача с тремя разбиениями — другая, более сложная задача, в которой количество подмножеств не считается фиксированным параметром, а определяется входными данными (количество наборов — это количество целых чисел, деленное на 3).
- Проблема упаковки контейнеров - двойственная задача, в которой общая сумма в каждом подмножестве ограничена, но k является гибким; цель состоит в том, чтобы найти раздел с наименьшим возможным k . Цели оптимизации тесно связаны между собой: оптимальное количество ячеек размера d не превышает k , если оптимальный размер наибольшего подмножества в k -разделе не превышает d . [ 9 ]
- Проблема планирования единых машин — более общая проблема, в которой разные процессоры могут иметь разную скорость.
Алгоритмы аппроксимации
[ редактировать ]Существуют различные алгоритмы, позволяющие получить гарантированное приближение оптимального решения за полиномиальное время. Для разных целей существуют разные алгоритмы аппроксимации.
Минимизация наибольшей суммы
[ редактировать ]Коэффициент аппроксимации в этом контексте — это наибольшая сумма в решении, возвращаемом алгоритмом, деленная на наибольшую сумму в оптимальном решении (коэффициент больше 1). Большинство приведенных ниже алгоритмов были разработаны для планирования идентичных машин .
- Жадное числовое разделение (также называемое наибольшим временем обработки в литературе по планированию) циклически перебирает числа и помещает в набор каждое число, текущая сумма которого наименьшая. Если числа не отсортированы, то время выполнения и коэффициент аппроксимации не более . Сортировка чисел увеличивает время выполнения до и улучшает коэффициент аппроксимации до 7/6 при k =2, и в общем. Если числа распределены равномерно в [0,1], то коэффициент аппроксимации не превосходит почти наверняка и в ожидании.
- Метод наибольшего дифференцирования (также называемый алгоритмом Кармаркара-Карпа ) сортирует числа в порядке убывания и неоднократно заменяет числа их разностями. Сложность выполнения . В худшем случае его коэффициент аппроксимации аналогичен – не более 7/6 при k =2 и не более в общем. Однако в среднем случае он работает гораздо лучше, чем жадный алгоритм: при k =2, когда числа распределены равномерно на [0,1], его коэффициент аппроксимации не превышает в ожидании. Он также лучше работает в симуляционных экспериментах.
- Алгоритм Multifit использует бинарный поиск в сочетании с алгоритмом упаковки бинов . В худшем случае его продолжительность составляет не более 8/7 для k =2 и не более 13/11 вообще.
несколько схем аппроксимации с полиномиальным временем Было разработано (PTAS):
- Грэм [ 1 ] : сек.6 представил следующий алгоритм. Для любого целого числа r>0 выберите r самых больших чисел в S и оптимально разбейте их. Затем распределите оставшиеся числа произвольно. Этот алгоритм имеет коэффициент аппроксимации и это происходит во времени .
- Сахни [ 10 ] представил PTAS, который достигает (1+ε)OPT во времени . Это FPTAS, если k фиксировано. Для k =2 время выполнения улучшается до . Алгоритм использует технику, называемую интервальным разделением .
- Хохбаум и Шмойс [ 9 ] представил следующие алгоритмы, которые работают, даже если k является частью входных данных.
- Для любого r >0 алгоритм с коэффициентом аппроксимации не более (6/5+2 − р ) во времени .
- Для любого r >0 алгоритм с коэффициентом аппроксимации не более (7/6+2 − р ) во времени .
- Для любого ε >0 алгоритм со степенью аппроксимации не более (1+ε) за время . Это ПТАС .
Максимизация наименьшей суммы
[ редактировать ]Коэффициент аппроксимации в этом контексте — это наименьшая сумма в решении, возвращаемом алгоритмом, деленная на наименьшую сумму в оптимальном решении (коэффициент меньше 1).
- Для жадного разделения чисел , если числа не отсортированы, то коэффициент аппроксимации в худшем случае равен 1/ k . [ 11 ] Сортировка чисел увеличивает коэффициент аппроксимации до 5/6, когда k = 2, и в общем и то тесно. [ 12 ]
- Фёгингер [ 11 ] представил PTAS, который достигает коэффициента аппроксимации вовремя , где огромная константа, экспоненциальная относительно требуемого коэффициента аппроксимации ε. Алгоритм использует алгоритм Ленстры для целочисленного линейного программирования .
- FPTAS Сахни [ 10 ] работает и для этой цели.
Максимизация суммы произведений
[ редактировать ]Слух [ 13 ] изучает проблему, цель которой состоит в том, чтобы максимизировать сумму по каждому множеству i в 1,..., k , произведения чисел в множестве i . В более общем варианте каждый набор i может иметь вес w i , и цель состоит в том, чтобы максимизировать взвешенную сумму произведений. Эта задача имеет точное решение, работающее за время O( n 2 ).
PTAS для общих целевых функций
[ редактировать ]Пусть C i (для i между 1 и k ) будет суммой подмножества i в данном разделе. Вместо минимизации целевой функции max( C i ) можно минимизировать целевую функцию max( f ( C i )), где f — любая фиксированная функция. Аналогичным образом можно минимизировать сумму целевой функции ( f ( C i )), или максимизировать min (f ( C i )), или максимизировать сумму ( f ( C i )). Алон, Азар, Вегингер и Ядид [ 14 ] представил общие PTAS (обобщающие PTAS Санхи, Хохбаума, Шмойса и Вёгингера) для этих четырех задач. Их алгоритм работает для любого f, удовлетворяющего следующим двум условиям:
- Сильное условие непрерывности, называемое условием F* : для любого ε>0 существует δ>0 такое, что, если | y - x |<δ x , то |f( y )-f( x )|<ε f ( x ).
- Выпуклость (для задач минимизации) или вогнутость (для задач максимизации).
Время работы их PTAS-ов линейно по n (количеству входов), но экспоненциально по точности аппроксимации. PTAS для минимизации sum( f ( C i )) основан на некоторых комбинаторных наблюдениях:
- Пусть L := средняя сумма в одном подмножестве (1/ k сумма всех входов). Если некоторые входные данные x не меньше L , то существует оптимальное разбиение, в котором одна часть содержит только x . Это следует из выпуклости f . Следовательно, входные данные могут быть предварительно обработаны путем присвоения каждому такому входному набору уникального подмножества. После этой предварительной обработки можно предположить, что все входные данные меньше L .
- Существует оптимальное разбиение, в котором суммы всех подмножеств находятся строго между L /2 и 2 L ( L /2 < C i < 2 L для всех i из 1,..., k ). В частности, разбиение, минимизирующее сумму квадратов C i 2 среди всех оптимальных разбиений удовлетворяет этим неравенствам.
PTAS использует метод округления входных данных . Учитывая входную последовательность S = ( v 1 ,..., v n ) и положительное целое число d , округленная последовательность S # ( d ) определяется следующим образом:
- Для любого v j > L/d последовательность S # ( d ) содержит входные данные v j # что представляет собой v j, округленное до следующего целого числа, кратного L / d 2 . Обратите внимание, что v j ≤ v j # < v j + L / d 2 , и Л/д 2 < v j / d , поэтому v j # < ( d +1) v j / d.
- Кроме того, последовательность S # ( d ) содержит некоторые входные данные, равные L/d . Количество этих входов определяется таким образом, чтобы сумма всех этих новых входов равнялась сумме всех входов в S. # ( d ), которые не превышают L/d , округленные до следующего целого числа, кратного L/d (например, если сумма всех «коротких» входов в S равна 51,3 L/d , то 52 новых L/d входа добавляются к S # ( д )).
В С # ( d ), все входные данные являются целыми кратными L / d 2 . Более того, два приведенных выше наблюдения справедливы для S # ( г ) тоже:
- Пусть L # быть средней суммой в одном подмножестве (1/ k сумма всех входов в S # ( д )). По конструкции L # как минимум Л. это Поскольку L само по себе является целым кратным L / d 2 , округление входных данных, меньших, чем L, не может сделать их больше, чем L . Следовательно, все входы в S # ( d ) меньше L и, следовательно, меньше L # .
- Существует оптимальное разбиение S # ( d ), в котором все суммы подмножеств находятся строго между L # /2 и 2 л # . Следовательно, все подмножества содержат не более 2 d элементов (поскольку все входы в S # ( d ) не менее L / d ).
На основании этих наблюдений все входные данные в S # ( d ) имеют вид hL / d 2 , где h — целое число в диапазоне . Следовательно, входные данные можно представить как целочисленный вектор. , где это количество гл / д 2 входы в S # ( д ). При этом каждое подмножество можно представить в виде целочисленного вектора , где это количество гл / д 2 входы в подмножестве. Тогда сумма подмножества равна . Обозначим через , набор векторов с . Поскольку сумма элементов такого вектора не превосходит 2 d , общее количество этих элементов меньше , так .
Существует два разных способа найти оптимальное решение задачи S. # ( д ). Один из способов использует динамическое программирование: время выполнения представляет собой полином, показатель степени которого зависит от d . Другой способ использует алгоритм Ленстры для целочисленного линейного программирования.
Решение для динамического программирования
[ редактировать ]Определять как оптимальное (минимальное) значение суммы целевой функции ( f ( C i )), когда входной вектор равен и его необходимо разделить на k подмножеств, среди всех разделов, в которых все суммы подмножеств находятся строго между L # /2 и 2 л # .
Эту проблему можно решить с помощью следующего рекуррентного соотношения :
- - поскольку их объективная сумма пуста.
- если - поскольку все входы должны быть отнесены к одному подмножеству, его сумма равна .
- в противном случае – поскольку мы не рассматриваем оптимальные решения вне этого диапазона.
- для всех : проверяем все варианты k -го подмножества, и объединяем его с оптимальным разбиением остатка на k -1 подмножества.
Для каждого k и n рекуррентное соотношение требует проверки не более векторы. векторов n не превышает Общее количество проверяемых , где n — исходное количество входов. Следовательно, время выполнения алгоритма динамического программирования равно . Оно линейно по n для любого фиксированного d .
Решение для целочисленного линейного программирования
[ редактировать ]Для каждого вектора t в T введите переменную x t, обозначающую количество подмножеств с этой конфигурацией. Минимизация суммы ( f ( C i )) может быть достигнута путем решения следующей ILP:
- Свернуть
- при условии (общее количество подмножеств)
- и (общий вектор входов)
- и .
Число переменных не более , а количество уравнений - обе константы не зависят от n , k . Следовательно, алгоритм Ленстры можно использовать . Время его выполнения экспоненциально в размерности ( ), но полиномиально в двоичном представлении коэффициентов, находящихся в O(log( n )). Построение самой ILP занимает время O( n ).
Преобразование решения из округленного в исходный экземпляр
[ редактировать ]Следующие леммы связывают разбиения округленного экземпляра S # ( d ) и исходный экземпляр S .
- Для каждого раздела S с суммами C i существует раздел S # ( d ) с суммами C i # , где .
- Для каждого раздела S # ( d ) с суммами C i # , существует разбиение S с суммами C i , где , и его можно найти за время O( n ).
При заданной точности аппроксимации ε>0 пусть δ>0 — константа, соответствующая ε/3, существование которой гарантируется условием F*. Позволять . Можно показать, что преобразованное разбиение S имеет общую стоимость не более , поэтому коэффициент аппроксимации равен 1+ε.
Отсутствие PTAS для некоторых целевых функций.
[ редактировать ]В отличие от приведенного выше результата, если мы возьмем f( x ) = 2 х , или f( x )=( x -1) 2 , то PTAS для минимизации sum( f ( C i )) не существует, если P=NP . [ 14 ] : Раздел 4 Обратите внимание, что эти f( x ) выпуклы, но они не удовлетворяют условию F*, приведенному выше. Доказательство основано на задаче о разделении .
Точные алгоритмы
[ редактировать ]Существуют точные алгоритмы , которые всегда находят оптимальный раздел. Поскольку задача NP-сложна, такие алгоритмы в целом могут потребовать экспоненциального времени, но в некоторых случаях их можно практически использовать.
- Псевдополиномиальное разбиение числа по времени занимает O ( n ( k − 1) m к - 1 ) память, где m — наибольшее число во входных данных. Это практично только тогда , когда k =2 или когда k =3 и входные данные представляют собой небольшие целые числа. [ 15 ]
- Полный жадный алгоритм (CGA) учитывает все разделы путем построения k - арного дерева . Каждый уровень в дереве соответствует входному числу, где корень соответствует наибольшему числу, уровень ниже — следующему по величине числу и т. д. Каждая из k ветвей соответствует отдельному набору, в который можно поместить текущее число. . Обход дерева в порядке глубины требует всего O( n ) пространства, но может занять O( k н ) время. Время выполнения можно улучшить, используя жадную эвристику: на каждом уровне сначала разрабатывайте ветвь, в которой текущее число помещается в набор с наименьшей суммой. Этот алгоритм сначала находит решение, найденное путем жадного разделения чисел , а затем переходит к поиску лучших решений.
- Полный алгоритм Кармаркара-Карпа (CKK) учитывает все разделы, строя дерево степени . Каждому уровню соответствует пара k -кортежей, и каждый из ветвей соответствует другому способу объединения этих k -кортежей. Этот алгоритм сначала находит решение, найденное методом наибольшей разности , а затем переходит к поиску лучших решений. Для k =2 и k =3 CKK работает существенно быстрее, чем CGA в случайных экземплярах. Преимущество CKK перед CGA в последнем случае гораздо больше (когда существует равный раздел) и может составлять несколько порядков. На практике при k = 2 задачи произвольного размера могут быть решены с помощью CKK, если числа имеют не более 12 значащих цифр s; при k =3 не более 6 значащих цифр. [ 16 ] CKK также может работать как алгоритм в любое время : сначала он находит решение KK, а затем, по мере того, как позволяет время, находит все более лучшие решения (возможно, для достижения оптимальности требуется экспоненциальное время в худших случаях). [ 17 ] При k ≥ 4 CKK становится намного медленнее, а CGA работает лучше.
- Корф, Шрайбер и Моффитт представили гибридные алгоритмы, сочетающие CKK, CGA и другие методы из задачи суммы подмножества и задачи упаковки контейнеров для достижения еще большей производительности. Их журнальная статья за 2018 год. [ 18 ] суммирует работы из нескольких предыдущих документов конференции:
- Рекурсивное разделение чисел (RNP) [ 15 ] использует CKK для k = 2, но для k > 2 он рекурсивно разбивает S на подмножества и разбивает k пополам.
- Гибридное рекурсивное разделение чисел (HRNP). [ 19 ]
- Улучшено заполнение корзины. [ 20 ]
- Улучшенные стратегии поиска. [ 21 ]
- Алгоритм нескольких машин. [ 22 ]
- Кэшированное итеративное ослабление (CIW). [ 23 ]
- Последовательное разбиение . [ 24 ]
Сокращение до упаковки в мусорные контейнеры
[ редактировать ]Проблема упаковки мусорных баков имеет множество быстрых решений. Решатель BP можно использовать для поиска оптимального разделения чисел. [ 25 ] Идея состоит в том, чтобы использовать двоичный поиск для поиска оптимального периода обработки. Чтобы инициализировать бинарный поиск, нам нужна нижняя и верхняя границы:
- Некоторыми нижними границами интервала обработки являются: (sum S )/ k — среднее значение на подмножество, s 1 — наибольшее число в S и s k + s k+1 — размер интервала в оптимальном разделе, состоящем только из самые большие k +1 чисел.
- Некоторых верхних границ можно достичь, применяя эвристические алгоритмы, такие как жадный алгоритм или KK.
Учитывая нижнюю и верхнюю границы, запустите решатель BP со средним размером ячейки := (нижний+верхний)/2.
- Если результат содержит более k интервалов, то оптимальный интервал обработки должен быть больше: установите меньшее значение на среднее и повторите.
- Если результат содержит не более k интервалов, то оптимальный интервал обработки может быть меньше, установите более высокое значение на среднее и повторите.
Варианты
[ редактировать ]В задаче разделения сбалансированных чисел существуют ограничения на количество элементов, которые можно отнести к каждому подмножеству (они называются ограничениями мощности ).
Другой вариант — разбиение многомерных чисел . [ 26 ]
Приложения
[ редактировать ]Одним из применений проблемы разделения является манипулирование выборами . Предположим, есть три кандидата (A, B и C). Единственный кандидат должен быть избран с использованием правила вето, т. е. каждый избиратель накладывает вето на одного кандидата, и побеждает кандидат с наименьшим количеством вето. Если коалиция хочет обеспечить избрание C, ей следует разделить свои вето между A и B так, чтобы максимизировать наименьшее количество вето, которое получит каждый из них. Если голоса взвешены, то проблему можно свести к проблеме разделения и, таким образом, ее можно эффективно решить с помощью CKK. При k =2 то же самое справедливо и для любого другого правила голосования, основанного на подсчете очков. Однако для k > 2 и других правил голосования требуются другие методы. [ 3 ]
Реализации
[ редактировать ]- Python: пакет prtpy содержит код для различных алгоритмов разделения чисел и упаковки ячеек.
Ссылки
[ редактировать ]- ^ Перейти обратно: а б Грэм, Рон Л. (1 марта 1969 г.). «Границы аномалий синхронизации многопроцессорной обработки» . SIAM Journal по прикладной математике . 17 (2): 416–429. дои : 10.1137/0117039 . ISSN 0036-1399 .
- ^ Перейти обратно: а б Мертенс, Стефан (2006), «Самая простая сложная задача: разделение чисел» , в Allon Percus; Габриэль Истрате; Кристофер Мур (ред.), Вычислительная сложность и статистическая физика , Oxford University Press, США, стр. 125, arXiv : cond-mat/0310317 , Bibcode : 2003cond.mat.10317M , ISBN 978-0-19-517737-4
- ^ Перейти обратно: а б Уолш, Тоби (11 июля 2009 г.). «Где действительно сложные проблемы манипулирования? Фазовый переход при манипулировании правилом вето» (PDF) . Написано в Пасадене, Калифорния, США. Материалы двадцать первой международной совместной конференции по искусственному интеллекту . Сан-Франциско, Калифорния, США: Morgan Kaufmann Publishers Inc., стр. 324–329. Архивировано (PDF) из оригинала 10 июля 2020 г. Проверено 05 октября 2021 г.
- ^ Фризен, ДК; Дойермейер, БЛ (1 февраля 1981 г.). «Анализ жадных решений проблемы последовательности замены деталей» . Математика исследования операций . 6 (1): 74–87. дои : 10.1287/moor.6.1.74 . ISSN 0364-765X .
- ^ Дойермейер, Брайан Л.; Фризен, Дональд К.; Лэнгстон, Майкл А. (1 июня 1982 г.). «Планирование для максимизации минимального времени завершения работы процессора в многопроцессорной системе» . SIAM Journal по алгебраическим и дискретным методам . 3 (2): 190–196. дои : 10.1137/0603019 . ISSN 0196-5212 .
- ^ Корф, Ричард Эрл (25 августа 2010 г.). «Целевые функции для многостороннего разделения чисел» . Третий ежегодный симпозиум по комбинаторному поиску . 1 : 71–72. дои : 10.1609/socs.v1i1.18172 . S2CID 45875088 .
- ^ Уолтер, Рико (01 января 2013 г.). «Сравнение минимального времени завершения двух эвристик планирования с самым длинным первым» . Центральноевропейский журнал исследования операций . 21 (1): 125–139. дои : 10.1007/s10100-011-0217-4 . ISSN 1613-9178 . S2CID 17222989 .
- ^ Гэри, Майкл Р.; Джонсон, Дэвид С. (1979). Компьютеры и трудноразрешимые проблемы: Руководство по теории NP-полноты . WH Фриман и компания. п. 238 . ISBN 978-0716710448 .
- ^ Перейти обратно: а б Хохбаум, Дорит С.; Шмойс, Дэвид Б. (1 января 1987 г.). «Использование алгоритмов двойного приближения для задач планирования теоретических и практических результатов» . Журнал АКМ . 34 (1): 144–162. дои : 10.1145/7531.7535 . ISSN 0004-5411 . S2CID 9739129 .
- ^ Перейти обратно: а б Сахни, Сартадж К. (1 января 1976 г.). «Алгоритмы планирования независимых задач» . Журнал АКМ . 23 (1): 116–127. дои : 10.1145/321921.321934 . ISSN 0004-5411 . S2CID 10956951 .
- ^ Перейти обратно: а б Вегингер, Герхард Дж. (1 мая 1997 г.). «Схема аппроксимации полиномиального времени для максимизации минимального времени завершения работы машины» . Письма об исследованиях операций . 20 (4): 149–154. дои : 10.1016/S0167-6377(96)00055-7 . ISSN 0167-6377 .
- ^ Чирик, Янош; Келлерер, Ганс; Вегингер, Герхард (1 июня 1992 г.). «Точная граница LPT для максимизации минимального времени завершения» . Письма об исследованиях операций . 11 (5): 281–287. дои : 10.1016/0167-6377(92)90004-М . ISSN 0167-6377 .
- ^ Джин, Кай (2017). «Оптимальное разделение, максимизирующее взвешенную сумму произведений» . В Сяо, Мингю; Розамонд, Фрэнсис (ред.). Границы в алгоритмике . Конспекты лекций по информатике. Том. 10336. Чам: Springer International Publishing. стр. 127–138. дои : 10.1007/978-3-319-59605-1_12 . ISBN 978-3-319-59605-1 .
- ^ Перейти обратно: а б Алон, Нога; Азар, Йоси; Вегингер, Герхард Дж.; Ядид, Таль (1998). «Аппроксимационные схемы планирования на параллельных машинах» . Журнал планирования . 1 (1): 55–66. doi : 10.1002/(SICI)1099-1425(199806)1:1<55::AID-JOS2>3.0.CO;2-J . ISSN 1099-1425 .
- ^ Перейти обратно: а б Корф, Ричард Э. (2009). Многостороннее разделение номеров (PDF) . ИДЖКАИ .
- ^ Корф, Ричард Э. (20 августа 1995 г.). «От приближенных к оптимальным решениям: пример разделения чисел» . Материалы 14-й Международной совместной конференции по искусственному интеллекту. Том 1 . IJCAI'95. Монреаль, Квебек, Канада: Morgan Kaufmann Publishers Inc.: 266–272. ISBN 978-1-55860-363-9 .
- ^ Корф, Ричард Э. (1 декабря 1998 г.). «Полный алгоритм разделения чисел в любое время» . Искусственный интеллект . 106 (2): 181–203. дои : 10.1016/S0004-3702(98)00086-1 . ISSN 0004-3702 .
- ^ Шрайбер, Итан Л.; Корф, Ричард Э.; Моффитт, Майкл Д. (25 июля 2018 г.). «Оптимальное многостороннее разделение номеров» . Журнал АКМ . 65 (4): 24:1–24:61. дои : 10.1145/3184400 . ISSN 0004-5411 . S2CID 63854223 .
- ^ Корф, Ричард Э. (16 июля 2011 г.). «Гибридный рекурсивный многосторонний алгоритм разделения чисел» . Материалы двадцать второй Международной совместной конференции по искусственному интеллекту - Том первый . IJCAI'11. Барселона, Каталония, Испания: AAAI Press: 591–596. ISBN 978-1-57735-513-7 .
- ^ Шрайбер, Итан Л.; Корф, Ричард Э. (3 августа 2013 г.). «Улучшенное заполнение контейнеров для оптимальной упаковки контейнеров и разделения номеров» (PDF) . Материалы двадцать третьей международной совместной конференции по искусственному интеллекту . IJCAI '13. Пекин, Китай: AAAI Press: 651–658. ISBN 978-1-57735-633-2 .
- ^ Моффитт, Майкл Д. (3 августа 2013 г.). «Стратегии поиска для оптимального многостороннего разделения чисел» (PDF) . Материалы двадцать третьей международной совместной конференции по искусственному интеллекту . IJCAI '13. Пекин, Китай: AAAI Press: 623–629. ISBN 978-1-57735-633-2 .
- ^ Корф, Ричард; Шрайбер, Итан (2 июня 2013 г.). «Оптимальное планирование небольшого количества одинаковых параллельных машин» . Материалы международной конференции по автоматизированному планированию и составлению графиков . 23 : 144–152. дои : 10.1609/icaps.v23i1.13544 . ISSN 2334-0843 . S2CID 12458816 .
- ^ Шрайбер, Итан Л.; Корф, Ричард Э. (27 июля 2014 г.). «Кэшированное итеративное ослабление для оптимального многостороннего разделения чисел» . Материалы конференции AAAI по искусственному интеллекту . АААИ'14. 28 . Квебек, Квебек, Канада: AAAI Press: 2738–2744. дои : 10.1609/aaai.v28i1.9122 . S2CID 8594071 .
- ^ Ричард Э. Корф, Итан Л. Шрайбер и Майкл Д. Моффит (2014). «Оптимальное последовательное многостороннее разделение номеров» (PDF) .
{{cite web}}
: CS1 maint: несколько имен: список авторов ( ссылка ) - ^ Шрайбер, Итан Л.; Корф, Ричард Э. (3 августа 2013 г.). «Улучшенное завершение контейнеров для оптимальной упаковки контейнеров и разделения номеров» . Материалы двадцать третьей международной совместной конференции по искусственному интеллекту . IJCAI '13. Пекин, Китай: AAAI Press: 651–658. ISBN 978-1-57735-633-2 .
- ^ Поп, Петрика К.; Матей, Оливиу (01 ноября 2013 г.). «Меметический алгоритмический подход к решению многомерной задачи многостороннего разделения чисел» . Прикладное математическое моделирование . 37 (22): 9191–9202. дои : 10.1016/j.apm.2013.03.075 . ISSN 0307-904X .