Якщо я можу вирішити судоку, чи можу я вирішити проблему продавця подорожі (TSP)? Якщо так, то як?


23

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

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

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


1
У цьому документі вимоги дати конструктивну скорочення від судоку до задачі Гамільтона циклу: sciencedirect.com/science/article/pii/S097286001630038X
cwindolf

@ C.Windolf Питання задає інший напрямок. (Дійсно, є видалена відповідь, яка зробила ту саму помилку і цитувала той самий документ.)
Девід Річербі

Відповіді:


32

Для судоку 9x9, ні. Вона є кінцевою, тому її можна вирішити за О(1) час.

Але якщо у вас був розв'язувач для н2×н2 судоку, який працював для всіх н і всіх можливих часткових дощок, і працював у поліноміальний час, то так, це могло бути використане для вирішення TSP в поліноміальний час, як заповнення н2×н2 Судоку завершено NP.

Доведення завершеності NP працює шляхом зменшення від деякої задачі до завершення NP до судоку; тоді, оскільки R є NP-повним, ви можете зменшити з TSP до R (це випливає з визначення NP-повноти); і зв’язування цих скорочень дає вам змогу використовувати вирішувач судоку для вирішення TSP.


1
Не могли б ви пояснити, як? Так, давайте припустимо, що у мене є загальний вирішувач судоку, який виконує функції чорної скриньки. То як ти можеш ним користуватися? Як ви представляєте TSP як частково заповнений судоку
Chakrapani N Rao

2
@ChakrapaniNRao, див. Оновлену відповідь. Так, я розумію, це чорна скринька. Щоб опрацювати деталі, знайдіть доказ NP-повноти для судоку та зрозумійте, як працює скорочення.
DW

8
н2×н2

8
@ChakrapaniNRao Ви запитуєте, як вирішити проблему X за допомогою чорного поля для проблеми Y. Це буквально просить зменшити. Ось що означає "скорочення". І як пояснюється ця відповідь, відповідь на ваше "так / ні" питання - так.
Девід Річербі

2
@SolomonUcko, ну ні, не обов’язково. Питання задаються: якщо у нас є розв'язувач судоку, чи можемо ми використовувати його для вирішення TSP? Відповідь - так, ми можемо. Я пояснюю, як. Це дасть вам спосіб вирішити TSP приблизно так само швидко, як вирішувач судоку вирішить судоку. Якщо розв'язувач судоку працює в поліноміальний час, це дасть вам спосіб розв’язати TSP у поліноміальний час. Якщо розв'язувач судоку працює в субекспоненціальний час, це дасть вам спосіб вирішити TSP в субекспоненціальний час. І так далі.
DW

26

Дійсно можна використовувати загальний розв'язувач судоку для вирішення екземплярів TSP, і якщо цей розв'язувач займає поліноміальний час, то і весь процес буде таким же (у термінології складності спостерігається скорочення поліноміального часу від TSP до судоку). Це тому, що Судоку не є повним NP, а TSP знаходиться в NP. Але як це зазвичай буває в цій області, дивлячись на деталі зменшення не особливо яскраво. Якщо ви хочете, ви можете скласти це разом, використовуючи просте скорочення від завершення латинських квадратів до судоку тут , зменшення від тріангулюючих однорідних тристоронніх графіків до завершення латинських квадратів тут , зменшення від 3SAT до тріангуляції тутта формулювання TSP як проблеми 3SAT. Однак, якщо ви хочете зрозуміти ідею скорочення від судоку до TSP, я думаю, вам було б краще вивчити теорему Кука (показуючи, що SAT є NP-повним) і пару простих скорочень від 3SAT (наприклад, до 3-мірної відповідності) і задоволений тим, що знає, що скорочення TSP-судоку - це лише та сама річ, але довше і химерніше.

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