Nakon što smo u prethodnim četirima nastavcima napravili uvod u način djelovanja kvantnih računala te pokazali osnovne principe razvoja softvera za takva računala pomoću posebnih Microsoftovih alata, u zadnjem nastavku osvrnut ćemo se na trenutačno stanje na ovom području te na neka očekivanja u najbližoj budućnosti.
Razmotrimo prvo neke od najnovijih objavljenih rezultata o snazi kvantnih računala. U desetom mjesecu prošle godine Google je objavio da je njihovo kvantno računalo (opremljeno Sycamore procesorom) potrošilo 200 sekundi da bi riješilo problem za koji bi najsnažnije klasično računalo trebalo više od 10000 godina. Iako je ovakav rezultat impresivan, za dio stručnjaka nije bio baš relevantan. Googleovo kvantno računalo je jednostavno generiralo ogroman broj slučajnih brojeva za što je po svojoj prirodi (zbog načina djelovanja osnovnih sastavnih dijelova qubita) vrlo pogodno. Za generiranje slučajnih brojeva na klasičnim računalima koriste se prilično složeni algoritmi, što dodatno rezultira tako drastičnim razlikama u predviđenom vremenu rješavanja problema.
Zato je nedavno na istom računalu rješavan problem mnogo bliži stvarnosti — simulacija preslagivanja atoma vodika oko atoma dušika u molekulama N2H2. Iako je ovo (s gledišta složenosti kemijskih spojeva) također prilično jednostavna simulacija, i u ovom je slučaju kvantno računalo u brzini rada znatno nadmašilo klasična superračunala. Rješavanje takvoga problema ujedno ukazuje na jedan od očekivanih načina korištenja kvantnih računala na području kemije.
Pogledajmo sada o kakvom je točno računalu bila riječ tijekom rješavanja spomenutih primjera. Za generiranje slučajnih brojeva Googleovo kvantno računalo sastojalo se od 54 qubita, ali je tijekom izvođenja programa jedan qubit bio isključen zbog neispravnosti. Na istoj konfiguraciji izvođen je i drugi primjer s područja kemije. U ovom trenutku broj qubita u Googleovu računalu povećan je na 72.
Konkurentski proizvodi se u pogledu broja qubita također kreću u sličnom rasponu 50 — 75 qubita. Na primjer, IBM 53 qubita, Intel 49, nekoliko konfiguracija računala u akademskim ustanovama u SAD-u i Kini u rasponu 50 — 60 qubita. Očekuje se da broj qubita u kvantnim računalima u sljedećih nekoliko godina poraste iznad 100 qubita, a još nekoliko godina nakon toga na čak 300 qubita. U trenutku kada broj qubita u kvantnim računalima poraste iznad granice od 100 qubita, sva klasična računala bi u pogledu snage obrade trebala bitno zaostajati za kvantnim računalima.
U praksi snaga kvantnih računala ne ovisi samo o broju qubita nego, gotovo jednako važno, i o stabilnosti u radu. Dok procesori klasičnih računala mogu godinama raditi bez ikakvih pogrešaka, qubiti su mnogo nestabilniji u radu pa je vrijeme njihovog ispravnog rada mnogo kraće. To smo već primijetili u slučaju Googleovog testa snage kvantnoga računala u generiranju slučajnih brojeva. Iako je računalo bilo opremljeno s 54 qubita, tijekom testa nije bilo moguće koristiti jedan qubit.
Glavni uzroci nestabilnosti qubita u radu su „šumovi“ iz okoline, a oni se mogu pojaviti zbog zagrijavanja dijela atoma ili molekula koji predstavljaju sastavnu građu kvantnoga računala. Ovo je ujedno i razlog zbog čega računala građena od qubita izvode svoje operacije na temperaturama vrlo bliskim apsolutnoj nuli.
Zbog spomenute nestabilnosti u radu sâm broj qubita u praksi ne predstavlja pravi pokazatelj snage kvantnoga računala. Tijekom dužeg vremena rada na određenom problemu moglo bi se dogoditi da tijekom rada „ispadne iz korištenja“ jedan ili više qubita. To bi dovelo do izmjene snage kvantnoga računala tijekom izvođenja programa, a u određenim situacijama problem ne bi bilo moguće ni riješiti do kraja. Dio istraživača tvrdi da je bolje imati manji broj dugotrajno stabilnih qubita, neko težiti običnom povećanju broja nestabilnih qubita.
Moguće rješenje nestabilnosti u radu qubita predstavlja korištenje različitih algoritama za ispravljanje pogrešaka nastalih tijekom rada. U pojednostavljenom obliku to je nešto slično automatskoj korekciji grešaka u RAID poljima diskova na klasičnim računalima, ali prilagođeno arhitekturi kvantnih računala. Uz pomoć takvih algoritama povećava se dugotrajna stabilnost kvantnih računala u radu kao rezultat povećanje broja stalno dostupnih qubita. Budući da ovo područje postaje jedan od najvažnijih preduvjeta za šire uvođenja kvantnih računala u svakodnevnu praksu, evo i nekoliko dodatnih poveznica na odgovarajuće materijale: Spectrum, Nature, Arxiv.
Pod pretpostavkom da će algoritmi za automatsko ispravljanje grešaka u budućem razdoblju povećati stabilnost kvantnih računala, za optimalno korištenje potrebno je kontinuirano raditi i na pripremi razvojnih alata za što jednostavniji i intuitivniji razvoj softvera. U prethodnim tekstovima pokazali smo kako razvoj takvoga softvera zamišlja Microsoft, a evo i jedne od najnovijih inicijativa s istog područja pod nazivom SILQ (https://silq.ethz.ch/).
SILQ predstavlja novi programski jezik namijenjen korištenju na kvantnim računalima razvijen od strane švicarskih istraživača (ETH Zurich). Kao i u slučaju Microsoftovog alata (Microsoft QDK) preporučeni način korištenja SILQ-a jest razvojna okolina Visual Studio Code. Budući da je VSC dostupan na različitim operativnim sustavima, to znači da se i SILQ može koristiti na Windows, Linux ili Mac računalima.
Primjer programskog koda:
def solve(k:!ℕ){
// produce uniform superposition over k-bit uints
i:=0:uint[k];
for j in [0..k){ i[j]:=H(i[j]); }
// invert i-th qubits (results in correct state, but entangled with i)
qs:=vector(2^k,0:𝔹);
qs[i]=X(qs[i]);
// uncompute i
forget(i=λ(qs:𝔹^(2^k))lifted{ // function to reconstruct i from qs
i:=0:uint[k];
for j in [0..2^k){
if qs[j]{ // in the superposition's summand where qs[j]==1, i==j
i=j as uint[k];
}
}
return i;
}(qs));
// return result
return qs;
}
// EXAMPLE CALL
def main(){
// example usage for k=2
return solve(2);
}
SILQ bi trebao omogućiti programerima naviklim na korištenje programskih jezika namijenjenih klasičnim računalima jednostavniji prelazak na razvoj softvera za kvantna računala, uz istovremeno iskorištavanje svih raspoloživih potencijala. Prema autorima, SILQ bi trebao biti posebno pogodan za pisanje AI programa na kvantnim računalima.
Slika 1. SILQ — primjer pisanja koda u alatu Visual Studio Code
Ovim tekstom završavamo serijal tekstova o kvantnim računalima. Nadamo ste da ste čitanjem istoga dobili dovoljno uvodnih informacija o ovom području te vam može služiti kao polazište za detaljnije istraživanje kvantnih računala.