Groverov algoritam
Groverov algoritam je kvantni algoritam za pretraživanje nesortirane baze podataka sa N unosa u O(N1/2) vremenu koristeći O(log N) memorijskog prostora (videti veliko O). Lov Grover ga je formulisao 1996.
U modelima klasičnog izračunavanja, pretraživanje i sortiranje nesortirane baze podataka ne može biti ostvareno za manje od linearnog vremena (tako da je pretraživanje elemenata član - po - član skoro optimalno). Groverov algoritam ilustruje da u kvantnom modelu pretraga može biti izvršena brže od ovoga; to jest, njegova vremenska složenost O(N1/2) je asimptotski najbrža moguća za pretraživanje nesortirane baze podataka u kvantnom modelu.[1] Pruža kvadratno poboljšanje, za razliku od drugih kvantnih algoritama, koji pružaju eksponencijalno poboljšanje u odnosu na njihove klasične alternative. Ipak, čak je i kvadratno poboljšanje značajno kada je N veliko.
Kao i mnogi drugi kvantni algoritmi, Groverov algoritam je probabilistički u smislu da daje tačan rezultat sa visokim procentom verovatnoće. Verovatnoća pojave greške može biti smanjena ponavljanjem algoritma. (Primer determinističkog kvantnog algoritma je Deutsch-Jozsa algorithm, koji uvek daje tačan odgovor.)
Primene
[уреди | уреди извор]Iako se svrha Groverovog algoritma najčeće opisuje kao "pretraživanje baze podataka", moće biti tačnije opisati je kao "inverzija funkcije". Grubo rečeno, ako imamo funkciju y=f(x) koja može biti evaluirana na kvantnom računaru, ovaj algoritam nam dozvoljava da izračunamo x kada je dato y. Inverzija funkcije je povezana sa pretragom baze podataka tako što bismo mogli doći do funkcije koja daje tačnu vrednost y ako se x poklapa sa željenim unosom u bazu, i još jednu vrednost y za ostale vrednosti x.
Groverov algoritam se takođe može koristiti za određivanje središta i medijane skupa brojeva, i za rešavanje problema kolizije. Algoritam se može dalje optimizovati ako postoji više od jednog traženog unosa i traženi broj unosa je unapred poznat.
Postavka
[уреди | уреди извор]Uzmimo nesortiranu bazu podataka sa N unosa. Algoritmu je potreban N-dimenzionalni statusni prostor H, koji može biti obezbeđen sa n=log2 N kjubita. Uzimajući u obzir problem određivanja indeksa unosa baze podataka koji zadovoljava neki postavljeni uslov. Neka je f funkcija koja označava unose baze podataka sa 0 ili 1, gde je f(ω)=1 ako i samo ako ω zadovoljava traženi uslov. Dostupan nam je (preko kvantne crne kutije) pristup ka podproblemu u obliku linearnog operatora, Uω, koji se ponaša kao:
Naš cilj je da identifikujemo indeks .
Koraci algoritma
[уреди | уреди извор]Koraci Groverovog algoritma su sledeći: Neka je uniformna superpozicija svih stanja
- .
Tada je operator
poznat kao Groverov difuzioni operator.
Evo algoritma:
- Inicijalizacija sistema u stanje
- Primeniti sledeće "Groverove iteracije" r(N) puta. Funkcija r(N), koja je asimptotski O(N½), opisana je dole.
- Primeniti operator .
- Primeniti operator .
- Primeniti merenje Ω. Rezultati merenja će biti λω sa verovatnoćom koja se približava 1 za N≫1. Iz λω, se može dobiti ω.
Prva iteracija
[уреди | уреди извор]Preliminarna observacija, paralelna sa našom definicijom
- ,
je da Uω može biti izraženo na alternativni način:
- .
Da bismo ovo dokazali dovoljno je proveriti kako se Uω ponaša u baznim stanjima:
- .
- za sve .
Sledeća izračunavanja pokazuju šta se događa u prvoj iteraciji:
- .
- .
- .
- .
Posle primene dva operatora ( and ), amplituda traženog elementa je opala od do .
Opis
[уреди | уреди извор]Groverovom algoritmu je potreban operator "kvantnog odlučivanja" Koji prepoznaje rešenja traženog problema i daje im negativan znak. Da bismo održali algoritam pretrage opštim, ostavićemo unutrašnja dešavanja odlučivanja kao crnu kutiju, ali ćemo objasniti kako je znak promenjen. Odlučivanje sadrži funkciju koja vraća ako je rešenje traženog problema i u suprotnom. Odlučivanje je linearni operator koji deluje na dva kjubita, indeks kjubit i kjubit odlučivanja :
Kao i obično, označava sabiranje po modulu 2. Operacija menja kjubit odlučivanja ako ili ga u suprotnom ostavlja nepromenjenog. U Groverovom algoritmu želimo da promenimo znak stanja ako obeležava rešenje. Ovo je postignuto postavljanjem kjubita pretraživanja u stanje , koje je promenjeno na ako je rešenje:
Razmatramo kao promenjeno, pošto kjubit odlučivanja nije promenjen, pa po konvenciji kjubiti odlučivanja obično nisu pomenuti u opisu Groverovog algoritma. Mada je operacija odlučivanja jednostavno napisana kao:
Geometrijski dokaz korektnosti
[уреди | уреди извор]Posmatrajmo ravan razapetu sa i , gde je ket u podprostoru normalan na . Posmatraćemo prvu iteraciju, koja ce ponaša kao inicijalni ket . Pošto je jedan od baznih vektora u preklapanje je
Na geometrijskom jeziku, ugao između i je dat kao:
Operator je refleksija na hiperravan ortogonalnu na za vektore u ravni razapete sa i ; npr. ponaša se kao refleksija preko . Operator je refleksija kroz . Prema tome, vektor stanja ostaje u ravni razapetoj sa i posle svake primene operatora i , i jednostavno je proveriti da operator svake Groverove iteracije rotira vektor stanja za ugao .
Potrebno je da stanemo kada vektor stanja prođe blizu ; nakon ovoga, poditeracije rotiraju vektor stanja dalje od , umanjujući verovatnoću dobijanja tačnog odgovora. Tačna verovatnoća tačnosti odgovora je:
gde jer (ceo) broj Groverovih iteracija. Najranije gde dobijamo meru blizu optimalne je prema tome .
Algebarski dokaz korektnosti
[уреди | уреди извор]Da bismo obavili algebarsku analizu potrebno je da otkrijemo šta se događa kada više puta primenimo . Prirodan način da se ovo učini je pomoću analize sopstvenih vrednosti matrice. Primetimo da tokom celokupnog izračunavanja, stanje algoritma je linearna kombinacija i . Možemo napisati dejstvo od i u normalnom prostoru razapetom sa kao:
Tako da u bazi (koja nije ni ortogonalna niti baza celokupnog prostora) dejstvo primene praćeno sa dato je matricom
Ispada da je ova matrica veoma zgodna Žordanova forma. Ako orijentišemo , to je
- gde je
Ispostavlja se da je r-ti stepen matrice (U odnosu na r iteracija)
Korišćenjem ove forme možemo koristiti trigonometrijske identitete kako bismo izračunali verovatnoću posmatrajući ω nakon r iteracija pomenutih u prethodnom odeljku,
- .
Alternativno, neko sa pravom može pomisliti da bi vreme blizu optimalnog za razlikovanje bilo kada su uglovi 2rt and -2rt udaljeni najdalje moguće, što je u vezi sa or . Tada je sistem u stanju
Sada kratko izračunavanje pokazuje da observacija doprinosi tačnom odgovoru ω sa greškom O(1/N).
Proširenje prostora za višestruke pogotke
[уреди | уреди извор]Ako, umesto jednog traženog unosa, postoji k unosa koji odgovaraju, isti algoritam važi, ali broj iteracija mora biti π(N/k)1/2/4 umesto πN1/2/4. Postoji nekoliko načina da se suočimo sa slučajem kada je k nepoznato. Na primer, jedan može primeniti Groverov algoritam nekoliko puta, sa
iteracija. Za proizvoljno k, jedna od iteracija će pronaći traženi unos sa dovoljno visokom verovatnoćom. Ukupan broj iteracija je najviše
što je i dalje O(N1/2). Može se pokazati da ovo može biti unapređeno. Ako je broj označenih pojmova k, gde je k nepoznato, postoji algoritam koji nalazi rešenje za upita. Ova činjenica se može iskoristiti za rešavanje problema kolizija.,[2][3]
Parcijalna kvantna pretraga
[уреди | уреди извор]Modifikaciju Groverovog algoritm,a nazvanu parcijalna kvantna pretraga, opisali su Grover i Radhakrišnan 2004. godine[4] I parcijalnoj pretrazi, nismo zainteresovani za pronalaženje tačne adrese traženog pojma, samo nekoliko prvih cifara adrese. Ekvivalentno, možemo to posmatrati kao "seckanje" prostora obuhvaćenog pretragom u blokove, i onda pitati "u kom bloku se nalazi traženi pojam?". U mnogim primenama, ovakva pretraga doprinosi dovoljno informacija ako ciljna adresa sadrži traženu informaciju. Kako bismo to pokazali, koristićemo primer dat od strane L.K. Grovera, ako imamo listu studenata uređenu po proseku ocena, možemo biti zainteresovani samo da li je student u donjem 25%, 25-50%, 50-70% ili 75-100% procentu.
Da bismo opisali parcijalnu pretragu, koristićemo bazu podataka podeljenu na blokova, od kojih je svaki veličine . Očigledno, problem parcijalne pretrage je jednostavniji. Razmotrimo klasičan pristup - odaberemo nasumično jedan blok, pa zatim primenimo uobičajenu pretragu kroz ostatak blokova (na jeziku teorije skupova language, komplement). Ukoliko ne pronađemo traženi pojam, znaćemo da nije u bloku u kome smo tražili. Prosečan broj iteracija kreće se od do .
Groverovom algoritmu je potrebno iteracija. Parcijalna pretraga će biti brža za numerički faktor koji zavisi od broja blokova . Parcijalna pretraga koristi globalnih iteracija lokalnih iteracija. Globalni Groverov operator je označen sa dok je lokalni Groverov operator označen sa .
Globalni Groverov operator deluje na blokove. Specijalno, dat je kao:
- Primeniti standardnih Groverovih iteracija na celokupnu bazu.
- Primeniti lokalnih Groverovih iteracija. Lokalna Groverova iteracija je direktna suma Groverovih iteracija i svakog bloka.
- Primeniti jednu standatdnu Groverovu iteraciju
Optimalne vrednosti i su razmotrene u članku Grovera i Radhakrišnana. Neko se može zapitati šta se dešava ako se primeni uzastopna parcijalna pretraga na različitim nivoima "rezolucije". Ova ideja je detaljno proučena od strane Korepina and Ksua, koji su je nazvali kvantno binarno stablo pretrage. Dokazali su da da nije brža u odnosu na primenu jedne parcijalne pretrage.
Optimalnost
[уреди | уреди извор]Poznato je da je Groverov algoritam optimalan. Što će reći, bilo koji algoritam koji pristupa bazi podataka korišćenjem samo operatora Uω mora primeniti Uω najmanje onoliko puta koliko i Groverov algoritam.[1] Ovaj rezultat je bitan za razumevanje ograničenja kvantnog izračunavanja. Da je problem Groverove pretrage rešiv za logc N primenom Uω, iz toga bi sledilo da je klasa NP sadržana u BQP, svođenjem problema iz NP na probleme tipa Groverove pretrage. Optimalnost Groverovog algoritma nalaže (ali ne dokazuje) da klasa NP nije sadržana u BQP.
Broj iteracija za k pronađenih pogodaka, π(N/k)1/2/4, je takođe optimalan.[2]
Reference
[уреди | уреди извор]- ^ а б Bennett C.H., Bernstein E., Brassard G., Vazirani U., The strengths and weaknesses of quantum computation. SIAM Journal on Computing . 26 (5): 1510—1523 http://www.cs.berkeley.edu/~vazirani/pubs/bbbv.ps. Недостаје или је празан параметар
|title=
(помоћ) (1997). Shows the optimality of Grover's algorithm. - ^ а б Michel Boyer; Gilles Brassard; Peter Høyer; Alain Tapp (1998), „Tight Bounds on Quantum Searching”, Fortsch. Phys., 46 (4–5): 493—506, Bibcode:1998ForPh..46..493B, S2CID 10032711, arXiv:quant-ph/9605034 , doi:10.1002/(SICI)1521-3978(199806)46:4/5<493::AID-PROP493>3.0.CO;2-P
- ^ Andris Ambainis (2004), „Quantum search algorithms”, SIGACT News, 35 (2): 22—35, S2CID 11326499, arXiv:quant-ph/0504012 , doi:10.1145/992287.992296
- ^ Grover, Lov K.; Radhakrishnan, Jaikumar (2004). „quant-ph/0407122”. arXiv:quant-ph/0407122 .
Literatura
[уреди | уреди извор]- Grover, Lov K. (1996). „A fast quantum mechanical algorithm for database search”. Bibcode:1996quant.ph..5043G. arXiv:quant-ph/9605043 .
- Grover, Lov K. (2001). „From Schrödinger's equation to the quantum search algorithm”. Pramana. 69 (7): 769—777. Bibcode:2001Prama..56..333G. S2CID 9505022. arXiv:quant-ph/0109116 . doi:10.1007/s12043-001-0128-3.
- Nielsen, M.A. and Chuang, I.L. Quantum computation and quantum information. Cambridge University Press, 2000. Chapter 6.
- What's a Quantum Phone Book?, Lov Grover, Lucent Technologies
- Lavor, C.; Manssur, L. R. U.; Portugal, R. (2003). „Grover's Algorithm: Quantum Database Search”. Bibcode:2003quant.ph..1079L. arXiv:quant-ph/0301079 .
- Grover's algorithm on arxiv.org
Spoljašnje veze
[уреди | уреди извор]- Grover's Algorithm Архивирано на сајту Wayback Machine (24. мај 2014) simulation and circuit diagram.
- Grover’s Quantum Search Algorithm Архивирано на сајту Wayback Machine (17. новембар 2020) animated explanation.
- Simulation and circuit diagram with cats