Teoria dell'algoritmo di ricerca di Grover
Questo articolo contiene una spiegazione teorica dettagliata dei principi matematici alla base dell'algoritmo di Grover.
Per un'implementazione pratica dell'algoritmo di Grover per risolvere i problemi matematici, vedere Implementare l'algoritmo di ricerca di Grover.
L'algoritmo di Grover accelera la soluzione alle ricerche di dati non strutturate (o al problema di ricerca), eseguendo la ricerca in meno passaggi rispetto a qualsiasi algoritmo classico. Qualsiasi attività di ricerca può essere espressa con una funzione astratta
Qualsiasi problema che consente di verificare se un determinato valore
- Problema di soddisfazione booleano: dato un set di valori booleani, il set soddisfa una formula booleana specificata?
- Problema del venditore in viaggio: qual è il ciclo più breve possibile che connette tutte le città?
- Problema di ricerca del database: una tabella di database contiene il record
? - Problema di fattorizzazione di interi: il numero
è divisibile per il numero ?
L'attività che l'algoritmo di Grover intende risolvere può essere espressa come segue: data una funzione classica
Si supponga che siano presenti
- Iniziare con un registro di
qubit inizializzati nello stato . - Preparare il registro in una sovrapposizione uniforme applicando
a ogni qubit del registro: - Applicare le operazioni seguenti al registro
:- L'oracolo della fase
che applica uno spostamento di fase condizionale di per gli elementi della soluzione. - Applicare
a ogni qubit nel registro. - Uno spostamento di fase condizionale di
a ogni stato di base computazionale ad eccezione di . Può essere rappresentato dall'operazione unitaria , in quanto rappresenta solo lo spostamento della fase condizionale a . - Applicare
a ogni qubit nel registro.
- L'oracolo della fase
- Misurare il registro per ottenere l'indice di un elemento che è una soluzione con probabilità molto elevata.
- Controllare se si tratta di una soluzione valida. In caso contrario, ricominciare.
$N_{\text{}}=\leftottimale \lfloor \frac{\pi}{{4}\sqrt{\frac{N}{M}}-\frac{{1}{{2}\right\rpavimento$ è il numero ottimale di iterazioni che massimizza la probabilità di ottenere l'elemento corretto mediante la misurazione del registro.
Nota
L'applicazione congiunta dei passaggi 3.b, 3.c e 3.d è in genere nota come operatore di diffusione Grover .
L'operazione unitaria complessiva applicata al registro è:
Per illustrare il processo, di seguito si seguiranno le trasformazioni matematiche dello stato del registro per un caso semplice in cui sono presenti solo due qubit e l'elemento valido è
Il registro inizia nello stato:
$$\ket{\text{registrare}}=\ket{{00}$$
Dopo aver applicato $$ H a ogni qubit, lo stato del registro viene trasformato in:
$$\ket{\text{register}}=\frac{{1}{\sqrt{4}}\sum_{i \in \lbrace 0,1 \r{}^2\ket{i}=\frac12(\ket{00}+\ket{01}+\ket{{10}+\ket{11})$$
Viene quindi applicato l'oracolo di fase per ottenere:
$$\ket{\text{registrare}}=\frac12(\ket{{00}-\ket{{01}+\ket{{10}+\ket{{11})$$
Quindi
agisce di nuovo su ogni qubit per dare:$$\ket{\text{registrare}}=\frac12(\ket{{00}+\ket{{01}-\ket{{10}+\ket{{11})$$
A questo punto, lo spostamento condizionale della fase viene applicato a ogni stato, ad eccezione di
:$$\ket{\text{registro}}=\frac12(\ket{{00}-\ket{{01}+\ket{{10}-\ket{{11})$$
Infine, la prima iterazione di Grover termina applicando di nuovo
per ottenere:$$\ket{\text{registrare}}=\ket{{01}$$
Seguendo i passaggi precedenti, l'elemento valido viene trovato in una singola iterazione. Come si vedrà più avanti, ciò accade perché per N=4 e un singolo elemento valido, il numero ottimale delle ripetizioni è
Per capire perché funziona l'algoritmo di Grover, vale la pena di esaminare l'algoritmo da una prospettiva geometrica. Supponendo che ci siano
$$\ket{\text{bad}}=\frac{{1}{\sqrt{N-M}}\sum_{x:f(x)=0}\ket{x}$$
La sovrapposizione di tutti gli stati che sono una soluzione al problema di ricerca:
$$\ket{\text{good}}=\frac{{1}{\sqrt{M}}\sum_{x:f(x)=1}\ket{x}$$
Poiché buoni e cattivi si escludono a vicenda perché un elemento non può essere valido e non valido, gli stati sono ortogonali. Entrambi gli stati formano la base ortogonale di un piano nello spazio vettoriale. È possibile usare questo piano per visualizzare l'algoritmo.
Si supponga ora che
dove
Viene chiamato operatore di reflection per
Se si applica l'operatore
L'operatore
L'algoritmo di Grover, dopo la prima applicazione di
E quindi lo stato risiede nel piano. Si noti che la probabilità di ottenere un risultato corretto quando si misura dalla sovrapposizione uguale è sufficiente
L'oracolo
Analogamente, lo spostamento di fase condizionale
$$O_{0}= R_{\ket{0}}= -2\ket{{0}\bra{{0} + \mathbb{I}$$
Sapendo questo fatto, è facile verificare che l'operazione di diffusione di Grover
$$-H^{\otimes n} O_{{0} H^{\otimes n}=2H^{\otimes n}\ket{0}\bra{{0}H^{\otimes n} -H^{\otimes n}\mathbb{I}H^{\otimes n}=\ket{\text{2 tutte le}}\bra{\text{}}\mathbb{}= R_{\ket{\text{}}}$$ tutte le}= R_{\ket{\text{
È stato dimostrato che ogni iterazione dell'algoritmo di Grover è una composizione di due reflection
L'effetto combinato di ogni iterazione di Grover è una rotazione in senso antiorario di un angolo
L'angolo tra lo stato del registro e lo
$$\gamma = \frac{\pi}{2}-\theta -2k\theta =\frac{\pi}{{2} -(2k + 1) \theta $$
Pertanto, la probabilità di successo è:
Poiché la probabilità di successo può essere scritta come funzione del numero di iterazioni, il numero ottimale di iterazioni
È noto che
$$\frac{\pi}{{2}=(2k_{\text{}} ottimale +1)\arccos \left( \sqrt{\frac{N-M}{N}}\right)$$
Il risultato è il seguente:
$$k_{\text{optimal}}=\frac{\pi}{4\arccos\left(\sqrt{1-M/N}\right)}-1/2 =\frac{\pi}{{4}\sqrt{\frac{N}{M}}-\frac{1}{2}-O\left(\sqrt\frac{M}{N}\right)$$
Dove nell'ultimo passaggio
È quindi possibile scegliere $N_{\text{}}=\leftottimale \l floor \frac{\pi}{{4}\sqrt{\frac{N}{M}}-\frac{{1}{{2}\right\rpavimento$.
Dall'analisi precedente, le query
La complessità complessiva dell'algoritmo dipende in definitiva dalla complessità dell'implementazione del O_f
Per altre informazioni sull'algoritmo di Grover, è possibile consultare le fonti seguenti:
- Documento originale di Lov K. Grover
- Sezione Algoritmi di ricerca quantistica di Nielsen, M. A. &Amp; Chuang, I. L. (2010). Quantum Computation and Quantum Information.
- Informazioni sull'algoritmo di Grover in Arxiv.org