Come viene utilizzato l'algoritmo di Grover per stimare la media e la mediana di un insieme di numeri?


10

Sulla pagina di Wikipedia per l'algoritmo di Grover , si dice che:

"L'algoritmo di Grover può anche essere utilizzato per stimare la media e la mediana di un insieme di numeri"

Finora sapevo solo come può essere utilizzato per cercare un database. Ma non sono sicuro di come implementare quella tecnica per stimare la media e la mediana di un insieme di numeri. Inoltre, non c'è citazione (per quanto ho notato) su quella pagina che spiega la tecnica.


O se scegli di rispondere alla tua domanda o per chiunque scelga di assumersi il compito da solo, questo link sembra un ottimo punto di partenza Come utilizzare l'algoritmo di Grover per trovare la media (alias media, integrale) di una funzione Weirdo
agaitaarino

@agaitaarino Grazie. Lo guarderò. A proposito, il tuo commento non viene visualizzato correttamente come link perché hai lasciato uno spazio vuoto dopo la parentesi aperta. :)
Sanchayan Dutta,

Risposte:


9

L'idea per stimare la media è approssimativamente la seguente:

  • Per ogni che fornisce output nei reali, definire una F riscalata ( x ) che fornisce output nell'intervallo da 0 a 1. Miriamo a stimare la media di F ( x ) .f(X)F(X)F(X)

  • Definire un unitario cui funzionamento è U un : | 0 | 0 1Uun'È importante notare che questo unitario è facilmente implementabile. Si inizia con una trasformazione Hadamard sul primo registro, si esegue un calcolo dif(x)su un registro ancilla, lo si utilizza per implementare una rotazione controllata del secondo registro, quindi si decomprime il registro ancilla.

    Uun':|0|012n/2ΣX|X(1-F(X)|0+F(X)|1).
    f(X)
  • Definire il unitaria .sol=Uun'(io-2|00||00|)Uun'ioZ

  • A partire da uno stato , utilizzare G molto simile si può usare il Grover iteratore per stimare il numero di soluzioni a un problema di ricerca.Uun'|0|0sol

La maggior parte di questo algoritmo è l'amplificazione dell'ampiezza, come descritto qui . L'idea principale è che è possibile definire due stati e questo definisce un sottospazio per l'evoluzione. Lo stato iniziale èUa| 0| 0=(

|ψ=1ΣXF(X)ΣXF(X)|X|1|ψ=1ΣX1-F(X)ΣX1-F(X)|X|0,
. L'ampiezza del| ψtermine contiene chiaramente le informazioni circa la media diF(x), se solo potessimo stimarlo. Potresti preparare ripetutamente questo stato e misurare la probabilità di ottenere un| 1sul secondo registro, ma la ricerca di Grover ti dà un miglioramento quadratica. Se si confronta con il modo in cui Grover's è solitamente impostato, l'ampiezza di questo| ψUun'|0|0=(ΣXF(X)|ψ+ΣX1-F(X)|ψ)2-n/2|ψF(X)|1|ψche puoi "segnare" (in questo caso applicando ) sarebbe ioZ dovemè il numero di soluzioni.m2nm

Per inciso, questo è interessante da confrontare con la "potenza di un qubit pulito", noto anche come DQC1. Ecco, se applichi a I.Uun', la probabilità di ottenere la risposta 1 è la stessa della versione non accelerata e fornisce una stima della media.io2n|00|


z

ΣX|f(X)-f(z)|.
TXf(X)TT

Certo, sto saltando alcuni dettagli di tempi di esecuzione precisi, stime di errore ecc.


Devi prima eseguire l'algoritmo di Grover un numero logaritmico di volte per calcolare il valore minimo e massimo della funzione prima di poter eseguire il ridimensionamento nel passaggio 1?
Tparker,

@tparker Probabilmente dipende. Spesso si presume che tu sappia abbastanza sulla funzione F da poter legare i suoi possibili valori.
DaftWullie,
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.