
Originariamente Scritto da
Raistē
Vorrei una robba piu' specifica: vorrei capire se ho compreso correttamente il funzionamento.
Come funziona bene l'amplificazione dell'ampiezza. Come l'ho capito io.
Abbiamo un DB di N elementi, dove vogliamo cercarne uno.
Creiamo una f(x)=1 se x=elemento cercato f(x)=0 se non č lui. Ogni elemento del DB sarā mappato.
Partiamo.
-qubit in sovrapposizione degli stati. Da qui in poi i qubit rappresentano tutti gli stati possibili di 0 e 1 di f(x)
-la probabilitā che l'elemento dia f(x) č 1/N (un solo elemento č corretto tra N). Ed č equamente distribuita tra tutti
-applico un'operazione. Inverto il segno della probabilitā degli stati. Lo faccio a prescindere. Non misuro mai lo stato (o lo farei collassare). Se č 0 cambia un cazzo. se č un f(x)=1 la prob diventa negativa.
-faccio la media della prob (ora piu' bassa, visto che abbiamo un valore negativo) e l'assegno ai negativi (abbassandola)
-cambio segno a f(x)=1 e gli assegno 1-prob media calcolata prima (la restante, in maniera che il tot dia sempre 1)
Ciclo fino a quando non rendo abbastanza probabile che quando vado a misurare, il qubit collassi in f(x)=1
E' un algoritmo probabilistico. Non produrrā mai con il 100% il valore esatto, ma ciclando si arriva a % affidabilissime.
La complessitā č sqrt N.
Normalmente č N/2 (in media devo scorrere metā di tutto il DB lungo N)
Cosė l'ho capita io. Ovviamente spiegato in parole poverissime.
Letteralmente si va ad accrescere la probabilitā che quando vai a misurare becchi quello giusto