Puterea unui computer cuantic este măsurată în qubiți, unitatea de bază de măsură a unui computer cuantic. .
Fac un față palmă după fiecare lectură a unei astfel de fraze. Nu a dus la nimic bun, iar vederea începe să îmi scadă; în curând va trebui să mă adresez lui Meklon.
Cred că este timpul să sistematizăm câțiva parametri de bază ai computerelor cuantice. Există câțiva:
- Numărul de qubiți
- Timpul de păstrare a coerenței (timpul de decoerență)
- Nivelul de erori
- Arhitectura procesorului
- Preț, disponibilitate, condiții de întreținere, timp de amortizare, instrumente de programare, etc.
Numărul de qubiți
Aici este totul evident, cu cât mai mult, cu atât mai bine. În realitate, însă, trebuie să plătim pentru qubiți, iar ideal ar fi să cumpărăm exact atâția qubiți cât este necesar pentru a îndeplini sarcina. Pentru dezvoltatorul de mașini de jocuri exclusiviste, este suficient un qubit pe mașină (pentru generarea aleatoriului). Pentru «brute force» RSA-2048 — cel puțin 2048 qubiți.
Cele mai mediatizate algoritmi cuantici poartă numele lui Grover și Shor. Grover permite „hackingul” hash-urilor. Pentru a provoca prăbușirea Bitcoin-ului sunt necesare computere cu cel puțin 256 qubiți la bord (se poate manipula dificultatea Bitcoin-ului, dar să ne oprim la această cifră rotundă). Shor permite factorizarea numerelor. Pentru factorizarea unui număr cu lungimea n de biți, sunt necesari cel puțin n qubiți.
Maximul actual: 50 qubiți (). Și, de fapt, 50 qubiți este limita. Limita simulării unui computer cuantic. În teorie, putem simula orice număr de qubiți pe computere clasice. În practică, adăugarea unui qubit în simulare necesită dublarea calculatoarelor clasice. Adăugați aici zvonurile despre dublarea qubiților în fiecare an și puneți-vă întrebarea: cum debugezi algoritmii pentru 25651210242048 qubiți? Nu există simulator, nu poți seta un punct de întrerupere pe un procesor cuantic.
Timpul de păstrare a coerenței (timpul de decoerență)
Coerența și coerența nu sunt același lucru. Prefer să compar coerența cu regenerarea memoriei RAM. Pe un modul RAM există miliarde de celule, fiecare cu o sarcină, 0 sau 1. Această sarcină are o proprietate foarte interesantă – aceasta se estompează. O celulă „1” devine o celulă de 0.99, apoi 0.98 și tot așa. Drept urmare, pe celula de 0 se acumulează 0.01, 0.02, 0.03… Aceasta necesită actualizarea sarcinii, „regenerarea”. Tot ceea ce este sub jumătate se resetează la zero, restul fiind ajustat la unu.
Nu se poate regenera procesoare cuantice. Prin urmare, pentru toate calculele există un singur ciclu, până la primul qubit „picurat”. Timpul până la prima „scurgere” se numește timpul de decoerență. Coerența este starea în care qubitii nu au „picurat” încă. poți privi explicații ceva mai avansate.
Decoerența este legată de numărul de qubitii: cu cât sunt mai mulți qubitii, cu atât este mai greu să menții coerența. Pe de altă parte, având un număr mare de qubitii, poți aloca o parte din ei pentru corectarea erorilor legate de decoerență. De aici rezultă, că numărul de qubitii în sine nu rezolvă nimic. Poți dubla numărul de qubitii și să cheltuiești 90% dintre ei pentru fixarea decoerenței.
Aici apare conceptul de qubit logic. În linii mari, dacă ai un procesor cu 100 de qubitii, dar 40 dintre ei sunt dedicați fixării decoerenței – îți rămân 60 de qubitii logici. Cei pe care execute algoritmul tău. Conceptul de qubitii logici este în prezent mai degrabă teoretic, eu personal nu am auzit despre implementări practice.
Erori și corectarea lor
Încă o problemă a procesoarelor cuantice. Dacă inversezi un qubit, cu o probabilitate de 2% operația se va încheia cu o eroare. Dacă împleti două qubitii, probabilitatea erorii ajunge la 8%. Ia un număr de 256 de biți, hash-uieste-l cu SHA-256, socotește numărul de operații, calculează probabilitatea de a realiza TOATE aceste operații fără erori.
Matematicienii oferă o soluție: corectarea erorilor. Există algoritmi. Implementarea unei împletiri a 2 qubitii logici necesită 100.000 de qubitii fizici. Când va veni apocalipsa Bitcoin, nu se știe.
Arhitectura procesorului
Strict vorbind, nu există calculatoare cuantice. Există doar procesoare cuantice. De ce ai nevoie de memorie RAM când timpul de execuție este limitat la câteva milisecunde? Eu programez în Q#, dar acesta este un limbaj de nivel înalt. Mi-am alocat 15 qubiți și fac cu ei ce vreau. Dacă vreau, încurc primul qubit cu al zecelea. Dacă doresc — încurc primii șase.
Pe un procesor real, nu există această libertate. Dacă cer să încurc primul qubit cu 15 — compilatorul va genera 26 de operații suplimentare. Dacă am noroc. Dacă nu am noroc — va genera o sută. Problema este că un qubit se poate încurca doar cu vecinii săi. Mai mult de 6 vecini pentru un qubit nu am văzut. În principiu, există compilatoare de programe cuantice optimizatoare, dar acestea sunt încă mai degrabă teoretice.
Fiecare procesor are propriul său set de instrucțiuni, iar conexiunile dintre qubiți diferă. Într-o lume ideală avem Rx, Ry, Rz arbitrare și combinațiile lor, plus încurcare liberă pe zeci de parametri, plus Swap: aruncați o privire la operatorii din . În realitate, însă, avem câteva perechi de qubiți, iar încurcarea CNOT (q[0], q[1]) costă o operație, iar CNOT(q[1], q[0]) — deja 7. Iar coerența se topește...
Prețul, disponibilitatea, condițiile de întreținere, timpul de amortizare, instrumentele de programare...
Prețurile nu sunt făcute publice, accesibilitatea pentru cetățeanul de rând este aproape zero, iar timpul de amortizare nu a fost calculat practic, instrumentele de programare abia încep să apară. Documentația se găsește pe arxiv.org.
Ce informații ar trebui să cerem de la experți la lansarea unui nou calculator cuantic?
Pe lângă lista de mai sus, îmi plac opțiunile de la și :
Ar fi minunat ca fiecare articol despre un nou calculator cuantic să înceapă cu două caracteristici — numărul de qubiți încurcați simultan și timpul de retenție al qubiților.
Sau chiar mai bine — cu timpul necesar pentru realizarea celui mai simplu benchmark, de exemplu găsirea factorilor primi ai numărului 91.
Sursa: habr.com
