L'algoritmo di Grover e la sua relazione con le classi di complessità?


12

Mi sto confondendo con l'algoritmo di Grover e la sua connessione con le classi di complessità.

L'algoritmo di Grover trova ed elemento in un database di N = 2 n (tale che f ( k ) = 1 ) di elementi con kN=2nf(k)=1 chiamate all'oracolo.

N=2n/2

Quindi abbiamo il seguente problema:

Problema: trovare una nel database in modo tale che f ( k ) = 1kf(k)=1

Ora sono consapevole che questo non è un problema di decisione e quindi le nostre normali definizioni di classe di complessità , NP ecc. Non si applicano davvero. Ma sono curioso di sapere come definiremmo la classe di complessità in questo caso - e che tempo fa rispetto a N o n ?PNPNn

Inoltre, l'algoritmo di Grover può essere utilizzato come subroutine. Ho letto in diversi punti che l'algoritmo di Grover non cambia la classe di complessità un problema: esiste un modo euristico di vederlo.


Prendi in considerazione l'utilizzo \text{}per scrivere nomi di classi di complessità. Ad esempio \text{NP}o\text{BQP}
Sanchayan Dutta,

1
Non sono sicuro di cosa stai chiedendo qui. Gli algoritmi non possono essere membri di classi di complessità, poiché le classi di complessità contengono problemi computazionali. Ti stai chiedendo se il problema indicato nella domanda è contenuto in una classe di complessità "nota" o completo per esso? Stai chiedendo se la "scoperta" dell'algoritmo di Grover porta a un teorema sulla relazione tra classi di complessità conosciute? Si prega di precisare.
Lucertola discreta,

Risposte:


6

Sommario

  • Esiste una teoria della complessità dei problemi di ricerca (nota anche come problemi di relazione). Questa teoria include classi chiamate FP , FNP e FBQP che si occupano effettivamente di risolvere i problemi di ricerca con diversi tipi di risorse.
  • Da problemi di ricerca, è anche possibile definire problemi di decisione, che consente di mettere in relazione i problemi di ricerca con le normali classi P , NP e BQP .
  • Indipendentemente dal fatto che si consideri la versione di ricerca della versione decisionale del problema, il modo in cui si considera l'input per il problema di Ricerca non strutturata determinerà quali limiti superiori è possibile applicare alla sua complessità.

La complessità dei problemi relazionali

Come notate, il problema di Grover risolve un problema di ricerca , che nella letteratura sulla complessità è talvolta noto anche come problema di relazione . Cioè, è un problema del seguente tipo:

La struttura di un problema di ricerca generale.
Dato un input e una relazione binaria R , trova una y tale che R ( x , y ) vale.xRyR(x,y)

Le classi di complessità FP e FNP sono definite in termini di tali problemi, dove in particolare uno è interessato al caso in cui ha una lunghezza al massimo di una funzione polinomiale della lunghezza di x , e dove la relazione R ( x , y ) può essa stessa essere calcolato in un periodo di tempo limitato da un polinomio nella lunghezza di ( x , y ) .yxR(x,y)(x,y)

In particolare: l'esempio del problema di "ricerca nel database" per il quale viene generalmente applicata la ricerca di Grover può essere descritto come segue.

Ricerca non strutturata.
Dato un oracolo di input tale che O | un | b = | un | b f ( a ) per alcune funzioni f : { 0 , 1 } m{ 0 , 1 } , trova una y tale che O | y | 0 = | y | 1O:H2m+1H2m+1O|a|b=|a|bf(a)f:{0,1}m{0,1}y .O|y|0=|y|1

Qui, l'oracolo stesso è l'input al problema: gioca il ruolo di , e la relazione che stiamo calcolando è R ( O , y )x

R(O,y)[O|y|0=|y|1][f(y)=1].

Supponiamo che, anziché un oracolo, ci venga fornito un input specifico che descriva come calcolare la funzione f , possiamo quindi considerare a quale classe di complessità appartiene questo problema. Come indicato , la classe di complessità appropriata che otteniamo dipende da come viene fornito l'input.xfpyramids

  • Supponiamo che la funzione di input sia fornita come database (poiché il problema è talvolta descritto), in cui ciascuna voce del database ha una certa lunghezza . Se n è la lunghezza della stringa x utilizzata per descrivere l'intero database , il database ha voci N = n / . È quindi possibile effettuare una ricerca esaustiva dell'intero database interrogando ciascuna delle N voci in sequenza e fermarsi se troviamo una voce y tale che f ( y ) = 1 . Supponendo che ogni query nel database richieda qualcosa come O (nxN=n/Nyf(y)=1 time, questa procedura si interrompe nel tempo O ( N log N ) O ( n log n ) , quindi il problema è inFP.O(logN)O(logn)O(NlogN)O(nlogn)

    Supponendo che la ricerca del database possa essere eseguita in una sovrapposizione coerente, l'algoritmo di Grover consente che questo problema si trovi in FBQP . Tuttavia, come FP  ⊆  FBQP , la classica ricerca esaustiva dimostra anche che questo problema si trova in FBQP . Tutto ciò che otteniamo (fino a registrare i fattori) è un quadratico accelerato a causa di un risparmio nel numero di query del database.

  • Supponiamo che la funzione di input sia descritta in modo succinto, da un algoritmo del tempo polinomiale che prende una specifica e un argomento y { 0 , 1 } me calcola O : H m + 1 2x{0,1}ny{0,1}mO:H2m+1H2m+1su base standard , dove m può essere molto più grande di Ω ( log n ) . Un esempio potrebbe essere dove x specifica la forma CNF di una funzione booleana f : { 0 , 1 } m{ 0 , 1 } per m O ( n ) , nel qual caso possiamo valutare in modo efficiente f ( y ) su un input y |y|bmΩ(logn)xf:{0,1}m{0,1}mO(n)f(y) quindi valutare in modo efficiente O su stati di base standard. Questo pone il problema inFNP.y{0,1}mO

    Data una procedura per valutare da ( x , y ) nel tempo O ( p ( n ) ) per n = | x | , L'algoritmo di Grover risolve il problema della ricerca non strutturata di O nel tempo O ( p ( n ) f(y)(x,y)O(p(n))n=|x|OO(p(n)O(p(n)2m) . Questo non è polinomiale inn, e quindi non è sufficiente per mettere questo problema inFBQP: otteniamo solo unquadruplo divelocità - anche se questo è ancora un potenziale risparmio enorme di tempo di calcolo, supponendo che il vantaggio fornito dall'algoritmo di Grover non sia perso a l'overhead richiesto per il calcolo quantico a tolleranza d'errore.O(p(n)2n)n

nxOxN=n/NnxONO(2n/2)O(N)

Complessità decisionale da problemi di relazione

Esiste un modo semplice per ottenere problemi di decisione da problemi di relazione, che è ben noto dalla teoria dei problemi NP completi : trasformare il problema di ricerca in una domanda sull'esistenza di una soluzione valida.


xRy:R(x,y)

R

xx una soluzione per la ricerca non strutturata che lo fa senza trovare effettivamente una soluzione, sebbene non sia chiaro in generale come farlo in un modo che fornirebbe un vantaggio rispetto alla ricerca effettiva di una soluzione.

Complessità Oracle

OxO

OnOnx

O
x=111n

  • y{0,1}n

  • y{0,1}n

O|y|0=|y|1

NPOFNPOBQPOFBQPO

O

Come possiamo vedere da quest'ultimo caso, se trattiamo l'input solo come un oracolo, la situazione sembra un po 'non intuitiva e certamente rende impossibile parlare dei modi in cui il "database" può essere realizzato. Ma una virtù di considerare la versione relativizzata del problema, con un vero oracolo, è che possiamo provare cose che altrimenti non abbiamo idea di come provare. Se potessimo provare che la versione decisionale del problema di ricerca non strutturato conciso era in BQP , allora potremmo realizzare un enorme passo avanti nel calcolo pratico; e se potessimo dimostrare che il problema decisionale non era effettivamente in BQP , allora avremmo dimostrato che P ≠ PSPACEOONPOBQPO


2

nmn

m2n/2m2n1

Tuttavia, ai fisici piace fare appello all'idea che si tratti ancora di una accelerazione esponenziale senza equivalenti classici noti (o addirittura facilmente concepibili). Ciò è più evidente nell'esempio del database in cui la funzione oracle è una ricerca nel database e l'algoritmo di Grover può far sì che uno abbia bisogno di molte meno ricerche rispetto ai dati nel database. In questo senso, c'è ancora un vantaggio significativo, sebbene sia completamente perso nel quadro della classe di complessità.


" Ai fisici piace fare appello all'idea che questo è ancora un accelerazione esponenziale senza alcuna conoscenza " ... intendevi scrivere " ancora un accelerazione polinomiale "?
glS

No, si tratta effettivamente di un'accelerazione esponenziale (ma non abbastanza per trasformare il runtime esponenziale in uno non esponenziale).
piramidi,

2

n

NP

f(x)x{0,1}nxf(x)=1pxmpoly(n)g(x,px)=1f(x)=1g(x,px)poly(n)

Lasciami fare alcuni esempi (forse questi sono quelli che stavi chiedendo qui ?):

  • f(x)xxf(x)g(x,px)=f(x)

  • f(x)xx=72px=(8,9)g(x,p)x

  • G1G2xf(x)pxG1G2g(x,px)pxG1G2

  • xf(x)pxg(x,px)

NPPP

PNPNPPPNP

NPxpxm=poly(n)g(x,px)=1O(2mpoly(m))g(x,px)=1pxO(2m/2poly(m)). Questo è enormemente più veloce, ma non cambia la valutazione se il tempo di esecuzione è polinomiale o qualcosa di peggio; non è diventato un algoritmo temporale polinomiale. Ad esempio, l'isomorfismo grafico dovrebbe cercare tutte le possibili permutazioni. Il dragamine avrebbe dovuto cercare tutte le possibili assegnazioni di mine su quadrati scoperti.

Naturalmente, in alcuni casi, la struttura aggiuntiva del problema consente soluzioni diverse che non richiedono la ricerca di tutte le prove possibili. Lì, la ricerca di Grover è di scarsa utilità, o addirittura no, per noi, ma potrebbe essere che possiamo elaborare un algoritmo temporale polinomiale in un altro modo. Ad esempio, il caso del test composito: classicamente, trovare i fattori di un numero sembra essere difficile: non possiamo fare molto meglio del test di tutti i possibili fattori, quindi fare uso di quella forma di prova non aiuta molto, ma , come già accennato, la domanda può essere risolta in modo efficiente tramite un'altra strada, il test di primalità di AKS.


Le classi P e NP sono generalmente definite come classi di lingue o problemi di decisione, come nella risposta a questa domanda . Mentre questi possono essere "codificati" come funzioni con output binario come si fa qui, questo è un po 'non standard nella teoria della complessità.
Lucertola discreta,

f(x)

Puoi definire le cose come desideri, ma penso che sia utile menzionare che questo non è standard quando, ad esempio, i lettori controllano altre fonti. Da qui il commento.
Lucertola discreta

-1

Dimentica il database. L'algoritmo di Grover risolve il problema della soddisfazione booleana , vale a dire:

n10

È noto che il problema è NP-completo.


3
C'è un elemento di verità in quello che stai dicendo --- che si dovrebbe quasi sempre pensare all'oracolo come valutare una funzione piuttosto che una ricerca nel database; e che se quella funzione può essere valutata in tempo polinomiale, allora è effettivamente un'istanza di SAT, che è davvero NP-completa. Ma dato che l'accelerazione da Grover è al massimo quadratica, non è chiaro che la completezza NP di SAT sia rilevante per ciò che fa effettivamente l'algoritmo di Grover.
Niel de Beaudrap,

2
A causa dell'ignorante o trolling downvoting non contribuirò più a questo forum.
kludg,

@kludg Ammetto che uno dei voti negativi è mio, quindi lasciami spiegare; La tua risposta senza ulteriore contesto o spiegazione non risponde a nessuna delle domande che ho posto nel PO. Fa un punto interessante, ma per ora dire che questo non è rilevante per le mie domande specifiche. Ora potrei sbagliarmi su questo punto e la tua risposta in realtà sta rispondendo ad alcune delle mie domande - se questo è il caso, non credo che abbiano una risposta esplicita.
Spaghettificazione quantistica
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.