Kvantiniai kompiuteriai jau nebe fantastika iš mokslinės literatūros – jais dabar aktyviai domisi IBM, Google, Rigetti, IonQ ir dešimtys mažesnių startuolių. Bet jei paklaustumėte inžinieriaus, kuris tiesiogiai dirba su kubitais, kas jam kelia daugiausiai galvos skausmo, atsakymas dažniausiai bus vienas – klaidos. Ne programavimo klaidos, kaip prie klasikinio kodo esame įpratę, o fizinės, kylančios pačioje kvantinės sistemos gelmėje. Ir čia į sceną žengia kvantinių klaidų taisymas (angl. quantum error correction, QEC) – sritis, be kurios apie praktiškai naudingus kvantinius kompiuterius galima būtų tik sapnuoti.
Kodėl kubitai tokie trapūs
Klasikinis bitas yra arba 0, arba 1. Paprasta, nuspėjama, atsparu triukšmui – juk elektrinė grandinė gana tiksliai atskiria žemą ir aukštą įtampą. Kubitas veikia visiškai kitaip. Jis egzistuoja superpozicijoje, jo būsena aprašoma kompleksiniais skaičiais, ir bet koks išorinis poveikis – šiluminis triukšmas, elektromagnetiniai trukdžiai, net kosminiai spinduliai – gali pakeisti tą trapią būseną neatpažįstamai.
Šis reiškinys vadinamas dekoherencija. Kubitas praktiškai „pameta” savo kvantinę informaciją per mikrosekundes ar milisekundes, priklausomai nuo technologijos. Superconducting kubitai (naudojami IBM ir Google) turi koherencijos laiką apie 100–300 mikrosekundžių, jonų gaudyklės (IonQ) – kiek ilgiau, bet vis tiek kalbame apie labai trumpus intervalus, kuriuose reikia sudėti visus skaičiavimus.
Dar viena bėda – vartai. Kiekvienas kvantinis loginis vartas turi klaidos tikimybę, dažniausiai 0,1–1 procento diapazone geriausiose sistemose. Atrodytų nedaug, bet sudėkite tūkstančius vartų viename algoritme, ir bendra klaidos tikimybė šauna į dangų. Klasikinėje elektronikoje panašaus lygio klaidų tiesiog nepakęstume.
Kodėl klasikinis klaidų taisymas čia netinka
Klasikiniame kompiuteryje klaidų taisymas paprastas iš esmės – padaryk kelias bito kopijas, palygink jas, imk daugumos balsą. Tai vadinama pasikartojimo kodu (repetition code) ir jis veikia neblogai, kai turime paprastas dvireikšmes reikšmes.
Su kubitais taip negalime elgtis dėl dviejų fundamentalių priežasčių. Pirma, klonavimo teorema (no-cloning theorem) draudžia tiksliai nukopijuoti nežinomą kvantinę būseną. Fiziškai neįmanoma paimti kubito ir padaryti jo identišką kopiją, jei nežinome, kokia ta būsena yra – tai ne techninis ribotumas, o pačios kvantinės mechanikos pasekmė.
Antra, matavimas. Klasikiniame pasaulyje galime tiesiog pažiūrėti į bitą ir pasakyti, koks jis. Kvantiniame pasaulyje matavimas sugriauna superpoziciją – kubitas „nukrenta” į vieną iš bazinių būsenų, ir visa informacija apie tarpines fazes prarandama. Taigi negalime paprasčiausiai patikrinti kubito būsenos, norėdami sužinoti, ar įvyko klaida.
Šie dviejų problemų sprendimas – ir yra visos kvantinės klaidų taisymo teorijos šerdis. Reikėjo sugalvoti, kaip aptikti klaidą netiesiogiai, nesunaikinant naudingos informacijos.
Loginiai kubitai ir stebilizatoriaus kodai
Sprendimas, kurį mokslininkai rado – kelių fizinių kubitų sujungimas į vieną „loginį” kubitą. Idėja panaši į tai, kad viena svarbi žinia užrašoma keliomis skirtingomis formomis, ir jei viena forma sugadinama, kitos leidžia atstatyti originalą.
Klasikiausias pavyzdys – Shoro kodas (Shor code), pasiūlytas 1995 metais Peterio Shoro, to pačio, kuris sukūrė garsųjį faktorizacijos algoritmą. Jis naudoja devynis fizinius kubitus vienam loginiam kubitui apsaugoti, ir gali taisyti tiek bito flip (X klaidas), tiek fazės flip (Z klaidas) klaidas atskirai.
Praktiškai dabar pramonėje dominuoja stebilizatoriaus kodai (stabilizer codes), o tarp jų – toriniai kodai (toric codes) ir jų praktinis įsikūnijimas, paviršiaus kodas (surface code). Paviršiaus kodas šiuo metu yra populiariausias tarp kompanijų, nes jam reikia tik kaimyninių kubitų sąveikų dvimatėje gardelėje – tai labai gerai dera su tuo, kaip fiziškai konstruojami superconducting procesoriai.
Kaip veikia stebilizatoriaus matavimai? Vietoj to, kad matuotume patį duomenų kubitą, mes matuojame tam tikras jo sąveikas su kaimyniniais kubitais, naudodami papildomus „pagalbinius” (ancilla) kubitus. Šis matavimas suteikia informaciją apie klaidos sindromą (error syndrome) – t. y. požymius, kad kažkas negerai, be to, kad sugriautų pačią saugomą informaciją. Tada klasikinis kompiuteris analizuoja tuos sindromus ir nustato, kokią korekciją reikia atlikti.
Kvantinis slenkstis – kiek klaidų dar priimtinos
Vienas svarbiausių teorinių rezultatų šioje srityje – slenksčio teorema (threshold theorem). Ji teigia: jei fizinių vartų klaidos tikimybė žemesnė už tam tikrą slenkstį, klaidų taisymo kodus galima naudoti rekursyviai, taip mažinant efektyvią klaidos tikimybę beveik iki nulio, kiek beribė reikėtų.
Skamba beveik pernelyg gerai, tiesa? Bet čia esama didelio „bet”. Slenkstis paviršiaus kodui teoriškai yra apie 1 procentas fizinei vartų klaidai, praktiškai realistiškesnis skaičius – apie 0,1–0,5 procento, priklausomai nuo triukšmo modelio ir konkrečios architektūros. Tai reiškia, kad šiuolaikiniai procesoriai – ypač geriausi Google Sycamore ar IBM Eagle chipai – artėja prie šio slenksčio, bet dar ne visada patikimai jį pasiekia visais vartų tipais.
Ir dar vienas svarbus dalykas – net jei esame žemiau slenksčio, absoliutus kubitų skaičius, reikalingas praktiškam algoritmui, yra šokiruojantis. Norint gauti vieną „gerą” loginį kubitą su klaidos tikimybe žemesne nei 10^-15 (tokio lygio reikia realiam kriptografiniam faktorizacijos algoritmui), su paviršiaus kodu gali reikėti nuo šimtų iki tūkstančio fizinių kubitų vienam loginiam. Google 2023-2024 metais demonstravo eksperimentus, kur loginio kubito klaidos tikimybė mažėjo augint fizinių kubitų skaičių kode – tai buvo pirmas kartas praktiškai parodyta, kad didesnis kodas duoda geresnį rezultatą, o ne atvirkščiai.
Realūs pasiekimai: nuo teorijos prie chipo
2023 metų pabaigoje Google paskelbė eksperimentą su Sycamore procesoriumi, kuriame demonstravo, kad padidinus paviršiaus kodo dydį nuo distancijos 3 iki distancijos 5 (t. y. daugiau fizinių kubitų vienam loginiam), loginio kubito klaidos rodiklis sumažėjo apie 2,14 karto. Tai vadinamas „below threshold” pasiekimu – pirmą kartą praktiškai pademonstruota, kad didesnis, sudėtingesnis kodas iš tikrųjų suteikia geresnę apsaugą, o ne priešingai, kaip būna žemesnės kokybės sistemose, kur triukšmo sukėlimas iš papildomų kubitų nusveria naudą.
IBM eina kitu keliu – jie investuoja į LDPC (low-density parity-check) kodus, konkrečiai į „bivariate bicycle codes”, kurie žada panašų apsaugos lygį su žymiai mažesniu fizinių kubitų skaičiumi, palyginti su tradiciniu paviršiaus kodu. 2024 metų pabaigoje IBM pristatė tyrimus, rodančius, kad tokie kodai gali sumažinti reikalingų fizinių kubitų skaičių maždaug dešimt kartų, lyginant su paviršiaus kodu tam pačiam apsaugos lygiui. Tai reikšminga, nes fizinių kubitų skaičius – tiesiogiai proporcingas chipo dydžiui, gamybos sudėtingumui ir šaldymo infrastruktūros reikalavimams.
Kitas įdomus kelias – neutraliais atomais dirbančios kompanijos, tokios kaip QuEra ar Pasqal. Jos naudoja optines pinceto (optical tweezers) technologijas, leidžiančias fiziškai perkelti kubitus, o tai atveria naujas galimybes topologiniams kodams ir netgi eksperimentams su „logical qubit” architektūromis, kur klaidų taisymas integruotas jau į paties chipo dizainą, ne kaip papildomas sluoksnis viršuje.
Ką tai reiškia programuotojams ir inžinieriams
Jei dirbate ties kvantiniais algoritmais ar tiesiog stebite šią sritį iš IT perspektyvos, verta žinoti kelis praktinius dalykus. Pirma, dabartiniai kvantiniai kompiuteriai vadinami NISQ (Noisy Intermediate-Scale Quantum) eros įrenginiais – jie neturi pilno klaidų taisymo, veikia „nuogai”, su visomis fizinėmis klaidomis. Todėl algoritmai, skirti šiai erai (VQE, QAOA), yra sukurti taip, kad būtų tolerantiški triukšmui, dažnai naudojant klaidų mažinimo (error mitigation) technikas, kurios yra pigesnė, nors ir mažiau patikima alternatyva pilnam klaidų taisymui.
Antra, jei rašote kvantinį kodą naudodami Qiskit, Cirq ar PennyLane, ateityje verta suprasti skirtumą tarp „fizinio” ir „loginio” kubito abstrakcijos. Kai kompanijos pradės teikti prieigą prie loginių kubitų (o tai jau vyksta – IBM ir Google turi tyrimų kryptis link to), programavimo modelis pasikeis: vietoj rūpinimosi konkrečiu triukšmo profiliu, programuotojas galės kalbėti apie beveik idealius kubitus, o klaidų taisymo sluoksnis dirbs po gaubtu, panašiai kaip operacinė sistema slepia žemo lygio aparatinę įrangą.
Trečia, verta stebėti terminą „fault-tolerant quantum computing” (klaidoms atsparus kvantinis skaičiavimas) – tai etapas, kai visa sistema, įskaitant pačias klaidų taisymo operacijas, sugeba veikti be klaidų kaupimosi. Ekspertai (pvz. iš McKinsey, BCG analizių) prognozuoja, kad pilnai fault-tolerant sistemos praktiniam naudojimui gali pasirodyti apie 2029-2033 metus, nors konkretūs terminai keičiasi kone kas metus, atsižvelgiant į naujausius pasiekimus.
Vietoj išvadų: kur link viskas rieda
Kvantinių klaidų taisymas – tai vienas iš tų atvejų, kai matematinė teorija ir inžinerinė realybė susiduria labai skausmingai, bet ir labai produktyviai. Nuo Shoro devynių kubitų kodo 1995 metais iki dabartinių tūkstančio kubitų procesorių, kurie pagaliau rodo, kad klaidos gali mažėti augint sistemos dydžiui – nueitas ilgas kelias, bet dar tolimas ir tas, kuris liko.
Praktinis patarimas visiems, sekantiems šią sritį: nesitikėkite, kad „kvantinis pranašumas” reikš kasdienį naudojimą jūsų telefone kitą dešimtmetį. Realistiškiau vertinti taip – klaidų taisymas šiuo metu yra pagrindinė kliūtis, ir kompanijos, kurios pademonstruoja reikšmingą progresą šioje srityje (ne kubitų skaičiuje, o klaidos rodiklio mažėjime), yra tos, į kurias verta atkreipti dėmesį rimčiau. Kubitų skaičius yra rinkodaros metrika; loginio kubito klaidos rodiklis – inžinerinė metrika.
Jei norite giliau pasinerti, rekomenduočiau pradėti nuo IBM Quantum Learning platformos, kur yra prieinamų kursų apie stebilizatoriaus formalizmą, arba peržiūrėti Google Quantum AI publikacijas apie Sycamore eksperimentus – jos rašomos gana prieinamai, netgi žmonėms be gilaus fizikos išsilavinimo. O jei jums tiesiog patinka seka technologijų progresą, sekite du skaičius: fizinių vartų klaidos rodiklį (dabar apie 0,1-0,3% geriausiuose chip’uose) ir loginio kubito koherencijos laiko pagerėjimą su kodo dydžio didėjimu. Kai tie du skaičiai susijungs teisinga proporcija visose vartų operacijose, tada ir bus tas momentas, kada kvantiniai kompiuteriai pradės spręsti uždavinius, kurių klasikiniai tiesiog negali įveikti per praktišką laiką.






