Чи не завершена ця класична гра-головоломка?


10

Існує класична гра-головоломка, дуже схожа на кросворд, за винятком переліку слів, а потім надається квадратний дошка що складається з одиниць квадратів, при цьому деякі квадрати затьмарені так само, як перехресне слово, і на деяких квадратах є буква, яка в них уже була записана. Мета полягає в тому, щоб записати кожне слово зі списку один раз і лише один раз у головоломці, де кожне слово записується або горизонтально (зліва направо) або вертикально (зверху вниз) у непозатемнені квадрати підряд, і коли ви пишете слово , два квадрати, що знаходяться з кінців слова, повинні бути або затьмарені, або поза дошкою. Також для літер, попередньо записаних у деякі квадрати, слова, які перекриваються цими квадратами, повинні поважати попередньо написані букви.N×N

Тепер, якщо ми припускаємо алфавіт фіксованого розміру для слів, вирішуємо, чи можемо ми заповнити дошку дійсним рішенням, використовуючи точно кожне слово в списку один раз і лише один раз, якщо проблема не є повною, якщо бічна довжина дошки дорівнює не виправлено?

Відповіді:


6

Вибачте за відповідь на стару публікацію.

Я думав про це, і я думаю, що проблема з фіксованим алфавітом також є NP-повною.

Я збираюся зменшити позитивний 1-в-3 SAT до цієї проблеми слова

Вчора у мене виникли проблеми з ідеями для вирішення проблеми. У мене виникли проблеми з тим, щоб зробити кожну змінну різною, поки я знову не переглянув питання, і я зрозумів, що ви дозволяєте мати квадрати з насадженими символами. Це значно спростило скорочення. Моя інша ідея полягала в тому, щоб мати слова різної довжини для кожної різної змінної.

ВІДМОВЛЕННЯ

Тепер я опишу гаджети, які ми будемо використовувати:

Змінні гаджети

Ми позначаємо кожну змінну різним числовим індексом, і для кожної змінної ми матимемо різне число. Вибираємо найбільший індекс і представляємо число у двійковому, називаємо цей двійковий ланцюг .n

Потім ми створюємо два різних вертикальних слова для кожної змінної. Усі слова матимуть довжину (Тільки якщо в списку слів ми допускаємо повторювані слова), де | n | - довжина двійкового ланцюга n .3+|n||n|n

Наприклад, нехай найбільшим індексом є число . Коли ми перетворюємо це число у двійкове, отримуємо ланцюжок 100 у двійковий, ця ланцюг має довжину три. Отже, у цьому прикладі кожне слово із змінною буде мати довжину 6 .41006

32n3

43

41

320013420014

1|n|

Нам доведеться копіювати ці слова багато разів, нам знадобиться одна копія кожного слова для кожного виникнення змінної в екземплярі SAT. Це створить дублікати у списку слів. Ми можемо позбутися дублікатів, додавши до двійкового ланцюга ще один бінарний ланцюг, який однозначно ідентифікує змінну. Цей новий ланцюг однозначно ідентифікує кожне виникнення змінної.

Для цього ми просто присвоюємо кожній точці змінної інший бінарний ланцюг і оранжуємо цей ланцюг в кінці бінарного подання змінної.

niini|ni||ni|

Це дозволить позбутися дублікатів всередині змінних слів.

x2

32010013 4201001432010103 4201010432010113 42010114

Гаджет із пропозицією

6

535354535453545353

435

mm|m||m|. Ми додаємо кожен двійковий ланцюг до слів-членів, які належать до пункту.

Тепер побачимо на дошці зображення гаджета з пропозицією:

Приклад пункту

(x2x3x4)(x1x2x3)(x2x3x4)

4

Якщо ми не дозволимо дублікати всередині списку слів, нам доведеться змінити зображення.

5b5b5b10

b201010bb201110bb21001b

b

Дивіться приклад:

пункт, ніяких повторів

Гаджет змінної консистенції

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

У нас буде новий гаджет для кожної змінної

Ми створимо два нових слова для кожного гаджета.

2kkx263 k64 k

x2

63636464

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

Тепер подивимось прикладну картинку цього гаджета:

Гаджет змінної консистенції

x2(x1x2x3)(x2x3x4)

3434. Ми можемо розмістити решту слова цього гагдета в іншому ряду

Якщо ми не дозволимо дублікати у списку слів, слова, що знаходяться на прикладі зображення, будуть такими:

Для рядків:

6b6b0106b6b010

Для стовпців:

b201001bb201010b

b

Дивіться приклад:

Гаджет консистенції, не повторюється

Додаток відкидає гаджет

Це гаджет, створений для розміщення невикористаних слів-застережень. Для цього нам залишається лише розмістити два ряди для кожного слова-клауза в порожній частині дошки. Ці рядки не з'єднані з жодним іншим рядком або стовпцем.

Цим ми закінчуємо скорочення, оскільки ми заявляли, що нам потрібно лише 6 символів.

Приклад

Якщо попереднє пояснення було заплутаним, ось приклад малюнка екземпляра позитивного 1 в 3 SAT, який зводився до цієї проблеми слова:

Приклад дошки

Якщо ми забороняємо повторити слова:

Приклад дошки, повторів немає

Скорочений примірник:

(x1x2x3)(x2x3x4)


Дякуємо, що опублікували це! Невдала особливість обміну стеками полягає в тому, що довгі відповіді навряд чи хтось прочитає, тому ви навряд чи наберете багато голосів від тієї роботи, яку ви зробили тут. Я спробую це прочитати, але, якщо я чесно, є хороший шанс, що я не обійдусь цим.
Девід Річербі

2
@DavidRicherby jaja так. Я деякий час думав над цим питанням. Я думав, що коли я опублікував цю відповідь, всі підуть і підтвердять її. Не сталося Ну ніколи. Якщо у вас є питання щодо зменшення, можете запитати мене
rotia

4

Я думаю, що наступне скорочення від направленого гамільтонівського шляху працює:

G=(V,E)s,tV

V{}V

vvvVvu(u,v)E

|V|

сходи

|E|(|V|1)

sstt

Тепер, щоб заповнити сходи, в межах сходів можна поставити лише вершинні слова, а для того, щоб з'єднати дві вершини, між ними потрібно поставити реброве слово, що відповідає наявному краю у графі. Невикористані краї можна поставити у другій частині дошки. Другий напрямок - тривіальний.

Я думаю, що це працює (доказ правильності, який я замальовував, в кращому випадку махає руками, але все ж).


1
stN×NN

Це приємно і, здається, працює, але розмір алфавіту не фіксований, як запитував мій початковий пост. Чи можлива модифікація використання алфавіту фіксованого розміру і все-таки це зменшення?
користувач2566092

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