Чи піддається обчислювальна кожна NP-важка проблема?


Відповіді:


15

Ні, проблема , пов'язана з не повинна бути обчислена. Визначення є досить повним: задача є твердою, якщо ця проблема, що має багаточасний розв'язок, передбачає, що кожна проблема в має розв'язок у багато разів (тобто для кожної проблеми в існує зменшення на ).L N P N P L N PNPLNPNPLNP

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

Наприклад, розглянемо проблеми зупинки . Ми можемо зменшити будь- мова до наступним чином , припускаючи , що ми маємо поліноміальних по картатій , який перевіряє , якщо є сертифікат :N P A H f ( s , c ) c s AHNPAHf(s,c)csA

  • Дано вхіднийs
  • Construct (але не запускати) машина Тьюринга , який приймає вхідні намагається кожен сертифікат і привали , якщо є сертифікат перевірки того, що .x c c s AMxccsA
  • Повернення (тобто повернення справжнього iff зупиняється на вході )M xH(M,x)Mx

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

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


7
"Визначення є досить повним", але це не те, що випливає з цитати у вашій відповіді.

У мене є питання з цього приводу. Я можу уявити функцію, яка вирішує проблему зупинки для найбільшого набору програм, можливу за певних обмежень, але я можу уявити, що ця функція все ще не піддається обчисленню (у тому сенсі, що ми її ніколи не знайдемо, навіть даючи нескінченну кількість часу) . Але якщо у нас якимось чином було вирішено це, мені навіть не зрозуміло, що він повинен вирішувати всі важкі проблеми, пов'язані з NP. Отже, або логіка у цій відповіді не дотримується (це означає, що не можна визначити! = Незаперечний), або мої міркування є хибними (ймовірно). То в чому вада?
Мехрдад

12
Більшість цієї відповіді є невірною, включаючи ваше визначення NP важко: проблема A є NP важкою, якщо "для кожної задачі NP B є багаторазове скорочення B до A." Це не те саме, що "якщо A багаторазовий, то P = NP". (Останнє є наслідком перших, але не навпаки.) Зокрема, майже напевно існують не обчислювані проблеми, які також не можуть бути важкими. Я не опрацював деталі, але проблема членства у досить загальному наборі (у сенсі примусу) повинна зробити свою справу. Набір зупинок, зокрема, є важким NP, але зменшенням.

7
Подумайте про скорочення полімережі від A до B так: це програма, яка працює в поліноміальний час, але вона має особливу здатність в один крок запитувати оракул, який відповідає на випадки проблеми B. Незалежно від того є алгоритм багаторазового використання B, або навіть чи можна B обчислюватися, все ж є сенс задати таке питання: припускаючи, що оракул правильно відповідає на задані ним питання (за один крок), чи відповідає програма запустити в поліном час і правильно вирішити випадки проблеми А?

2
@MikeHaskel Ваша аналогія оракула точна лише в тому випадку, якщо після запиту на оракул програма повинна зупинитися на тій самій відповіді, що і в оракулі. В іншому випадку co-SAT зводиться до SAT: запитувати oracle і заперечувати. У деяких поняттях скорочення, наприклад, скорочення Тьюрінга, це було б прийнятно, але в стандартному скороченні в багато разів, або навіть у скороченні багатьох-один, це не так.
чи

16

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

По-перше, я вважаю, що чітке та чітке розслідування різних визначень вирішить чимало плутанини.

Рядок являє собою кінцеву послідовність символів з деякого фіксованого кінцевого алфавіту.

Проблема рішення являє собою набір рядків. (Цей набір зазвичай нескінченний.) Розгляньте проблему рішення як тестування рядків для деякої властивості: рядки з властивістю є у наборі, а рядки без властивості - ні.

Припустимо , у нас є дві проблеми , рішення, і B . Скажімо є поліноміальних часом приводиться до B , якщо існує деякий многочлен р ( х ) і алгоритм деякий алгоритм М таке , що для всіх рядків и ,ABABp(x)Ms

  • Якщо ви надаєте на вході s , M зупиняється на менше кроків p ( | s | ) (де | s | - довжина рядка s ) і виводить рядок M ( s ) .MsMp(|s|)|s|sM(s)
  • в А тоді і тільки тодіколи M ( и ) в B .sAM(s)B

Проблема Рішення є NP-важкою , якщо для кожного НП проблеми рішення A , полиномиально зводиться до B .BAAB

Проблема рішення обчислюється, якщо існує алгоритм , який для всіх рядків s ,Ms

  • Якщо ви надаєте введення s , M зупиняє та видає або "так", або "ні".MsM
  • Вихід є "так", якщо знаходиться в A, а "ні" в іншому випадку.sA

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


Це залишає два питання на столі:

  1. Визначення залишають відкритим можливість того, що не обчислювані функції можуть бути важкими для NP. Чи існують насправді некомплектні, важкі для NP функції?
  2. Існує інтуїція, що говорити про проблему НП важко - це сказати, що її важко вирішити. Сказати, що це не піддається обчисленню, це як сказати, що це "насправді важко" вирішити. Отже, чи всі важкі проблеми , що не піддаються обчисленню, важкі?

На питання 1 простіше відповісти. Існує два особливо важливих способи пошуку проблем, що не піддаються обчисленню, які не є важкими для NP. Перша проблема зупинки: Проблема Зупинки, , має властивість , що кожна обчислювана проблема рішення полиномиально зводиться до H . Оскільки задачі НП обчислюються, кожна проблема НП поліноміально-часово зводиться до Н , тому Н є NP-важким.HHHH

Іншим важливим способом побудови невичислимої проблеми, важкої для NP, є спостереження за тим, що ми можемо поєднати будь-яку відому проблему з NP-жорсткістю з будь-якою відомою проблемою. Нехай є жорстким NP, а B - невичислимим. Сформулюйте задачу рішення A B наступним чином: A B містить ті рядки форми "0, за якими слід рядок у A " та рядки виду "1, а потім рядок у B ". A B є NP-важким, тому що ми можемо перетворити будь-яке зменшення (будь-якої проблеми) на A у зменшення до A BABABABABABAAB: просто налаштуйте алгоритм для виведення додаткових "0" на передній частині його вихідного рядка. не обчислюється, оскільки для обчислення A B потрібно вирішити, які рядки, що починаються з "1", є у наборі; це неможливо, оскільки B не обчислюється.ABABB


Питання 2 значно хитріше, але насправді є проблеми, що не піддаються вирішенню, які не є складними (якщо припустити, що P NP). Чудова відповідь Юваля чітко будує таку проблему рішення. (Для будь-яких теоретиків обчислюваності в кімнаті будь-який "Коен Π 0 1 -генерік" теж зробить свою справу) " невірно.Π10

Твердість NP та невичисленість кажуть, що проблема "жорстка" в дуже загальному розумінні, але вони дуже різні і не повинні згуртовуватися разом як явище одного типу. Зокрема, твердість NP - це "позитивна" властивість: проблема NP-hard є важкою в тому сенсі, що, отримавши доступ до шпаргалки для A , ви можете вирішити важкий клас проблемAA . З іншого боку, неможливість обчислення є "негативною" властивістю: не обчислювана проблема Важкий у тому сенсі, що ви не можете вирішити A із заданим класом ресурсівAA .

("До речі,", до речі, - це техніка, що використовується для створення "Коену ", про яку я згадував. Щоб бути дуже розпливчастим, примусовий - це загальний спосіб виготовлення речей, які є "загальними" завдяки тому, що вони мають відсутність позитивних властивостей і кожної негативної властивості. Ось чому примушування може безпосередньо спричинити проблему, яка не є ні обчислювальною, ні NP-важкою.)Π10


2
Ви не можете побудувати нерозбірливу мову, яка не є важкою для діагоналізації? Діагоналізуйте проти всіх децидерів та всіх скорочень полімерів від SAT.
Yuval Filmus

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

1
@YuvalFilmus Я також додав уточнення саме зараз, коли ви повинні припустити P NP: безумовно, був крок у моєму доказі, що читати "прийняти якусь проблему в NP, але не в P."

1
@aelguindy Я не впевнений, що це найдоступніший спосіб довести це. Я згадав техніку форсування , яка є дуже загальною і потужною. Я дізнався це від людей, а не з підручників, тому я особисто не знаю великого посилання на примушування. Однак, як зазначив Юваль, примушення, ймовірно, є надмірним: певний більш прямий аргумент, пов’язаний з діагоналізацією, ймовірно, працює. "Рекурсивно численні набори та ступені" Соара - це підручник, який охоплює багато стилів аргументів, якщо ви хочете ознайомитися з ним. Знову ж таки, більша частина цього, мабуть, надмірна. ...

1
@aelguindy Крім того, якщо ви вважаєте набір задач рішення як топологічний простір, ви, мабуть, можете масажувати теорему категорії Байєра, щоб отримати доказ. Ця теорема тісно пов’язана з форсуванням, але є старшою і прямолінійною.

11

Ні. NP-Hard означає, що це так само важче або важче, ніж найважчі проблеми з NP. Інтуїтивно зрозуміло, що бути незручним буде набагато складніше, ніж NP.

Вікіпедія:

Існують проблеми з рішенням, які є важкими для NP, але не завершеними NP, наприклад, проблема зупинки.

Всім відомо, що це не можна обчислити


4
Зауважте, що хоча деякі не обчислювані проблеми (як, наприклад, проблема зупинки) є жорсткими NP, це не означає, що всі не обчислювані проблеми є NP-жорсткими. Дивіться мої коментарі до відповіді jmite. Твердість NP - позитивна властивість: це говорить про те, що відповіді на вашу проблему можуть допомогти вирішити проблеми NP. Бути NP важким означає, що проблема певною мірою є складною. Не всі складні проблеми є важкими для NP.

@MikeHaskel: Влаштування рішення проблеми зупинки зводить усі проблеми до P * труднощі проблеми зупинки ..
Джошуа

1
@Joshua: Це не має сенсу. Це як фрагмент недоказування. Що ви навіть означаєте, що проблема має обмежену кількість бітів у її вирішенні, і чому, на вашу думку, це стосується всіх беззаперечних проблем? Що ви маєте на увазі під "P * зупинки"? Що решта "зменшити через n-й біт ..."?
user2357112 підтримує Моніку

1
@Joshua: Схоже, головна проблема полягає в тому, що ви припускаєте, що кожна проблема відповідає машині Тьюрінга. Не кожна проблема відповідає машині Тьюрінга. Немає problem()функції, яку ми могли б викликати.
user2357112 підтримує Моніку

1
Вам, мабуть, варто перенести це в чат чи щось таке
Знищений лимон

9

Для повноти докажемо наступну теорему:

Існує незмінна мова, яка не є твердою NP, якщо і лише тоді, коли P NP.

Якщо P = NP, то будь-яка нетривіальна мова (та, яка відрізняється від ) є важкою для NP (вправа), і, зокрема, будь-яка незрозуміла мова є NP-жорсткою.,{0,1}

Тепер припустимо, що P NP. Нехай T i - деякий перелік усіх машин Тьюрінга. Ми побудуємо необхідну мову L поетапно. На кожному етапі ми будемо тримати { 0 , 1 , ? } забарвлення { 0 , 1 } ∗, яку також позначимо через L ; тут 0 означає, що ми вирішили, що рядок не в L , 1 означає, що ми вирішили, що рядок знаходиться в L , і ?TiL{0,1,?}{0,1}L0L1L?означає, що ми ще не визначились. Всі кольори рядків, окрім як остаточно, будуть кольоровими .?

На кроці ми розглядаємо T i як машину, яка або приймає свій внесок, відкидає його, або ніколи не зупиняється. Якщо T я не завжди зупиняється, ми нічого не робимо. Якщо T i завжди зупиняється, то знаходимо рядок x такий, що L ( x ) = ? , і встановіть L ( x ) : = 0, якщо T i ( x ) приймає і L ( x ) : = 1, якщо T2iТiТiТiхL(х)=?L(х): =0Тi(х)L(х): =1 відхиляє.Тi(х)

На кроці ми розглядаємо T i як машину, що обчислює (можливо) часткову функцію на своєму вході. Якщо T i не є сумарним, або якщо він сумарний, але не працює в поліноміальний час, або якщо він сумарний, але його діапазон обмежений, ми нічого не робимо. Якщо T i є сумарним, працює в поліноміальний час і має нескінченний діапазон, то знаходимо рядок x такий, що L ( T i ( x ) ) = ? . Якщо x S A T (тобто якщо x2i+1ТiТiТiхL(Тi(х))=?хSАТхкодує задоволений CNF), тоді ми встановлюємо , інакше встановлюємо L ( x ) : = 1 .L(х): =0L(х): =1

Після нескінченного числа кроків, ми отримуємо розфарбування { 0 , 1 } ∗, яку ми добудовуємо до фактичної мови довільно.{0,1,?}{0,1}

Отримана мова не обчислюється: крок 2 i гарантує, що T i не обчислить її. Це також не є важким для NP, але тут міркування делікатніше. Припустимо , що Т я є скорочення від поліноміальних по SAT з L . Якщо діапазон T i є кінцевим, то ми можемо перетворити T i у багатопотоковий апарат, що вирішує SAT, перерахувавши таблицю істинності L на діапазоні T i . Це неможливо за припущенням P NP. Таким чином, T i має нескінченний діапазон, але потім крок 2 iL2iТiТiLТiТiLТiТi виключає його бути скорочення від SAT до L .2i+1L


3

Мова є NP-важкою , якщо для будь-якого L 'N P ми маємо , що L ' полиномиально зводиться до L . Проблема прийняття для недетермінованих машин ТьюрінгаLL'NПLL

АNТМ={М,шМ є недетермінованою машиною Тьюрінга, яка приймає ш}

не визначимо і є важким для NP. Для розглянемо . L ' визначається деякою недетермінованою машиною Тюрінга M ' з багаточленною часовою складністю. Полімерне скорочення f від L до A N T M задається числомL'NПL'М'fL'АNТМ

f(х)=М,х

3

Я думаю, що те, що змушує людей вважати, що немає жодної непорушної проблеми, пов'язаної з NP, - це те, що вони пропускають те, що твердість NP - це нижня межа твердості проблеми, а не верхня межа їх твердості, як P або NP.

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

ААСАСАНалтСАСА

АА'А<А'А<А'<А<А<...

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