Kas yra kvantinis kompiuteris? Paaiškinta paprastu pavyzdžiu.

Sveiki visi!

Kitą dieną aplankiau „ D-Wave Systems “ Vankuveryje, Kanadoje. Tai kompanija, gaminanti pažangiausius kvantinius kompiuterius.

Turėjau daug sužinoti apie ten esančius kvantinius kompiuterius, todėl šiame straipsnyje norėčiau pasidalinti su jumis tuo, ką ten išmokau.

Šio straipsnio tikslas yra suteikti jums tikslią intuiciją apie tai, ką kvantinis kompiuteris naudoja, naudodamas paprastą pavyzdį.

Šiame straipsnyje jums nereikės turėti išankstinių žinių apie kvantinę fiziką ar informatiką, kad galėtumėte jas suprasti.

Gerai, pradėkime.

Redaguoti (2019 m. Vasario 26 d.): Neseniai savo „YouTube“ kanale paskelbiau vaizdo įrašą ta pačia tema. Rekomenduočiau žiūrėti (spustelėkite čia) prieš arba perskaičius šį straipsnį, nes vaizdo įraše pridėjau keletą papildomų, labiau niuansuotų argumentų.

Kas yra kvantinis kompiuteris?

Čia yra vieno sakinio santrauka, kas yra kvantinis kompiuteris:

Kvantinis kompiuteris yra kompiuterio tipas, kuris naudoja kvantinę mechaniką, kad tam tikrų rūšių skaičiavimus jis galėtų atlikti efektyviau nei įprastas kompiuteris.

Šiame sakinyje yra daug ką išpakuoti, todėl leiskite man papasakoti jums, ką tai reiškia, naudodamas paprastą pavyzdį.

Norėdami paaiškinti, kas yra kvantinis kompiuteris, pirmiausia turėsiu šiek tiek paaiškinti apie įprastus (ne kvantinius) kompiuterius.

Kaip įprastas kompiuteris kaupia informaciją

Dabar įprastas kompiuteris saugo informaciją 0 ir 1 serijose.

Tokiu būdu gali būti pateikiama įvairių rūšių informacija, pvz., Skaičiai, tekstas ir vaizdai.

Kiekvienas šios 0 ir 1 serijos vienetas vadinamas šiek tiek. Taigi, šiek tiek galima nustatyti arba 0, arba 1.

O kaip su kvantiniais kompiuteriais?

Kvantinė kompiuteris neturi naudoti bitai saugoti informaciją. Vietoj to jis naudoja ką nors vadinamą kubitą.

Kiekvieną kubitą galima nustatyti ne tik kaip 1 ar 0, bet ir į 1 bei 0. Bet ką tai tiksliai reiškia?

Leiskite man tai paaiškinti paprastu pavyzdžiu. Tai bus šiek tiek dirbtinis pavyzdys. Bet tai vis tiek bus naudinga norint suprasti, kaip veikia kvantiniai kompiuteriai.

Paprastas pavyzdys, kaip suprasti, kaip veikia kvantiniai kompiuteriai

Tarkime, kad vadovaujate kelionių agentūrai ir turite perkelti žmonių grupę iš vienos vietos į kitą.

Kad tai būtų paprasta, tarkime, kad kol kas reikia perkelti tik 3 žmones - Alice, Becky ir Chris.

Tarkime, kad šiam tikslui esate užsisakę 2 taksi ir norite sužinoti, kas į kurį taksi įlipa.

Be to, tarkime, kad jums suteikiama informacija apie tai, kas su kuo draugauja, o kas su kuo yra priešas.

Tarkime, kad:

  • Alisa ir Becky yra draugai
  • Alisa ir Chrisas yra priešai
  • Becky ir Chrisas yra priešai

Tarkime, kad jūsų tikslas yra padalinti šią 3 žmonių grupę į du taksi, kad pasiektumėte šiuos du tikslus:

  • Padidinkite draugų porų, kurios naudojasi tuo pačiu automobiliu, skaičių
  • Sumažinkite priešo porų , turinčių tą patį automobilį, skaičių

Gerai, todėl tai yra pagrindinė šios problemos prielaida. Pirmiausia pagalvokime, kaip išspręstume šią problemą naudodami įprastą kompiuterį.

Šios problemos sprendimas naudojant įprastą kompiuterį

Norėdami išspręsti šią problemą įprastu, ne kvantiniu kompiuteriu, pirmiausia turėsite išsiaiškinti, kaip išsaugoti atitinkamą informaciją bitais.

Pažymėkime du taksi „Taxi # 1“ ir „Taxi # 0“.

Tada galite pavaizduoti, kas į kurį automobilį įeina su 3 bitais.

Pavyzdžiui, mes galime nustatyti tris bitus į 0 , 0 ,ir 1 atstovauti:

  • Alisa patenka į 0 taksi
  • Becky patenka į 0 taksi
  • Chrisas patenka į 1 taksi

Kadangi kiekvienam asmeniui yra du pasirinkimai, yra 2 * 2 * 2 = 8 būdai, kaip padalinti šią žmonių grupę į du automobilius.

Čia pateikiamas visų galimų konfigūracijų sąrašas:

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

Naudodami 3 bitus galite atvaizduoti bet kurį iš šių derinių.

Skaičiuojamas kiekvienos konfigūracijos rezultatas

Dabar, naudodamiesi įprastu kompiuteriu, kaip mes nustatytume, kuri konfigūracija yra geriausias sprendimas?

Norėdami tai padaryti, apibrėžkime, kaip galime apskaičiuoti kiekvienos konfigūracijos balą. Šis balas parodys, kiek kiekvienas sprendimas pasiekia du anksčiau minėtus tikslus:

  • Padidinkite draugų porų, kurios naudojasi tuo pačiu automobiliu, skaičių
  • Sumažinkite priešo porų , turinčių tą patį automobilį, skaičių

Paprasčiausiai apibrėžkime savo balą taip:

(nurodytos konfigūracijos balas) = ​​(# draugo porų, naudojančių tą patį automobilį) - (# priešo porų, naudojančių tą patį automobilį)

Pavyzdžiui, tarkime, kad Alisa, Becky ir Chrisas visi patenka į „Taxi # 1“. Turint tris bitus, tai galima išreikšti kaip 111 .

Šiuo atveju tuo pačiu automobiliu dalijasi tik viena draugių pora - Alice ir Becky.

Tačiau tuo pačiu automobiliu dalijasi dvi priešo poros - Alice ir Chrisas bei Becky ir Chrisas.

Taigi, bendras šios konfigūracijos rezultatas yra 1-2 = -1.

Problemos sprendimas

Atlikę visą šią sąranką, pagaliau galime išspręsti šią problemą.

Turėdami įprastą kompiuterį, norėdami rasti geriausią konfigūraciją, turėsite iš esmės pereiti visas konfigūracijas, kad pamatytumėte, kuri iš jų pasiekia aukščiausią balą.

Taigi, galite pagalvoti apie tokios lentelės sukūrimą:

A | B | C | Rezultatas

0 | 0 | 0 | -1

0 | 0 | 1 | 1 <- vienas geriausių sprendimų

0 | 1 | 0 | -1

0 | 1 | 1 | -1

1 | 0 | 0 | -1

1 | 0 | 1 | -1

1 | 1 | 0 | 1 <- kitas geriausias sprendimas

1 | 1 | 1 | -1

Kaip matote, čia yra du teisingi sprendimai - 001 ir 110, abu pasiekę 1 balą.

Ši problema yra gana paprasta. Tai greitai tampa per sunku išspręsti įprastu kompiuteriu, nes padidėja žmonių, turinčių šią problemą, skaičius.

Mes matėme, kad su 3 žmonėmis turime pereiti 8 galimas konfigūracijas.

Ką daryti, jei yra 4 žmonės? Tokiu atveju turėsime atlikti 2 * 2 * 2 * 2 = 16 konfigūracijų.

Turėdami n žmonių, turėsime atlikti (2 iki n galios) konfigūracijas, kad rastume geriausią sprendimą.

Taigi, jei yra 100 žmonių, turėsime išgyventi:

  • 2¹ ~ ~ 10³⁰ = milijonas milijonų milijonų milijonų milijonų konfigūracijų.

To paprasčiausiai neįmanoma išspręsti įprastu kompiuteriu.

Šios problemos sprendimas kvantiniu kompiuteriu

Kaip mes eitume spręsdami šią problemą kvantiniu kompiuteriu?

Norėdami pagalvoti apie tai, grįžkime prie 3 žmonių padalijimo į du taksi atvejo.

Kaip matėme anksčiau, buvo 8 galimi šios problemos sprendimo būdai:

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

Turėdami įprastą kompiuterį, naudodami 3 bitus, vienu metu galėjome pavaizduoti tik vieną iš šių sprendimų - pavyzdžiui, 001.

Tačiau naudodami kvantinį kompiuterį, naudodami 3 kubus , mes galime vienu metu parodyti visus 8 iš šių sprendimų .

Yra diskusijų, ką tai tiksliai reiškia, bet aš taip galvoju apie tai.

Pirmiausia ištirkite pirmąjį kubitą iš šių 3 kubitų. Kai nustatysite jį į abu0 ir 1, tai tarsi sukuria du lygiagrečius pasaulius. (Taip, tai keista, bet tiesiog sekite čia.)

Viename iš tų lygiagrečių pasaulių kubitas nustatytas į 0. Kitame - 1.

Ką daryti, jei antrąjį kubitą nustatysite ir 0 bei 1? Tada tai tarsi sukuria 4 paralelius pasaulius.

Pirmajame pasaulyje du kubitai nustatomi į 00. Antrajame jie yra 01. Trečiajame jie yra 10. Ketvirtajame jie yra 11.

Panašiai, jei nustatysite visus tris kubitus tiek 0, tiek 1, sukursite 8 paralelius pasaulius - 000, 001, 010, 011, 100, 101, 110 ir 111.

Tai yra keistas mąstymo būdas, tačiau tai yra vienas teisingiausių būdų interpretuoti, kaip kubitai elgiasi realiame pasaulyje.

Dabar, kai taikote tam tikrą skaičiavimą šiems trims kubitams, jūs tuo pačiu metu taikote tą patį skaičiavimą visuose tuose 8 paraleliuose pasauliuose.

Taigi, užuot nuosekliai nagrinėję kiekvieną iš šių galimų sprendimų, galime vienu metu apskaičiuoti visų sprendimų balus.

Pateikdamas šį konkretų pavyzdį, teoriškai jūsų kvantinis kompiuteris sugebės rasti vieną geriausių sprendimų per kelias milisekundes. Vėlgi, tai yra 001 arba 110, kaip matėme anksčiau:

A | B | C | Rezultatas

0 | 0 | 0 | -1

0 | 0 | 1 | 1 <- vienas iš geriausių soluti priedų

0 | 1 | 0 | -1

0 | 1 | 1 | -1

1 | 0 | 0 | -1

1 | 0 | 1 | -1

1 | 1 | 0 | 1 <- kita geriausia taip liuciją

1 | 1 | 1 | -1

Iš tikrųjų, norint išspręsti šią problemą, kvantiniam kompiuteriui turėsite pateikti du dalykus:

  • Visi galimi sprendimai pateikiami kubitais
  • Funkcija, kuri kiekvieną potencialų sprendimą paverčia balu. Šiuo atveju tai yra funkcija, kuri suskaičiuoja draugų porų ir priešo porų, dalijančių tą patį automobilį, skaičių.

Atsižvelgiant į šiuos du dalykus, jūsų kvantinis kompiuteris per kelias milisekundes išspjaus vieną geriausių sprendimų. Šiuo atveju tai yra 001 arba 110, kai balas yra 1.

Dabar teoriškai kvantinis kompiuteris sugeba rasti vieną iš geriausių sprendimų kiekvieną kartą, kai jis veikia.

Tačiau iš tikrųjų paleidžiant kvantinį kompiuterį yra klaidų. Taigi, užuot radęs geriausią sprendimą, jis gali rasti antrą geriausią, trečią geriausią ir pan.

Šios klaidos išryškėja, kai problema tampa vis sudėtingesnė.

Taigi praktiškai tą pačią operaciją kvantiniame kompiuteryje tikriausiai norėsite atlikti keliasdešimt kartų ar šimtus kartų. Tada iš daugelio gautų rezultatų išsirinkite geriausią rezultatą.

Kaip kvantinis kompiuteris masteli

Net ir dėl mano minėtų klaidų, kvantiniame kompiuteryje nėra tokios pačios mastelio problemos, kuria kenčia įprastas kompiuteris.

Kai yra 3 žmonės, turime suskirstyti į du automobilius, operacijų, kurias turime atlikti kvantiniame kompiuteryje, skaičius yra 1. Taip yra todėl, kad kvantinis kompiuteris tuo pačiu metu apskaičiuoja visų konfigūracijų balus.

Kai yra 4 žmonės, operacijų skaičius vis tiek yra 1.

Kai yra 100 žmonių, operacijų skaičius vis dar yra 1. Atlikus vieną operaciją, kvantinis kompiuteris tuo pačiu metu apskaičiuoja visų ~ = 10³⁰ = milijono milijonų milijonų milijonų milijonų konfigūracijų balus .

Kaip jau minėjau anksčiau, praktiškai tikriausiai geriausia paleisti savo kvantinį kompiuterį keliasdešimt kartų ar šimtus kartų ir iš daugelio gautų rezultatų pasirinkti geriausią rezultatą.

Tačiau tai vis tiek daug geriau nei paleisti tą pačią problemą įprastu kompiuteriu ir pakartoti tą patį skaičiavimo tipą milijoną milijonų milijonų milijonų milijonų kartų.

Apvyniojimas

Ypatingas ačiū visiems „D-Wave Systems“, kurie kantriai man visa tai paaiškino.

„D-Wave“ neseniai pristatė debesies aplinką, skirtą bendrauti su kvantiniu kompiuteriu.

Jei esate kūrėjas ir norėtumėte iš tikrųjų išbandyti kvantinį kompiuterį, tai tikriausiai yra lengviausias būdas tai padaryti.

Jis vadinamas šuoliu ir yra adresu //cloud.dwavesys.com/leap. Galite ją nemokamai naudoti tūkstančiams problemų išspręsti, be to, jie taip pat turi lengvai stebimas pamokas, kaip pradėti naudotis kvantiniais kompiuteriais, kai prisiregistruosite.

Išnaša:

  • Šiame straipsnyje aš vartojau terminą „įprastas kompiuteris“, norėdamas nurodyti ne kvantinį kompiuterį. Tačiau kvantinių skaičiavimų pramonėje ne kvantiniai kompiuteriai paprastai vadinami klasikiniais kompiuteriais.