Što je kvantno računalo? Objašnjeno jednostavnim primjerom.

Pozdrav svima!

Neki dan sam posjetio D-Wave Systems u Vancouveru u Kanadi. To je tvrtka koja proizvodi vrhunska kvantna računala.

Tamo moram naučiti puno o kvantnim računalima, pa bih želio podijeliti s vama nešto od onoga što sam tamo naučio u ovom članku.

Cilj ovog članka je dati vam preciznu intuiciju o tome što kvantno računalo koristi jednostavni primjer.

Ovaj članak neće tražiti da imate predznanje ni o kvantnoj fizici ni o računalstvu da biste ga mogli razumjeti.

Ok, krenimo.

Uredi (26. veljače 2019.): Nedavno sam objavio video o istoj temi na svom YouTube kanalu. Preporučio bih ga pogledati (kliknite ovdje) prije ili nakon čitanja ovog članka, jer sam u videozapis dodao neke dodatne, nijansiranije argumente.

Što je kvantno računalo?

Evo sažetka jedne rečenice o tome što je kvantno računalo:

Kvantno računalo je vrsta računala koje koristi kvantnu mehaniku tako da može izvesti određene vrste računanja učinkovitije nego što to može uobičajeno računalo.

U ovoj se rečenici može puno toga raspakirati, pa ću vam pružiti jednostavan primjer na jednostavnom primjeru.

Da bih objasnio što je kvantno računalo, morat ću prvo objasniti malo o redovnim (nekvantnim) računalima.

Kako redovno računalo pohranjuje informacije

Sada redovno računalo pohranjuje informacije u nizu 0 i 1.

Na ovaj način mogu se predstaviti različite vrste podataka, poput brojeva, teksta i slika.

Svaka jedinica u ovoj seriji 0 i 1 naziva se malo. Dakle, bit se može postaviti na 0 ili 1.

Što je s kvantnim računalima?

Kvantno računalo ne koristi bitove za pohranu podataka. Umjesto toga, koristi nešto što se naziva qubits.

Svaki kubit ne može se postaviti samo na 1 ili 0, već se može postaviti i na 1 i 0. Ali što to točno znači?

Dopustite mi da to objasnim na jednostavnom primjeru. Ovo će biti pomalo umjetni primjer. Ali to će i dalje biti korisno u razumijevanju načina rada kvantnih računala.

Jednostavan primjer za razumijevanje rada kvantnih računala

Pretpostavimo sada da vodite turističku agenciju i da morate premjestiti skupinu ljudi s jednog mjesta na drugo.

Da to bude jednostavno, recimo da za sada morate preseliti samo 3 osobe - Alice, Becky i Chris.

Pretpostavimo da ste u tu svrhu rezervirali 2 taksija i želite shvatiti tko u koji taksi ulazi.

Također, pretpostavimo ovdje da ste dobili informacije o tome tko je s kim prijatelj, a tko neprijatelj s kim.

Evo, recimo to:

  • Alice i Becky su prijateljice
  • Alice i Chris su neprijatelji
  • Becky i Chris su neprijatelji

I pretpostavimo da je vaš cilj ovdje podijeliti ovu skupinu od 3 osobe u dva taksija kako bi se postigla sljedeća dva cilja:

  • Povećajte broj parova prijatelja koji dijele isti automobil
  • Smanjite broj neprijateljskih parova koji dijele isti automobil

Dobro, ovo je osnovna premisa ovog problema. Prvo razmislimo o tome kako bismo taj problem riješili uobičajenim računalom.

Rješavanje ovog problema pomoću uobičajenog računala

Da biste taj problem riješili uobičajenim, nekvantnim računalom, prvo ćete trebati smisliti kako relevantne podatke pohraniti bitovima.

Označimo dva taksija Taxi # 1 i Taxi # 0.

Zatim možete predstaviti tko u koji automobil ulazi s 3 bita.

Na primjer, možemo postaviti tri bita na 0 , 0 ,i 1 predstavljati:

  • Alice ulazi u Taxi # 0
  • Becky ulazi u Taxi # 0
  • Chris ulazi u Taxi # 1

Budući da postoje dva izbora za svaku osobu, postoje 2 * 2 * 2 = 8 načina kako podijeliti ovu skupinu ljudi u dva automobila.

Evo popisa svih mogućih konfiguracija:

A | B | C

0 | 0 | 0

0 | 0 | 1

0 | 1 | 0

0 | 1 | 1

1 | 0 | 0

1 | 0 | 1

1 | 1 | 0

1 | 1 | 1

Pomoću 3 bita možete predstaviti bilo koju od ovih kombinacija.

Izračunavanje rezultata za svaku konfiguraciju

Sada bismo pomoću uobičajenog računala mogli utvrditi koja je konfiguracija najbolje rješenje?

Da bismo to učinili, definirajmo kako možemo izračunati rezultat za svaku konfiguraciju. Ovaj će rezultat predstavljati u kojoj mjeri svako rješenje postiže dva cilja koja sam ranije spomenuo:

  • Povećajte broj parova prijatelja koji dijele isti automobil
  • Smanjite broj neprijateljskih parova koji dijele isti automobil

Jednostavno definirajmo naš rezultat na sljedeći način:

(rezultat zadane konfiguracije) = (# parova prijatelja koji dijele isti automobil) - (# neprijateljskih parova koji dijele isti automobil)

Na primjer, pretpostavimo da Alice, Becky i Chris svi uđu u Taxi # 1. S tri bita to se može izraziti kao 111 .

U ovom slučaju, postoji samo jedan prijateljski par koji dijeli isti automobil - Alice i Becky.

Međutim, postoje dva neprijateljska para koja dijele isti automobil - Alice i Chris, te Becky i Chris.

Dakle, ukupni rezultat ove konfiguracije je 1-2 = -1.

Rješavanje problema

Uz sve ove postavke, konačno možemo pristupiti rješavanju ovog problema.

S uobičajenim računalom, da biste pronašli najbolju konfiguraciju, morat ćete u osnovi proći sve konfiguracije da biste vidjeli koje postiže najveći rezultat.

Dakle, možete razmišljati o konstrukciji ovakve tablice:

A | B | C | Postići

0 | 0 | 0 | -1

0 | 0 | 1 | 1 <- jedno od najboljih rješenja

0 | 1 | 0 | -1

0 | 1 | 1 | -1

1 | 0 | 0 | -1

1 | 0 | 1 | -1

1 | 1 | 0 | 1 <- drugo najbolje rješenje

1 | 1 | 1 | -1

Kao što vidite, ovdje postoje dva točna rješenja - 001 i 110, a oba postižu rezultat 1.

Ovaj je problem prilično jednostavan. Brzo postaje preteško riješiti uobičajenim računalom jer povećavamo broj ljudi u ovom problemu.

Vidjeli smo da s 3 osobe moramo proći kroz 8 mogućih konfiguracija.

Što ako postoje 4 osobe? U tom slučaju trebat ćemo proći kroz konfiguracije 2 * 2 * 2 * 2 = 16.

S n ljudi trebat ćemo proći kroz (2 snage n) konfiguracije kako bismo pronašli najbolje rješenje.

Dakle, ako ima 100 ljudi, morat ćemo proći:

  • 2¹⁰⁰ ~ = 10³⁰ = milijun milijuna milijuna milijuna konfiguracija.

To je jednostavno nemoguće riješiti uobičajenim računalom.

Rješavanje ovog problema s kvantnim računalom

Kako bismo riješili ovaj problem kvantnim računalom?

Da razmislimo o tome, vratimo se slučaju podjele 3 osobe na dva taksija.

Kao što smo vidjeli ranije, bilo je 8 mogućih rješenja za ovaj problem:

A | B | C

0 | 0 | 0

0 | 0 | 1

0 | 1 | 0

0 | 1 | 1

1 | 0 | 0

1 | 0 | 1

1 | 1 | 0

1 | 1 | 1

Uz uobičajeno računalo, koristeći 3 bita, mogli smo istovremeno predstavljati samo jedno od ovih rješenja - na primjer, 001.

Međutim, s kvantnim računalom, pomoću 3 kubita , možemo istovremeno predstaviti svih 8 ovih rješenja .

Postoje rasprave o tome što točno znači, ali evo kako ja o tome razmišljam.

Prvo ispitajte prvi kubit od ova 3 kubita. Kad ga postavite na oboje0 i 1, to je poput stvaranja dva paralelna svijeta. (Da, čudno je, ali samo slijedite ovdje.)

U jednom od tih paralelnih svjetova, qubit je postavljen na 0. U drugom je postavljen na 1.

Što ako i drugi qubit postavite na 0 i 1? Zatim, to je poput stvaranja 4 paralelna svijeta.

U prvom su svijetu dva kubita postavljena na 00. U drugom su 01. U trećem imaju 10. U četvrtom imaju 11.

Slično tome, ako postavite sva tri kubita na 0 i 1, stvorili biste 8 paralelnih svjetova - 000, 001, 010, 011, 100, 101, 110 i 111.

Ovo je čudan način razmišljanja, ali jedan je od ispravnih načina tumačenja ponašanja qubita u stvarnom svijetu.

Sada, kada primijenite neku vrstu računanja na ova tri kubita, zapravo istodobno primjenjujete isto računanje u svih tih 8 paralelnih svjetova.

Dakle, umjesto da uzastopno prolazimo kroz svako od tih potencijalnih rješenja, možemo istovremeno izračunati rezultate svih rješenja.

Ovim konkretnim primjerom, u teoriji bi vaše kvantno računalo moglo pronaći jedno od najboljih rješenja u nekoliko milisekundi. Opet, to je 001 ili 110 kao što smo vidjeli ranije:

A | B | C | Postići

0 | 0 | 0 | -1

0 | 0 | 1 | 1 <- jedan od najboljih soluti dodatke

0 | 1 | 0 | -1

0 | 1 | 1 | -1

1 | 0 | 0 | -1

1 | 0 | 1 | -1

1 | 1 | 0 | 1 <- druga najbolja so lucija

1 | 1 | 1 | -1

U stvarnosti, da biste riješili ovaj problem, trebali biste svom kvantnom računalu dati dvije stvari:

  • Sva potencijalna rješenja predstavljena su qubitima
  • Funkcija koja svako potencijalno rješenje pretvara u rezultat. U ovom slučaju, ovo je funkcija koja broji brojeve parova prijatelja i neprijateljskih parova koji dijele isti automobil.

S obzirom na ove dvije stvari, vaše će kvantno računalo ispljunuti jedno od najboljih rješenja u nekoliko milisekundi. U ovom slučaju to je 001 ili 110 s ocjenom 1.

Sada je u teoriji kvantno računalo u stanju pronaći jedno od najboljih rješenja svaki put kad radi.

Međutim, u stvarnosti postoje pogreške prilikom pokretanja kvantnog računala. Dakle, umjesto pronalaženja najboljeg rješenja, moglo bi se pronaći drugo najbolje rješenje, treće najbolje rješenje itd.

Te pogreške postaju sve izraženije kako problem postaje sve složeniji.

Dakle, u praksi ćete vjerojatno poželjeti pokrenuti istu operaciju na kvantnom računalu desetke ili stotine puta. Zatim odaberite najbolji rezultat od mnogih rezultata koje dobijete.

Kako kvantno računalo skalira

Čak i uz pogreške koje sam spomenuo, kvantno računalo nema isti problem s skaliranjem od kojeg pati redovito računalo.

Kada postoje 3 osobe, moramo podijeliti u dva automobila, broj operacija koje trebamo izvesti na kvantnom računalu je 1. To je zato što kvantno računalo istovremeno izračunava rezultat svih konfiguracija.

Kada su 4 osobe, broj operacija je i dalje 1.

Kada ima 100 ljudi, broj operacija je i dalje 1. Jednom operacijom kvantno računalo izračunava rezultate svih 2¹⁰⁰ ~ = 10³⁰ = milijun milijuna milijuna konfiguracija istovremeno.

Kao što sam već spomenuo, u praksi je vjerojatno najbolje pokretati svoje kvantno računalo desetke puta ili stotine puta i odabrati najbolji rezultat od mnogih rezultata koje dobijete.

Međutim, to je još uvijek puno bolje nego pokretati isti problem na uobičajenom računalu i morati ponoviti istu vrstu računanja milijun milijuna milijuna milijuna puta.

Završavati

Posebno zahvaljujem svima u D-Wave Systemsima što su mi sve ovo strpljivo objasnili.

D-Wave je nedavno pokrenuo oblačno okruženje za interakciju s kvantnim računalom.

Ako ste programer i želite zapravo pokušati koristiti kvantno računalo, to je vjerojatno najlakši način.

Zove se Skok i nalazi se na //cloud.dwavesys.com/leap. Možete ga besplatno koristiti za rješavanje tisuća problema, a oni također imaju jednostavne upute za početak rada s kvantnim računalima nakon što se prijavite.

Fusnota:

  • U ovom sam članku upotrijebio pojam "obično računalo" da bih se odnosio na nekvantno računalo. Međutim, u industriji kvantnog računanja, nekvantna računala obično se nazivaju klasičnim računalima.