Чи потрібно, щоб проблема з важким рівнем NP була обчислюваною?
Я не думаю, але я не впевнений.
Чи потрібно, щоб проблема з важким рівнем NP була обчислюваною?
Я не думаю, але я не впевнений.
Відповіді:
Ні, проблема , пов'язана з не повинна бути обчислена. Визначення є досить повним: задача є твердою, якщо ця проблема, що має багаточасний розв'язок, передбачає, що кожна проблема в має розв'язок у багато разів (тобто для кожної проблеми в існує зменшення на ).L N P N P L N P
Тоді незрівнянні проблеми важко важко: припустимо, ми могли їх вирішити за полиномний час. Тоді ми використовуємо доказ того, що це нескладно вивести, що це одночасно і обчислювально, і незрівнянно, суперечність. З цієї неправдивості ми можемо отримати що завгодно, а саме, що існує поліноміальний алгоритм часу для будь-якої задачі ми б дивилися.
Наприклад, розглянемо проблеми зупинки . Ми можемо зменшити будь- мова до наступним чином , припускаючи , що ми маємо поліноміальних по картатій , який перевіряє , якщо є сертифікат :N P A H f ( s , c ) c s ∈ A
Таким чином, за допомогою одного виклику багаточастового алгоритму, що розв’язує задачу зупинки, ми можемо вирішити будь-яку задачу в поліноміальний час.
Таке зменшення не є корисним, тому що все, що він робить, це говорить, якщо "якщо помилково, то щось". Ми вже знаємо, що не існує алгоритму політехніки для непереборних проблем.
Здається, в цій громаді існує певна плутанина щодо цього питання. Я дам детальну відповідь, сподіваючись очистити воду та освітлити взаємозв'язок між обчислюваністю і твердістю NP.
По-перше, я вважаю, що чітке та чітке розслідування різних визначень вирішить чимало плутанини.
Рядок являє собою кінцеву послідовність символів з деякого фіксованого кінцевого алфавіту.
Проблема рішення являє собою набір рядків. (Цей набір зазвичай нескінченний.) Розгляньте проблему рішення як тестування рядків для деякої властивості: рядки з властивістю є у наборі, а рядки без властивості - ні.
Припустимо , у нас є дві проблеми , рішення, і B . Скажімо є поліноміальних часом приводиться до B , якщо існує деякий многочлен р ( х ) і алгоритм деякий алгоритм М таке , що для всіх рядків и ,
- Якщо ви надаєте на вході s , M зупиняється на менше кроків p ( | s | ) (де | s | - довжина рядка s ) і виводить рядок M ( s ) .
- в А тоді і тільки тодіколи M ( и ) в B .
Проблема Рішення є NP-важкою , якщо для кожного НП проблеми рішення A , полиномиально зводиться до B .
Проблема рішення обчислюється, якщо існує алгоритм , який для всіх рядків s ,
- Якщо ви надаєте введення s , M зупиняє та видає або "так", або "ні".
- Вихід є "так", якщо знаходиться в A, а "ні" в іншому випадку.
За допомогою наведених вище визначень ми можемо одразу уточнити, що, на мою думку, може бути корінною плутаниною у вашому запитанні: ніщо у визначеннях проблеми вирішення, зменшення чи твердості NP не вимагає, щоб проблеми з рішенням були обчислені. Визначення мають ідеальний сенс розглядати проблеми рішення як довільні набори рядків, і ці множини можуть бути дуже неприємними.
Це залишає два питання на столі:
На питання 1 простіше відповісти. Існує два особливо важливих способи пошуку проблем, що не піддаються обчисленню, які не є важкими для NP. Перша проблема зупинки: Проблема Зупинки, , має властивість , що кожна обчислювана проблема рішення полиномиально зводиться до H . Оскільки задачі НП обчислюються, кожна проблема НП поліноміально-часово зводиться до Н , тому Н є NP-важким.
Іншим важливим способом побудови невичислимої проблеми, важкої для NP, є спостереження за тим, що ми можемо поєднати будь-яку відому проблему з NP-жорсткістю з будь-якою відомою проблемою. Нехай є жорстким NP, а B - невичислимим. Сформулюйте задачу рішення A ⊕ B наступним чином: A ⊕ B містить ті рядки форми "0, за якими слід рядок у A " та рядки виду "1, а потім рядок у B ". A ⊕ B є NP-важким, тому що ми можемо перетворити будь-яке зменшення (будь-якої проблеми) на A у зменшення до A ⊕ B: просто налаштуйте алгоритм для виведення додаткових "0" на передній частині його вихідного рядка. не обчислюється, оскільки для обчислення A ⊕ B потрібно вирішити, які рядки, що починаються з "1", є у наборі; це неможливо, оскільки B не обчислюється.
Питання 2 значно хитріше, але насправді є проблеми, що не піддаються вирішенню, які не є складними (якщо припустити, що P NP). Чудова відповідь Юваля чітко будує таку проблему рішення. (Для будь-яких теоретиків обчислюваності в кімнаті будь-який "Коен Π 0 1 -генерік" теж зробить свою справу) " невірно.
Твердість NP та невичисленість кажуть, що проблема "жорстка" в дуже загальному розумінні, але вони дуже різні і не повинні згуртовуватися разом як явище одного типу. Зокрема, твердість NP - це "позитивна" властивість: проблема NP-hard є важкою в тому сенсі, що, отримавши доступ до шпаргалки для A , ви можете вирішити важкий клас проблем . З іншого боку, неможливість обчислення є "негативною" властивістю: не обчислювана проблема Важкий у тому сенсі, що ви не можете вирішити A із заданим класом ресурсів .
("До речі,", до речі, - це техніка, що використовується для створення "Коену ", про яку я згадував. Щоб бути дуже розпливчастим, примусовий - це загальний спосіб виготовлення речей, які є "загальними" завдяки тому, що вони мають відсутність позитивних властивостей і кожної негативної властивості. Ось чому примушування може безпосередньо спричинити проблему, яка не є ні обчислювальною, ні NP-важкою.)
Ні. NP-Hard означає, що це так само важче або важче, ніж найважчі проблеми з NP. Інтуїтивно зрозуміло, що бути незручним буде набагато складніше, ніж NP.
Вікіпедія:
Існують проблеми з рішенням, які є важкими для NP, але не завершеними NP, наприклад, проблема зупинки.
Всім відомо, що це не можна обчислити
problem()
функції, яку ми могли б викликати.
Для повноти докажемо наступну теорему:
Існує незмінна мова, яка не є твердою NP, якщо і лише тоді, коли P NP.
Якщо P = NP, то будь-яка нетривіальна мова (та, яка відрізняється від ) є важкою для NP (вправа), і, зокрема, будь-яка незрозуміла мова є NP-жорсткою.
Тепер припустимо, що P NP. Нехай T i - деякий перелік усіх машин Тьюрінга. Ми побудуємо необхідну мову L поетапно. На кожному етапі ми будемо тримати { 0 , 1 , ? } забарвлення { 0 , 1 } ∗, яку також позначимо через L ; тут 0 означає, що ми вирішили, що рядок не в L , 1 означає, що ми вирішили, що рядок знаходиться в L , і ?означає, що ми ще не визначились. Всі кольори рядків, окрім як остаточно, будуть кольоровими .
На кроці ми розглядаємо T i як машину, яка або приймає свій внесок, відкидає його, або ніколи не зупиняється. Якщо T я не завжди зупиняється, ми нічого не робимо. Якщо T i завжди зупиняється, то знаходимо рядок x такий, що L ( x ) = ? , і встановіть L ( x ) : = 0, якщо T i ( x ) приймає і L ( x ) : = 1, якщо T відхиляє.
На кроці ми розглядаємо T i як машину, що обчислює (можливо) часткову функцію на своєму вході. Якщо T i не є сумарним, або якщо він сумарний, але не працює в поліноміальний час, або якщо він сумарний, але його діапазон обмежений, ми нічого не робимо. Якщо T i є сумарним, працює в поліноміальний час і має нескінченний діапазон, то знаходимо рядок x такий, що L ( T i ( x ) ) = ? . Якщо x ∈ S A T (тобто якщо xкодує задоволений CNF), тоді ми встановлюємо , інакше встановлюємо L ( x ) : = 1 .
Після нескінченного числа кроків, ми отримуємо розфарбування { 0 , 1 } ∗, яку ми добудовуємо до фактичної мови довільно.
Отримана мова не обчислюється: крок 2 i гарантує, що T i не обчислить її. Це також не є важким для NP, але тут міркування делікатніше. Припустимо , що Т я є скорочення від поліноміальних по SAT з L . Якщо діапазон T i є кінцевим, то ми можемо перетворити T i у багатопотоковий апарат, що вирішує SAT, перерахувавши таблицю істинності L на діапазоні T i . Це неможливо за припущенням P ≠ NP. Таким чином, T i має нескінченний діапазон, але потім крок 2 i виключає його бути скорочення від SAT до L .
Мова є NP-важкою , якщо для будь-якого L ' ∈ N P ми маємо , що L ' полиномиально зводиться до L . Проблема прийняття для недетермінованих машин Тьюрінга
не визначимо і є важким для NP. Для розглянемо . L ' визначається деякою недетермінованою машиною Тюрінга M ' з багаточленною часовою складністю. Полімерне скорочення f від L ′ до A N T M задається числом
Я думаю, що те, що змушує людей вважати, що немає жодної непорушної проблеми, пов'язаної з NP, - це те, що вони пропускають те, що твердість NP - це нижня межа твердості проблеми, а не верхня межа їх твердості, як P або NP.
Мова L, яка є NP-твердою, означає, що вона вище мови в NP, і це. Тепер, якщо ви це розумієте, потрібно показати, що існують довільні складніші проблеми.