Оптимальні NP-рішення


12

Виправте NP-повну проблему пошуку, наприклад, форму пошуку SAT. Пошук Левіна забезпечує алгоритм L для вирішення X, який є оптимальним у певному сенсі. Зокрема, алгоритм - "Виконати всі можливі програми P у доопрацюванні на вході x , як тільки якийсь P повернеться відповісти y перевіряє, чи правильно". Оптимально в тому сенсі, що задана програма P, яка вирішує X із часовою складністю t PX{0,1}×{0,1}LXPxPyPX , тимчасова складність т л ( п ) з L задовольняєtP(n)tL(n)L

tL(n)<2|P|p(tP(n))

де - нерухомий многочлен, який залежить від точної моделі обчисленняp

може бути сформульована дещо сильніше. А саме, для кожного M { 0 , 1 } * іпрограми вирішенняз посиланнямпід час, тимчасової складністьзобмежені входи взадовольняєLM{0,1}QXMtQM(n)tLM(n)LM

tLM(n)<2|Q|q(n,tQM(n))

де - нерухомий многочлен. Найважливіша відмінність полягає в тому, що може бути, наприклад, поліном, навіть якщоqtQM(n)PNP

Очевидною "слабкістю" є великий фактор у цій межі. Неважко помітити, що якщо існує алгоритм, що задовольняє зв’язок тієї ж форми з замінений на многочлен утоді . Це тому, що ми можемо вважати, що є програмою, що вирішує певний екземпляр шляхом жорсткого кодування відповіді. Аналогічно, якщо можна замінити на субекспоненціальну функціюто порушується експоненціальна часова гіпотеза. Однак відповідь на наступне питання менш очевидна (для мене):L2|Q|2|Q||Q|P=NPQX2|Q||Q|

Якщо припустити , що експоненціальні гіпотези часу і інші добре відомі гіпотези (наприклад , невироджені полиномиальной ієрархії, існування односторонніх функцій) в разі необхідності, може бути алгоритм вирішення ст для кожного і програми , вирішуючи з обіцянкою в момент , тимчасова складність з обмежений входів задовольняєAXM{0,1}QXMtQM(n)tAM(n)AM

tAM(n)<f(|Q|)q(n,tQM(n))+g(|Q|)

де - поліном, - субекспоненціальний і довільнийqfg

Якщо відповідь позитивна, може поліноміальна? Яка швидкість росту (явно принаймні експоненціальна за ETH)? Якщо відповідь негативна, чи може існувати поліном якщо ETH помиляється, але ?fgfPNP

Відповіді:


12

Розглянемо наступний алгоритм (варіант алгоритму Левіна):

Запустіть перші алгоритмів паралельно. Додатково запустіть паралельно алгоритм грубої сили, який випробовує всі можливі рішення по одному. (Запускайте всі алгоритми з однаковою швидкістю.)n

Зупиніться, коли один з алгоритмів знайде рішення.

Розглянемо два випадки (з урахуванням вводу довжини ):xn

  • Q - один з перших алгоритмів. Тоді час роботи - .nO(ntQM(n))poly(n)

  • Q не є одним із перших алгоритмів (таким чином, ). Тоді час бігу обмежується часом виконання алгоритму грубої сили. Ми маємо, що час роботи .nn<2|Q|2nO(1)=22O(|Q|)

Маємо

tAM(n)poly(n)tQM(n)+22O(|Q|).

(Тут - многочлен, а - подвійна експоненція в ; ми можемо поліпшити залежність від , погіршивши залежністьf(n)g(n)ng(n)nf(n)n


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