Come funziona l'operatore di diffusione Grover e perché è ottimale?


15

In questa risposta viene spiegato l'algoritmo di Grover. La spiegazione indica che l'algoritmo si basa fortemente sul Grover Diffusion Operator , ma non fornisce dettagli sul funzionamento interno di questo operatore.

In breve, Grover Diffusion Operator crea una "inversione della media" per fare iterativamente le minuscole differenze nei passaggi precedenti abbastanza grandi da essere misurabili.

Le domande sono ora:

  1. In che modo l'operatore di diffusione Grover raggiunge questo obiettivo?
  2. Perché la risultante O(n)nel tempo totale per cercare un database non ordinato ottimale?

1
Solo un commento sulla seconda domanda. Ci sono lavori per dimostrare che la traccia dello stato dell'algoritmo di Grover segue esattamente la geodetica che collega lo stato iniziale dell'algoritmo e lo stato di destinazione. Quindi è ottimale.
XXDD

Risposte:


5

Poiché la domanda originale riguardava la descrizione di un profano, offro una soluzione leggermente diversa, forse più facile da capire (dipendente dallo sfondo), basata su un tempo continuo Evoluzione. (Tuttavia, non pretendo che sia adatto a un laico.)

Partiamo da uno stato iniziale che è una sovrapposizione uniforme di tutti gli stati, e miriamo a trovare uno stato che possa essere riconosciuto come la risposta corretta (supponendo che esista esattamente uno di questi stati, sebbene questo possa essere generalizzato). Per fare questo, ci evolviamo nel tempo sotto l'azione di un Hamiltoniano La caratteristica davvero bella della ricerca di Grover è che a questo punto, possiamo ridurre la matematica a un sottospazio di soli due stati , piuttosto che richiedere tutti i . È più facile descrivere se prendiamo una base ortonormale da questi stati, dove | xH=| xx| +| ψψ| . {| x,| ψ}2n{| x,| ψ}| ψ=1

|ψ=12ny{0,1}n|y
|x
H=|xx|+|ψψ|.
{|x,|ψ}2n{|x,|ψ}e-iHt| ψe-it(I+2-nZ+
|ψ=12n1y{0,1}n:yx|y.
Usando questa base, l'evoluzione temporale può essere scritta come dove e sono le matrici standard di Pauli. Questo può essere riscritto come Quindi, se ci evolviamo per un po 'eiHt|ψXZe-it(Icos(t
e-iot(io+2-nZ+2n-12nX)(12n1-12n),
XZt=π
e-iot(iocos(t2n/2)-io12n/2peccato(t2n/2)(Z+X2n-1))(12n1-12n).
t=π22n/2e ignorando le fasi globali, lo stato finale è In altre parole, con probabilità 1, otteniamo lo stato che stavamo cercando. La solita descrizione basata sul circuito della ricerca di Grover è proprio questa continua evoluzione temporale suddivisa in passaggi discreti, con il leggero svantaggio che di solito non si può ottenere esattamente la probabilità 1 per il proprio risultato, molto vicino ad esso.
12n/2(Z+X2n-1)(12n1-12n)=(12n-2n-12n)+(1-12n2n-12n)=(10).
|X

Un avvertimento è il seguente: potresti ridefinire ed evolvere usando e il tempo di evoluzione sarebbe 5 volte più breve. Se vuoi essere davvero radicale, sostituisci il 5 con e la ricerca di Grover viene eseguita in tempo costante! Ma non ti è permesso farlo arbitrariamente. Ogni dato esperimento avrebbe una forza di accoppiamento massima fissa (cioè un moltiplicatore fisso). Quindi, esperimenti diversi hanno tempi di esecuzione diversi, ma il loro ridimensionamento è lo stesso, . È come dire che il costo del gate nel modello di circuito è costante, piuttosto che supporre che se utilizziamo un circuito di profondità ogni gate può essere fatto funzionare nel tempo .H~=5HH~2n/22n/2K1/K

La prova dell'ottimalità implica essenzialmente che se si rende più rapido il rilevamento di un possibile stato contrassegnato , il rilevamento di uno stato contrassegnato diverso, , sarà più lento. Poiché l'algoritmo dovrebbe funzionare ugualmente bene in qualunque stato sia contrassegnato, questa soluzione è la migliore.|X|y


4

Un modo per definire l'operatore di diffusione è 1 , dove è l' oracolo di faseD=-HnU0HnU0

U0|0n=-|0n,U0|X=|Xper|X|0n.

U0U0=io-2|0n0n|

D=2|++|-io,
|+=2-n/2(|0+|1)n

Scrivere uno stato dove è ortogonale a (ovvero indica che .|ψ=α|++β|+|+|++|+=0)D|ψ=α|+-β|+

Questo dà 2 che l'operatore di diffusione è una riflessione su|+

Come l'altra parte di algoritmo di Grover è anche una riflessione, questi si combinano per ruotare lo stato attuale più vicino al 'ricercati' valore . Questo angolo diminuisce linearmente con il numero di rotazioni (fino a quando non supera il valore cercato), dando che la probabilità di misurare correttamente il valore corretto aumenta in modo quadratico.X0

Bennet et. al. ha dimostrato che questo è ottimale. Prendendo una soluzione classica a un problema NP, l'algoritmo di Grover può essere utilizzato per accelerare quadraticamente. Tuttavia, prendendo una lingua per una funzione di conservazione della lunghezza (qui, un oracolo), qualsiasi limite- la macchina di analisi quantistica basata su errori non può accettare questa lingua in un tempo .LUN={y:XUN(X)=y}UNT(n)=o(2n/2)

Questo si ottiene prendendo una serie di oracoli in cui non ha inverso (quindi non è contenuto nella lingua). Tuttavia, questo è contenuto in una nuova lingua per definizione. La differenza nelle probabilità di una macchina che accetta e una macchina diversa che accetta nel tempo è quindi inferiore a e quindi nessuno dei due linguaggi è accettato e l'algoritmo di Grover è davvero asintoticamente ottimale. 3|1nLUNyLUNLUNyT(n)1/3

Zalka in seguito ha dimostrato che l'algoritmo di Grover è esattamente ottimale.


1 Nell'algoritmo di Grover, i segni meno possono essere spostati, quindi dove si trova il segno meno, è in qualche modo arbitrario e non deve necessariamente essere nella definizione dell'operatore di diffusione

|+

UNMUNUNyMUNySMUNMUNytε<2T2/ε2MUN|1nLUN2n-Carta(S)MUN |1n2n-1T(n)=o(2n/2)LUN

4 Usando la distanza euclidea, raddoppia la distanza della traccia

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.