Moja interpretacja tego pytania polega na pytaniu o możliwości w relatywizowanych światach . Załóżmy, że w jakimś relatywizowanym świecie . Czy możemy wydedukować coś nietrywialnego na temat złożoności czasowej problemów związanych z NP-zupełnością? Argument Baker – Gill – Solovay pokazuje, że możemy „zmusić” jakiś problem NP do czasu wykładniczego, więc górna granica podana w pytaniu jest zasadniczo optymalna.P≠NP
Jeśli chodzi o dolną granicę, szkicujemy poniżej dowód, że w odniesieniu do jakiejś wyroczni, . Zakładając, że naszkicowany dowód jest poprawny, możemy go również zastosować do funkcji mniejszych niż , co pokazuje, że dolna granica podana w pytaniu jest również zasadniczo ścisła.2 O ( log 2 n )NP=TIME(2O(log2n))2O(log2n)
Szkic próbny. Konstruujemy dwa wyrocznie : pierwszy zachowuje się jak -kompletny problem, a drugi implementuje diagonalizację Baker – Gill – Solovay. Łatwo jest spakować obie wyrocznie w jedną wyrocznię.T I M E ( 2 O ( log 2 n ) )O1,O2TIME(2O(log2n))
Wyrocznia składa się ze wszystkich par dzięki czemu jest wyrocznią maszyną Turinga, która akceptuje w czasie wykonywania po uzyskaniu dostępu do wyrocznie ograniczone do danych wejściowych o długości maksymalnie . (To nie jest okrągła definicja). ⟨ M , x ⟩ M x 2 2 √O1⟨M,x⟩MxO1,O22√22log|x|√O1,O22log|x|√
Wyrocznia jest zdefiniowana w taki sam sposób, jak wyrocznia zdefiniowana w Baker – Gill – Solovay: dla każdej taktowanej wyroczni maszyny Turinga pracującej w czasie , znajdujemy pewne dane wejściowe długość która jest „nietknięta”, uruchom na dla kroków, a dla każdego zapytania do o rozmiarze zaznaczamy, że to wejście nie jest w (w przypadku innych zapytań zaznaczamy również, że wejścia tam nie ma , chyba że już zdecydowaliśmy, że jest w wersji ). Zapytania do są obsługiwane podobnie (jak dorozumiane zapytania do 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,O2mniejszego rozmiaru, obsługiwane rekurencyjnie); zauważ, że takie zapytania nigdy nie wspominają o ciągach o długości w , ponieważ . Jeśli maszyna zaakceptuje, wszystkie pozostałe ciągi o długości w jako brakujące, w przeciwnym razie wybieramy jakiś ciąg o długości i umieszczamy go w .nO2nO2nO22logT√<nnO2nO2
Klasa składa się ze wszystkich programów działających w czasie , wykonując zapytania do o rozmiarze . Klasa ma postać , gdzie , a więc jest zawarte w klasie wszystkich programów działających w czasie i wykonujących zapytania Oracle o rozmiarze
. Ten ostatni jest zawarty w , ponieważ możemy użyć do podjęcia decyzji. To pokazuje że 2 2 O ( √PO1,O2O1,O22O(√22O(logn√)O1,O22O(logn√)NPO1,O2x↦∃|y|<nCφ(x,y)φ∈PO1,O22nC2O(logn√)TIME(2log2nC)O1,O2O1NPO1,O2⊆TIME(2O(log2n))O1,O2 .
Dla drugiego kierunku niech będzie językiem, który składa się z dla każdego tak że zawiera jakiś ciąg długości . Konstruując , , podczas gdy wyraźnie . To pokazuje, że .L1nnO2nO2L∉TIME(2o(log2n))O1,O2L∈NPO1,O2NPO1,O2=TIME(2O(log2n))O1,O2