Mis on kvantarvuti? Selgitatud lihtsa näitega.

Tere kõigile!

Teisel päeval külastasin Kanadas Vancouveris asuvat D-Wave Systems'i . See on ettevõte, mis toodab tipptasemel kvantarvuteid.

Sain sealsete kvantarvutite kohta palju teada, nii et tahaksin selles artiklis teiega jagada mõnda seal õppitut.

Selle artikli eesmärk on anda teile lihtsa näite abil täpne intuitsioon kvantarvuti kasutamisest.

See artikkel ei nõua, et teil oleks kvantfüüsika või arvutiteaduse eelnevad teadmised, et neist aru saada.

Olgu, alustame.

Muuda (26. veebruar 2019): avaldasin hiljuti oma YouTube'i kanalil video samal teemal. Soovitaksin seda vaadata (klõpsake siin) enne või pärast selle artikli lugemist, kuna olen lisanud videole veel mõned nüansirikkamad argumendid.

Mis on kvantarvuti?

Siin on ühe lausega kokkuvõte sellest, mis on kvantarvuti:

Kvantarvuti on arvutitüüp, mis kasutab kvantmehaanikat nii, et see suudab teatud tüüpi arvutusi teha tõhusamalt kui tavaline arvuti.

Selles lauses on palju lahti pakkida, nii et lubage mul lihtsa näite abil tutvustada, mis see täpselt on.

Kvantarvuti selgitamiseks pean kõigepealt natuke selgitama tavalisi (mitte-kvant) arvuteid.

Kuidas tavaline arvuti teavet salvestab

Nüüd salvestab tavaline arvuti teavet 0- ja 1-seeriatena.

Nii saab kujutada erinevat tüüpi teavet, näiteks numbreid, teksti ja pilte.

Selle 0- ja 1-seeria kõiki üksusi nimetatakse natuke. Nii saab natuke seada kas 0 või 1.

Kuidas on lood kvantarvutitega?

Kvantarvuti ei kasuta teabe salvestamiseks bitti. Selle asemel kasutab see midagi, mida nimetatakse qubitideks.

Iga kbiiti ei saa seada ainult 1 või 0, vaid ka 1 ja 0. Kuid mida see täpselt tähendab?

Lubage mul seda lihtsa näitega selgitada. See saab olema mõneti kunstlik näide. Kuid sellest on ikkagi abi kvantarvutite töö mõistmisel.

Lihtne näide kvantarvutite töö mõistmiseks

Oletame, et teil on reisibüroo ja peate inimeste grupi ühest kohast teise viima.

Selle lihtsuse säilitamiseks oletame, et praegu peate kolima ainult 3 inimest - Alice, Becky ja Chris.

Oletame, et olete selleks broneerinud 2 taksot ja soovite välja selgitada, kes millisesse taksosse istub.

Oletame siin ka seda, et teile antakse teavet selle kohta, kes on kellega sõbrad ja kes kellega vaenlasi.

Oletame, et siin:

  • Alice ja Becky on sõbrad
  • Alice ja Chris on vaenlased
  • Becky ja Chris on vaenlased

Oletame, et teie eesmärk on jagada see 3 inimesest koosnev rühm kaheks taksoks järgmise kahe eesmärgi saavutamiseks:

  • Maksimeerida oma sõbrale paari , kes jagavad sama auto
  • Minimeerige sama autot jagavate vaenlase paaride arv

Okei, nii et see on selle probleemi peamine eeldus. Mõelgem kõigepealt sellele, kuidas saaksime selle probleemi tavalise arvuti abil lahendada.

Selle probleemi lahendamine tavalise arvutiga

Selle probleemi lahendamiseks tavalise mitte-kvantarvutiga peate kõigepealt välja mõtlema, kuidas asjakohast teavet bitidega salvestada.

Märgistame kaks taksot takso nr 1 ja takso nr 0.

Seejärel saate kolme bitiga esindada, kes millisesse autosse istub.

Näiteks saame kolmeks bitiks määrata 0 , 0 ,ja 1 esindavad:

  • Alice pääseb taksosse nr 0
  • Becky pääseb taksosse nr 0
  • Chris satub taksosse nr 1

Kuna iga inimese jaoks on kaks valikut, on 2 * 2 * 2 = 8 viisi, kuidas jagada see inimrühm kaheks autoks.

Siin on kõigi võimalike konfiguratsioonide loend:

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

Kolme bitti kasutades saate kujutada üht neist kombinatsioonidest.

Iga konfiguratsiooni skoori arvutamine

Kuidas saaksime nüüd tavalist arvutit kasutades kindlaks teha, milline konfiguratsioon on parim lahendus?

Selleks määratleme, kuidas saame iga konfiguratsiooni skoori arvutada. See skoor tähistab seda, mil määral saavutab iga lahendus kaks eespool mainitud eesmärki:

  • Maksimeerida oma sõbrale paari , kes jagavad sama auto
  • Minimeerige sama autot jagavate vaenlase paaride arv

Määratleme oma skoor lihtsalt järgmiselt:

(antud konfiguratsiooni skoor) = (# sama sõpra jagavat sõbra paari) - (# sama autot jagavat vaenlase paari)

Oletame näiteks, et Alice, Becky ja Chris pääsevad kõik taksosse nr 1. Kolme bitiga saab seda väljendada kui 111 .

Sel juhul on sama autot jagamas vaid üks sõbrapaar - Alice ja Becky.

Siiski on sama autot jagamas kaks vaenlase paari - Alice ja Chris ning Becky ja Chris.

Niisiis on selle konfiguratsiooni üldskoor 1-2 = -1.

Probleemi lahendamine

Kogu selle seadistusega saame lõpuks selle probleemi lahendada.

Tavalise arvuti korral peate parima konfiguratsiooni leidmiseks läbima kõik konfiguratsioonid, et näha, milline neist saavutab kõrgeima punktisumma.

Nii võite mõelda sellise tabeli koostamisele:

A | B | C | Skoor

0 | 0 | 0 | -1

0 | 0 | 1 | 1 <- üks parimaid lahendusi

0 | 1 | 0 | -1

0 | 1 | 1 | -1

1 | 0 | 0 | -1

1 | 0 | 1 | -1

1 | 1 | 0 | 1 <- teine ​​parim lahendus

1 | 1 | 1 | -1

Nagu näete, on siin kaks õiget lahendust - 001 ja 110, mõlemad saavutavad hinde 1.

See probleem on üsna lihtne. Tavalise arvutiga on selle lahendamine kiiresti liiga keeruline, kuna suurendame selle probleemiga inimeste arvu.

Nägime, et kolme inimesega peame läbima 8 võimalikku konfiguratsiooni.

Mis siis, kui seal on 4 inimest? Sel juhul peame läbima 2 * 2 * 2 * 2 = 16 konfiguratsiooni.

Parima lahenduse leidmiseks peame koos n inimesega läbima (2 n võimsuseni) konfiguratsiooni.

Nii et kui on 100 inimest, peame läbi tegema:

  • 2¹ ~ = 10³⁰ = miljon miljonit miljonit miljonit miljonit konfiguratsiooni.

Tavalise arvutiga on seda lihtsalt võimatu lahendada.

Selle probleemi lahendamine kvantarvutiga

Kuidas me läheksime selle probleemi lahendamisele kvantarvutiga?

Selle mõtlemiseks pöördugem tagasi 3 inimese jagamise kaheks taksoks juhtumi juurde.

Nagu me varem nägime, oli sellele probleemile 8 võimalikku lahendust:

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

Tavalise arvutiga, kasutades 3 bitti, suutsime korraga kujutada ainult ühte neist lahendustest - näiteks 001.

Kuid kvantarvutiga, kasutades 3 kvitti , saame kõiki neid 8 lahendust korraga kujutada .

On vaidlusi, mida see täpselt tähendab, kuid siin on minu arvamus.

Kõigepealt uurige nende kolme kubiti esimest kubiti. Kui määrate selle mõlemale0 ja 1, see on umbes nagu kahe paralleelmaailma loomine. (Jah, see on kummaline, aga lihtsalt jälgi siin.)

Ühes neist paralleelmaailmadest on qubit seatud väärtusele 0. Teises on määratud 1.

Mis siis, kui määraksite ka teise kbiidi väärtuseks 0 ja 1? Siis on see umbes nagu 4 paralleelmaailma loomine.

Esimeses maailmas on kahe kubiti väärtuseks seatud 00. Teises on nad 01. Kolmandas on nad 10. Neljandas on nad 11.

Samamoodi, kui määrate kõigi kolme kvartiti väärtuseks 0 ja 1, loote 8 paralleelmaailma - 000, 001, 010, 011, 100, 101, 110 ja 111.

See on kummaline viis mõelda, kuid see on üks õige viis tõlgendada seda, kuidas quitid reaalses maailmas käituvad.

Kui rakendate neile kolmele quitile mingisugust arvutust, rakendate tegelikult sama arvutust kõigis kaheksas paralleelmaailmas korraga.

Niisiis, selle asemel, et neid potentsiaalseid lahendusi järjest läbi käia, saame arvutada kõigi lahenduste hinded korraga.

Selle konkreetse näite abil suudaks teie kvantarvuti teoreetiliselt mõne millisekundiga leida ühe parima lahenduse. Jällegi on see 001 või 110, nagu nägime varem:

A | B | C | Skoor

0 | 0 | 0 | -1

0 | 0 | 1 | 1 <- üks parimaid soluti ons

0 | 1 | 0 | -1

0 | 1 | 1 | -1

1 | 0 | 0 | -1

1 | 0 | 1 | -1

1 | 1 | 0 | 1 <- teine ​​parim, nii et lution

1 | 1 | 1 | -1

Tegelikult peate selle probleemi lahendamiseks andma oma kvantarvutile kaks asja:

  • Kõik potentsiaalsed lahendid on esindatud quitidega
  • Funktsioon, mis muudab iga potentsiaalse lahenduse skooriks. Sellisel juhul loeb see funktsioon sama autot jagavate sõberpaaride ja vaenlase paaride arvu.

Neid kahte asja arvesse võttes sülitab teie kvantarvuti mõne parima sekundi jooksul ühe parima lahenduse. Sellisel juhul on see 001 või 110 skooriga 1.

Nüüd suudab kvantarvuti teoreetiliselt leida iga töötamise ajal ühe parima lahenduse.

Kuid tegelikkuses on kvantarvuti käitamisel vigu. Nii et selle asemel, et leida parim lahendus, võib see leida parima ja teise lahenduse jne.

Need vead muutuvad üha olulisemaks, kui probleem muutub üha keerukamaks.

Nii et praktikas soovite tõenäoliselt sama operatsiooni kvantarvutis käivitada kümneid või sadu kordi. Seejärel vali paljudest saadud tulemustest parim tulemus.

Kuidas kvantarvuti skaalab

Isegi nende vigade korral, mida mainisin, pole kvantarvutil sama mastaapsuse probleem, mille all tavaline arvuti kannatab.

Kui on 3 inimest, peame jagunema kaheks autoks, siis on kvantarvutis tehtavate toimingute arv 1. Seda seetõttu, et kvantarvuti arvutab kõigi konfiguratsioonide skoori korraga.

Kui on 4 inimest, on operatsioonide arv endiselt 1.

Kui inimesi on 100, on toimingute arv endiselt 1. Ühe operatsiooniga arvutab kvantarvuti kõigi ~ = 10³⁰ = miljoni miljoni miljoni miljoni miljoni miljoni konfiguratsiooni tulemused korraga.

Nagu ma varem mainisin, on praktikas ilmselt kõige parem käitada oma kvantarvutit kümneid või sadu kordi ja valida paljude tulemuste seast parim.

Kuid see on ikkagi palju parem kui sama probleemi käivitamine tavalises arvutis ja sama tüüpi arvutuste kordamine miljon miljonit miljonit miljonit miljonit korda.

Pakkimine

Eriline tänu kõigile D-Wave Systems'is, kes mulle seda kõike kannatlikult selgitasid.

D-Wave käivitas hiljuti pilvekeskkonna kvantarvutiga suhtlemiseks.

Kui olete arendaja ja soovite tegelikult kvantarvutit proovida, on see ilmselt lihtsaim viis seda teha.

Seda nimetatakse hüppeks ja see asub aadressil //cloud.dwavesys.com/leap. Saate seda tasuta kasutada tuhandete probleemide lahendamiseks ja neil on ka registreerumisel hõlpsasti jälgitavad õpetused kvantarvutitega alustamiseks.

Joonealune märkus:

  • Selles artiklis kasutasin terminit „tavaline arvuti” mittekvantarvuti tähistamiseks. Kuid kvantarvutitööstuses nimetatakse mittekvantarvuteid tavaliselt klassikalisteks arvutiteks.