stringtranslate.com

Проблема с разделом

В теории чисел и информатике задача разбиения или разбиение чисел [ 1] — это задача определения, можно ли разбить заданное множество S положительных целых чисел на два подмножества S 1 и S 2 так, чтобы сумма чисел в S 1 была равна сумме чисел в S 2 . Хотя задача разбиения является NP-полной , существует решение динамического программирования за псевдополиномиальное время , и существуют эвристики, которые решают эту задачу во многих случаях, либо оптимально, либо приблизительно. По этой причине ее называют «самой легкой сложной задачей». [2] [3]

Существует оптимизационная версия задачи разбиения, которая заключается в разбиении мультимножества S на два подмножества S 1 , S 2 таким образом, чтобы разница между суммой элементов в S 1 и суммой элементов в S 2 была минимизирована. Оптимизационная версия является NP-трудной , но может быть эффективно решена на практике. [4]

Задача о разбиении является частным случаем двух связанных задач:

Однако это сильно отличается от задачи 3-разбиения : в этой задаче количество подмножеств заранее не фиксировано — оно должно быть | S |/3, где каждое подмножество должно иметь ровно 3 элемента. 3-разбиение намного сложнее, чем разбиение — у него нет алгоритма псевдополиномиального времени, если только P = NP . [5]

Примеры

При условии S = ​​{3,1,1,2,2,1} допустимым решением задачи разбиения являются два множества S 1 = {1,1,1,2} и S 2 = {2,3}. Оба множества в сумме дают 5, и они разбивают S . Обратите внимание, что это решение не является единственным. S 1 = {3,1,1} и S 2 = {2,2,1} — еще одно решение.

Не каждое мультимножество положительных целых чисел имеет разбиение на два подмножества с равной суммой. Примером такого множества является S = {2,5}.

Вычислительная сложность

Задача разбиения является NP-сложной. Это можно доказать путем сведения к задаче суммы подмножества . [6] Экземпляр SubsetSum состоит из множества S положительных целых чисел и целевой суммы T ; цель состоит в том, чтобы решить , существует ли подмножество S с суммой, равной точно  T.

Учитывая такой экземпляр, постройте экземпляр Partition, в котором входной набор содержит исходный набор плюс два элемента: z 1 и z 2 , где z 1  = sum(S) и z 2 = 2 T . Сумма этого входного набора равна sum( S ) +  z 1  +  z 2 = 2 sum( S ) + 2 T , поэтому целевая сумма для Partition равна sum( S ) +  T .

Алгоритмы аппроксимации

Как упоминалось выше, проблема разбиения является частным случаем многоходового разбиения и подмножества-суммы. Поэтому ее можно решить с помощью алгоритмов, разработанных для каждой из этих задач. Алгоритмы, разработанные для многоходового разбиения чисел, включают:

Точные алгоритмы

Существуют точные алгоритмы , которые всегда находят оптимальное разбиение. Поскольку задача NP-трудная, такие алгоритмы могут занять экспоненциальное время в общем случае, но могут быть практически применимы в определенных случаях. Алгоритмы, разработанные для многоканального разбиения чисел, включают:

Разработанные алгоритмы для подмножественной суммы включают:

Твердые случаи и фазовый переход

Наборы только с одним или без разделов, как правило, сложнее всего (или дороже всего) решать по сравнению с их размерами входных данных. Когда значения малы по сравнению с размером набора, идеальные разделы более вероятны. Известно, что проблема претерпевает « фазовый переход »; будучи вероятным для некоторых наборов и маловероятным для других. Если m — это количество бит, необходимых для выражения любого числа в наборе, а n — размер набора, то имеет тенденцию иметь много решений и имеет тенденцию иметь мало или не иметь решений. По мере того, как n и m становятся больше, вероятность идеального раздела стремится к 1 или 0 соответственно. Первоначально это утверждалось на основе эмпирических данных Джентом и Уолшем [10] , затем с использованием методов статистической физики Мертенсом [11] [12] и позже доказано Боргсом , Чейесом и Питтелем [13] .

Вероятностная версия

Связанная проблема, несколько похожая на парадокс дня рождения , заключается в определении размера входного набора таким образом, чтобы у нас была вероятность в половину того, что есть решение, при условии, что каждый элемент в наборе выбирается случайным образом с равномерным распределением между 1 и некоторым заданным значением. Решение этой проблемы может быть контринтуитивным, как парадокс дня рождения.

Варианты и обобщения

Равномощное разбиение — это вариант, в котором обе части должны иметь равное количество элементов, в дополнение к равной сумме. Этот вариант также NP-трудный. [5] : SP12  Доказательство . Дано стандартное разбиение с некоторыми n числами, постройте экземпляр равномощного разбиения, добавив n нулей. Очевидно, что новый экземпляр имеет равномощное разбиение с равной суммой, если и только если исходный экземпляр имеет равносуммовое разбиение. См. также Сбалансированное разбиение чисел .

Разбиение продукта — это проблема разбиения набора целых чисел на два набора с одинаковым произведением (а не одинаковой суммой). Эта задача сильно NP-трудна . [14]

Ковалёв и Пеш [15] обсуждают общий подход к доказательству NP-трудности задач типа разбиения.

Приложения

Одно из применений проблемы разделения — манипулирование выборами . Предположим, что есть три кандидата (A, B и C). Один кандидат должен быть избран с использованием правила голосования, основанного на подсчете очков, например, правила вето (каждый избиратель накладывает вето на одного кандидата, и кандидат с наименьшим количеством вето побеждает). Если коалиция хочет обеспечить избрание C, она должна разделить свои голоса между A и B так, чтобы максимизировать наименьшее количество вето, которое получает каждый из них. Если голоса взвешены, то проблему можно свести к проблеме разделения, и, таким образом, ее можно эффективно решить с помощью CKK. То же самое верно для любого другого правила голосования, основанного на подсчете очков. [16]

Примечания

  1. ^ ab Корф 1998.
  2. Хейс, Брайан (март–апрель 2002 г.), «Самая простая трудная проблема» (PDF) , American Scientist , т. 90, № 2, Sigma Xi, Научно-исследовательское общество, стр. 113–117, JSTOR  27857621
  3. ^ Мертенс 2006, стр. 125.
  4. ^ Корф, Ричард Э. (2009). Многоканальное разбиение чисел (PDF) . IJCAI .
  5. ^ ab Garey, Michael; Johnson, David (1979). Компьютеры и неразрешимость; Руководство по теории NP-полноты . стр. 96–105. ISBN 978-0-7167-1045-5.
  6. ^ Гудрич, Майкл. «Больше NP-полных и NP-трудных задач» (PDF) .
  7. ^ Ганс Келлерер; Ульрих Пферши; Дэвид Пизингер (2004). Проблемы с рюкзаком. Спрингер. п. 97. ИСБН 9783540402862.
  8. ^ Мартелло, Сильвано; Тот, Паоло (1990). "4 Subset-sum problem". Задачи о ранце: алгоритмы и компьютерные интерпретации . Wiley-Interscience. стр. 105–136. ISBN 978-0-471-92420-3. МР  1086874.
  9. ^ Корф, Ричард Э. (1995-08-20). «От приближенных к оптимальным решениям: пример разбиения чисел». Труды 14-й Международной объединенной конференции по искусственному интеллекту . IJCAI'95. Том 1. Монреаль, Квебек, Канада: Morgan Kaufmann Publishers. С. 266–272. ISBN 978-1-55860-363-9.
  10. ^ Гент и Уолш 1996.
  11. ^ Мертенс 1998.
  12. ^ Мертенс 2001, стр. 130.
  13. ^ Боргс, Чайес и Питтель 2001.
  14. ^ Ng, CT; Barketau, MS; Cheng, TCE; Kovalyov, Michael Y. (2010-12-01). ""Product Partition" и связанные с этим проблемы планирования и надежности систем: вычислительная сложность и аппроксимация". European Journal of Operational Research . 207 (2): 601–604. doi :10.1016/j.ejor.2010.05.034. ISSN  0377-2217.
  15. ^ Ковалёв, Михаил Ю.; Пеш, Эрвин (28.10.2010). «Общий подход к доказательству NP-трудности задач типа разбиения». Дискретная прикладная математика . 158 (17): 1908–1912. doi : 10.1016/j.dam.2010.08.001 . ISSN  0166-218X.
  16. ^ Уолш, Тоби (2009-07-11). «Где действительно сложные проблемы манипуляции? Фазовый переход в манипулировании правилом вето» (PDF) . Написано в Пасадене, Калифорния, США. Труды Двадцать первой международной совместной конференции по искусственному интеллекту . Сан-Франциско, Калифорния, США: Morgan Kaufmann Publishers Inc. стр. 324–329. Архивировано (PDF) из оригинала 2020-07-10 . Получено 2021-10-05 .

Ссылки