Spoznajte kvantový procesor

Kvantové počítače sú postavené z qubits. Nestačí však iba mať veľa vtákov.

Miliarda Quitov pracujúcich v úplnej izolácii nikdy nedosiahne nič. Potrebujú spolu hovoriť. To znamená, že potreba byť prepojená tzv. Kontrolovanými operáciami. Každé zariadenie má svoje vlastné pravidlá, pre ktoré je možné týmto spôsobom pripojiť páry qubits. Čím lepšia je konektivita zariadenia, tým rýchlejšie a ľahšie bude implementovať výkonné kvantové algoritmy.

Dôležitým faktorom je aj povaha chýb. V blízkej dobe kvantovej práce na počítači nebude nič dokonalé. Preto musíme vedieť, aké chyby sa stanú, aké sú pravdepodobné a či je možné zmierniť ich účinky v aplikáciách, na ktorých nám záleží.

Toto sú tri najdôležitejšie aspekty kvantového zariadenia: počet qubitov, pripojiteľnosť a úroveň hluku. Ak chcete mať predstavu o tom, čo kvantový počítač dokáže, musíte ich poznať všetky.

Urobme teda hru, ktorá beží na kvantovom zariadení a ukazuje všetky tieto veci priamo. Jednoduchým hraním hry hráč presne uvidí, aké veľké a pripojené zariadenie je. Porovnaním behu na skutočnom zariadení so simulátorom uvidia presne, aký silný je hluk. Potom, keď si znova zahrajú s obmedzením chýb, získajú predstavu o tom, koľko užitočných informácií je možné zachrániť aj v ére mierne hlučných kvantových počítačov. Túto hru nazveme Quantum Awesomeness a zahráme ju na zariadení IBM známom ako „ibmq_16_melbourne“.

Obrázok vyššie poskytuje rýchly prehľad toho, čo sa deje v zariadení Melbourne. Farebnými kruhmi je 14 šarží, očíslovaných od 0 do 13. Qubity, ktoré môžu medzi sebou hovoriť prostredníctvom riadenej operácie, sú znázornené spojenými čiarami, pričom každému z nich bolo pridelené meno.

Najužitočnejšou vecou, ​​ktorú môžete robiť s kontrolovanými operáciami, je vytvorenie a manipulácia so zapletením. Iba s týmto môžeme preskúmať celý priestor možností, ktoré sú otvorené pre naše vtáky, a dúfať, že urobíme veci, ktoré sú pre klasické počítače prakticky nemožné.

Najjednoduchšie zapletenie spočíva iba v dvoch šaržiach. Každý z nich spôsobí náhodné výstupy, ale s koreláciami medzi nimi. Napríklad, zvážte nasledujúci program na niekoľkých qubits.

Toto je schéma zapojenia: história qubitov v našom programe, ktorá sa zobrazuje zľava doprava.

Tu vykonávame operáciu rx pre uhol π / 2, čo vedie k tomu, čo je v podstate pol x brána. Toto je príklad toho, čo sme v hre Bojové lode s čiastočnou NOT bránou nazvali „čiastočné NOT“. Namiesto toho, aby prehodil celú cestu od | 0⟩ do | 1⟩, zaparkuje ju v kvantovom superpozičnom stave medzi nimi.

Operácia pôsobiaca na obidve qubity je riadená-NOT, ktorá aplikuje NOT na spodný qubit iba vtedy, keď je horný v stave | 1⟩. Pretože horná časť je v superpozícii obidvoch možností, účinkom kontrolovaného NOT je šírenie superpozície aj na spodnú hranicu: kombinovaná superpozícia | 0⟩ a oboch | 1⟩.

Poslednou časťou obvodu je extrahovanie jednoduchého bitu z každého štvorca: | 0⟩ sa stáva 0, | 0⟩ sa stáva 1 a superpozícia sa stáva náhodnou voľbou jedného alebo druhého. Ale aj keď v tomto prípade obe nástrahy dajú náhodný výsledok, určite sa vždy dohodnú.

Ak to chcete overiť, spustime ho. Výsledok, ktorý som dostal, bol:

{'11': 503, '00': 521}

Z 1024 vzoriek, pre ktoré bol program spustený, všetky výsledky vyšli buď „00“ alebo „11“. A máme približne rovnaký počet vzoriek pre každú z nich. Všetko podľa predpovede.

Nahradením hodnoty π / 2 môžeme zmeniť povahu superpozície. Nižšia hodnota prinesie výsledky viac skreslené na výstupy 0 a hodnota bližšia k π bude mať sklon k 1s. To znamená, že môžeme meniť pravdepodobnosť, s akou každý výstup dá hodnotu 1. Ale bez ohľadu na to, akú hodnotu si vyberieme, táto forma obvodu zaisťuje, že výsledky pre dve qubity sa vždy budú zhodovať.

V tejto hre urobíme veľa týchto párov zapletených qubitov cez zariadenie. Aby sme to dosiahli, musíme si najprv zvoliť spôsob, ako mongamne spárovať qubity (prípadne ponechať nejaké náhradné). Toto párovanie sa vyberie náhodne a celé miesto hry spočíva na uhádnutí toho, čo bolo párovanie.

Akonáhle budeme mať náhodné párovanie, spustíme v podstate vyššie uvedený kvantový program na každom nezávislom páre. Aj keď predstavíme jeden rozdiel: pre každý pár náhodne vyberieme inú hodnotu pre operáciu rx, takže stupeň náhodnosti zdieľaný spárovanými qubitmi sa bude líšiť od páru po pár.

Keď spustíme obvod, výsledkom bude reťazec 14 bitov: s každým bitom, ktorý popisuje výstup každého qubitu. Pretože spustíme štatistiku pre mnoho vzoriek, úplným výsledkom bude zoznam všetkých bitových reťazcov, ktoré vyšli, spolu s počtom ich výskytov.

Keďže cieľom hry je, aby hráč odvodil párovanie z výstupu, mohli by sme na nich všetky tieto údaje vyhodiť. Ale pravdepodobne by to nebolo také zábavné. Namiesto toho sa môžeme sústrediť iba na dôležité body:

  • Aká je pravdepodobnosť, že každý qubit poskytne výstup 1 namiesto 0?
  • Aká je pravdepodobnosť, že každý pár pripojených qubits dá rovnakú hodnotu?

Tieto informácie potom môžeme umiestniť na náš obraz zariadenia. Napríklad tu je jedna konkrétna sada cyklov.

Číslo zobrazené na každom štvorci predstavuje percento vzoriek, pre ktoré bol výsledok 1. Počet na každom spojení je percentuálny podiel vzoriek, pre ktoré zodpovedajúca dvojica kriviek mala výsledky, ktoré sa nezhodli. Na základe týchto informácií môžeme ľahko nájsť dvojice zapletených Qubits: buď hľadaním qubits, ktoré zdieľajú rovnakú pravdepodobnosť výstupu 1, alebo nájdením párov, ktoré sa nikdy nezhodli.

Vyššie uvedené údaje boli extrahované zo simulátora. Teraz to vyskúšajme na skutočnom kvantovom zariadení.

Tu nie sú výsledky také jasné ako pre simulátor. Účinky hluku sú oveľa silnejšie, takže je oveľa ťažšie identifikovať páry.

Ale všetko sa nestratilo! Môžeme urobiť niekoľko opatrení na zmiernenie chýb. Vieme, že výstup by mal mať určitú štruktúru, takže ju môžeme vyhľadať a použiť na vyčistenie výsledku.

Toto je veľmi zjednodušený spôsob. Najprv sa každý qubit zameria na všetkých svojich susedov a uvidí, s ktorým z nich najviac súhlasí. Potom bude predpokladať, že týmto najpríjemnejším úsekom je jeho partner. Aby sme sa pokúsili vyrovnať chyby vo svojich výsledkoch, nahradíme pravdepodobnosť získania výstupu 1 pre tento štvorček priemerným priemerom oboch.

Aj keď sa veci zlepšili, v žiadnom prípade neboli vylepšené. Dôvodom je skutočnosť, že naša schéma na zmiernenie chýb je veľmi jednoduchá a na konci procesu sa k nej len pripája. Zmiernenie chýb môže mať silné účinky, ale je najúčinnejšie, keď je zabudované do samotného kvantového programu (niečo, s čím by ste sa mohli pokúsiť experimentovať, ak by ste chceli rozšíriť tento projekt).

Zatiaľ si len zahrajme hru pomocou týchto zmiernených výsledkov.

Našou úlohou je pozrieť sa na čísla na qubitoch a pokúsiť sa nájsť páry, ktoré majú rovnaké číslo alebo aspoň čísla, ktoré sú najbližšie. Dve 48s vľavo vyzerajú ako dobrý štart. Poďme teda na pár A, pretože si myslíme, že je zapletený.

Dva 46s páru H sú rovnaké ako jeden druhého a tiež celkom odlišné od svojich susedov. Takže pôjdeme aj na to.

Potom sa zdá, že pár E je celkom istý.

A pár C.

Teraz sme dospeli do bodu, keď nám hluk trochu sťažuje. Malo by byť 42 spárovaných s 55 alebo 56? Pretože hodnota 55 je bližšia, pôjdeme do páru O.

Nakoniec nám zostanú dve nástrahy, ktoré museli byť spárované s ničím. Toto sa vždy stane na tomto zariadení kvôli štruktúre jeho grafu pripojenia. Takže sme dosiahli riešenie! Ale bol to ten správny?

Pozrime sa znova na nehlučnú simuláciu, kde bolo správne ľahšie vidieť správne párovanie.

Páry, ktoré tu vykazujú perfektnú zhodu, sú presne tie, ktoré sme si práve vybrali. Takže sme mali pravdu. Hrali sme hru na kvantovom počítači a vyhrali sme!

Čo ďalej?

Ak chcete začať s kvantovým programovaním, prečo sa pozrieť na zdrojový kód tejto hry, ktorý je k dispozícii v návode Qiskit.

Zhromaždili sme dokonca niekoľko nápadov, ako by ste ich mohli rozšíriť

  • Napíšte algoritmus na hranie hry. Hádalo by sa, že páry by boli čo najpresnejšie, ak by sa dôkladne analyzovali údaje.
  • Hádanka sa dá veľmi ľahko vyriešiť, keď nie je hluk. Môžete predstaviť rôzne úrovne obtiažnosti.
  • Tu použité zmiernenie chýb je veľmi zjednodušujúce. Môžete skúsiť implementovať niečo sofistikovanejšie, ako napríklad „robustný odhad fázy“ opísaný v tejto prednáške.
  • Mohli by sa použiť zložitejšie spletené stavy, ako napríklad stavy s tromi qubits, aby sa zabezpečilo, že žiadna zábava na zariadení nebude vynechaná zo zábavy?

Bavte sa s týmto a našimi ďalšími kvantovými hrami!