Моя інтерпретація питання полягає в тому, що запитує про можливості в релятивізованих світах . Припустимо, що в якомусь релятивізованому світі . Чи можемо ми вивести щось нетривіальне про часову складність проблем, повних NP? Аргумент Бейкер-Гілл-Соловий показує, що ми можемо «змусити» якусь проблему НП вимагати експоненціального часу, тому верхня межа, задана у питанні, є по суті оптимальною.P≠NP
Щодо нижньої межі, ми накреслимо нижче доказ того, що відносно якогось оракула . Якщо припустити, що накреслений доказ правильний, ми можемо також застосувати його до функцій, менших ніж , і це показує, що нижня межа, задана у питанні, також по суті є щільною.2 O ( log 2 n )NP=TIME(2O(log2n))2O(log2n)
Доказ ескіз. Ми побудуємо два оракули : перший поводиться як -повна проблема, а другий реалізує діагоналізацію Бейкера – Гілла – Солової. Складати обидва оракули в один оракул просто.T I M E ( 2 O ( log 2 n ) )O1,O2TIME(2O(log2n))
Oracle складається з усіх пар таким чином, що є машиною оракула Тьюрінга, яка приймає за час роботи при отриманні доступу до оракули обмежується входами довжиною не більше . (Це не кругле визначення.) ⟨ М , х ⟩ М х 2 - √O1⟨M,x⟩MxO1,O22√22log|x|√O1,O22log|x|√
Оракул визначається так само, як визначено оракул у Бейкері-Гіллі-Соловій: для кожної годинникової машини Oracle Turing машина працює , ми знаходимо деякий вхід довжина яка є "недоторканою", запустіть на для кроків, і для кожного запиту до розміру , ми відзначаємо, що цей ввід відсутній в (для інших запитів також відзначаємо, що введення немає , якщо ми вже не вирішили, що це в ). Запити до обробляються аналогічно (як неявні запити до M T = 2 o ( log 2 n ) n M 1 n T O 2 n O 2 O 2 O 1 O 1 , O 2 n O 2 2 √O2MT=2o(log2n)nM1nTO2nO2O2O1O1,O2менших розмірів, обробляються рекурсивно); зауважте, що такі запити ніколи не згадують рядки довжиною в , оскільки . Якщо машина приймає, ми відзначаємо всі інші рядки довжиною в як відсутні, інакше ми вибираємо деяку строку довжиною і ставимо її в .nO2nO2nO22logT√<nnO2nO2
Клас складається з усіх програм, запущених у часі , які роблять запити до розміром . Клас має вигляд , де , і так це міститься в класі всіх програм, що працюють в часі і роблять запити oracle розміром
. Останнє міститься у , оскільки для вирішення цього питання ми можемо використовувати . Це показує, що 2 2 O ( √PO1,O2O1,O22O(√22O(logn√)O1,O2NPO1,O2x↦∃| у| <nCφ(x,y)φ∈PO1,O22nC2O( √2O(logn√)NPO1,O2x↦∃|y|<nCφ(x,y)φ∈PO1,O22nCTIME(2log2nC)O1,O2O1NPO1,O2⊆TIME(2O(log2n))O1,O22O(logn√)TIME(2log2nC)O1,O2O1NPO1,O2⊆TIME(2O(log2n))O1,O2 .
Для іншого напрямку, нехай - мова, що складається з для кожного таким чином, щоб містив деякий рядок довжиною . За побудовою , , тоді як чітко . Це показує, що .1 n n O 2 n O 2 L ∉ T I M E ( 2 o ( log 2 n ) ) O 1 , O 2 L ∈ N P O 1 , O 2 N P O 1 , O 2 = T I M E ( 2 O ( log 2 n ) ) O 1L1nnO2nO2L∉TIME(2o(log2n))O1,O2L∈NPO1,O2NPO1,O2=TIME(2O(log2n))O1,O2