Vizualizacija bitova i qubita

Posljednjih nekoliko godina pomalo sam opsjednut dvjema stvarima: programiranjem prototipnih kvantnih računala i gamifikacijom. Ti su se interesi sada neminovno sukobili, što je rezultiralo gamificiranim vodičem za kvantno programiranje.

Važan dio izrade ovog vodiča bio je razrađivanje načina vizualizacije qubita. To je općenito problem koji se ne može riješiti. Kad bi to bilo lako napraviti za velike kvantne proračune, slijedilo bi ih lako simulirati. Budući da to nije slučaj, naša vizualizacija usredotočit će se na samo par qubita.

Vizualizacija je glavni način koji će korisnik vodiča razumjeti i povezati sa svojim parom kubita. Ali ne želimo da njegova korisnost tu završi. U idealnom slučaju, sve bi trebalo temeljiti na načelima koja se primjenjuju i na veći broj kubita. Korisnik tada može razmišljati u skladu s tim principom kada krene u oblikovanje mnogo većih kvantnih programa.

U ovom ću članku objasniti što smo ja i moji suradnici smislili.

Vizualizacija par bitova

Započnimo s nečim lijepim i jednostavnim: bit. Svaki je bit ili 0 ili 1. Zamislimo to u obliku slike.

Stanja 0 i 1 pomalo, s ASCII umjetničkim krugom iz nekog razloga.

Ovdje imamo plavu traku koja je svijetlo plava, ili isključena, da predstavlja 0, a tamnoplava ili uključena, da predstavlja 1.

Ponekad su nam potrebni nasumični bitovi. To je naravno samo 0 ili 1, ali ne znamo koji. Zamislimo svoje neznanje s trakom koja je na pola (ili napola isključena).

Je li to 0 ili je 1? Da! Mi samo još ne znamo koji.

Jedan bit nije koristan za mnogo, pa pogledajmo dva. Očito to možemo predstaviti s dvije trake: po jedan za svaki zalogaj.

Dva bita jedan pored drugog. Kut žutnje zahvaljujući ograničenjima umjetnosti ASCII.

Postoje četiri moguća stanja od dva bita. Ova gore prikazana je 01, ali postoje i 00, 10 i 11. Oni su predstavljeni različitim kombinacijama uključivanja i isključivanja.

Korištenje samo dvije trake je dobar način da se vizualizira stanje dva kubita sve dok tačno znamo što oboje rade. Ali što ako su oboje slučajni?

Ovdje se može događati više različitih stvari. Za jednu se može činiti da su bitovi generirani istim slučajnim postupkom i stoga uvijek imaju istu vrijednost. Evo isječka Python koji bi učinio upravo to (imajte na umu da su False and True Python za 0 i 1).

random_bit = random.choice ([False, True]) bit [0] = random_bit bit [1] = random_bit

Ili su mogli biti generirani tako da uvijek imaju suprotnu vrijednost.

rand_bit = random.choice ([False, True]) bit [0] = random_bit bit [1] =! random_bit # 0 kad god je gore navedeno 1, i obrnuto

Mogli bi biti i potpuno nepovezani slučajni bitovi.

bit [0] = random.choice ([False, True]) bit [1] = random.choice ([Lažno, Istina])

Te različite mogućnosti imaju vrlo različito ponašanje. Dakle, naša vizualizacija bit će nepotpuna ako nam ne kaže što imamo.

Da bismo ove podatke dodali u naše vizualne slike, dodaćemo još jednu traku. Ovaj dodatni traka imat će zadatak da nam kaže o tim korelacijama. Isključit će se ako je suđeno da se slučajni bitovi uvijek slažu.

I dalje ako se uvijek ne slažu.

Ako nisu u vezi, a njihovi dogovori i nesuglasice samo slučajni, dodatna traka bit će pola upola.

Sada imamo način da predstavimo sve ono što bi dva bita mogla ispuniti.

Vizualizacija para kubika

Bitovi su prilično jednostavni i poznati. Oni zapravo ne trebaju ovako zamišljenu vizualizaciju. Ali njihovi kvantni rođaci jesu. Krenimo na qubits.

Kubit je kvantni objekt iz kojeg možemo izvući jedan zalogaj informacija. Mnogo je načina na koje možemo odabrati provođenje te ekstrakcije, a izbor koji donosimo može dovesti do različitih rezultata. Da bismo vizualizirali qubit, moramo pratiti sve ove moguće izlaze odjednom.

Usredotočit ćemo se na dva načina kako izvući malo iz svakog qubita i predstaviti to s dvije trake. Jedna plava (i okomita) i jedna crvena (i vodoravna).

Ovo je samo jedan kubit

Ako uzmemo plavi izlaz, vidimo da bi ovdje prikazano stanje definitivno dalo izlaz 1. Ako uzmemo crveni izlaz, rezultat će biti nasumičan.

Zapravo je slučajnost ovdje sasvim posebna. Qubit je toliko koncentriran na definitivno davanje broja 1 ako ga zatraže plavi izlaz, zapravo ne zna što bi učinio kad bi ga tražili za crveni. Morao bi se odlučiti na licu mjesta ako je potreban crveni ispis i to na potpuno nepredvidiv način. To nisu pseudo slučajnosti koje nam računala obično daju. To je prava slučajnost. Ovo je jedna od stvari koja čine qubits jedinstvenim i korisnim: nešto o čemu ćemo više raspravljati u drugom članku.

Drugi qubit je također predstavljen s dvije trake, ali mi ćemo ih slagati okomito.

U ovom su primjeru crveni ishodi čiji je rezultat definitivan, a plavi je slučajni.

Budući da uvijek postoji slučajnost za qubitove, ponovno nam treba nešto dodatnog za praćenje povezanosti. Za dva bita vidjeli smo da je dovoljan samo jedan dodatni trak. Ali za dva qubita imamo više mogućih korelacija koje treba pratiti.

Konkretno, postoje četiri načina na koja možemo izdvojiti dva bita iz dva qubita:

  • Plavi izlaz iz oba qubita (nazovimo ovo BB);
  • Crveni izlaz iz oba kubita (RR);
  • Plavi izlaz iz jednog kubita, a crveni iz drugog (BR);
  • Crveni izlaz iz jednog kubita, a plavi drugi (RB).

Za svaki od njih potrebna nam je dodatna traka koja će nam reći kakve korelacije možemo očekivati.

Ovdje imamo jedan qubit predstavljen s dvije trake na vrhu (to ćemo nazvati gornjim qubitom) i drugi s dva na lijevoj strani (lijevi qubit). Preostale trake, sa sivom pozadinom ovdje radi jasnoće, opisuju korelacije.

Korelacije između plavih izlaza prikazane su BB trakom, koja je također plava. Korelacije između crvenih izlaza prikazane su crvenom RR trakom.

Za dva slučaja s jednim crvenim izlazom i jednim plavim, imamo RB i RR. Kao kompromis između plave i crvene boje, ove su trake ljubičaste (i dijagonalne).

U primjeru prikazanom gore, znamo da će plavi izlaz iz gornjeg kubita dati 1, a crveni iz drugog kbit će dati 0. BR traka je stoga puna, priznajući da se oni definitivno ne slažu. Sve ostalo je samo slučajno.

Sada smo razradili kako vizualizirati qubits, započnimo s njima manipulirati.

Manipuliranje qubits

Računalo ne gleda samo bitove, već ih i obrađuje. Bitovi se stalno mijenjaju od 0 do 1 i vraćaju se natrag, dok računalo crta kurs od ulaza do izlaza. Kvantno računalo učinit će gotovo isto, ali s qubitsima.

Najjednostavnija stvar koja se može malo učiniti je operacija NOT. Okreće se od 0 do 1 i od 1 do 0. Našom vizualizacijom učinak je

NE zaustavlja slučajni bita slučajnim, tako da nema učinka na traku koja je pola upola.

Kubiti imaju operacije sa sličnim učinkom. Postoji jedan nazvan x, koji utječe na plavi izlaz kbit. A postoji i jedan z koji se odnosi na crveni izlaz.

Sve ove operacije, NE za bitove i x i z za qubits, također utječu na trake koje opisuju korelacije. Razlog za to je vrlo jednostavan: Ako imate dva bita koji se slažu, a zatim jedan prebacite, umjesto toga se oni neće složiti.

Rezultat toga je da x i z na gornjem kubitu utječu na cijele stupce rešetke. Evo učinka z kao primjera.

Jednostavna animacija az-a primijenjena na gornji qubit

Imajte na umu da općenito na ljubičastu traku u ovom stupcu utječe i z. To jednostavno ne daje mnogo u ovom konkretnom primjeru, jer je bar na pola.

Operacije x i z će umjesto toga utjecati na redove kada se primijene na qubit s lijeve strane. Evo primjera s x.

Jednostavna animacija x primijenjena na lijevi qubit

Ove operacije, x i z, primjeri su Cliffordovih operacija. Ovo maštovito ime samo nam govori da su operacije s relativno izravnim učinkom na šipkama. U stvari, vizualizacija zasnovana na traci proizlazi upravo iz načina na koji volimo razmišljati o Cliffordovim operacijama i njihovim učincima.

Postoje i druge Cliffordove operacije. Postoji h koji zamjenjuje dva izlaza qubita, stvarajući crveni izlaz onim što bi plavi bio, i obrnuto. Postoje i operacije koje djeluju na pare kubita, nazvane kontrolirane operacije, koje su ključne za način na koji obrađujemo podatke u kvantnim računalima. Ako želite naučiti više o tim, vaša najbolja opcija je igrati udžbenik.

Jednom kada odigrate dovoljno udžbenika da u potpunosti internalizirate učinke Clifforda na dva qubita, bit ćete dobro pripremljeni za pisanje programa temeljenih na Cliffordu za bilo koji broj qubita. Ovo će biti sjajna vještina za programere kvantnog softvera, budući da su Cliffordove operacije izuzetno koristan dio kvantnog računanja. U stvari, ogromnu većinu bilo kojeg kvantnog programa sačinjavat će Cliffordove operacije

Uprkos tome, aplikacije koje je moguće postići samo uz Cliffords su ograničene. Da bismo opravdali stvaranje kvantnih računala, trebamo nešto više. Potrebne su nam maštovito nazvane ne-Cliffordove operacije.

U ovom ćemo članku pogledati samo dva. Jedan se obično naziva u3 (pi / 4,0,0). Ali budući da to nije baš dopadljivo, nazvat ćemo ga q. Drugi je jednako glomazan u3 (-pi / 4,0,0), koji nazivamo qdg.

Operacija q omogućit će nam da se pomaknemo iza prečke koji su jednostavno uključeni, isključeni ili upola uključeni. Počet ćemo dobivati ​​i druge frakcije. Na primjer, započnimo s qubitom čija je plava kutija u potpunosti uključena.

A sad pogodimo s q.

Plava kutija je i dalje uglavnom uključena, što znači da će najvjerojatnije dobiti 1. No, nije sigurno. Gubitak sigurno za plave je dobit za crvene. To ide od potpuno slučajne, do snažne pristranosti prema 1.

Da biste objasnili puni učinak aq, pomaže vam nacrtati dvije trake jedna preko druge. Ako pogledamo gdje se njihove razine susreću, možemo utvrditi točku.

Učinak q je jednostavno zakretanje točke, povlačenjem nivoa šipki sa sobom.

Učinci 8 uzastopnih q operacija

Q operacija vrši rotaciju u smjeru kazaljke na satu, na 1/8 puta oko kruga, a qdg isto tako, ali u suprotnom smjeru od kazaljke na satu.

Sada je vrijeme da vidimo kako q utječe na cijele naše dvije qubit mreže. Počet ćemo s aq-om na gornjem kubitu. Da bismo to učinili, morat ćemo nacrtati dva stupca jedan na drugom.

Ovo stvara tri kruga. Gornja je samo crvena i plava traka za gornji kubit, kao što smo gledali prije.

Srednji par izrađen je od BB šipke i RB šipke. BB traka je uvijek plava i okomita i tako igra dio okomite osi. Sada nam je potrebna vodoravna os da bismo dovršili krug. To je učinjeno u blizini RB trake. Iako je obično ljubičasta i dijagonalna, ona postaje crvena i vodoravna kako bi napravila krug.

Za donji krug, RR okvir jasan je izbor vodoravne osi. To znači da BR traka dobiva zadatak da u ovom slučaju bude plava i okomita.

Za svaki od tih krugova, q operacija vrši svoju rotaciju. Rotacija gornjeg kruga pokazuje kako q utječe na sam gornji kubit. Ostali određuju kako utječu korelacije.

Da bismo vidjeli kako q utječe na lijevi qubit, umjesto toga moramo nacrtati dva reda jedan iznad drugog.

Sve ide gotovo isto. Razlika je u tome što ljubičaste šipke igraju suprotne uloge kao i kad smo zajedno kosili stupove.

Ti krugovi nisu naš vlastiti izum: oni su Bloch krugovi. Ovo su pojednostavljeni oblici Blochove sfere koji gotovo svaki popularnoznanstveni članak o kvantnom računarstvu koristi kao infografiku.

Bloch sfera

Koliko ima načina da se izvuče izlaz iz qubita? Točno je reći da postoji beskonačan broj. Točno je i reći da postoji samo jedan. Ali najpouzdaniji odgovor svih jest da postoje tri. Dvije od njih su crvena i plava koju smo već upoznali. Pa nazovimo konačni zeleni.

Kad kombiniramo crvenu i plavu traku, dobit ćemo krug. Kada dodamo zelenu, dobivamo sferu. Ovo je Bloch-ova sfera.

Bloch sfera je najbolji način za vizualizaciju ne-Cliffordovih operacija na jednom qubitu. Nije loše ni s dva qubita. Trebamo samo dodati zeleni red i stupac u našu mrežu. Tada možemo kombinirati trostruke redove redova stupaca u zbirkama sfera, baš kao što smo gore radili s krugovima.

Za tri kubita trebat će vam 3D kocka umjesto mrežice. Za više od tri kubita na kraju ćete pokušati sastaviti sfere iz redaka i stupaca n-dimenzionalne hiperkube. U tom je trenutku vjerojatno najbolje iskopati Bloch-ovu sferu i razviti vizualizaciju u skladu s bilo kojim kvantnim programom koji pokušavate napisati.

Zelene trake nisu bile uključene u naš vodič zbog jednostavnosti. Bez njih je već dovoljno za početak istraživanja svijeta kvantnog programiranja. S njima sve postaje samo malo više natečeno. Čak i mi znanstvenici koji radimo na kvantnom računanju volimo zaboraviti na njih kad god je to moguće. Ako želite naučiti razmišljati poput nas, ovo je važna lekcija koju treba naučiti.

Zaključci

Mnogi ljudi smatraju kvantne sustave čudnim, slučajnim, višestrukim stvarima istodobno filozofskim zagonetkama. To nije najbolji pristup za kvantnog programera, kojemu treba praktičnije paziti. Da bismo obučili pridošlice na terenu da se bolje od nas starijih hakira, razvili smo način vizualizacije dva stanja qubita i tutorial oko njega.

Da bismo to učinili kombiniramo postojeće metode. Konkretno, kombiniramo standardni način razmišljanja o Cliffordovim operacijama (prevrtanje i mijenjanje stvari) sa standardnom vizualizacijom za jednokratne qubit-ne-Cliffordove operacije (Bloch-ova sfera).

Ako želite vidjeti ljepšu vizualizaciju, koju smo napravili za verziju aplikacije Hello Quantum, pročitajte sestrinski članak u nastavku.