Runtime dell'algoritmo di Grover


19

Qual è la complessità temporale (non la complessità della query) dell'algoritmo di Grover? Mi sembra chiaro che è poiché ci sonoΩ( √Ω(log⁡(N)N)iterazioni e ogni iterazione richiede l'uso dell'operazione di riflessione che a sua volta richiede tempoΩ(log(N))utilizzando qualsiasi set standard di porte universali.Ω(N)Ω(log⁡(N))

Il problema è che non riesco a trovare nemmeno un singolo riferimento che dica che la complessità temporale dell'algoritmo di Grover è . Wikipedia e molte altre pagine Web diconoO( √Ω(log⁡(N)N)complessità temporale. La carta di Grover rivendicaO( √O(N)"passi".O(N)

Mi sto perdendo qualcosa? Forse le persone definiscono l'operazione di riflessione per prendere il tempo unitario. Ma questo non ha senso per me perché se possiamo giocare a consentire a unità arbitrarie di prendere il tempo unitario, non ci sarebbe differenza tra complessità della query e complessità del tempo.


11
Non riesco a pensare a un riferimento che parli della complessità temporale dell'algoritmo di Grover, ma ciò che hai scritto è vero. In effetti, su qualsiasi set di gate finito, le operazioni eseguite tra le query dell'algoritmo di Grover richiedono almeno gate , poiché ogni gate ha una larghezza finita ma dobbiamo eseguire un gate che influenza tutti i qubit del log N. Ω(log⁡N)log⁡N
— Robin Kothari,

Risposte:


11

Θ(log⁡N)Ω(log⁡N), perché altrimenti non leggerebbe l'intero input e potresti scartare alcuni bit di input dalla ricerca. D'altra parte, un predicato interessante potrebbe richiedere molto più tempo di quello. Quindi, il numero di chiamate al predicato è considerato la moneta standard, così come lo è per l'analogo classico dell'algoritmo di Grover, ovvero ipotesi casuali.


6

O(Nlog⁡N)Ω(Nlog⁡N)

O(N)O(Nlog⁡(log∗⁡N))

log⁡(log∗⁡N)Nlog⁡(log∗⁡N)

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.