È noto se


10

L'inclusione inversa è ovvia, così come il fatto che qualsiasi linguaggio NP auto-riducibile in BPP è anche in RP. Questo è noto anche per le lingue NP non auto-riducibili?


2
Se fosse noto, dalle inclusioni e , ne conseguirebbe che o (o entrambi, essenzialmente a seconda della relazione tra e . Quindi penso che sia sicuro supporre che sia attualmente sconosciuto. Dal momento che ha un errore unilaterale, è facile vedere come è contenuto in , senza bisogno di auto-riduzione o di qualsiasi altra proprietà.R PB P P R PN P B P P = R P R P = N P B P P N P R P B P PRPBPPRPNPBPP=RPRP=NPBPPNPRPBPP
chazisop

4
Ciò che è noto è che N PB P PNPBPP implica NP = RP. @chazisop, dove hai capito che N PB P P = R PNPBPP=RP implica BPP = RP o NP = RP?
Emil Jeřábek,

1
Supponiamo di conoscere B P P N P R P ( 1 )B PPNPR P( 1 ) . Allora possiamo fare un'analisi caso: - Se B P P N PB PPNP , quindi da (1) N P R PNPR P , che con risultati noti implica N P = R PNP= R P . - Se N P B P PNPB PP , quindi da (1) B P P R PB PPR P , che con risultati noti implica B P PB PP= R PN P B P P B P P N P = R PNPB PPB PPNP= R P

4
Hai confuso i primi due casi. Ancora più importante, nel terzo caso generico, la tua conclusione è identica al presupposto, quindi l'intero argomento non realizza nulla. In particolare, non supporta l'affermazione errata nel tuo primo commento.
Emil Jeřábek,

1
L'assunto richiede solo il sottoinsieme, non l'uguaglianza. In ogni caso, il mio argomento (anche mal formattato e con errori), mostra che se sapessimo cosa viene chiesto, potremmo derivare relazioni di classe di complessità che sono attualmente problemi aperti. Inoltre, non riesco a vedere come il terzo caso sia più generico del resto: esclude esplicitamente la possibilità che una classe contenga l'altra, attualmente sconosciuta.
Chazisop,

Risposte:


7

Come con la maggior parte delle domande di complessità, non sono sicuro che ci sarà una risposta completa per molto tempo. Ma possiamo almeno dimostrare che la risposta non è relativizzante: esiste un oracolo relativo a quale disuguaglianza vale e uno relativo a cui vale l'uguaglianza. È abbastanza facile dare un oracolo rispetto al quale le classi sono uguali: qualsiasi oracolo che ha B P P = R P funzionerà (ad es. Qualsiasi oracolo relativo al quale "la casualità non aiuta molto"), così come qualsiasi oracolo che ha N PB P P (ad es. Qualsiasi oracolo rispetto al quale "la casualità aiuta molto"). Ce ne sono molti, quindi non mi preoccuperò delle specifiche.BPP=RPNPBPP

E 'un po' più impegnativo, anche se ancora abbastanza semplice, per la progettazione di un oracolo rispetto al quale si ottiene R PB P PN P . La costruzione sotto realtà fa un po 'meglio: per ogni costante c , c'è un oracolo rispetto alla quale v'è un linguaggio in c o R PU P che non è in R P T I M E [ 2 n c ] . Lo traccerò di seguito.RPBPPNPccoRPUPRPTIME[2nc]

Progetteremo un oracolo A che contiene stringhe della forma ( x , b , z ) , dove x è una stringa n -bit, b è un singolo bit e z è una stringa di bit di lunghezza 2 n c . Noi inoltre invia un linguaggio L A che sarà decisa da una c o R P macchina ed un U P macchina come segue:A(x,b,z)xnbz2ncLAcoRPUP

  • La macchina c o R P , sull'ingresso x , indovina z di lunghezza 2 | x | c casualmente, interroga ( x , 0 , z ) e copia la risposta.coRPxz2|x|c(x,0,z)
  • La macchina U P , sull'ingresso x , indovina z di lunghezza 2 | x | c , interroga ( x , 1 , z ) e copia la risposta.UPxz2|x|c(x,1,z)

Per far sì che le macchine sopra specificate rispettino effettivamente le promesse, abbiamo bisogno di A per soddisfare alcune proprietà. Per ogni x , una di queste due opzioni deve essere il caso:Ax

  • Opzione 1: Al massimo metà del z scelte ha ( x , 0 , z ) A e di zero z scelte avere ( x , 1 , z ) A . (In questo caso, x L A. )z(x,0,z)A z(x,1,z)AxLA
  • Opzione 2: Ogni z scelta ha ( x , 0 , z ) A e precisamente uno z scelta ha ( x , 1 , z ) A . (In questo caso, x L A. )z(x,0,z)A z(x,1,z)AxLA

Il nostro obiettivo sarà quello di specificare A che soddisfi queste promesse in modo tale che L A diagonali contro ogni macchina R P T I M E [ 2 n c ] . Per cercare di rendere breve questa risposta già lunga, lascerò cadere il macchinario di costruzione dell'oracolo e molti dettagli non importanti e spiegherò come diagonalizzare contro una macchina particolare. Correggi M una macchina di Turing randomizzata e lascia che x sia un input in modo da avere il pieno controllo sulla selezione di b e z in modo che ( x , b , zALARPTIME[2nc]Mxbz) A . Spezzeremo M su x .(x,b,z)AMx

  • Caso 1: Supponiamo che ci sia un modo per selezionare le z in modo che A soddisfi la prima opzione della sua promessa, e M abbia una scelta di casualità che accetta. Quindi impegneremo A in questa selezione. Quindi M non può contemporaneamente soddisfare la promessa R P e rifiutare x . Tuttavia, x L A . Così abbiamo diagonalizzata contro M .zAMAMRPxxLAM

  • Caso 2: Successivamente, supponiamo che il caso precedente non abbia funzionato. Mostreremo ora che allora M può essere costretto a rompere la promessa R P o rifiutare la scelta di A che soddisfa la seconda opzione della sua promessa. Questo diagonalizes contro M . Lo faremo in due passaggi:MRPAM

    1. Mostrano che per ogni scelta fissa r di M bit casuali s', M deve respingere quando tutti i suoi query della forma ( x , 0 , z ) sono in A e tutte le sue richieste della forma ( x , 1 , z ) non sono in a .rMM(x,0,z)A(x,1,z)A
    2. Dimostrare che siamo in grado di capovolgere una risposta ( x , 1 , z ) di A per qualche scelta di z senza influenzare la probabilità di accettazione del M di molto.(x,1,z)AzM

    In effetti, se iniziamo con A dal passaggio 1, la probabilità di accettazione di M è zero. A non soddisfa del tutto la seconda opzione della sua promessa, ma possiamo quindi capovolgere un po 'come nel passaggio 2 e lo farà. Dato che capovolgere il bit si fa sì che la probabilità di accettazione di M rimanga vicino allo zero, ne consegue che M non può accettare contemporaneamente x e soddisfare la promessa R P.AMAMMx

Resta da discutere i due passi nel caso 2:

  1. Fissare una scelta di bit casuale r per M . Simulare M utilizzando r come casualità e rispondere alle richieste affinché ( x , 0 , z ) A e ( x , 1 , z ) A . Si osservi che M rende al massimo 2 n c query. Dato che ci sono 2 2 n c scelte di z , possiamo correggere le scelte non conquistate di z da avere ( x, 0 , z ) A , e hanno A ancora soddisfare la prima opzione della sua promessa. Dato che non siamo riusciti a far funzionare il caso 2 per M , questo significa che M deve rifiutare tutte le sue scelte di casualità rispetto ad A , e in particolare su r . Ne segue che se selezioniamo A per avere ( x , 0 , z ) A e ( x , 1 , z ) A per ogni scelta di z, Poi per ogni scelta di bit casuale r , M respinge rispetto a A .

  2. Supponiamo che per ogni z , la frazione di bit casuali per cui M query ( x , 1 , z ) è almeno 1 / 2 . Quindi il numero totale di query è almeno 2 2 n c 2 2 n c / 2 . D'altra parte, M fa al massimo 2 2 n c 2 n c domande su tutti i suoi rami, una contraddizione. Quindi c'è una scelta di z in modo che la frazione di bit casuali per cui Mle query ( x , 1 , z ) sono inferiori a 1/2. Lanciando il valore di A su questa stringa incide quindi la probabilità di accettazione M di meno di 1 / 2 .


Questa risposta è piuttosto lunga e probabilmente trarrebbe beneficio da un collegamento a una risorsa esterna che fornisce una migliore spiegazione delle tecniche coinvolte. Se qualcuno ne conosce uno, lo includerò felicemente.
Andrew Morgan,

Potrebbe essere nel sondaggio di Ko.
Kaveh,

1
@Kaveh: ho guardato questo sondaggio (è quello a cui ti riferisci, giusto?), Ma non ho notato molto che sembra immediatamente rilevante. La maggior parte dei risultati sembrava che avrebbero cadere in caso di provare B P PN P = R P . Un punto notevole è che P = R P rispetto a un oracolo casuale, e quindi otteniamo B P PN P = R P rispetto a un oracolo casuale.
Andrew Morgan,

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.