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