проблема с тремя разделами
Задача трёх разделов — это сильно NP-полная задача в информатике . Проблема состоит в том, чтобы решить, можно ли разбить данный мультимножество целых чисел на тройки, имеющие одинаковую сумму. Точнее:
- Входные данные: мультимножество S, содержащее n положительных целых элементов.
- Условия: S должно быть разделено на m троек, S 1 , S 2 , …, S m , где n = 3m . Эти тройки разбивают S в том смысле, что они не пересекаются и покрывают S . Целевое значение T вычисляется путем взятия суммы всех элементов в S , а затем деления на m .
- Выход: существует ли такое разбиение S , что для всех троек сумма элементов в каждой тройке равна T .
Проблема трех разбиений остается строго NP-полной при условии, что каждое целое число в S находится строго между T /4 и T /2.
Пример
[ редактировать ]- Набор можно разделить на четыре набора , сумма каждого из которых равна T = 90.
- Набор можно разделить на два набора сумма каждого из которых равна Т = 15.
- (каждое целое число в S находится строго между T /4 и T /2): , таким образом, m =2 и T =15. Возможен 3-раздельный .
- (каждое целое число в S находится строго между T /4 и T /2): , таким образом, m =2 и T =15. Решения нет.
Сильная NP-полнота
[ редактировать ]Задача о 3-х разбиениях остается NP-полной, даже если целые числа в S ограничены сверху полиномом от n . Другими словами, проблема остается NP-полной даже при представлении чисел во входном экземпляре в унарном виде. т. е. 3-раздел является NP-полным в сильном смысле или сильно NP-полным . Это свойство и трехраздельность в целом полезны во многих сокращениях, где числа естественным образом представляются в унарном виде.
3-раздел против раздела
[ редактировать ]Проблема с тремя разделами аналогична задаче разделения , в которой цель состоит в том, чтобы разделить S на два подмножества с одинаковой суммой, и многостороннему числовому разделению , в котором цель состоит в том, чтобы разделить S на k подмножеств с одинаковой суммой, где k является фиксированным параметром. В 3-разделении цель состоит в том, чтобы разделить S на m = n /3 подмножества, а не просто на фиксированное количество подмножеств, с одинаковой суммой. Раздел «проще», чем 3-раздел: в то время как 3-раздел является сильно NP-сложным , Раздел лишь слабо NP-сложный — он сложен только тогда, когда числа закодированы в неунарной системе и имеют экспоненциальное значение по n . Когда значения являются полиномиальными по n , разделение может быть решено за полиномиальное время с использованием алгоритма разделения чисел псевдополиномиального времени .
Варианты
[ редактировать ]В варианте с неограниченным вводом входные данные могут быть произвольными целыми числами; в варианте с ограниченным входом входы должны быть в ( T /4 , T /2). Ограниченная версия так же сложна, как и неограниченная: по заданному экземпляру S u неограниченного варианта создайте новый экземпляр ограниченной версии S r ≔ {s + 2 T | s ∈ S u }. Каждое решение Su , и соответствует решению S r , но с суммой 7 T вместо T каждый элемент S r находится в [2 T , 3 T ] , который содержится в ( T /4, 7 T / 2 ) .
В варианте с отдельным входом входные данные должны быть в ( T /4 , T /2 ), и, кроме того, все они должны быть различными целыми числами. Это также так же сложно, как и неограниченная версия. [1]
В варианте с неограниченным выходом выходных подмножеств m могут иметь произвольный размер — не обязательно 3 (но они все равно должны иметь одинаковую сумму T ). Вариант с ограниченным выходом можно свести к варианту с неограниченным выходом: учитывая экземпляр S r ограниченного варианта с 3 m элементами, сумма которых равна mT , построить новый экземпляр неограниченного варианта S u ≔ {s + 2 T | s ∈ S r }, с 3m элементами в сумме до 7mT и с целевой суммой 7 T . решение Sr естественно соответствует решению Su Каждое . И наоборот, в каждом решении , Su поскольку целевая сумма равна 7 T и каждый элемент находится в ( T /4, 7 T /2 ) , в каждом наборе должно быть ровно 3 элемента, поэтому это соответствует решению S r .
Задача ABC -разбиения (также называемая числовым трехмерным сопоставлением ) — это вариант, в котором вместо набора S с 3 m целыми числами есть три набора A , B , C с m целыми числами в каждом. Сумма чисел во всех наборах равна . Цель состоит в том, чтобы построить m троек, каждая из которых содержит один элемент из A, один из B и один из C, так что сумма каждой тройки равна T . [2]
Задача о 4-х разделах — это вариант, в котором S содержит n = 4 m целых чисел, сумма всех целых чисел равна , и цель состоит в том, чтобы разбить его на m четверок, все с суммой T . Можно предположить, что каждое целое число находится строго между T /5 и T /3. Аналогично, ABCD-парититон — это вариант 4-разбиения, в котором каждый имеет 4 входных набора, и каждый четверка должна содержать по одному элементу из каждого набора.
Доказательства
[ редактировать ]Гари и Джонсон (1975) первоначально доказали, что 3-разделение является NP-полным, путем сокращения трехмерного сопоставления . [3] Классическая ссылка Гари и Джонсона (1979) описывает доказательство NP-полноты, сводящееся от трехмерного сопоставления к 4-разбиению и 3-разделению. [4] Логически сокращение можно разбить на несколько этапов.
Приведение от 3d-сопоставления к ABCD-разбиению
[ редактировать ]Нам дан экземпляр E 3d-сочетания, содержащий несколько m троек {w i ,x j ,y k }, где вершинами являются w 1 ,...,w q и x 1 ,...,x q и y 1 ,...,y q . Мы создаем экземпляр ABCD-раздела с 4* m элементами следующим образом (где r := 32q):
- Для каждой тройки t = {w i ,x j ,y k } в E множество A содержит элемент u t = 10r 4 - НОК 3 -младший 2 -и.
- Для каждой тройки t = {w i ,x j ,y k } в E множество B содержит w it , C содержит x jt , а D содержит y kt . Таким образом, для каждого из w i , x j , y k может существовать множество соответствующих элементов в B, C, D — по одному на каждую тройку, в которой они появляются. Считаем один из этих элементов (обозначаемый цифрой «1») «настоящим», а остальные — «фиктивными». Размеры элементов следующие:
- ш я [1] = 10р 4 +ир; ш я [2..] = 11р 4 + и
- х j [1] = 10р 4 +младший 2 ; х j [2..] = 11р 4 +младший 2 .
- ук 10р [1] = 4 +кр 3 ; y k [2..] = 8r 4 +кр 3 .
- Сумма каждых трёх «настоящих» элементов или каждых трёх «фиктивных» элементов равна 30р. 4 +ир+младший 2 +кр 3 ; а если добавить тройной элемент, то сумма составит 40р 4 .
- Порог для экземпляра ABCD-раздела равен T=40r. 4 . Обратите внимание, что размер каждого элемента указан в (T/3,T/5).
Учитывая идеальное паросочетание в E , мы строим 4-разбиение ABCD следующим образом:
- Для каждой тройки t= { w i ,x j ,y k } в паросочетании мы строим 4-множество {u t , w i [1], x j [1], y k [1]}.
- Для каждой тройки, не входящей в паросочетание, строим аналогичное 4-множество, но с соответствующими фиктивными элементами.
В обоих случаях сумма 4-сета равна 40р. 4 по мере необходимости.
Учитывая разбиение ABCD, сумма каждой четверки равна 40r. 4 . Следовательно, члены с r, r 2 и р 3 должны сокращаться, и члены с r 4 должна получить сумму до 40р 4 ; поэтому набор из 4 должен содержать тройку и 3 совпадающих «настоящих» элемента или тройку и 3 совпадающих «фиктивных» элемента. Из троек с тремя совпадающими «реальными» элементами мы строим действительное совершенное паросочетание в E.
Обратите внимание, что в приведенном выше сокращении размер каждого элемента полиномиален по отношению к входному размеру; следовательно, это сокращение показывает, что ABCD-разбиение сильно NP-трудно.
Сокращение от ABCD-раздела до 4-х разделов
[ редактировать ]Учитывая экземпляр ABCD-раздела с m элементами в наборе, порогом T и суммой mT , мы создаем экземпляр 4-раздела с 4 m элементами:
- Для каждого элемента a в A соответствующий элемент имеет размер 16a+1;
- Для каждого элемента b в B соответствующий элемент имеет размер 16b+2;
- Для каждого элемента c в C соответствующий элемент имеет размер 16c+4;
- Для каждого элемента d в D соответствующий элемент имеет размер 16d+8.
В целом сумма составляет 16т+15м, а новый порог — 16т+15.
Каждому ABCD-разбиению естественным образом соответствует 4-разбиение. И наоборот, в каждом 4-разделе сумма по модулю 16 равна 15, и поэтому она должна содержать ровно один элемент с размером по модулю 16 = 1, 2, 4, 8; это соответствует ровно одному элементу из A, B, C, D, из которого мы можем построить ABCD-разбиение.
Используя аналогичное сокращение, ABC-раздел можно уменьшить до 3-х разделов.
Сокращение с 4-х разделов до 3-х разделов
[ редактировать ]Нам дан экземпляр A из 4-х разделов: 4 m целых чисел, a 1 ,...,a 4m , каждое из которых находится в диапазоне (T/3,T/5), сумма которых равна mT . Мы создаем экземпляр B 3-раздела следующим образом:
- Для каждого a i в A B содержит «регулярный» элемент w i = 4*(5T+a i )+1. Всего регулярных элементов 4 м , что в сумме дает 81мТ + 4м.
- Для каждой пары элементов a i ,a j в A, B содержит два «парных» элемента: u ij = 4*(6T - a i - a j )+2 и u ij ' = 4*(5T + a i + а j )+2. Всего имеется 4 м* (4 м -1) элементов спаривания, что в сумме дает (88mT+16m)*(4 м -1).
- Кроме того, B содержит 8m 2 -3м элементов «наполнителя» размером 20Т и общей суммой (8м 2 -3м)*20Т.
- Всего в B содержится 24m. 2 -3м = 3(8м 2 -m) элементов с суммой (64T+4)*(8m 2 -м).
- Порог для экземпляра с тремя разделами — 64T+4; обратите внимание, что размеры всех элементов в B указаны в (16T+1,32T+2).
Учитывая 4-разделение A , мы строим 3-разделение для B следующим образом:
- Для каждого 4-множества {a 1 ,a 2 ,a 3 ,a 4 } с суммой T построим 3-множество {w 1 ,w 2 ,u 12 } с суммой 4*(5T+a 1 +5T+ a 2 +6T-a 1 -a 2 )+1+1+2=64T+4 и еще один набор из 3 {w 3 ,w 4 ,u 12 '} с суммой 4*(5T+a 3 +5T+a 4 +5Т+а 1 +а 2 )+1+1+2=64Т+4. Эти наборы содержат все 4m правильных элементов и 2m совпадающих пар спаривающихся элементов.
- Из оставшихся элементов построим 3-множества {u ij ,u ij ',filler} с суммой 4*(6T-a i -a j +5T+a i +a j +5T)+2+2=64T+ 4.
И наоборот, при трехразделах B сумма каждого набора из трех кратна 4, поэтому она должна содержать либо два обычных элемента и один парный элемент, либо два парных элемента и один элемент-заполнитель:
- Если набор из трех пар содержит два парных элемента u ij , u kl и один элемент-заполнитель, то сумма двух парных элементов должна быть 44T+4 = 4*(5T+6T)+2+2, поэтому они должны иметь совпадение. размеры (a i +a j =ak + a l ). Следовательно, заменив по мере необходимости, мы можем предположить, что двумя элементами пары на самом деле являются u ij и u ij '. Следовательно, остальные элементы жеребьёвки также состоят из n совпадающих пар.
- Следовательно, оставшиеся 3-множества можно разбить на две группы: n 3-множеств, содержащие элементы u ij , и n 3-множества, содержащие элементы u ij '. В каждой совпадающей паре 3-наборов сумма двух элементов пары u ij +u ij ' равна 44T+4, поэтому сумма четырех обычных элементов равна 84T+4. Следовательно, из четырех регулярных элементов мы строим 4-множество в A с суммой T.
Приложения
[ редактировать ]NP-твердость 3-х разделов использовалась для доказательства прямоугольной упаковки NP-твердости , а также тетриса. [5] [6] и еще несколько головоломок. [7] и некоторые проблемы с планированием работы . [8]
Ссылки
[ редактировать ]- ^ Хьюлетт, Хизер; Уилл, Тодд Г.; Вегингер, Герхард Дж. (01 сентября 2008 г.). «Мультиграфные реализации последовательностей степеней: максимизация проста, минимизация сложна» . Письма об исследованиях операций . 36 (5): 594–596. дои : 10.1016/j.orl.2008.05.004 . ISSN 0167-6377 .
- ^ Демейн, Эрик (2015). «MIT OpenCourseWare — повышенная жесткость, 2–3 раздела I» . Ютуб . Архивировано из оригинала 14 декабря 2021 г.
- ^ Гэри, Майкл Р. и Дэвид С. Джонсон (1975). «Результаты сложности многопроцессорного планирования в условиях ограниченности ресурсов». SIAM Journal по вычислительной технике . 4 (4): 397–411. дои : 10.1137/0204035 .
- ^ Гэри, Майкл Р. и Дэвид С. Джонсон (1979), Компьютеры и трудноразрешимые проблемы; Руководство по теории NP-полноты . ISBN 0-7167-1045-5 . Страницы 96–105 и 224.
- ^ «Тетрис сложно даже приблизительно оценить» . Природа . 28 октября 2002 г. дои : 10.1038/news021021-9 . ISSN 0028-0836 .
- ^ БРЕЙКЕЛАР, РОН; ДЕМЕЙН, ЭРИК Д.; ХОЭНБЕРГЕР, СЬЮЗАН; ХУГБУМ, ХЕНДРИК ЯН; КОСТЕРС, ВАЛЬТЕР А.; ЛИБЕН-НОВЭЛЛ, ДЭВИД (1 апреля 2004 г.). «Тетрис сложно даже приблизительно оценить» . Международный журнал вычислительной геометрии и приложений . 14 (1n02): 41–68. arXiv : cs/0210020 . дои : 10.1142/s0218195904001354 . ISSN 0218-1959 . S2CID 1177 .
- ^ Демейн, Эрик Д.; Демейн, Мартин Л. (1 июня 2007 г.). «Головоломки, сопоставление ребер и упаковка полимино: связи и сложность» . Графы и комбинаторика . 23 (С1): 195–208. дои : 10.1007/s00373-007-0713-4 . ISSN 0911-0119 . S2CID 17190810 .
- ^ Бернштейн, Д.; Роде, М.; Гертнер, И. (1989). «О сложности задач планирования для параллельных/конвейерных машин» . Транзакции IEEE на компьютерах . 38 (9): 1308–1313. дои : 10.1109/12.29469 . ISSN 0018-9340 .