Chciałbym napisać następujący komentarz, ale było to zbyt długie, aby zmieściło się w nim.
Najpierw opiszmy znaczenie „algorytmów w klasie z wyrocznią dla języka A.” (Potrzeba tego została wskazana przez Tsuyoshi Ito). Będziemy korzystać z tej samej konwencji, z której korzystają Ladner i Lynch . Konwencja jest dobrze opisana przez Bennett & Gill :C
można zdefiniować na różne sposoby, w zależności od tego, jak obsługiwana jest taśma zapytania. Przestrzegamy konwencji Ladnera i Lyncha [LL]: Taśma zapytania nie jest obciążana ograniczeniem miejsca, ale aby nie była używana jako taśma robocza, taśma zapytania jest jednokierunkowa i tylko do zapisu i jest usuwana automatycznie po każdym zapytaniu. (Simon [Si] traktuje taśmę zapytania jako jedną z taśm roboczych, dwukierunkową taśmę do odczytu / zapisu obciążoną ograniczeniem przestrzeni. Definicja Ladner-Lynch jest mniej restrykcyjna i być może bardziej naturalna, ponieważ dla losowej wyroczniA∈ L O G S P A C E ALOGSPACEAA∈LOGSPACEA trzyma z prawdopodobieństwem 1 dla [LL], ale nie dla [Si])
[LL] RE LADNER I NA LYNCH, Relatywizacja pytań o obliczalność przestrzeni logów , Matematyka. Systems Theory, 10 (1976), s. 19–32.
[Si] J. SIMON, On Some Central Problems in Computational Complexity , Tech. Rep TR 75-224, Wydział Informatyki, Cornell University, Ithaca, NY, 1975.
Standardowa definicja klas złożoności maszyn Oracle jest następująca: Niech B i C będą klasami złożoności . Następnie jest uzasadniony klasa złożoności, określone jako X = ⋃ L ∈ C B L . Tutaj B L reprezentuje klasę złożoności problemów decyzyjnych rozwiązanych przez algorytm w klasie B z wyrocznią dla języka L.X=BCX=⋃L∈CBLBL
Ponieważ X jest uzasadniony klasa złożoności, dla każdej klasy A złożoność, możemy mówić o klasami złożoności i X A = ( B C ) A .AX=A(BC)XA=(BC)A
odnosi się do klasy złożoności problemów decyzyjnych rozwiązany przez algorytm w klasie A z Oracle dla dowolnego językaAX . Innymi słowy, A X = ⋃ L ′ ∈ { ⋃ L ∈ C B L } A L ′ .L′∈X=⋃L∈CBLAX=⋃L′∈{⋃L∈CBL}AL′
odnosi się do klasy złożoności problemów decyzyjnych możliwych do rozwiązania przez algorytm z klasy X = ⋃ L ∈ C B L z wyrocznią dla dowolnego języka L ′ ∈ AXAX=⋃L∈CBLL′∈A . Innymi słowy, .XA=⋃L′∈AXL′=⋃L′∈A(⋃L∈CBL)L′
Zastrzeżenie: .(BL1)L′∪(BL2)L′=(BL′)L1∪L2
Side Note: Since it's 3:00 AM now, I'm too sleepy to check the validity of the above claim! I think it's valid & elementary to prove, yet it's nice to see the actual proof.
Dlatego można napisać .XA=⋃L′∈A(⋃L∈CBL)L′=⋃L∈C,L′∈A(BL′)L
Przykład
Niech . Wiemy, żeco,NP⊆X. Dając dostęp zarówno boki ORACLENP, dostaje:CON P N P ⊆ X N P =( P N P ) N P .X=PNPcoNP⊆XNPcoNPNP⊆XNP=(PNP)NP
Epilog
Owocna dyskusja z Tsuyoshi Ito ujawniła (dla mnie), że podwójna relatywizacja klasy złożoności nie jest łatwa. W rzeczywistości nawet zdefiniowanie jednego wydaje się problematyczne. Powinienem zdecydowanie przestudiować więcej, aby zobaczyć, czy kiedykolwiek zostanie podana zadowalająca definicja. Tymczasem doceniam każdy komentarz, który można wykorzystać do rozwiązania tego problemu.