Eu escreveria o seguinte como um comentário, mas era muito longo para caber.
Vamos primeiro descrever o significado de "algoritmos na classe com um oráculo para uma linguagem A." (A necessidade disso foi apontada por Tsuyoshi Ito). Usaremos a mesma convenção usada por Ladner e Lynch . A convenção é bem descrita por Bennett & Gill :C
pode ser definido de várias maneiras, dependendo da forma como a fita de consulta é tratado. Seguimos as convenções de Ladner e Lynch [LL]: A fita de consulta não é cobrada no espaço vinculado, mas para evitar que seja usada como fita de trabalho, a fita de consulta é unidirecional e somente para gravação e é apagada seguindo automaticamente cada consulta. (Simon [Si] trata a fita de consulta como uma das fitas de trabalho, uma fita de leitura / gravação bidirecional que é carregada no espaço limitado. A definição de Ladner-Lynch é menos restritiva e talvez mais natural, já que para um oráculo aleatórioA∈ L O G S P A C E ALOGSPACEAA∈LOGSPACEA vale com probabilidade 1 para [LL] mas não para [Si])
[LL] RE LADNER E NA LYNCH, Relativização de perguntas sobre computabilidade do espaço de log , Matemática. Systems Theory, 10 (1976), pp. 19-32.
[SIM] J. SIMON, sobre alguns problemas centrais na complexidade computacional , Tech. Representante TR 75-224, Departamento de Ciência da Computação, Cornell University, Ithaca, NY, 1975.
A definição padrão de classes de complexidade de máquinas Oracle é a seguinte: Seja B e C sejam classes de complexidade . Então, é uma classe de complexidade legítimo, definida como X = ⋃ L ∈ C B G . Aqui, B L representa a classe complexidade dos problemas de decisão solucionável por um algoritmo na classe B com um oráculo para uma linguagem L.X=BCX=⋃L∈CBLBL
Desde X é uma classe de complexidade legítimo, para qualquer classe de complexidade A, podemos falar de classes de complexidade e X A = ( B C ) A .AX=A(BC)XA=(BC)A
refere-se à classe de complexidade de problemas de decisão que podem ser resolvidos por um algoritmo de classe A, com um Oracle para qualquer língua L ' ∈ X = ⋃ L ∈ C B G . Em outras palavras, A XAXL′∈X=⋃L∈CBL .AX=⋃L′∈{⋃L∈CBL}AL′
refere-se à classe de complexidade de problemas de decisão que podem ser resolvidos por um algoritmo de classe X = ⋃ L ∈ C B G com um Oracle para qualquer língua L ' ∈ Uma . Em outras palavras, X A = ⋃ L ′ ∈ A X L ′ = ⋃XAX=⋃L∈CBLL′∈A .XA=⋃L′∈AXL′=⋃L′∈A(⋃L∈CBL)L′
Reivindicação: .(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.
Portanto, pode-se escrever .XA=⋃L′∈A(⋃L∈CBL)L′=⋃L∈C,L′∈A(BL′)L
Exemplo
Deixe . Sabemos que c O N P ⊆ X . Dando aos dois lados acesso do oráculo a N P , obtém-se:X=PNPcoNP⊆XNP .coNPNP⊆XNP=(PNP)NP
Epílogo
Uma discussão frutuosa com Tsuyoshi Ito revelou (para mim) que não é fácil relativizar duplamente uma aula de complexidade. De fato, mesmo definir um deles parece ser problemático. Eu definitivamente deveria estudar mais para ver se alguma definição satisfatória é dada. Enquanto isso, aprecio qualquer comentário que possa ser usado para resolver esse problema.