Karakteristike kvantnih računala

Snaga kvantnog računala mjeri se u kubitima, osnovnoj jedinici mjere u kvantnom računalu. Izvor.

Radim facepalm nakon svake pročitane takve rečenice. Na dobro to nije ispalo, počela su mi padaći vid; uskoro ću se morati obratiti Meklonu.

Mislim da je vrijeme da nekoliko sistematiziram osnovne parametre kvantnog računala. Ima ih nekoliko:

  1. Broj kubita
  2. Vrijeme zadržavanja koherentnosti (vrijeme dekoherecije)
  3. Razina grešaka
  4. Arhitektura procesora
  5. Cijena, dostupnost, uvjeti održavanja, vrijeme amortizacije, alati za programiranje, itd.

Broj kubita

Ovdje je sve očito, što više, to bolje. U stvarnosti, za kubite se mora platiti, i idealno je kupiti točno onoliko kubita koliko je potrebno za obavljanje zadatka. Za developera ekskluzivnih slot igara dovoljan je jedan kubit po igri (za generiranje nasumičnih brojeva). Za 'brute force' RSA-2048 potrebno je najmanje 2048 kubita.

Najviše hvaljeni kvantni algoritmi nose imena Grover i Shor. Grover omogućava 'hakiranje' heševa. Za rušenje bitcoina potrebna su računala s najmanje 256 kubita na brodu (može se igrati s težinom bitcoina, ali hajdemo se zadržati na ovoj zaokruženoj brojci). Shor omogućava faktorizaciju brojeva. Za faktoriranje broja duljine n binarnih znamenki potrebno je najmanje n kubita.

Trenutni maksimum: 50 kubita (već 72?). I zapravo, 50 kubita je limit. Limit simulacije kvantnog računala. U teoriji, možemo simulirati bilo koji broj kubita na klasičnim računalima. U praksi, dodavanje jednog kubita u simulaciju zahtijeva udvostručenje klasičnih računala. Dodajte ovdje glasine o udvostručavanju kubita svake godine i postavite si pitanje: kako debagirati algoritme za 25651210242048 kubita? Simulatore nema, na kvantnom procesoru breakpoint ne možete staviti.

Vrijeme zadržavanja koherentnosti (vrijeme dekoherecije)

Koherecija i koherentnost nisu isto. Preferiram usporediti koherentnost s regeneracijom radne memorije. Na RAM modulu milijarde su ćelija, na svakoj je napon, nulti ili jedinični. Ova napona ima jako zanimljivu osobinu — slijeva se. Izvorno 'jedinična' ćelija postaje ćelija 0.99, zatim 0.98, i tako dalje. Prema tome, na nulti se akumulira 0.01, 0.02, 0.03… Ovaj napon treba obnoviti, 'regenerirati'. Sve što je ispod polovice baca se na nulu, sve ostalo dosegne jedinični napon.

Kvantni procesori se ne mogu regenerirati. Prema tome, za sve izračune postoji jedan ciklus, do prvog 'propuštenog' kubita. Vrijeme do prvog 'propuštanja' naziva se vremenom dekoherencije. Koherentnost je pak stanje kada kubiti još nisu 'propušteni'. Ovdje možete pogledati malo odraslija objašnjenja.

Dekoherecija je povezana s brojem kubita: što je više kubita, to je teže zadržati koherentnost. S druge strane, s velikim brojem kubita dio njih može se iskoristiti za korekciju grešaka povezanih s dekoherencijom. Otuda proizlazi, da broj kubita sam po sebi ne rješava ništa. Možete udvostručiti broj kubita i potrošiti 90% od njih na ispravljanje dekoherencije.

Otprilike ovdje se javlja pojam logičkog kubita. Grubo rečeno, ako imate procesor sa 100 kubita, ali je 40 od njih usmjereno na ispravljanje dekoherencije — preostaje vam 60 logičkih kubita. Onih na kojima izvršavate svoj algoritam. Koncept logičkih kubita trenutno je prije teoretski, o praktičnim realizacijama osobno nisam čuo.

Greške i njihova korekcija

Još jedna boljka kvantnih procesora. Ako inverzno okrenete kubit, postoji 2% vjerojatnosti da će operacija završiti greškom. Ako zapletete 2 kubita, vjerojatnost greške dostiže 8%. Uzmite broj od 256 bitova, hashirajte ga na SHA-256, izračunajte broj operacija, izračunajte vjerojatnost da izvršite SVE te operacije bez greške.

Matematičari nude rješenje: korekcija grešaka. Algoritmi postoje. Realizacija jednog zapletanja 2 logička kubita zahtijeva 100.000 fizičkih kubita. Bitcoin apokalipsa neće doći uskoro.

Arhitektura procesora

Strogo govoreći, kvantnih računala nema. Postoje samo kvantni procesori. Zašto treba RAM kada je vrijeme rada ograničeno na milisekunde? Programiram na Q#, ali to je jezik visokog nivoa. Izdvojio sam 15 kubita i radi s njima što želiš. Ako želiš, zapleten prvi kubit s desettim. Ako želiš — zapleten prvih šest.

Na stvarnom procesoru takve slobode nema. Zamolio sam da zapleten prvi kubit s 15 — kompajler će generirati 26 dodatnih operacija. Ako ima sreće. Ako nema sreće — generirat će stotinu. Radi se o tome da se kubit može zapletati samo s susjedima. Više od 6 susjeda na kubitu nisam vidio. U principu, postoje optimizirajući kvantni programi kompajleri, ali oni su za sada više teoretski.

Svaki procesor ima svoj skup instrukcija, a veze između kubita se razlikuju. U idealnom svijetu imamo proizvoljne Rx, Ry, Rz, i njihove kombinacije, plus slobodno zapletanje po desetaka karakteristika, plus Swap: pogledajte operatore u Quirk. U stvarnosti imamo nekoliko parova kubita, a zapletanje CNOT (q[0], q[1]) košta jednu operaciju, dok CNOT(q[1], q[0]) već košta 7. A koherentnost nestaje...

Cijena, dostupnost, uvjeti održavanja, vrijeme amortizacije, alati za programiranje...

Cijene se ne oglašavaju, dostupnost običnim građanima je gotovo nula, vrijeme amortizacije nije praktično izračunato, alati za programiranje se tek razvijaju. Dokumentacija je na arxiv.org.

Kakve informacije trebamo tražiti od stručnjaka pri izlasku novog kvantnog računala?

Osim gornjeg popisa, sviđa mi se nekoliko varijanti od PerlPower i Alter2:

Volio bih da svaki članak o novom kvantnom računalu počinje s dvije karakteristike - količinom istovremenih zapletenih kubita, i vremenom zadržavanja kubita.

Ili još bolje - s vremenom izvršavanja najjednostavnijeg benchmarka, na primjer pronalaženja prostih faktora broja 91.

Izvor: habr.com

Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere 🔥 Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere | ProHoster