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. Ω(logN)logN
Robin Kothari,

Risposte:


11

Θ(logN)Ω(logN), 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(NlogN)Ω(NlogN)

O(N)O(Nlog(logN))

log(logN)Nlog(logN)

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.