Яка різниця у складності може бути між пошуком рішення головоломки судоку та ДОСТАНОВЕННЯм того, що рішення є унікальним рішенням?


14

Так зазвичай судоку дорівнює , але це питання поширюється на загадок з . Існує багато правил відрахування поліноміального часу, які можуть досягти успіху в пошуку рішення головоломки судоку. Але іноді може знадобитися відгадування значень та наступні ланцюжки висновків для усунення значення комірки або комбінації значень комірок. Однак, коли знайдеться дійсне рішення, це не гарантує, що рішення є Унікальним. Дійсна головоломка судоку повинна мати лише одне дійсне рішення, але при створенні випадкових головоломок це може потребувати додаткових обчислень для перевірки.9×9н2×н2н>3

Отже, моє запитання полягає в тому, якщо дозволити певний набір правил відрахування поліноміального часу (скажімо, найпоширеніший набір, описаний у стратегії Судоку), поряд із відгадуванням значень та слідуючи висновкам, то наскільки важче це можна визначити унікальне рішення заданої головоломки порівняно з пошуком лише одного рішення за кількістю не унікальних рішень? Чи є асимптотична різниця для певних класів пазлів?

Відповіді:


14

мм


Дякую, я не був впевнений, чи сформулював своє запитання досить точно, але це вдарило нігтем по голові. Тож навіть якщо ми знайдемо одне рішення, то знаємо, чи існує інше рішення. Чисто та акуратно! Дякую, +1
користувач2566092

1

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

Якщо вас цікавить лише "чинність", то Юваль Філіус вже вказав вам на підтвердження того, що це NP повне.

Однак якщо мета знайти нові головоломки судоку, які людині сподобається вирішувати, проблема не така вже й складна. (Якщо відгадати велику кількість значень, через те, що головоломка не розв’язується за допомогою "логіки", це не цікаво!) Тому особисто я обмежувати кількість здогадок не більше 4 та відхиляти будь-яку головоломку, яка не може бути доказовою. унікальне рішення в межах обмеження того, що ви вважаєте, є розумним.

Зробити вищезазначене, використовуючи стандартне відстеження зворотного ходу, щоб відвідати всі можливі здогадки (у межах вашої межі), і показати, що є лише одне рішення, набагато простіше, ніж NP виконати.

Крім того, ви можете оцінити, наскільки складна головоломка ґрунтується на складності необхідних правил відрахування та кількості потрібних здогадів.


0

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

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

Однак реально це не так, і майже у всіх випадках, пов’язаних із пошуком комбінаторних конструкцій, пошук одного рішення завжди швидший, ніж пошук усіх рішень.

Взагалі обидві ці проблеми міцно закріпилися в експоненціальному періоді виконання, якщо не гірше.

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