Вибачте за відповідь на стару публікацію.
Я думав про це, і я думаю, що проблема з фіксованим алфавітом також є NP-повною.
Я збираюся зменшити позитивний 1-в-3 SAT до цієї проблеми слова
Вчора у мене виникли проблеми з ідеями для вирішення проблеми. У мене виникли проблеми з тим, щоб зробити кожну змінну різною, поки я знову не переглянув питання, і я зрозумів, що ви дозволяєте мати квадрати з насадженими символами. Це значно спростило скорочення. Моя інша ідея полягала в тому, щоб мати слова різної довжини для кожної різної змінної.
ВІДМОВЛЕННЯ
Тепер я опишу гаджети, які ми будемо використовувати:
Змінні гаджети
Ми позначаємо кожну змінну різним числовим індексом, і для кожної змінної ми матимемо різне число. Вибираємо найбільший індекс і представляємо число у двійковому, називаємо цей двійковий ланцюг .н
Потім ми створюємо два різних вертикальних слова для кожної змінної. Усі слова матимуть довжину (Тільки якщо в списку слів ми допускаємо повторювані слова), де | n | - довжина двійкового ланцюга n .3 + | n || n |н
Наприклад, нехай найбільшим індексом є число . Коли ми перетворюємо це число у двійкове, отримуємо ланцюжок 100 у двійковий, ця ланцюг має довжину три. Отже, у цьому прикладі кожне слово із змінною буде мати довжину 6 .41006
32н3
43
41
320013420014
1|n|
Нам доведеться копіювати ці слова багато разів, нам знадобиться одна копія кожного слова для кожного виникнення змінної в екземплярі SAT. Це створить дублікати у списку слів. Ми можемо позбутися дублікатів, додавши до двійкового ланцюга ще один бінарний ланцюг, який однозначно ідентифікує змінну. Цей новий ланцюг однозначно ідентифікує кожне виникнення змінної.
Для цього ми просто присвоюємо кожній точці змінної інший бінарний ланцюг і оранжуємо цей ланцюг в кінці бінарного подання змінної.
niini|ni||ni|
Це дозволить позбутися дублікатів всередині змінних слів.
x2
32010013 4201001432010103 4201010432010113 42010114
Гаджет із пропозицією
6
535354535453545353
435
mm|m||m|. Ми додаємо кожен двійковий ланцюг до слів-членів, які належать до пункту.
Тепер побачимо на дошці зображення гаджета з пропозицією:
(x2∨x3∨x4)(x1∨x2∨x3)∧(x2∨x3∨x4)
4
Якщо ми не дозволимо дублікати всередині списку слів, нам доведеться змінити зображення.
5b5b5b10
b201010bb201110bb21001b
b
Дивіться приклад:
Гаджет змінної консистенції
Це гаджет, який забезпечує, що гравець може призначити однакове значення для всіх буквальних стовпців змінної.
У нас буде новий гаджет для кожної змінної
Ми створимо два нових слова для кожного гаджета.
2∗kkx263 k64 k
x2
63636464
Якщо ми хочемо уникати повторних слів, зауважте, що кожен гаджет консистенції належить до різної змінної. Таким чином, ми можемо додати двійковий ланцюг, який ідентифікує кожну змінну до двох слів, які ми створили для цього гаджета.
Тепер подивимось прикладну картинку цього гаджета:
x2(x1∨x2∨x3)∧(x2∨x3∨x4)
3434. Ми можемо розмістити решту слова цього гагдета в іншому ряду
Якщо ми не дозволимо дублікати у списку слів, слова, що знаходяться на прикладі зображення, будуть такими:
Для рядків:
6b6b0106b6b010
Для стовпців:
b201001bb201010b
b
Дивіться приклад:
Додаток відкидає гаджет
Це гаджет, створений для розміщення невикористаних слів-застережень. Для цього нам залишається лише розмістити два ряди для кожного слова-клауза в порожній частині дошки. Ці рядки не з'єднані з жодним іншим рядком або стовпцем.
Цим ми закінчуємо скорочення, оскільки ми заявляли, що нам потрібно лише 6 символів.
Приклад
Якщо попереднє пояснення було заплутаним, ось приклад малюнка екземпляра позитивного 1 в 3 SAT, який зводився до цієї проблеми слова:
Якщо ми забороняємо повторити слова:
Скорочений примірник:
(x1∨x2∨x3)∧(x2∨x3∨x4)