Нижче я трохи розкриваю питання у відповіді Петра, намагаючись здійснити видалення кількісного показника на більш ніж постійну кількість кроків, щоб побачити, де воно не вдається, і якщо щось можна врятувати від такої спроби.
Спробуємо посилити P = N PP=NP більше, ніж постійне число разів.
Припустимо , що P = N PP=NP . Тому існує поліноміальна машина часу, яка вирішує Ext-Circuit-SAT (чи є задовольняюче розширення для даної схеми та часткове призначення її входів?).
Більш формально, ми маємо багаточастовий алгоритм AA з поліноміальним часом виконання p ( n ) ∈ p o l y ( n )p(n)∈poly(n) st
Враховуючи булеву схему φφ та часткове призначення ττ на входи,
AA повертає "так", якщо є розширення τ,τ яке задовольняє φφ , і повертає "ні" в іншому випадку.
Щоб продовжувати постійно, нам потрібно ефективно зняти кількісний показник. Ми можемо це зробити тому, що теорема Кука-Левіна - це конструктивна теорема, вона фактично дає алгоритм багаточленного часу C o o kCook st
Даний DTM M, щоM приймає два входи і три одинарні числа nn , mm і tt ,
C o o k ( M , n , m , t )Cook(M,n,m,t) повертає булеву схему розміром O ( t 2 ),O(t2) що імітує MM на входах довжини ( n , m )(n,m) для tt кроків.
Спробуємо використати їх для розширення аргументу для P = P HP=PH для отримання алгоритму, що розв'язує TQBF (власне TQBCircuit, тобто Повністю кількісна задача булевої схеми).
Ідея алгоритму полягає в наступному: ми неодноразово використовуємо C o o kCook на AA для видалення кванторів з заданої кількісної схеми. Існує лінійна кількість кванторів, тому ми сподіваємося отримати алгоритм багаточленного часу (у нас є алгоритм з поліноміально багатьма кроками, використовуючи підпрограму поліноміального часу C o o kCook ). В кінці цього процесу усунення кількісних показників у нас з'явиться схема, що не має кількісних показників, яку можна оцінити в поліноміальному часі (проблема значення схеми знаходиться в PP , нехай C VCV - алгоритм багаточленного часу для обчислення значення ланцюга даної схеми) .
Однак ми побачимо, що ця ідея не спрацьовує (з тієї ж причини, яку зазначив Петро).
Отриманий алгоритм виглядає багаточленним часом: у нас є багаточлени багаточлена, кожен крок обчислюється багаточленним часом. Однак це невірно, алгоритм не є полиномним часом.
Використання підпрограм поліноміального часу в алгоритмі поліноміального часу - це поліноміальний час. Проблема полягає в тому, що в цілому це не повинно бути правдою, якщо значення, повернені підпрограмми, не мають розмір полінома в початковому вході, і ми припускаємо, що ми виконуємо завдання щодо значень, що повертаються з підпрограм. (У моделі TM нам слід зчитувати вихід будь-якої поліноміальної підпрограми часу побітно.) Тут розмір повернутого значення з алгоритму C o o kCook збільшується (може бути потужність розміру вхідного даного входу , точна потужність залежить від часу роботи AA і становить приблизно p 2 ( | i n p u t | )p2(|input|), тому оскільки ми знаємо, що AA не може бути меншим за лінійний час, | o u t p u t | |output|принаймні | я п п у т | 2|input|2 ).
Проблема схожа на простий код нижче:
- Дано хx ,
- Нехай n = | х | n=|x|,
- Нехай y = xy=x ,
- Для яi від 11 до nn робити
- Нехай y = y | у | y=y|y|, (тобто з'єднання | y ||y| копій yy )
- Повернення у
Кожен раз, коли ми виконуємо y = y | у | y=y|y|квадратний розмір уy . Після nn виконань у нас буде y,y яке дорівнює x 2 nx2n і має розмір n 2 nn2n , очевидно, не є многочленом розміру вхідного сигналу.
Припустимо, що ми розглянемо лише кількісні формули з чергуванням k ( n )k(n) квантових оцінок (де nn - загальний розмір кількісної формули).
Припустимо, що AA працює в часі pp (наприклад, лінійний час, який поки не виключається), і, можливо, є більш ефективним алгоритмом C o o kCook , що виводить меншу схему розміром l ( t )l(t) замість t 2t2 , тоді ми отримуємо алгоритм для ExtCircuitSat, який працює за часом ( l ∘ p ) O ( k ) ( n ) = l ( p ( l ( p ( … ( l ( p (n ) ) ) ) ) ) ) ⏟ O(k) композиції(l∘p)O(k)(n)=l(p(l(p(…(l(p(n)))))))O(k) compositions . Навіть у випадку, коли іl,lіppбули лінійними (але із сумарним коефіцієнтомa≥2a≥2), ми отримаємо алгоритм, який працює в часіΩ(n2k(n))Ω(n2k(n))і якщоk(n)=Θ(n)k(n)=Θ(n)це будеΩ(n2n)Ω(n2n) подібний до алгоритму грубої сили (і навіть це ґрунтувалося на припущенні, що Кук-Левін може бути виконаний на алгоритмах, що отримують схеми лінійного розміру в час роботи алгоритму).