Analisi
Ora analizzeremo l'algoritmo di Grover per capire come funziona. Inizieremo con quella che potremmo definire un'analisi simbolica, in cui calcoliamo come l'operazione di Grover agisce su determinati stati, e poi legheremo questa analisi simbolica a un'immagine geometrica utile per visualizzare il funzionamento dell'algoritmo.
Soluzioni e non soluzioni
Iniziamo definendo due serie di stringhe.
L'insieme contiene tutte le soluzioni al nostro problema di ricerca, mentre contiene le stringhe che non sono soluzioni (che possiamo chiamare non soluzioni quando è conveniente). Questi due insiemi soddisfano e , il che significa che si tratta di una bipartizione di
Successivamente definiremo due vettori unitari che rappresentano le sovrapposizioni uniformi sugli insiemi di soluzioni e non soluzioni.
Dal punto di vista formale, ognuno di questi vettori è definito solo quando l'insieme corrispondente è non vuoto, ma di seguito ci concentreremo sul caso in cui né né siano vuoti. I casi di e possono essere trattati separatamente e lo faremo più avanti.
A parte questo, la notazione utilizzata è comune: ogni volta che abbiamo un insieme finito e non vuoto possiamo scrivere per indicare il vettore di stato quantistico che è uniforme sugli elementi di
Definiamo inoltre che è uno stato quantistico uniforme su tutte le stringhe di bit:
Si noti che
Si ha inoltre che e rappresentano lo stato del registro dopo l'inizializzazione al passo 1 dell'algoritmo di Grover.
Ciò implica che, appena prima che avvengano le iterazioni di nel passo 2, lo stato di è contenuto nello spazio vettoriale bidimensionale spaziato da e e inoltre i coefficienti di questi vettori sono numeri reali. Come vedremo, lo stato di avrà sempre queste proprietà - cioè lo stato è una combinazione lineare reale di e - dopo un numero qualsiasi di iterazioni dell'operazione nel passo 2.
Un'osservazione sull'operazione Grover
Passiamo ora all'operazione di Grover
iniziando con un'interessante osservazione al riguardo.
Immaginiamo per un momento di aver sostituito la funzione con la composizione di con la funzione NOT, ovvero la funzione che si ottiene capovolgendo il bit di uscita di Chiameremo questa nuova funzione e possiamo esprimerla con i simboli in alcuni modi alternativi.
Si noti che
per ogni stringa e quindi
Ciò significa che se sostituissimo la funzione con la funzione l'algoritmo di Grover non funzionerebbe in modo diverso, perché gli stati ottenuti dall'algoritmo nei due casi sono necessariamente equivalenti fino a una fase globale.
Non è un problema! Intuitivamente, l'algoritmo non si preoccupa di quali stringhe siano soluzioni e quali non soluzioni: deve solo essere in grado di distinguere le soluzioni e le non soluzioni per funzionare correttamente.
Azione dell'operazione Grover
Consideriamo ora l'azione di sui vettori di stato quantistici e
Per prima cosa, osserviamo che l'operazione ha un'azione molto semplice su e su
In secondo luogo, abbiamo l'operazione L'operazione è definita come
per ogni stringa e un modo alternativo per esprimere questa operazione è il seguente:
Un modo semplice per verificare che questa espressione sia in accordo con la definizione di è quello di valutare la sua azione sugli stati base standard.
L'operazione può quindi essere scritta in questo modo:
utilizzando la stessa notazione, , che abbiamo usato sopra per la sovrapposizione uniforme di tutte le stringhe di bit.
E ora abbiamo ciò che ci serve per calcolare l'azione di su e Per prima cosa calcoliamo l'azione di su
In secondo luogo, calcoliamo l'azione di su
In entrambi i casi si utilizza l'equazione
insieme alle espressioni
che seguono.
In sintesi, abbiamo
Come abbiamo già osservato, lo stato di appena prima del passo 2 è contenuto nello spazio bidimensionale compreso tra e e abbiamo appena stabilito che mappa qualsiasi vettore di questo spazio in un altro vettore dello stesso spazio. Ciò significa che, ai fini dell'analisi, possiamo concentrare la nostra attenzione esclusivamente su questo sottospazio.
Per comprendere meglio ciò che accade in questo spazio bidimensionale, esprimiamo l'azione di su questo spazio come una matrice,
le cui prime e seconde righe/colonne corrispondono rispettivamente a e . Finora in questa serie abbiamo sempre collegato le righe e le colonne delle matrici con gli stati classici di un sistema, ma le matrici possono essere utilizzate anche per descrivere le azioni di mappature lineari su basi diverse, come in questo caso.
Anche se non è affatto ovvio a prima vista, la matrice è ciò che si ottiene squadrando una matrice di aspetto più semplice.
La matrice
è una matrice di rotazione, che possiamo esprimere alternativamente come
per
Questo angolo avrà un ruolo molto importante nell'analisi che segue, quindi vale la pena di sottolinearne l'importanza in questa sede, visto che lo vediamo per la prima volta.
Alla luce di questa espressione della matrice, osserviamo che
Questo perché ruotare due volte dell'angolo equivale a ruotare dell'angolo Un altro modo di vedere questo aspetto è quello di utilizzare l'espressione alternativa
insieme alle formule degli angoli doppi della trigonometria:
In sintesi, lo stato del registro all'inizio del passo 2 è
e l'effetto dell'applicazione di a questo stato è quello di ruotarlo di un angolo all'interno dello spazio compreso tra e Quindi, per esempio, abbiamo
e in generale
Immagine geometrica
Ora colleghiamo l'analisi appena svolta a un'immagine geometrica. L'idea è che l'operazione sia il prodotto di due riflessioni, e E l'effetto netto dell'esecuzione di due riflessioni è quello di eseguire una rotazione.
Iniziamo con Come abbiamo già osservato in precedenza, abbiamo
All'interno dello spazio vettoriale bidimensionale compreso tra e si tratta di una riflessione sulla retta parallela a che chiameremo Ecco una figura che illustra l'azione di questa riflessione su un ipotetico vettore unitario che assumiamo essere una combinazione lineare reale di e di
In secondo luogo abbiamo l'operazione che, come abbiamo già visto, può essere scritta come
Anche questa è una riflessione, questa volta sulla retta parallela al vettore Ecco una figura che illustra l'azione di questa riflessione su un vettore unitario
Quando componiamo queste due riflessioni, otteniamo una rotazione - di due volte l'angolo tra le linee di riflessione - come illustra questa figura.
Questo spiega, in termini geometrici, perché l'operazione di Grover ha l'effetto di far ruotare le combinazioni lineari di e di un angolo pari a