Як проблема продавця подорожі може бути перевірена в поліноміальний час?


21

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

Чи є такий шлях P таким, що вартість нижча за C?

і ви можете легко перевірити це правдою, підтвердивши отриманий шлях.

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


Особисто я чув тільки, що клас NP мав на увазі багаторазову перевірку, але ніколи не бачив обмеження, яке означає лише перевірку відповідей "так, ось рішення". Здається, інтуїтивно уявити, що ви повинні мати можливість перевірити будь-яке рішення за багато разів.
wjmccann

Відповіді:


36

NP - це клас проблем, в якому ви можете перевірити випадки "так". Не дається гарантія, що ви можете перевірити випадки "ні".

Клас задач, за допомогою яких можна перевірити випадки "ні" в поліноміальному часі, є co-NP . Будь-яка мова в ко-НП є доповненням якоїсь мови в НП , і навпаки. Приклади включають такі речі, як не-3-забарвлення. Проблема, яку ви описуєте, "Чи немає шляху TSP довжиною не більше  ?" також в co-NP : якщо ви зніміть подвійне заперечення, "не" екземпляр цієї проблеми є "так", екземпляр TSP, і ми можемо перевірити їх у поліноміальний час.C

Існують деякі проблеми, такі як цілочисельна факторизація та будь-яка проблема в  P , які ми знаємо як в NP, так і в co-NP . (Дякуємо користувачеві21820, що вказав на це.)

Невідомо, чи NP і co-NP - однаковий набір проблем. Якщо вони однакові, ми можемо перевірити як "так", так і "ні" випадки TSP. Якщо вони різні, то PNP , оскільки ми знаємо, що P=co-P (оскільки ми можемо просто заперечувати відповідь детермінованої машини, даючи відповідь на проблему доповнення).


4
Можливо, варто згадати, що ми знаємо деякі проблеми, які є як в NP, так і в coNP, але ми не знаємо, чи є вони в P чи ні, наприклад, цілочисельна факторизація.
користувач21820

@ user21820 Цілісна факторизація не є проблемою рішення. Первинність - це проблема вирішення, і роками було відомо, що вони є і в НП, і в спільних НП . В кінцевому рахунку це було показано, що в Р , а також. Я не знаю , якщо є ще проблеми , відомі як і в НП і співробітництво НП без того , було показано, що в P .
kasperd

4
@kasperd: Загальновідомий факт, що цілочисельна факторизація, коли приймається проблема вирішення (чи має n простий коефіцієнт менше m?), є як в NP, так і в coNP (обидва випадки так / ні можуть бути перевірені в поліноміальний час через тест первинності AKS, який отримав основну факторизацію як сертифікат), але ще не показано, що він є в P.
user21820

1
@ user21820 Існує набагато простіші та швидші способи перевірити факторизацію, ніж AKS.
kasperd

@kasperd: Мені було б цікаво ось це. Щоб перевірити факторизацію, вам знадобляться, наприклад, прості коефіцієнти, і для кожного основного фактора доказ того, що він є простим.
gnasher729

2

"Як проблема продавця подорожі може бути перевірена в поліноміальний час?"

Або в описаному вами способі, або невідомо, що існує такий спосіб.

"Однак що робити, якщо немає шляху, який би відповідав цим критеріям?"

У цьому випадку для всіх апаратів НП для вирішення проблеми машина поверне ні, не всі кандидатські сертифікати.

"Як би ви перевірили відповідь" ні ", не вирішивши проблему TSP найкращого шляху, і виявивши, що найкраща має гірші витрати, ніж C?"

Ну, можна отримати інтерактивний доказ того, що таких шляхів немає .

Проблема, яку ви описуєте, TSP, невідомо, що вона є в coNP , тому невідомо, що існує "NP-подібний" спосіб підтвердження відсутності такого шляху.

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