Чи завершено головоломки "нуль один" NP-комплектацією?


18

Мене цікавить невеликий варіант плитки, головоломки «лобзик»: кожен край (квадратної) плитки позначений символом від , і дві плитки можуть бути розміщені поруч один до одного, якщо символ на лицьовому краю однієї плитки дорівнює k, а символ на лицьовому краю іншої плитки - ˉ k , для деяких k { 1 n } . Потім, з урахуванням набору плиток m 2 , чи можна їх розмістити в m × m{1n,1¯n¯}kk¯k{1n}m2m×mквадрат (обертається, але не перевертає плитки), при цьому всі краї відповідають правильно? (Існує також варіант цієї проблеми, в якому чотири 'обрамлення' країв і шматки повинні правильно вміститися в цей кадр).1×m

Я знаю, що ця проблема є NP-повною для достатньо великих , але межі, які я бачив на n, здаються досить великими; Мене цікавить проблема невеликих значень n і, зокрема, для n = 1 , випадок "нуль-один" (де кожне ребро позначено як " 0" чи " 1", а ребра з " 0" мають відповідати ребрам з " 1"nnnn=10101). Тут є (з обертовою симетрією) всього шість типів плитки (плитка з усіма нулями, плитка все-нулеві, плитка з трьома нулями і одна, плитка з трьома і нулем, і дві чіткі плитки з двома нулями і два, '0011' і '0101'), тому проблемний примірник - це лише специфікація і набір з п’яти чисел T 0000 , T 0001 , T 0011 , T 0101 , T 0111 і T 1111 (що представляє кількість кожного типу плитки) з T 0000 + T 0001 + T 0011 + TmT0000T0001T0011T0101T0111T1111 . Очевидно, що проблема полягає в NP (з m, заданим унарним), оскільки рішення можна просто виставити, а потім перевірити в поліноміальному (в m ) часі, але чи відомо, що воно є NP-повним, чи є якийсь алгоритм динамічного програмування, який може застосовуватись тут? Що з випадком "обрамлення", коли специфікація проблеми включає також чотири ребра квадрата, які мають відповідати? (Очевидно, якщо безрамковий випадок є NP-завершеним, справа у кадрі майже напевно є також)T0000+T0001+T0011+T0101+T0111+T1111=m2mm


2
Це не може бути NP-повним, оскільки є лише можливих входів, і за теоремою Махані вам потрібно більше, ніж для того, щоб зробити завдання NP-повним (якщо тільки P = NP). Але якщо використовувати кадр, ця перешкода зникає. Таким чином, це може бути NP-комплект із рамкою. θ(m10)
Пітер Шор

1
Проміжним кроком було б довести, що проблема вирішення, якщо частково заповнений головоломка з 6 плиток (тобто деякі частини вже є на дошці і не можуть бути переміщені) може бути виконано правильно NP-завершеною.
Vor

Відповіді:


3

Оскільки ви згадали, що зацікавлені у вирішенні цієї проблеми для малих значень , я б запропонував спробувати реалізувати це в SAT-рішувачі або у вигляді цілої лінійної програми (ILP). Будь-хто з них зможе кодувати обмеження, але дещо по-іншому:n

  • Для SAT існує дуже чисте кодування вибору того, яка плитка переходить у кожен квадрат, і трохи менш чисте кодування обмеження щодо кількості кожного виду плитки (з використанням бітної арифметики).

  • Для ILP існує дуже чисте кодування обмежень щодо кількості доступних типів плитки та трохи менш чисте кодування обмежень, на яких плитки можуть бути сусідніми одна з одною (але це все-таки виразно, оскільки ви можете виражати довільні булеві формули в ILP).

Я б очікувати , що для малого і середнього розміру , такий підхід може працювати ефективно.n


Я погоджуюсь, що це здається розумним засобом вирішення проблеми, але мене менше цікавить конкретно вирішення екземплярів проблеми, ніж я розумію її складність. (Наприклад, якщо він знаходиться в P, то майже напевно є такий підхід до динамічного програмування, який міг би перевершити абстрактні рішення SAT / лінійного програмування щодо проблеми.)
Стівен Стадницький,

@StevenStadnicki, добре, досить справедливо. Однак я намагаюся примиритися ~ "Мені цікаво зрозуміти її (асимптотичну) складність (наприклад, чи не відповідає NP)" ~ з ~ "Мене зацікавила проблема малих значень " ~ . n
DW

Вибачте, це може бути певна плутанина в специфікації проблеми; Я використовую щоб позначити (по суті) кількість форм ребер, і мене особливо цікавить той випадок, коли існує одна одна форма краю (подумайте "innie" або "outie"); Мені цікаво складність цієї проблеми як функції m , розміру сітки. nm
Стівен Стадницький

@StevenStadnicki, ах, моя помилка! Вибачте, я не прочитав достатньо уважно. Це має сенс - дякую.
DW

Не хвилюйтесь - я мав би розглянути це наперед; коли я повернуся додому, я спробую відредагувати питання, щоб використати більш "традиційну" параметризацію.
Стівен Стадницький
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.