Чому це не визначена проблема в НП?


25

Очевидно, що в НП немає жодних невирішених проблем. Однак, згідно з Вікіпедією :

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

[...]

Проблема, як кажуть, є в NP тоді і тільки тоді, коли існує верифікатор проблеми, що виконується в поліноміальний час.

Тепер розглянемо наступну проблему:

Враховуючи рівняння Діофантіна , чи має це цілі рішення?

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

(Аналогічно, здається, що проблема зупинки повинна бути в NP, оскільки "так" -розв’язання "ця програма зупиняється на N-му кроці" можна перевірити на N кроках.)

Очевидно, що в моєму розумінні щось не так, але що це?


1. Майте на увазі, що визначення, яке ви цитуєте, стосується проблем з рішенням. 2. Щодо вашого прикладу Діофантіна, ви не стверджуєте, що в кожній системі існує поліном, пов'язаний з розміром розчинів, правда?
Дмитро Чубаров

@Dmitri: Е, так, я це стверджую. Розмір рішення точно такий же, як і розмір задачі - якщо є N невідомих, рішення містить N цілих чисел. І це є проблемою , рішення - ціле рішення (потрібно перевірити «так» випадок) буде його сертифікат .
BlueRaja - Danny Pflughoeft

19
Питання в тому, наскільки великі затворники
Артем Казнатчеєв

10
@ BlueRaja-DannyPflughoeft, якщо у вас є нескінченний алфавіт для кодування ваших цілих чисел, то ви вже не перебуваєте в стандартній установці теорії складності. З кінцевим алфавітом розмір кодування зростає зі значенням цілого числа.
Дмитро Чубаров

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

Відповіді:


10

Еквівалентне визначення НП полягає в тому, що він складається з усіх проблем, які можна вирішити (не просто перевірити) в поліноміальний час недетермінованою машиною Тюрінга. Відомо, що НТМ не є більш потужними, ніж ТМ, в тому сенсі, що набір задач, які можна вирішити за допомогою НТМ, ідентичний набору задач, що вирішуються ТМ, тому чітко за цим визначенням не може бути жодних невирішених проблем в НП.

Щоб продемонструвати, що два визначення NP є рівнозначними, враховуючи існування детермінованого верифікатора, ви можете продемонструвати, що існує недетермінований рішення, і навпаки.

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

Якщо у вас є недетерміноване рішення, то для кожного прийнятого обчислення ви можете записати шлях вибору, прийнятий рішенням, щоб досягти стану прийняття. Оскільки розв'язувач проходить у поліноміальний час, цей шлях буде мати максимум довжину полінома. І детермінованому ТМ легко перевірити, що такий шлях є дійсним шляхом через NTM до стану прийняття, тому такі шляхи утворюють сертифікати для поліномічної перевірки часу для проблеми. Таким чином, існує детермінований верифікатор для кожного недетермінованого рішення.

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


Коли ви стверджуєте, що для проблеми зупинки існує верифікатор, сертифікат, про який ви говорите, - це деяке кодування (TM, I, N), де TM зупиняється на введенні I на N кроках. Це дійсно можна перевірити за N кроків, але розмір сертифіката не є многочленом розміру входу (TM, I) до вихідної проблеми (проблема зупинки); N може бути довільно великим (незалежно від кодування). Якщо ви спробуєте перетворити таку перевірку на недетерміновану рішення, ви отримаєте дещо цікаву машину. Ви повинні мати змогу довести, що при запуску (TM, I) для TM, який не відповідаєзупинка на вході I не існує жодних шляхів, що не зупиняються через машину, але також, що для будь-якого шляху, що веде до стану зупинки, завжди є ще один довший шлях (відповідний здогаду про більший N), і, отже, немає обмежених обмежень на час його виконання. По суті, це тому, що існує нескінченний простір, який потрібно вивчити за допомогою початкової недетермінованої здогадки. Перетворення такої NTM в детерміновану TM призводить до однієї з тих машин, які ні циклічно, ні зупиняються на деякому вході. Насправді не існує NTM, який би вирішив проблему зупинки, і тому немає верифікатора, який би працював на сертифікатах із обмеженим розміром.

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

З цієї причини мені легше міркувати про визначення NTM NP. Існують верифікатори проблем, які не можна визначити (тільки не ті, які працюють на сертифікатах, які мають розмір полінома, пов'язаний з розміром вхідного сигналу до вихідної проблеми). Насправді будь-яка TM, яка розпізнає, але не вирішує якусь мову, може бути легко перетворена в перевіряючий для тієї ж мови.

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


26

Я думаю, ви неправильно зрозуміли, що означає розв'язати діофантинове рівняння, і теорему про нерозбірливість Матіясевича .

Sf(n;x1,...,xk)nSx1xkf(n;x1,...,xk)=0. Зокрема, проблема зупинки є типовим набором ПЕ, і тому вирішення вищезазначеної проблеми не можна визначити.

x1,...xk

x1,...,xknlogn

NPp(N)NNPp(N)


Звичайно, я розумію, що означає «розв’язати діофантинове рівняння» - ви знайдете числа, які задовольняють рівнянню. Я не бачу, чому теорему про нерозбірливість Матіясевича чи рекурсивно перелічені множини потрібно вносити в дискусію. Але я думаю, що останній абзац міг би це пояснити ...
BlueRaja - Danny Pflughoeft

1
Хоча ця нова редакція пояснює це - це також пояснює, чому проблема зупинки не в NP, оскільки кроки, необхідні для зупинки, можуть бути довільно великими. Спасибі!
BlueRaja - Danny Pflughoeft

Моя запропонована редакція полягала в тому, щоб видалити перші два абзаци. Перші два абзаци пояснюють, чому десяту проблему Гільберта не можна визначити, що є абсолютно дотичним до питання; вони просто відволікають решту відповіді (що в іншому випадку чудова відповідь!) .
BlueRaja - Danny Pflughoeft

@ BlueRaja-DannyPflughoeft якщо перший абзац образив тебе, то я можу його зняти (хоча ти запитав "що не так з моїм розумінням?"). Другий абзац необхідний для встановлення проблеми більш формально, оскільки ви не ставитеся до свого питання.
Артем Казнатчеєв

3
@ BlueRaja-DannyPflughoeft Найкраще, якщо питання та відповіді є самостійними. Мій другий абзац встановлює проблему і пояснює, що означає не можна визначити цю проблему. Мій третій параграф дає швидку відповідь. Мій четвертий та п'ятий абзаци розширюють про це детальніше. Наскільки я можу сказати, усі абзаци потрібні.
Артем Казнатчеєв

8

Ви повинні були прокрутити до формального визначення :

LpqM

  • xMp(|x|)(x,y)
  • xLyq(|x|)M(x,y)=1
  • xLyq(|x|)M(x,y)=0

Тобто верифікатор повинен працювати і над нерозв’язаними рішеннями. Десь там невдалі проблеми (у вашому випадку обмеження довжини кандидатів на рішення, ймовірно, не виконано), як це очевидно в більш чіткому визначенні (у сенсі обчисленості) :

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


"верифікатор також повинен працювати над не-рішеннями" - якщо ви говорите, що перевіряючий повинен відмовитися від не-рішень, це вже є. Якщо ви стверджуєте, що верифікатор повинен мати можливість перевірити відповіді "ні", це неправильно - це було б спільним NP . І мені вже відомо друге визначення, але мене розгубило те, як воно може бути рівнозначним першому, оскільки одне визначення, здається, визнає проблему у питанні, а інше - ні.
BlueRaja - Danny Pflughoeft

@ BlueRaja-DannyPlughoeft: Моє зауваження: перевіряючі повинні мати можливість спростовувати не рішення. Якщо вам це відомо, будь ласка, відредагуйте своє запитання відповідно; це робить вас виглядати досить невідомим.
Рафаель

Тривіально очевидно, що верифікатор вже спростовує нерозв’язання: просто підключіть числа до рівняння і подивіться, чи він утримується. Боюся, я не розумію, до чого ти намагаєшся звернутися.
BlueRaja - Danny Pflughoeft

@ BlueRaja-DannyPlughoeft: "Визначення", яке ви цитуєте, не визначає цю поведінку.
Рафаель

-1

Я намагаюся надати більше деталей для моєї вище відповіді.

Насправді це питання є проблемою дилеми.

З одного боку, задача рівняння Діофантіна (DEP) не може бути визначена за теоремою Матієсевича (теорема Матієсевича відповідає десятою задачею Гільберта, а проблема зупинки Тьюрінга відповідає на узагальнення десятої задачі Гільберта, тобто на проблему Енштайдунгс); але, з іншого боку, в НП не існує жодної невирішеної проблеми згідно з визначенням NP (визначається та перевіряється).

Тобто DEP не в NP, або DEP в NP. І те й інше стосується визначення NP.

Якщо DEP не в NP, це означає, що проблеми в NP (NDTM = NonDeterminstic Turing Machine) вирішувані та перевіряються, тобто ми приймаємо P = NP (NDTM).

Якщо DEP знаходиться в NP, то NP (NTM = Non Turing Machine) містить рішення, які можна визначити і не визначити, очевидно, що їх можна перевірити, тому можна вирішити, тому проблема полягає в тому, чи можна визначити невизначне? Насправді, це відома проблема П проти НП. Безумовно, невизначне неможливо перевірити, тому NP відповідає NTM (Non Turing Machine) замість NDTM (NonDeterminstic Turing Machine).

Виходячи з передумови DEP знаходиться в NP (NTM), ми вважаємо, що NP (NTM) є недетермінованою проблемою (не визначимо), а поточне визначення NP (NDTM, яке можна визначити і перевірити) втратило цей недетермінізм (не визначимо), так ми вважаємо, що це потрібно сумніватися.


1
Ні, невирішеність DEP (десята проблема Гільберта) не була показана до 1970 року Матієсевичем. Проблема Entscheidungs ​​не є десятою проблемою Гільберта; стосується обгрунтованості формул логіки першого порядку. І, знову ж таки, проблема P vs. NP абсолютно не є проблемою того, чи можна визначити невирішені проблеми.
Девід Річербі

1
Якщо ви хочете надати більше деталей, ви повинні відредагувати оригінальну публікацію.
Том ван дер Занден

@DavidRicherby Зауважимо, що відповідь, яку дає Бен: «набір задач, які можна вирішити за допомогою NTM, ідентичний набору задач, які можна вирішити за допомогою TM». Якраз у цьому сенсі я думаю, що визначення NP плутає P з NP, і це призводить до P = NP (NDTM). Якщо це визначення потрібно поставити під сумнів, то інші сумніви, зроблені з цього визначення, такі як еквівалентність детермінованого верифікатора та недетермінованого рішення, також повинні бути поставлені під сумнів.
Ю Лі

@YuLi "це призводить до P = NP (NDTM)." Я поняття не маю, що ти маєш на увазі під цим. Крім того, я не бачу доречності вказувати на те, що TM та NTM визначають однакові мови. Якби вони не вирішили одні й ті ж мови, NTM були б абсолютно необгрунтованою моделлю обчислення, і важко уявити, що нам би було байдуже, що вони можуть обчислити за багаточлен. У теорії складності ми беремо більш точний погляд і запитуємо про необхідні обчислювальні ресурси, а визначення NP зовсім не плутає це.
Девід Річербі

@DavidRicherby Спасибі, я змінив свою відповідь згідно з вашим зауваженням, щоб уточнити співвідношення проблеми Entscheidungsproblem і десятої проблеми Гільберта. Щодо питання про поточне визначення НП, важко обговорити в декількох словах. Мета моєї відповіді просто , щоб викликати деякі роздуми про цю основної теми, ...
Ю Лі

-2

Ми вважаємо, що дилема, яку ви поставили щодо рівняння Діофантіна, є дуже значною, оскільки вона виявляє щось ненормальне в нинішньому визначенні NP: - Проблема, як кажуть, є в NP тоді і лише тоді, коли існує верифікатор проблеми, що виконується в поліномії час.

Щодо визначення NP, то це можна простежити до 60-х років, де було виявлено велику кількість застосовних та значущих проблем, щодо яких не було знайдено поліноміальних алгоритмів для їх вирішення, щоб визнати ці проблеми з тих проблем, які можна вирішити в поліноміальний час (P), була висунута концепція NP.

Однак, поточне визначення NP, визначене як перевірене в поліноміальний час, плутає NP з P, оскільки проблема в P також може бути перевірена в поліноміальний час. Іншим словом, таке визначення призводить до втрати суті NP, «недетермінізму». Отже, це спричиняє серйозні неоднозначності в розумінні НП, наприклад, ваша дилема: за своєю природою проблема рівняння Діофантіна не може бути вирішена; але за визначенням NP це вирішимо, ...

На нашу думку, складність у вирішенні «P проти NP» полягає в першу чергу на рівні пізнання, тому, якщо ми сподіваємося зрозуміти «P проти NP», нам потрібно спочатку запитати: що таке NP?


4
Це, здається, є думкою про визначення НП , а не відповіддю на запитання. Визначення NP просто чудове. Це не плутає P з NP ; швидше, він визнає, що P - це підмножина NP . Для мене було б дуже неприродно, якби Р не був підмножиною NP . НП - це клас проблем, які можна вирішити в межах певних ресурсів. Це обов'язково включає цілу купу легких проблем ( P ), які можна вирішити, не наближаючись до межі наявних ресурсів.
Девід Річербі

@DavidRicherby P і NP мають спільну властивість «перевіряти сертифікат у поліноміальний час», але ця властивість не є суттю NP. Якщо ця властивість використовується для визначення NP, то P - це підмножина NP, а NP має P як його підмножина (визначається) та сама (не визначається). Тому варто задатися питанням, чи NP визначається чи не визначається? Як і вищевикладена дилема: чи не можна визначити рівняння Діофантіна чи вирішити? Так що моя відповідь повинен запропонувати , щоб дослідити цю дилему з точки зору визначення НП: перевіряється, не піддається розв'язанню є непроверяемим!
Ю. Лі

Проблеми в NP вирішуються за визначенням: NP - це клас проблем, вирішений недетермінованими машинами Тьюрінга. Неважко довести, що це точно той самий набір проблем, які мають сертифікати довжини полінома, які можна перевірити в поліноміальний час. Якщо ви переживаєте, що проблеми в НП можуть бути вирішені, то ви щось неправильно зрозуміли.
Девід Річербі

Так, я переживаю, що проблеми в НП можуть бути не вирішені. Ви говорите про еквівалентність двох визначень NP: NP - це клас проблем, вирішений недетермінованими машинами Тьюрінга; NP - клас задач, що мають сертифікати довжини полінома, перевірені в поліноміальний час. Я сумніваюся в цій еквівалентності, тому що один стосується існування алгоритму для вирішення проблеми, а інший - про існування рішення для задачі. Дилема щодо рівняння Діофантіна може бути безпосередньо пов'язана з цією еквівалентністю (див. Більш детальну інформацію про мій аргумент: arxiv.org/abs/1501.01906 ).
Ю Лі

2
@YuLi Еквівалентність двох визначень NP настільки проста, що її викладають на уроках теорії складності студентів. Я пропоную не завантажувати в ArXiv, якщо ви не розумієте основ цього поля.
Девід Річербі
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.