KVANTOVÉ POČÍTAČE – Po lopate a bez zložitých rovníc

Kvantové počítače sú dôležitým objavom a budú pre naše poznanie mať prinajmenej rovnaký efekt ako vynález elektriny, či rádioaktivity. Je to tak (najmä) preto, že už menší kvantový počítač má výpočtový efekt väčší ako všetky počítače na svete dohromady! Odkiaľ berie kvantový počítač (z AJ skratka QC) silu miliardu krát väčšiu ako klasický počítač? Je možné aby bežal dokonca úplne bez elektriny? Sú QC univerzálne alebo užitočné len v úzkom odvetví? Ktoré profesie pracujúce dnes s počítačom by mail poškuľovať po kvantovom počítači a koho naopak QC zrejme do konca života obídu? Tak toto všetko by ste sa mali v nasledujúcich riadkoch dozvedieť.

Klasický počítač (CC) vs. Kvantový počítač (QC) : Vieme ich rozoznať?

Skúste sa na chvíľu zamyslieť: Čo viete o Kvantovom počítači? Keď som sa pýtal kolegov a ostatných ľudí v mojom okolí, čo vedia o kvantových počítačoch, väčšinou mi odpovedali, že: 1] sú to zásadné rýchlejšie počítače ako tie klasické, ktoré sa však (pre neznáme dôvody) zatiaľ nerozšírili (žeby bolo príliš drahé ?) a pracujú na nich výskumné oddelenia univerzít a najväčších digitálnych spoločností (ako Google či Amazon); 2] Ich výkon sa meria nie v GigaHerzoch, ale v divných kjubit jednotkách; (čo to vlastne je?) 3] Využíva sa v nich nejako Kvantová fyzika a teda je to tak zložité, že vlastne nikto nerozumie ako to presne funguje; 4] Dokážu spočítať veci, ktoré inak nevieme spočítať (ale nik nevie nejaké konkrétne pomenovať). A tým to zvyčajne hasne. Keby som to mal zosumarizovať do jednej vety, asi by som povedal, že verejnosť (aj tá viac odborná) momentálne vníma kvantové počítače ako: “Zložitý, na časticovej Fyzike postavený black box, ktorý počíta zásadne rýchlejšie, ale málokto mu rozumie a ešte nie je rozšírený“. Nuž verím, že po dočítaní tohto článku sa aj vy nad touto odpoveďou blahosklonne pousmejete. Avšak povrchnosť nášho povedomia o tejto dôležitej technológií bola práve tou silou, ktorá ma popchla napísať tento blog.

Podstatou Kvantových počítačov totiž sú naozaj zákonitosti a procesy z Kvantovej mechaniky, odvetvia fyziky, ktoré máme v skutočnosti na mysli, keď slangovo hovoríme ” … to urobíme rýchlo, veď to nie je jadrová fyzika!” Kvantová mechanika je totiž tak zložité odvetvie fyziky, že sa naň hodí prepožičať si z Českej filmovej ságy o Básnikoch parafrázu: “Kvantovú mechaniku vie na jednotku iba Boh, na dvojku držitelia Nobelovej ceny, na trojku vysokoškolskí profesori, na štvorku ich najlepší žiaci a na päťku všetci ostatní!” (len pre korektnosť, v pôvodnom filmovom výroku išlo o Chémiu). To má za následok, že keď otvoríte knihu o QC, už na prvých stranách sa na vás vyvalia komplikované fyzikálne vzorce a rovnice (na ktoré môj spolubývajúci “na výške” vtipne poznamenal: “Filip, celú prednášku som obkresľoval z tabule, lebo opisovať z tabule môžeš iba vtedy, keď vieš, čo píšeš.” Dôsledkom je, že porozumenie QC (a ich využitiu) sa pre väčšinu z nás zužuje na pár viet predchádzajúceho odseku.

Pritom je to škoda. Áno, o QC sa skutočne dá (pomerne hutne) rozprávať formou komplikovaných schém a vzorcov. Ale dá sa to aj inak. Teda tento blog je pokus o to: Podať vám podstatu kvantových počítačov bez zložitých rovníc a bez predpokladu, že máte úspešne zloženú skúšku z diferenciálnych rovníc či lineárnej algebry. Ak by sa mi to predsa nepodarilo, tak sa Vám vopred ospravedlňujem. Bolo by preto celkom fajn, keby ste mi po prečítaní dali krátku spätnú väzbu (napríklad na info@mocnedata.sk ), či sa to podarilo. Ešte než sa do toho pustíme, dovoľte mi jeden krátky disclaimer: Hoci vyššie uvedené skúšky mám úspešne zložené a je mi umožnené sa preto prelúskať aj cez tie komplikované rovnice, neživím sa Kvantovou mechanikou. Preto, ak ste výskumníkom v tejto oblasti, odpustite mi zjednodušenia učinené v najbližších odsekoch. Pochádzajú buď zo snahy zostať zrozumiteľný pre širšie masy alebo z toho, že niektoré zákutia sú aj nad moje sily. (Veď nie som Nobelista ani vysokoškolský profesor 🙂 )

Kde to celé začalo

Mnoho z oblastí vedy, ktoré v dnešnej dobe zvládne už aj žiak základnej školy, neboli vôbec známe po celé tisícročia ľudskej existencie. Napríklad aj také triviálne veci ako -400 (teda záporné čísla) boli dlhodobo mimo chápanie nielen bežných ľudí ale aj súdobých vedcov. (Schválne, videli ste niekedy záporné číslo Rímskymi číslicami?) Dôvodom bol fakt, že ľudia používali matematiku (a iné vedy) len na účely praktické. A až do vynájdenia účtovníctva záporne číslo nemalo v živote žiaden zmysel. V realite sa nedá totiž vidieť jablká v počte -5. Jednou z tých oblastí matematiky, ktoré boli “pánskym huncútstvom” až neskoršej doby, boli aj komplexné čísla. Ešte René Descartes sa o nich vyjadroval s posmeškom a na svetlo božie sa predrali až vďaka vedcom ako Gauss alebo Euler. Práve komplexné čísla sú dôležitým stavebným kameňom kvantových počítačov, preto mi dovoľte krátke pristavenie sa pri nich, lebo nám budú užitočné pre pochopenie “inakosti” QC.

Matematiku si ľudia od pradávna spájajú s riešením rovníc. Kým sme, ako ľudstvo, počítali len rovnice typu “trojčlenky”, každá rovnica mala riešenie (alebo jasný dôkaz, že ho nemôže mať). Keď sme však prešli do výpočtov s kruhmi (a inými kuželosečkovými krivkami), dostali sme sa do situácie, že niektoré naše rovnice zrazu nemali riešenie (a nebolo ani zrejmé, prečo by ich nemali mať). Napríklad jednoduchá kvadratická rovnica x^2 + 2 = 1  (ktorú sme sa všetci učili riešiť a preto ju tu uvádzam ako príklad), nemá v množine reálnych čísiel riešenie, lebo riešením by musela byť odmocnina z čísla -1 , (lebo x^2 = -1 ) a to predsa nejde vypočítať.

QC_book_exmpleOdmocninu nám totiž ešte v Starovekom Grécku zadefinoval (Pytagoras) ako uhlopriečku obdĺžnika (napr. odmocnina z 5 je uhlopriečka obdĺžnika so stranami o dĺžke 1 a 2) a každá úsečka (teda aj uhlopriečka) predsa musí mať veľkosť väčšiu ako nula. Tento údel sa s nami viezol viac ako 2000 rokov, až si niekto povedal: Čo keby sme pri predstavili imaginárnu (tretiu) dimenziu, v ktorej by sa dal ľubovoľný 2D objekt otočiť o nejaký uhol. Ako keď máte v knihe s tenkými, priesvitnými listami nakreslenú na pravej stránke šípku od stredu von (alebo štvorec). Keď stránku knihy otočíte ďalej, zrazu tá istá šípka – hoci sa vôbec nezmenila – ukazuje úplne opačným smerom (zo stredu doľava).  Ak by sme šípku brali ako posun na mape o 1 dĺžku z bodu A do B, po obrátení zrazu máme posun o -1 (teda rovnako dlho, ale opačným smerom). Takto nejako “približne” môže vzniknúť uhlopriečka obdĺžnika o dĺžke odmocnina z -1. Práve uhol otočenia v imaginárnej tretej dimenzii je podstatou komplexných čísiel a aby sa s ním počítalo jednoduchšie, tak sa zvolila jednotka otočenia (o štvrťkruh), ktorá sa (po prepočte) označuje malým tlačeným “i”.

Tu môžeme náš krátky výlet do matematiky definitívne utnúť, lebo ďalej “turistická značka” vedie po škaredých kosínusoch, sínusoch a veľkých maticiach. Pre našu ďalšiu diskusiu o kvantových počítačoch sú však dôležité ešte dve veci:

A] Uhlov, pod ktorými môžem postupne otočiť stránku knihy,  je nekonečne veľa a v každom natočení by výsledná uhlopriečka obdĺžnika mala “inú dĺžku”. Teda, ak začnem jednoduché veci otáčať (a spájať) v imaginárnom priestore, prudko mi rastie (výpočtová) náročnosť na určenie všetkých možných stavov otáčaných vecí.

B] Vo fyzike (hlavne tej kvantovej) sa skutočne niektoré veci (najmä drobné častice) správajú tak, že na ich správanie sedí popis komplexnými číslami. Teda to, čo začalo ako utkvelá potreba ľudstva mať pre každú kvadratickú rovnicu riešenie, sa neskôr ukázalo ako naozaj užitočné pre popisovanie reálnych vecí, ktoré sa dejú v prírode okolo nás.

Ok. A akú úlohu však hrajú komplexné čísla v kvantových počítačoch?

Hlavné zbrane Kvantových počítačov

Väčšina z nás používa klasické počítače tak akosi samozrejme. Sme zvyknutí zobrať si laptop, otvoriť ho vo vlaku, či v lietadle. A notebook (pokiaľ mu práve nedošla baterka) poslušne vykoná akýkoľvek výpočtový príkaz. Keďže zároveň väčšina potrieb bežného používateľa sú “brnkačkou” pre neustále rastúce výkony počítačového hardwaru, asi ste sa nikdy nezamýšľali nad tým, aké sú limity klasického počítača (teda možno okrem tej baterky v notebooku). Napriek tomu, že zažívame zlatú dobu rozvoja počítačov a podľa (nepísaného) Moorovho zákonu sa výkon a pamäťové možnosti dostupných počítačov doslova z roka na rok znásobujú (ľubovoľný mobil má zásadne viac výkonu ako mal počítač, s ktorým NASA pristála na Mesiaci), na rozvoj počítačov existuje fyzický limit. Klasické počítače totiž potrebujú pre svoj chod prepisovať v pamäti jednotky na nuly a späť. Najmenšiu jednotku svojej pamäte volajú BIT. (Bajt a teda aj mega-, či giga-bajt sú o niečo väčší bratranci BITu). Takzvané Lendauerovo obmedzenie určuje minimálne množstvo energie, ktoré je potrebné pre prepísanie jedného bitu. Príroda nám teda nastavil striktnú hranicu, koľko energie (teda elektriny) nás minimálne bude stáť počítanie. Keď na tento limit narazíme, nebudeme schopní už zvýšiť výkon počítačov inak ako “spálením” väčšieho množstva elektriny. A keďže aj zdroje našej elektriny sú limitované, raz nevyhnutne narazíme na horný limit výpočtového výkonu. Hoci pre naše triviálne úlohy (ako pozerať video, či poslať email) nás táto horná hranica nikdy nebude trápiť, existujú už vedecké výpočty (zväčša ohľadne vesmíru a šifrovania), ktoré na teoretické limity výpočtov klasického počítača už narazili. Ak chceme, ako ľudstvo, niekedy fyzikálny strop klasických počítačov obísť, musíme prísť s počítačom, ktorý dokáže počítať bez nutnosti stále prepisovať nuly a jednotky. To presne dokážu Kvantové počítače.

Druhým podstatným limitom klasických počítačov je, že pri výpočte (napríklad násobení) si musia do pamäte najprv uložiť všetky vstupy (čísla ktoré násobím), následne použiť voľné časti pamäte na zrealizovanie výpočtu (niečo, ako keď sme sa učili násobiť pod seba na papieri) a nakoniec do ďalšej časti pamäte uložiť výsledok výpočtu (finálny súčin). Čo je ešte horšie, ak chcete počítač skontrolovať, musíte si uložiť všetky vstupy aj výstupy výpočtov, inak by ste spätnej nevedeli dohľadať, či výsledok je skutočne súčin daných čísiel. To prináša so sebou obmedzenie, že nemalá časť pamäte (a výkonu) klasického počítača je neustále viazaná na priebežné ukladanie si už zrealizovaných (alebo práve bežiacich) krokov, aby bol dosledovateľný postup. Prípadne, aby sa vedel počítač vrátiť k úlohe, ak ho niečo preruší. Dôvodom, prečo boli klasické počítače takto navrhnuté je, že im to umožňuje teoreticky počítať akúkoľvek výpočtovú úlohu. Odvrátenou stránkou tohto dizajnu však je, že postupy, kde náročnosť rastie exponenciálne (zasvätení vedia, že stačí aj geometrickým radom) s počtom vstupov (napr. možnosti športky či porovnávanie vecí), prestávajú byť reálne vypočítateľné. Dobrým príkladom je ochrana heslami. Každé heslo sa dá prelomiť “tupým” skúšaním všetkých možnosti dookola. Ak však máte dostatočne dlhé (a rozmanité) heslo, jeho prelomenie hrubou silou môže trvať roky až desaťročia. Má sa teda za to, že kým by ho niekto prelomil, tak si aj tak heslo znovu zmeníte. Čo ak by však existoval nový typ počítaču, ktorý nepotrebuje uchovávať priebežné vstupy a vie skočiť od zadania rovno k výsledku? Znie to ako mágia či sci-fi? Nuž takto približne fungujú kvantové počítače.

S trochou irónie by sa dalo povedať, že pri zostavovaní klasických počítačov (CC) sme boli málo ambiciózni. CC totiž boli dizajnované tak, aby so sebou niesli vždy len jednu možnú alternatívu výsledku. Na dierny štítok (áno, prvé počítače si zapisovali výsledok na papierovú pásku pomocou systému dierok, niečo ako primitívna verzia slepeckého písma alebo ďatľova morzeovka na papier) bolo možné v tom istom čase (a mieste) zapísať len jednu hodnotu. Keď ste chceli zapísať ďalšiu hodnotu, potrebovali ste ďalší dierny štítok. S odstupom času sme zhustili techniku zápisu tak, že dnes do pár kubických cm USB klúča dokážeme vtesnať miliardy metrov diernej pásky, ale princíp jedna hodnota v jeden čas (a na jedno miesto) zostala zachovaná. Inakosť kvantových počítačov plynie aj z toho, že jeden QUBIT (kvantový BIT) dokáže teoreticky reprezentovať obrovské množstvo rozdielnych stavov (pomocou komplexných čísiel). Reprezentuje totiž fyzikálnu podstatu častíc, ktoré samotné majú nespočetné množstvo stavov. Ten rozdiel dramaticky mení nároky QC na pamäť a zároveň umožňuje pracovať efektívnejšie pri modelovaní procesov, v ktorých môžu veci nadobúdať veľké množstvo rôznych stavov.

Ako reálne fungujú kvantové počítače

Dobre, znie to celé ružovo až neuveriteľne. Ale ako vlastne fyzicky funguje kvantový počítač? Je to rovnaká “krabica železa” akú sme zvyknutí nájsť na pracovnom stole? Jednotkou výkonu kvantového počítaču je QUBIT (= kvantový bit). Keďže QUBIT musí byť zväčša schopný fungovať bez stáleho prísunu elektriny (spomeňte si na Lendauerovo obmedzenie), fyzicky musí byť QUBIT modelovaný ako nejaký objekt, ktorý môže meniť svoj stav, uchováva si svoju hodnotu a dokáže sa správať podľa pravidiel manipulácie s komplexnými číslami, ako sme si ju popísali na začiatku blogu. V našom fyzickom, reálnom svete najlepšie tieto požiadavky spĺňajú častice. Preto, hoci technologických prístupov na vytvorenie QUBITu je viac, zväčša ide o ióny, polymérové častice, fotóny alebo kremíkové (a rôzne iné) atómy. Veľkosť týchto častíc je však aspoň milión krát menšia ako veľkosť najmenej súčiastok v bežných PC, teda pod necht by sa vám zmestil aj veľmi výkonný kvantový superpočítač. (za chvíľu zistíte, že by vás trochu oziabal)

QC_ibm_wholepicture
IBM QUANTUM COMPUTER

Princíp samotného QUBITu funguje tak, že častica môže mať na seba naviazanú rôznu energiu (ktorá sa napr. prejavuje elektrickým nábojom, rýchlosťou pohybu alebo inými vlastnosťami). Pomocou mikrovlnného žiarenia alebo svetelného (zvyčajne laserového) lúču môžete na diaľku danú časticu “poštekliť”, aby získala alebo naopak stratila určitú energiu. Ak vyberiete hodnoty energie dostatočne vzdialené od seba (čo značí, že častica má takmer nulovú šancu presunúť sa medzi týmito dvoma stavmi sama od seba), môžete dané stavy častice používať ako nuly a jednotky vo výpočte. Niečo ako keby ste mali v uzavretej miestnosti teplomer a považovali teplotu nad 80 stupňov Celzia ako jednotku a teplotu pod -50 stupňov Celzia ako nulu. (Šanca, že miestnosť sa bez vášho pričinenia presunie z 80 stupňov do -50, je takmer nemožná.) Jediným, avšak podstatným rozdielom je, že zakiaľ presun medzi 80 a -50 stupňov si vyžaduje naozaj veľa energie, v QUBITe na to stačí bežná vec ako mikrovlna alebo svetelný lúč (a ten istý lúč dokonca môže ovládať viac QUBITov súčasne). Samozrejme, častice sa pohybujú len po mikroskopických dráhach a pri bežných teplotách príliš rýchlo a chaoticky. Pre vytvorenie QUBITov je teda častice potrebné “skľudniť” do takmer absolútneho zastavenia pohybu, ktoré nastáva pri teplote nula Kelvinov, teda -273.15 stupňov Celzia. To robí zatiaľ kvantové počítače pomerne ťažko konštruovateľné v bežných podmienkach. Lebo predstava, že máte na pracovnom stole niečo teploty mínus 273 stupňov, je asi absurdná.

Preto väčšina kvantových počítačov zatiaľ funguje v uzavretých laboratóriách, kde udržiavanie takto nízkej teploty je možné a aspoň trochu efektívne. Kvantový notebook, s ktorým sa vyvalíte na pláži alebo do trávy na lúke, zatiaľ nevyzerá ako veľmi reálna predstava. Avšak to, že konštrukcia QUBITu si vyžaduje “netypické” podmienky, nevylučuje nás všetkých z používania QC. Keď už niekto prevádzkuje kvantový počítač, môžete si jeho výpočtovú silu “požičať na diaľku“. Stačí zadať zo svojho počítača cez internet (resp. privátny cloud) požiadavku na výpočet (spolu so vstupmi) a správca kvantového počítaču váš výpočet zaradí do poradovníka spracovávaných úloh. Keď príde na Váš výpočet rad, spustí QC výpočet a oznámi vám výsledok. Takto, koniec koncov, na začiatku vyzerala aj práca s veľkými sálovými počítačmi, na ktorých ste si tiež museli objednať určitý strojový čas, ktorý ste potom mohli použiť na výpočty.

Keď už vieme, ako fungujú fyzicky QUBITy, treba si ešte ozrejmiť ešte jeden podstatný rozdiel oproti klasickým počítačom. QUBITy sú skutočné častice z reálneho života, a hoci u nich vieme nízkou teplotou (a niektorými inými opatreniami) zabezpečiť aspoň elementárnu “poslušnosť”, stále existuje určitá pravdepodobnosť, že nejaký vonkajší vplyv (alebo náhodná udalosť) vychýli energiu danej častice a tak sa z jednotky stane nula alebo energia uviazne medzi hladinou nuly a jednotky uprostred. (teda nie je jasné, či výsledkom operácie je nula alebo jedna.) Aby sa tomuto javu zamedzilo, používa sa ešte princíp logických QUBITov.  Ten spočíva v tom, že každý fyzický QUBIT má niekoľko “súrodencov”, na ktorých sa vykonávajú tie isté operácie ako na prvotnom QUBITe. Celé toto zoskupenie prvotného QUBITu a jeho fyzických súrodencov sa volá logický QUBIT. Pričom hodnota logického QUBITu sa určuje tak, že je to tá hodnota, ktorá vyšla najčastejšie na fyzických QUBIToch spojených do daného logického QUBITu. To znamená, že aj keď sa niektorý z  1000 fyzických QUBITov združených v logickom QUBITe pomýli (alebo sa nedá jeho hodnota odčítať), tak stále ostatných 999 ponúka ten istý výsledok a slúžia ako istá forma poistky. Pravdepodobnosť, že by sa všetkých 1000 pomýlilo súčasne tým istým smerom, je tak nízka, že pre potrebné výpočty je úplne zanedbateľná. Ak navyše výpočet zopakujete niekoľko krát po sebe, máte skalopevnú istotu, že kvantový počítač sa nepomýlil.

Povedali sme ako vyzerajú samotné QUBITy. Ešte si však dĺžime podstatnú odpoveď na to, ako vlastne QC realizuje výpočty. K tomu si potrebujeme v skratke ozrejmiť pojem reverzibilná operácia. Ide o takú (matematickú) operáciu, pri ktorej z výsledku viem presne určiť aj pôvodné vstupy, bez toho že by mi ich niekto prezradil. Napríklad súčet nie je reverzibilná operácia, lebo ak vám poviem, že výsledkom súčtu dvoch čísiel je 7, neviete mi povedať aké dve čísla ste sčítavali, možnosti je nekonečne veľa (napr. -1000 + 1007 = 7). Klasické počítače, aké máme dnes na stoloch, sú programované tak, aby dokázali robiť aj reverzibilné aj nereverzibilné operácie. Daňou za to je, už spomínané, ukladanie vstupov a medzivýsledkov. Kvantové počítače sú však konštruované tak, aby robili len reverzibilné operácie. Napríklad násobenie -1 je reverzibilná operácia, lebo nepotrebujem vedieť, čo bol vstup, ak vidím, že výstupom je -10, viem, že vstupom muselo byť len číslo 10. Pre žiadne iné totiž výsledok -10 po násobení -1kou nedostanem. Kvantové počítače preto počítajú tak, že zoberú vstup, zrealizujú na ňom sériu (= kvantový obvod) reverzibilných operácií (nazývaných aj kvantové brány) a vrátia výsledok. Keďže však všetky operácie sú reverzibilné, je ľahko operácie raťaziť do dlhých sekvencií. Rovnako poľahky ide skontrolovať, či výsledok celého kvantového obvodu sedí s príslušnými vstupmi. To umožňuje robiť veľké množstvo operácií bez akejkoľvek požiadavky na pamäť. Potrebujete navzájom vynásobiť dve matice, každú s miliónom prvkov? Žiaden problém, QC to dokáže “z hlavy” bez toho, že by si musel čokoľvek poznačiť. Dokonca to urobí približne rovnako rýchlo ako navzájom vynásobenie matíc iba so sto prvkami.

Toto špecifikum výpočtov robí QC výborné a ultra rýchle riešenie pre niektoré typy výpočtov a naopak znevýhodňuje ho pre iné operácie. Ono sa totiž väčšina bežne dostupných matematických operácií dá prepísať do sekvencie (niekoľkých) reverzibilných výpočtov (napríklad ak chcete spočítať súčin 100 x 10 môžete zobrať nulu a desaťkrát k nej pripočítať číslo 100, (lebo operácia +100 je reverzibilná), ale iste chápete že pre veľmi veľké činitele by tento postup bol skôr brzdou ako pomocou). Kvantové počítače teda sú niečo ako autista. Dokážu geniálne veci, ale pre niektoré triviálne veci sú naopak úplne stratení. Preto domáce úlohy zo základnej školy asi na Kvantovom počítači rátať nebudete. Zadania, kde sila QC výrazne poráža klasické počítače, sú úlohy buď s obrovským množstvom vecí (napr. hviezdy, atómy, chemické reakcie, …) alebo s veľmi vysokým počtom opakovaní toho istého postupu (napr. overovanie, či číslo nie je prvočíslom, tak že ho skúšam deliť všetkými nižšími prvočíslami). Vďaka prítomnosti komplexných čísiel a niečomu, čo sa volá superpozícia častíc, hrajú QC silnú úlohu aj pri riešení problémov s pravdepodobnosťami, predpoveďami určitých javov a sofistikovanou dátovou analýzou (QML).

Masovú implementáciu QC riešení trochu brzdí aj samotný technologický vývoj. Skutočné užitočné sa stávajú kvantové počítače pracujúce s miliónmi fyzických QUBITov. Pri týchto počtoch totiž možno zabezpečiť dosť logických QUBITov, ktoré potrebujú algoritmy (ako Shorov, viď nižšie). Keďže však zároveň musí platiť, že QUBITy sa nesmú navzájom ovplyvňovať a musia si udržať hodnotu dostatočne dlho, technológovia sa trochu trápia ako 10 miliónov rôznych častíc udržať “svedomito pracovať pre spoločnú vec.” Podľa údajov z aktuálnej knihy Jack D. Hidary sa nachádzame ešte niekoľko krokov od tejto zóny:

QC_future_trends_COLOUR

Istou komplikáciou pre vývoj QC riešení je, že na potvrdenie funkčnosti algoritmu na QC, najprv musíte (zvyčajne) predviesť simuláciu tohto procesu na klasickom počítači. Keďže však QUBIT potrebuje pre uloženie svojich stavov približne 4000x krát viac dátového priestoru ako 1 BIT na klasickom PC, kompletne celú pamäť vášho Notebooku by zapratala simuláciu pracujúca len s 30 QUBITmi. O tisícoch až miliónoch QUBITov, ktoré bude skutočne treba, už sa nedá hovoriť ani pri tých naj superpočítačoch sveta. Pre rýchle porovnanie koľko pamäťového priestoru (na simuláciu QC QUBITov) je treba si môžete pozrieť trefný prehľad z vyššie citovanej knihy:

QC_QUBIT_size

Odvetvia, ktoré QC najviac zasiahne

Pomerne detailne sme sa venovali odlišnosti QC od ich klasických PC predchodcov. Zatiaľ sme si však nepomenovali, ktoré oblasti ľudského fungovania sú najviac vhodné na zavedenie QC. Čo-to sme už naznačili, keď sme povedali, že QC majú najväčšiu silu tam, kde CC potrebujú si pamätať rozsiahle dátové štruktúry alebo tam, kde zložitosť algoritmov klasických výpočtov je kvadratická a vyššia. Asi najpriamočiarejší dopad QC je na oblasť kryptografie, čiže šifrovania. Aktuálne najbezpečnejšie cifry sa totiž spoliehajú na obrovsky veľké prvočísla, ktoré nie je možné poľahky odhaliť. V klasickom počítači na to, aby ste odhalili, či číslo je prvočíslom, musíte vyskúšať veľký počet delení (menšími prvočíslami). Hrubou silou klasických počítačov sú tieto šifry neprelomiteľné. Potrebné prvočíslo nestihnete nájsť počas platnosti daného hesla. QC však dokáže vyhľadať vďaka Shorovmu algoritmu rozklad na prvočinitele násobne rýchlejšie a tým aj hrubou silou prelomiť (dnes ešte) super bezpečné šifry. Dôležité je povedať, že tento počin je pre kryptografiu dvojitým úderom. Nielenže dokáže prelomiť aktuálne super pevné heslá, ale zároveň oberá kryptografiu o možnosť, akou odolávala doposiaľ: Vždy, keď sa aktuálne kryptovacie kľúče stali zraniteľné voči prelomeniu, šifrovači jednoducho zdvojnásobili ich dĺžku a všetko šlo ďalej ako po starom. Problémom však je, že výpočtová náročnosť QC prelomenia kľúčov rastie len logaritmicky, teda aj ak prelomenie desaťciferného hesla trvalo deň, prelomenie 1000 ciferného bude trvať len 3 dni a prelomenie milióncifrového hesla bude trvať len 6 dní (iba približné hodnoty na ilustráciu, v skutočnosti sa používa prirodzený nie desiatkový logaritmus). Teda ani drastický skok z 10 písmenového hesla na milión písmenové heslo neprinesie zásadne viac ochrany.

Druhou oblasťou, kde nástup kvantových počítačov je nezadržateľný, je chémia, biofyzika a farmácia. Kvantové počítače sú výraznou pomocou pri testovaní veľkého počtu molekúl vo farmácií. Dokážu totiž preveriť oveľa rýchlejšie, aké vzájomné kombinácie látok dosahujú požadované účinky alebo ktorý z proteínov má najväčší (štatistický) predpoklad reagovať spôsobom, aký potrebujeme dosiahnuť. Výskum v týchto oblastiach sa vďaka QC rapídne zrýchli, čo prinesie viac objavov účinných látok pre medicínu (a zlúčenín pre priemysel).

Samostatnou témou sú procesy dátovej analýzy, ktorá už medzičasom “preliezla” do všetkých odvetví našej spoločnosti. To je aj dôvod prečo som sa rozhodol QC popularizovať práve na tomto blogu. Nielenže kvantové počítače dokážu pomocou Grover search efektívne sortovať veci (product recommenderi), ale hlavne výrazne napredujú aj klasifikačné algoritmy (Quantum Machine Learning) či QNN (kvantové neurónové siete). V štatistike a dátovej analýze sa veľmi užitočné využijú aj samplovacie algoritmy postavené na QC, pretože na rozdiel od náhodnosti klasických počítačov, ktorá je kvázi-náhodou, kvantové počítače dokážu generovať skutočné náhodné čísla.

Hoci to nie je ešte potvrdené konkrétnymi riešeniami, podľa podstaty QC špecifík je zrejmé, že kvantové počítače budú používané aj pre riadenie vzájomnej koordinácie veľkého počtu ľudí a/alebo vecí. Práca s obrovskými maticami je totiž pre QC brnkačkou. Je teda zrejmé, že kvantové počítače budú výrazne ovplyvňovať (analyzovanie a riadenie) telekomunikačných a sociálnych sietí, dopravy alebo výroby. Obdobné modely sa dajú použiť aj pre detailnejšie sociologické a marketingové analýzy.  Objavili sa dokonca prvé návrhy ako využiť QC pre high-frequency obchodovanie na burze, ale tu som osobne ešte nejaký ucelený prototyp v odbornej literatúre nepostrehol. Počet sektorov, do ktorých sa QC “zahryzne”, teda nie je malý. Preto sa je radno zamyslieť nad nadpisom ďalšieho odseku:

Budeme sa musieť (nanovo) učiť pracovať s QC?

Z predchádzajúcej state je vám zrejmé, že je dosť nepravdepodobné, že by sme mali (minimálne v dohadnej dobe) vymeniť naše stolové počítače za kvantové počítače. Oveľa pravdepodobnejšie je, že keď náhodou kvantové počítače používať budeme, tak to bude na diaľku cez internet (rozumej cloud). Je to tak trochu analógia k video dronu, ktorý tiež natáča video rovnako ako klasická kamera, ale na snímanie dronom tiež neletíte spolu s ním, ale riadite ho zo zeme na diaľku. Bude teda musieť vzniknúť skupina profesií (ako QC inžinier), ktoré budú udržiavať kvantové počítače v chode, ale väčšina bežných používateľov bude kvantovým počítačom vydávať príkazy na diaľku.

To zároveň znamená, že ak aj budete chcieť využiť výhody kvantového počítania, nemusíte porozumieť kvantovej fyzike. (Preto je pre mňa nepochopiteľné, prečo väčšina popisov QC už na druhej či tretej strane čitateľa zabije nejakou škaredou rovnicou, čím ho odradí/odstaví od snahy čítať ďalej.)  Je to tak trocha analógia k počiatkom programovania. Nádejní programátori (si pravdepodobne dodnes) musia prejsť kurzom Assemblera, nula-jednotkového jazyka, ktorým sa medzi sebou rozprávajú samotné minisúčiastky klasického počítača. Takýmto programovacím jazykom sa hovorí nízko-úrovňové (low-level), keďže sa dajú použiť priamo na najnižšej úrovni: na samotných súčiastkách a BIToch. Väčšina operačných systémov na dnešných klasických počítačoch vás už ani nepustí “tak hlboko”, aby ste zadávali príkazy priamo súčiastkam, lebo bežné procesory ich majú približne 2 miliardy (pre prirovnanie, na ploche vášho nechtu by ich bolo niekoľko stoviek miliónov) a zadávať pokyny v tom istom čase priamo pre 2 miliardy súčiastok je pre človeka nemysliteľné. Dnes samozrejme IT odborníci pre nás vytvorili prostredie, ktoré je “vysoko” (high-level) nad úrovňou samotných elektronických obvodov. A podobne to je aj s kvantovými počítačmi: V čase masového rozšírenia QC nik nebude priamo pracovať na úrovni kvantových obvodov. Využívať sa budú vyššio-úrovňové jazyky ako LIQui|>, Qiskit, Q#, Quipper, Cirq, Scaffold alebo ProjectQ. Väčšina týchto jazykov sa napája na Python, Javu alebo C++, takže ak už dnes pracujete s dátami, prechod na QC nebude až taký veľký skok, ako to môže vyzerať.

Druhým podstatným faktom pre budúcnosť je, že QC zrejme nedokážu nahradiť klasické počítače, ale ich skôr doplnia. Niečo ako výkonnejšia grafická karta, ktorú si  musíte dokúpiť, ak chcete editovať video alebo kresliť 3D architektonické modely. Ako sme si povedali, Kvantové počítače sa totiž budú zrejme ovládať na diaľku, a ako inak by sme ich ovládali ako cez klasické počítače. Z podstaty práce Kvantového počítača nedáva zmysle ku QC jednotke napríklad pripojiť monitor, lebo zobrazovanie výsledkov QC výpočtov nie je veľmi vizuálne intuitívne. (Často ide o mnohodimenziálny priestor, ktoré naše 3D vnímanie akosi neberie). Aj keď tu treba férovo uznať, že trvalo niekoľko desaťročí, kým sme sa k monitorom dopracovali aj pri klasických počítačoch (Áno, možno neuveríte, ale aj všetky výstupy boli najprv na dierne štítky). Takže raz možno nájdeme spôsob, ako intuitívne zobrazovať QUBITy. Pre tento moment sa však výsledky QC výpočtov posielajú naspäť do štandardného počítača, ktorý ich ukladá alebo zobrazuje. Preto, tak ďaleko, ako zatiaľ dovidíme, to vyzerá skôr na dvoj záprah QC + CC, než na inváziu samostatných QC počítačov.

Čo z toho plynie pre mňa?

Ak ste dočítali až sem, určite vám už v hlave víri myšlienka, čo to všetko znamená pre mňa? Ak zhutníme závery z rôznych miest tohto blogu do jedného súhrnu vyzeral by asi takto:

a] Kvantové počítače sa presadia v pomerne veľkom počte odvetví do budúcna.

b] Nie sú však univerzálnou náhradou počítačov ako takých. Najpravdepodobnejšie bude do budúcna ľudstvo mať  systémy, ktoré budú kombináciou QC+CC.

c] Ak ste bežný pracovník v kancelárii, ktorý pracuje dnes s počítačom, asi sa nebudete musieť učiť nanovo pracovať s QC. Ak to však budete vedieť, QC je pre vás skôr kariérna príležitosť. Aktuálne to bude tak za 5-7 rokov.

d] Ak ste dátový analytik, výskumník, alebo iná profesia, ktorá zbiera a vyhodnocuje veľké objemy dát (viď odvetvia vyššie), budete mať menej na výber. Pre vás môže byť QC naozaj aj hrozbou. Pretože kombinácia QC+CC riešení je vo vašej práci viac ako pravdepodobná. Ak nebudete mať o QC princípoch “ani páru”, môžete sa stať menej použiteľným na trhu práce.

e] Našťastie, princípy kvantových počítačov a ich použitia sa dajú ľahko pochopiť, aj keď nemáte vzdelanie z Fyziky alebo teoretickej matematiky. Ak sa chcete na príchod QC pripraviť, odporúčal by som vám zaoberať sa typmi algoritmov, ktoré sú na QC výrazne rýchlejšie ako na klasických počítačoch. (Na to však budete musieť naštudovať rôzne reverzibilné operácie, ktoré sú na QC možné, aby ste pochopili,  ako algoritmus funguje. To už nemusí byť úplne jednoduché.) Rovnako odporúčam si preštudovať integráciu aspoň jedného zo spomínaných QC programovacích jazykov (napr. Cirq) s Pythonom.

Pre tých naozaj nadchnutých témou, pripájam niekoľko kníh, kde môžu svoje poznanie začať. Pre všetkých zároveň pripomínam prosbu o spätnej väzbe (na info@mocnedata.sk ) o tom, či vám tento blog pomohol pochopiť, čo sú to kvantové počítače. Vopred ďakujem.

Odporúčané knihy:

Jack D. Hidary: “Quantum computing: An Applied Approach

Chris Bernhardt: “Quantum Computing for Everyone

M. Gimeno-Segovia, N. Harrigan, E. Johnston: “Programming Quantum Computers: Essential Algorithms and Code Samples

Robert S. Sutor: “Dancing with Qubits: How quantum computing works and how it can change the world


Publikované dňa 11. 2. 2020.