Algoritmul lui Simon
Algoritmul lui Simon este un algoritm cuantic de interogare pentru o problemă cunoscută sub numele de problema lui Simon. Aceasta este o problemă cu promisiune, cu o structură similară problemelor Deutsch-Jozsa și Bernstein-Vazirani, dar cu detalii diferite.
Algoritmul lui Simon este semnificativ deoarece oferă un avantaj exponențial al calculului cuantic față de cel clasic (inclusiv probabilistic), iar tehnica pe care o folosește l-a inspirat pe Peter Shor să descopere un algoritm cuantic eficient pentru factorizarea numerelor întregi.
Problema lui Simon
Funcția de intrare pentru problema lui Simon are forma
pentru numerele întregi pozitive și Am putea restrânge atenția la cazul în interesul simplității, dar nu există mare câștig în a face această presupunere — algoritmul lui Simon și analiza sa sunt practic aceleași în ambele situații.
Vom desface promisiunea pentru a înțelege mai bine ce spune imediat, dar mai întâi să fie clar că aceasta necesită ca să aibă o structură foarte specială — astfel, majoritatea funcțiilor nu vor satisface această promisiune. Este, de asemenea, potrivit să recunoaștem că această problemă nu este menită să aibă importanță practică. Mai degrabă, este o problemă oarecum artificială, concepută special pentru a fi ușoară pentru calculatoarele cuantice și dificilă pentru cele clasice.
Există două cazuri principale: primul caz este că este șirul de zerouri iar al doilea caz este că nu este șirul de zerouri.
-
Cazul 1: Dacă este șirul de zerouri, putem simplifica enunțul de tip dacă și numai dacă din promisiune, astfel încât să citim Aceasta este echivalentă cu faptul că este o funcție injectivă.
-
Cazul 2: Dacă nu este șirul de zerouri, atunci satisfacerea promisiunii pentru acest șir implică că este doi-la-unu, adică pentru fiecare șir de ieșire posibil al lui există exact două șiruri de intrare care determină să producă acel șir. Mai mult, aceste două șiruri de intrare trebuie să aibă forma și pentru un anume șir
Este important să recunoaștem că poate exista un singur șir care funcționează dacă promisiunea este îndeplinită, deci există întotdeauna un răspuns corect unic pentru funcțiile care satisfac promisiunea.
Iată un exemplu de funcție cu forma care satisface promisiunea pentru șirul
Există șiruri de intrare diferite și șiruri de ieșire diferite, fiecare apărând de două ori — deci aceasta este o funcție doi-la-unu. Mai mult, pentru oricare două șiruri de intrare diferite care produc același șir de ieșire, observăm că XOR-ul bit cu bit al acestor două șiruri de intrare este egal cu ceea ce este echivalent cu a spune că oricare dintre ele este egal cu celălalt XOR-at cu
Observă că singurul lucru care contează despre șirurile de ieșire efective este dacă sunt aceleași sau diferite pentru diferite alegeri de șiruri de intrare. De exemplu, în exemplul de mai sus, există patru șiruri și care apar ca ieșiri ale lui Am putea înlocui aceste patru șiruri cu șiruri diferite, atâta timp cât sunt toate distincte, iar soluția corectă nu s-ar schimba.
Descrierea algoritmului
Iată o diagramă de Circuit cuantic care reprezintă algoritmul lui Simon.
Pentru a fi clar, există Qubiți în partea de sus care sunt acționați de Gate-uri Hadamard și Qubiți în partea de jos care intră direct în Gate-ul de interogare. Arată foarte similar cu algoritmii pe care i-am discutat deja în lecție, dar de data aceasta nu există kickback de fază; cei Qubiți din partea de jos intră în Gate-ul de interogare în starea
Rezolvarea problemei lui Simon folosind acest Circuit va necesita de fapt mai multe rulări independente ale acestuia, urmate de un pas de procesare clasică, care va fi descris ulterior după ce comportamentul Circuit-ului este analizat.
Analiză
Analiza algoritmului lui Simon începe în mod similar cu algoritmul Deutsch-Jozsa. După ce primul strat de porți Hadamard este aplicat pe cei qubiți superiori, starea devine
Când se aplică , rezultatul funcției este aplicat prin XOR pe starea zero a celor qubiți inferiori, astfel că starea devine
Când se aplică al doilea strat de porți Hadamard, obținem starea de mai jos folosind aceeași formulă pentru acțiunea unui strat de porți Hadamard ca înainte.
În acest punct, analiza diverge față de cele ale algoritmilor precedenți din această lecție.
Suntem interesați de probabilitatea ca măsurătorile să producă fiecare șir posibil Prin regulile de analiză a măsurătorilor descrise în lecția Sisteme multiple din cursul Noțiuni de bază ale informației cuantice, găsim că probabilitatea de a obține șirul este egală cu
Pentru a înțelege mai bine aceste probabilități, avem nevoie de puțină notație și terminologie suplimentară. Mai întâi, imaginea funcției este mulțimea care conține toate șirurile de ieșire ale acesteia.
În al doilea rând, pentru fiecare șir putem exprima mulțimea tuturor șirurilor de intrare care determină funcția să evalueze la acest șir de ieșire ca
Mulțimea este cunoscută sub numele de preimaginea lui prin Putem defini preimaginea prin a oricărei mulțimi în locul lui în mod analog — este mulțimea tuturor elementelor pe care le mapează în acea mulțime. (Această notație nu trebuie confundată cu inversa funcției care s-ar putea să nu existe. Faptul că argumentul din stânga este mulțimea și nu elementul este indiciul care ne permite să evităm această confuzie.)
Folosind această notație, putem descompune suma din expresia noastră pentru probabilitățile de mai sus pentru a obține
Fiecare șir este reprezentat exact o dată de cele două sume — practic grupăm aceste șiruri în compartimente separate în funcție de șirul de ieșire pe care îl produc la evaluarea funcției și apoi facem suma separat pentru fiecare compartiment.
Putem acum calcula norma euclidiană la pătrat pentru a obține
Pentru a simplifica și mai mult aceste probabilități, să analizăm valoarea
pentru o selecție arbitrară a lui
Dacă se întâmplă ca atunci este o funcție injectivă și există întotdeauna un singur element pentru orice Valoarea expresiei este în acest caz.
Dacă, pe de altă parte, atunci există exact două șiruri în mulțimea Mai precis, dacă alegem ca oricare dintre aceste două șiruri, atunci celălalt șir trebuie să fie conform promisiunii din problema lui Simon. Folosind această observație, putem simplifica astfel.
Deci, se dovedește că valoarea este independentă de alegerea specifică a lui în ambele cazuri.
Putem acum finaliza analiza examinând separat aceleași două cazuri ca înainte.
-
Cazul 1: În acest caz funcția este injectivă, deci există șiruri și obținem
Cu alte cuvinte, măsurătorile produc un șir ales uniform la întâmplare.
-
Cazul 2: În acest caz este două-la-unu, deci există elemente în Folosind formula de mai sus, concluzionăm că probabilitatea de a măsura fiecare este
Cu alte cuvinte, obținem un șir ales uniform la întâmplare din mulțimea care conține șiruri. (Deoarece exact jumătate dintre șirurile binare de lungime au produsul scalar binar cu iar celelalte au produsul scalar binar cu după cum am observat deja în analiza algoritmului Deutsch-Jozsa pentru problema Bernstein-Vazirani.)
Postprocesare clasică
Știm acum care sunt probabilitățile pentru rezultatele posibile ale măsurătorii atunci când rulăm circuitul cuantic pentru algoritmul lui Simon. Este suficientă această informație pentru a determina ?
Răspunsul este da, cu condiția să fim dispuși să repetăm procesul de mai multe ori și să acceptăm că ar putea eșua cu o anumită probabilitate, pe care o putem face foarte mică rulând circuitul de suficient de multe ori. Ideea esențială este că fiecare execuție a circuitului ne oferă dovezi statistice cu privire la iar putem folosi acele dovezi pentru a găsi cu o probabilitate foarte mare dacă rulăm circuitul de suficient de multe ori.
Să presupunem că rulăm circuitul independent de ori, pentru Nu există nimic special în legătură cu acest număr particular de iterații — am putea lua mai mare (sau mai mic) în funcție de probabilitatea de eșec pe care suntem dispuși să o tolerăm, după cum vom vedea. Alegând ne vom asigura că avem o șansă mai mare de % de a recupera
Rulând circuitul de ori, obținem șirurile Pentru a fi clari, supraindexurile de aici fac parte din numele acestor șiruri, nu sunt exponenți sau indici ai biților lor, deci avem
Formăm acum o matrice cu rânduri și coloane, luând biții acestor șiruri ca intrări cu valori binare.
Acum, nu știm ce este în acest moment — scopul nostru este să găsim acest șir. Dar imaginează-ți pentru o clipă că știm șirul și formăm un vector coloană din biții șirului după cum urmează.
Dacă efectuăm înmulțirea matrice-vector modulo — adică efectuăm înmulțirea ca de obicei și apoi luăm restul intrărilor rezultatului după împărțirea la — obținem vectorul format din zerouri.
Adică, tratat ca vector coloană descris mai sus, șirul va fi întotdeauna un element al spațiului nul al matricei cu condiția să facem aritmetica modulo Acest lucru este adevărat atât în cazul în care , cât și în cazul în care Mai precis, vectorul format din zerouri se află întotdeauna în spațiul nul al lui și i se alătură vectorul ale cărui intrări sunt biții lui în cazul în care
Întrebarea rămasă este dacă vor exista alți vectori în spațiul nul al lui în afara celor corespunzători lui și Răspunsul este că acest lucru devine din ce în ce mai puțin probabil pe măsură ce crește — și dacă alegem spațiul nul al lui nu va conține niciun alt vector în afara celor corespunzători lui și cu o șansă mai mare de %. Mai general, dacă înlocuim cu pentru o alegere arbitrară a unui număr întreg pozitiv probabilitatea ca vectorii corespunzători lui și să fie singuri în spațiul nul al lui este de cel puțin
Folosind algebra liniară, este posibil să calculăm eficient o descriere a spațiului nul al lui modulo Mai precis, se poate face folosind eliminarea gaussiană, care funcționează la fel când aritmetica se face modulo ca și cu numere reale sau complexe. Atât timp cât vectorii corespunzători lui și sunt singuri în spațiul nul al lui ceea ce se întâmplă cu probabilitate mare, putem deduce din rezultatele acestui calcul.
Dificultatea clasică
Câte interogări are nevoie un algoritm de interogare clasic pentru a rezolva problema lui Simon? Răspunsul este: multe, în general.
Există diferite afirmații precise care pot fi făcute despre dificultatea clasică a acestei probleme, și iată doar una dintre ele. Dacă avem orice algoritm de interogare probabilistic, iar acel algoritm face mai puțin de interogări, ceea ce reprezintă un număr de interogări exponențial în atunci acel algoritm va eșua în a rezolva problema lui Simon cu o probabilitate de cel puțin
Uneori, dovedirea unor rezultate de imposibilitate ca acesta poate fi foarte dificilă, dar acesta nu este prea greu de dovedit printr-o analiză probabilistică elementară. Totuși, aici vom examina doar pe scurt intuiția de bază din spatele lui.
Încercăm să găsim șirul ascuns dar atât timp cât nu interogăm funcția pe două șiruri care au aceeași valoare de ieșire, vom obține informații foarte limitate despre Intuitiv vorbind, tot ce vom afla este că șirul ascuns nu este SAU-ul exclusiv al niciunor două șiruri distincte pe care le-am interogat. Iar dacă interogăm mai puțin de șiruri, vor exista în continuare multe alegeri pentru pe care nu le-am exclus deoarece nu există suficiente perechi de șiruri pentru a face asta. Acesta nu este un proof formal, este doar ideea de bază.
Deci, în rezumat, algoritmul lui Simon ne oferă un avantaj remarcabil al calculului cuantic față de algoritmii clasici în cadrul modelului de interogare. În particular, algoritmul lui Simon rezolvă problema lui Simon cu un număr de interogări liniar în numărul de biți de intrare ai funcției noastre, în timp ce orice algoritm clasic, chiar dacă este probabilistic, trebuie să facă un număr de interogări exponențial în pentru a rezolva problema lui Simon cu o probabilitate rezonabilă de succes.