Kvantkompuutrite omadused

Kvanttiettevõtte võimsus mõõdetakse kubitites, mis on kvantkompuutri põhise mõõtühik. Allikas.

Ma teen iga kord, kui loen sellist lauset, näo pihku. See ei ole head teed viinud, silmad hakkavad vastu minema; pean peagi pöörduma Mekloni poole.

Mõtle, et on aeg veidi süsteemsemalt korraldada kvantkompuutri põhiparameetreid. Need on mitu:

  1. Kubitite arv
  2. Kohandamise säilitamise aeg (dekohereerimise aeg)
  3. Vigu tase
  4. Protsessori arhitektuur
  5. Hind, kättesaadavus, hooldamise tingimused, amortisatsiooniaeg, programmeerimistööriistad jne.

Kubitite arv

Siin on kõik selge, mida rohkem, seda parem. Tegelikult tuleb kubitite eest maksta ja ideaalis tuleb osta just nii palju kubite, kui on vajalik ülesande täitmiseks. Eksklusiivsete mänguautomaatide arendajale piisab ühest kubitist automaadi kohta (juhuslikkuse genereerimiseks). RSA-2048 'bruteforce' jaoks vähemalt 2048 kubiti.

Kõige kuulsamad kvantalgoritmid kannavad Groveri ja Shori nimesid. Grover võimaldab "rikkujaid" häkkida. Bitcoini variseamiseks on vaja arvuteid, millel on vähemalt 256 kubitti pardal (saab mängida bitcoini raskuse ümber, kuid jäägem selle ümmarguse arvu juurde). Shor võimaldab numbreid faktoriseerida. Numbri, mille pikkus on n binaarset bit, faktoriseerimiseks on vaja vähemalt n kubitti.

Praegune maksimaalne: 50 kubitti (juba 72?). Ja tõepoolest, 50 kubitti on piir. Kvantkompleksi simuleerimise piir. Teoreetiliselt saame simuleerida mis tahes arvu kubitte klassikalistel arvutitel. Praktikas nõuab ühe kubitti lisamine simuleerimisele klassikaliste arvutite kahekordistumist. Lisage siia kuuldused kubittide kahekordistumisest iga aasta ja küsige endalt: kuidas debugida algoritme, millel on 25651210242048 kubitti? Simulaatorit pole, kvantprotsessoris ei saa murdepunkte seada.

Kohandamise säilitamise aeg (dekohereerimise aeg)

Kohereeritus ja koherentne olek ei ole üks ja sama. Ma eelistan võrrelda koherentset olekut operatiivmälu regeneratsiooniga. RAM-i ribal on miljardeid rakke, millel on kas null või ühekordne laeng. Sellel laengul on huvitav omadus — see valguv. Algne „ühekordne“ rakk muutub rakuks 0,99, seejärel 0,98 ja nii edasi. Seega null rakk, millele koguneb 0,01, 0,02, 0,03… Selle laengu peab värskendama, „regeneratsioonima“. Kõik, mis on vähem kui pool, nullitakse, kõik muude kogus saavutatakse ühte.

Kvantarvutid ei saa regeneratsioonida. Seega on kõikide arvutuste jaoks olemas üks tsükkel, kuni esimese „lekkinud“ kubiini. Aeg esimese „lekke“ tekkimiseks nimetatakse dekohereerimise ajaks. Koherentne olek tähendab seda, et kubiidid pole veel „lekkinud“. Siit võib vaadata veidi täiskasvanulikumaid selgitusi.

Dekohereerimine on seotud kubiitide arvuga: mida rohkem kubiite, seda keerulisem on hoida koherentset olekut. Teisest küljest, kui on palju kubiite, saab nende hulgast osa kasutada vigade parandamiseks, mis on seotud dekohereerimisega. Sellest tulenevalt, et ettenebad, et kubiitide arv iseenesest midagi ei lahenda. Võib kahekordistada kubiitide arvu ja kulutada 90% neist dekohereerimise fikseerimiseks.

Umbes siin tekib loogilise kubiidi mõisted. Üldiselt, kui teil on 100 kubiidi protsessor, kuid 40 neist on suunatud dekohereerimise fikseerimisele — jääb teile 60 loogilist kubiidi. Need, millega te oma algoritmi täidate. Loogiliste kubiitide kontseptsioon on nüüd pigem teoreetiline; praktilistest rakendustest ei ole ma isiklikult kuulnud.

Vead ja nende parandamine

Veel üks probleem kvantprotsessorite puhul. Kui pöörate kubiiti, lõpeb operatsioon 2% tõenäosusega veaga. Kui te segate 2 kubiiti, ulatub vea tõenäosus 8%-ni. Võtke arv 256 bitist, hashige see SHA-256-ga, arvutage operatsioonide arv, arvutage tõenäosus, et teete KÕIK need operatsioonid veatult.

Matemaatikud pakuvad lahendust: vigade parandamine. Algoritmid on olemas. Ühe loogilise kubiidi segamise rakendamine nõuab 100 000 füüsilist kubiiti. Bitcoini häving ei tule niipea.

Protsessori arhitektuur

Tõele au andes ei ole kvantarvuteid. On ainult kvantarvutiprotsessorid. Milleks on RAM, kui tööaeg on piiratud millisekunditega? Programm teen Q#, kuid see on kõrgema taseme keel. Olen määranud endale 15 kubitti ja tee nendega, mida soovid. Kui tahtsin, siis sidusin esimese kubidi kümnendaga. Kui soovisin – sidusin esimesed kuus.

Reaalses protsessoris sellist vabadust pole. Palusin siduda esimese kubidi 15-ndaga – kompilaator genereerib 26 lisategevust. Kui on vedanud. Kui ei, siis genereerib sajas. Asi on selles, et kubit saab siduda ainult naabritega. Ühtegi kubitti, millel oleks rohkem kui 6 naaber, ma pole näinud. Põhimõtteliselt on olemas optimeerimise kvantprogrammi kompilaatorid, aga need on pigem teoreetilised.

Igal protsessoril on oma käskude kogum ja kubittidevahelised sidemed erinevad. Ideaalses maailmas on meil suvalised Rx, Ry, Rz ja nende kombinatsioonid, pluss vaba sidumine kümne tunnuse kaudu, pluss Swap: vaadake operaatorite kohta Quirk. Reaalsuses on meil siiski mõned kubittide paarid, ning CNOT (q[0], q[1]) sidumine kulutab ühe operatsiooni, kuid CNOT (q[1], q[0]) – juba 7. Ja koherentsus kadus...

Hind, kättesaadavus, hoidmise tingimused, amortisatsiooniperiood, programmeerimistööriistad…

Hinnad ei ole avalikustatud, kättesaadavus tavalisele kodanikule on peaaegu null, amortisatsiooniperioodi on praktikas raske arvutada, programmeerimistööriistad on alles algusfaasis. Dokumentatsioon on saadaval arxiv.org.

Millist teavet tuleks ekspertidelt küsida uue kvantarvuti väljalaskmisel?

Lisaks ülalmainitule meeldivad mulle valikud ka PerlPower ja Alter2:

Oleks tore, kui iga artikkel uue kvantarvuti kohta algaks kahe parameetriga — samal ajal sattunud kubiitide arv ja kubiitide hoidmise aeg.

Või veel parem — lihtsa benchmarki täitmise ajaga, näiteks arvutada arvu 91 algtegurid.

Allikas: habr.com

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster