Senmistificante la principojn de kvantuma komputado

Senmistificante la principojn de kvantuma komputado
"Mi pensas, ke mi povas sekure diri, ke neniu komprenas kvantuman mekanikon." - Richard Feynman

La temo de kvantuma komputiko ĉiam fascinis teknikajn verkistojn kaj ĵurnalistojn. Ĝia komputa potencialo kaj komplekseco donis al ĝi certan misteran aŭron. Tro ofte, ĉefartikoloj kaj infografioj detale priskribas la diversajn perspektivojn de ĉi tiu industrio, dum apenaŭ tuŝas ĝian praktikan aplikon: tio povas trompi la malpli atentan leganton.

Popularsciencaj artikoloj preterlasas priskribojn de kvantumsistemoj kaj faras deklarojn kiel:

Regula bito povas esti 1 aŭ 0, sed kbito povas esti 1 kaj 0 samtempe.

Se vi estas tre bonŝanca (pri kio mi ne certas), oni diros al vi tion:

La kbito estas en supermeto inter "1" kaj "0".

Neniu el ĉi tiuj klarigoj ŝajnas kredinda, ĉar ni provas formuli kvantuman mekanikan fenomenon uzante lingvon evoluigitan en tre tradicia mondo. Por klare klarigi la principojn de kvantuma komputado, necesas uzi alian lingvon - matematikan. 

En ĉi tiu lernilo, mi kovros la matematikajn ilojn necesajn por modeligi kaj kompreni kvantumajn komputilajn sistemojn, kaj ankaŭ kiel ilustri kaj apliki la logikon de kvantuma komputado. Cetere, mi donos ekzemplon de kvantuma algoritmo kaj diros al vi, kia estas ĝia avantaĝo super tradicia komputilo.

Mi faros mian plejeblon por klarigi ĉion ĉi en klara lingvo, sed mi ankoraŭ esperas, ke legantoj de ĉi tiu artikolo havas bazan komprenon pri lineara algebro kaj cifereca logiko (liniara algebro estas kovrita tie, pri cifereca logiko - tie). 

Unue, ni transiru la principojn de cifereca logiko. Ĝi baziĝas sur la uzo de elektraj cirkvitoj por efektivigi kalkulojn. Por fari nian priskribon pli abstrakta, ni simpligu la staton de la elektra drato al "1" aŭ "0", kiu respondas al la statoj "ŝaltita" aŭ "malŝaltita". Aranĝante transistorojn en certa sinsekvo, ni kreos tiel nomatajn logikajn elementojn, kiuj prenas unu aŭ pli da enirsignalaj valoroj kaj konvertos ilin en eligan signalon bazitan sur certaj reguloj de Bulea logiko.

Senmistificante la principojn de kvantuma komputado

Komunaj logikaj pordegoj kaj iliaj statotabeloj

Surbaze de la ĉenoj de tiaj bazaj elementoj, pli kompleksaj elementoj povas esti kreitaj, kaj surbaze de la ĉenoj de pli kompleksaj elementoj, ni povas finfine, kun granda abstraktado, atendi akiri analogon de la centra procesoro.

Kiel mi menciis pli frue, ni bezonas manieron reprezenti ciferecan logikon matematike. Unue, ni enkonduku matematikan tradician logikon. Uzante linearan algebron, la klasikaj bitoj kun la valoroj "1" kaj "0" povas esti reprezentitaj kiel du kolumnaj vektoroj:
Senmistificante la principojn de kvantuma komputado
kie estas la nombroj maldekstre Dirac-notacio vektoro. Reprezentante niajn bitojn tiamaniere, ni povas modeligi logikajn operaciojn sur la bitoj uzante vektorajn transformojn. Bonvolu noti: kvankam uzi du bitojn en logikaj pordegoj povas fari multajn operaciojn (KAJ, NOT, XOR, ktp.), kiam oni uzas unu biton, nur kvar operacioj povas esti faritaj: identeca konvertiĝo, neado, kalkulo de la konstanta "0" kaj kalkulo de la konstanta “1”. Kun identeca konvertiĝo, la bito restas senŝanĝa, kun negacio, la bitovaloro ŝanĝiĝas al la malo (de "0" al "1" aŭ de "1" al "0"), kaj la kalkulo de la konstanta "1" aŭ "0" metas la biton al "1" aŭ "0" sendepende de ĝia antaŭa valoro.
Senmistificante la principojn de kvantuma komputado

identeco Identeca transformo
Neado Neado
Konstanto-0 Kalkulo de la konstanto "0"
Konstanto-1 Kalkulo de la konstanto "1"

Surbaze de nia proponita nova reprezentado de bito, estas sufiĉe facile fari operaciojn sur la responda bito uzante vektoran transformon:

Senmistificante la principojn de kvantuma komputado

Antaŭ ol antaŭeniri, ni rigardu la koncepton reigeblaj kalkuloj, kiu simple implicas, ke por certigi inversigeblecon de operacio aŭ logika elemento, necesas determini liston de enirsignalaj valoroj bazitaj sur la eligsignaloj kaj la nomoj de la operacioj uzataj. Tiel, ni povas konkludi ke la identa transformo kaj negacio estas reigeblaj, sed la operacioj por kalkuli la konstantojn "1" kaj "0" ne estas. Danke al unueco kvantuma mekaniko, kvantumaj komputiloj uzas ekskluzive reigeblajn operaciojn, do tion ni fokusos. Poste ni konvertas nemaligeblajn elementojn en reigeblajn elementojn por ebligi ilin esti uzataj de kvantuma komputilo.

Kun la helpo de tensora produkto individuaj bitoj povas esti reprezentitaj per multaj bitoj:
Senmistificante la principojn de kvantuma komputado
Nun kiam ni havas preskaŭ ĉiujn necesajn matematikajn konceptojn, ni transiru al nia unua kvantuma logika pordego. Ĉi tiu estas la funkciigisto CNOT, aŭ kontrolita Ne (NE), kiu estas de granda graveco en reigebla kaj kvantuma komputado. La CNOT-elemento validas por du bitoj kaj resendas du bitojn. La unua bito estas indikita kiel la "kontrola" bito, kaj la dua kiel la "kontrola" bito. Se la kontrolbito estas agordita al "1", la kontrolbito ŝanĝas sian valoron; Se la kontrolbito estas agordita al "0", la kontrolbito ne estas ŝanĝita.
Senmistificante la principojn de kvantuma komputado
Tiu funkciigisto povas esti reprezentita kiel la sekva transformvektoro:
Senmistificante la principojn de kvantuma komputado
Por pruvi ĉion, kion ni kovris ĝis nun, mi montros al vi kiel uzi la CNOT-elementon sur pluraj bitoj:
Senmistificante la principojn de kvantuma komputado
Por resumi tion, kio jam estis dirita: en la unua ekzemplo ni malkomponas |10⟩ en partojn de ĝia tensora produkto kaj uzas la CNOT-matricon por akiri novan respondan staton de la produkto; tiam ni faktoras ĝin al |11⟩ laŭ la tabelo de CNOT-valoroj donita pli frue.

Do, ni memoris ĉiujn matematikajn regulojn, kiuj helpos nin kompreni tradician komputadon kaj ordinarajn bitojn, kaj ni povas finfine pluiri al moderna kvantuma komputado kaj kvbitoj.

Se vi legis ĉi tien, tiam mi havas bonan novaĵon por vi: kvbitoj povas esti facile esprimitaj matematike. Ĝenerale, se klasika bito (cbit) povas esti metita al |1⟩ aŭ |0⟩, la kbito estas simple en supermeto kaj povas esti kaj |0⟩ kaj |1⟩ antaŭ mezurado. Post mezurado, ĝi kolapsas en |0⟩ aŭ |1⟩. En aliaj vortoj, kŭbito povas esti reprezentita kiel lineara kombinaĵo de |0⟩ kaj |1⟩ laŭ la formulo malsupre:
Senmistificante la principojn de kvantuma komputado
kie a₀ и a₁ reprezentas, respektive, la amplitudojn |0⟩ kaj |1⟩. Tiuj povas esti opiniitaj kiel "kvantumaj probabloj", kiuj reprezentas la probablecon de kvbito kolapsanta en unu el la statoj post kiam ĝi estas mezurita, ĉar en kvantuma mekaniko objekto en supermeto kolapsas en unu el la statoj post estado fiksita. Ni vastigu ĉi tiun esprimon kaj ricevu la jenon:
Senmistificante la principojn de kvantuma komputado
Por simpligi mian klarigon, jen la reprezento, kiun mi uzos en ĉi tiu artikolo.

Por ĉi tiu qubit, la ŝanco kolapsi al la valoro a₀ post mezurado estas egala al |a₀|², kaj la ŝanco de kolapso al la valoro a₁ estas egala al |a₁|². Ekzemple, por la sekva kbito:
Senmistificante la principojn de kvantuma komputado
la ŝanco kolapsi en “1” estas egala al |1/ √2|², aŭ ½, tio estas, 50/50.

Ĉar en la klasika sistemo ĉiuj verŝajnecoj devas sumi al unu (por kompleta probabla distribuo), ni povas konkludi, ke la kvadratoj de la absolutaj valoroj de la amplitudoj |0⟩ kaj |1⟩ devas sumi al unu. Surbaze de ĉi tiu informo ni povas formuli la sekvan ekvacion:
Senmistificante la principojn de kvantuma komputado
Se vi konas trigonometrion, vi rimarkos, ke ĉi tiu ekvacio respondas al la Pitagora teoremo (a²+b²=c²), tio estas, ni povas grafike reprezenti la eblajn statojn de la kbito kiel punktoj sur la unuobla cirklo, nome:
Senmistificante la principojn de kvantuma komputado
Logikaj operatoroj kaj elementoj estas aplikataj al kvbitoj en la sama maniero kiel en la situacio kun klasikaj bitoj - surbaze de matrica transformo. Ĉiuj inversigeblaj matricaj operatoroj, kiujn ni ĝis nun rememoris, precipe CNOT, povas esti uzataj por labori kun kvbitoj. Tiaj matrico-funkciigistoj permesas al vi uzi ĉiun el la amplitudoj de la kbito sen mezuri kaj kolapsigi ĝin. Mi donu al vi ekzemplon de uzado de la negacia operatoro sur qubit:
Senmistificante la principojn de kvantuma komputado
Antaŭ ol ni daŭrigu, mi memorigu al vi, ke la amplekso-valoroj a₀ kaj a₁ estas fakte kompleksaj nombroj, do la stato de kŭbito povas plej precize esti mapita sur tridimensia unuosfero, ankaŭ konata kiel Pula sfero:
Senmistificante la principojn de kvantuma komputado
Tamen, por simpligi la klarigon, ni limigos nin ĉi tie al realaj nombroj.

Ŝajnas tempo diskuti iujn logikajn elementojn, kiuj havas sencon nur en la kunteksto de kvantuma komputado.

Unu el la plej gravaj funkciigistoj estas la "Hadamard-elemento": ĝi prenas iom en stato "0" aŭ "1" kaj metas ĝin en la taŭgan superpozicion kun 50% da ŝanco kolapsi en "1" aŭ "0" post mezurado. 
Senmistificante la principojn de kvantuma komputado
Rimarku ke estas negativa nombro en la malsupra dekstra flanko de la Hadamard-funkciigisto. Ĉi tio estas pro la fakto ke la rezulto de aplikado de la funkciigisto dependas de la valoro de la eniga signalo: - |1⟩ aŭ |0⟩, kaj tial la kalkulo estas reigebla.

Alia grava punkto pri la Hadamard-elemento estas ĝia inversigebleco, signifante ke ĝi povas preni kbiton en la konvena superpozicio kaj transformi ĝin en |0⟩ aŭ |1⟩.
Senmistificante la principojn de kvantuma komputado
Ĉi tio estas tre grava ĉar ĝi donas al ni la kapablon transformi el kvantuma stato sen determini la staton de la kŭbito - kaj, sekve, sen kolapsigi ĝin. Tiel, ni povas strukturi kvantuman komputadon bazitan sur determinisma prefere ol probabla principo.

Kvantumfunkciigistoj enhavantaj nur realajn nombrojn estas sia propra malo, tiel ke ni povas reprezenti la rezulton de aplikado de la funkciigisto al kvuto kiel transformo ene de la unuocirklo en la formo de ŝtatmaŝino:
Senmistificante la principojn de kvantuma komputado
Tiel, la qubit, kies stato estas prezentita en la supra diagramo, post aplikado de la operacio Hadamard, estas transformita en la staton indikitan per la responda sago. Same, ni povas konstrui alian ŝtatmaŝinon kiu ilustros la transformon de kbito uzante la neagadfunkciigiston kiel montrite supre (ankaŭ konata kiel la Pauli-negadfunkciigisto, aŭ bitinversio), kiel montrite malsupre:
Senmistificante la principojn de kvantuma komputado
Por fari pli kompleksajn operaciojn sur nia kbito, ni povas ĉeni plurajn funkciigistojn aŭ apliki elementojn plurfoje. Ekzemplo de seria transformo bazita sur reprezentoj de kvantumaj cirkvitoj aspektas tiel:
Senmistificante la principojn de kvantuma komputado
Tio estas, se ni komencas per bito |0⟩, aplikas etan inverson, kaj tiam Hadamard-operacion, tiam alian bita-inversion, kaj denove Hadamard-operacion, sekvitan per fina bita inversio, ni finas kun la vektoro donita per sur. la dekstra flanko de la ĉeno. Tavoligante malsamajn ŝtatmaŝinojn unu sur la alian, ni povas komenci ĉe |0⟩ kaj spuri la kolorajn sagojn respondantajn al ĉiu el la transformoj por kompreni kiel ĉio funkcias.
Senmistificante la principojn de kvantuma komputado
Ĉar ni venis ĉi tien, estas tempo pripensi unu el la specoj de kvantumalgoritmoj, nome - Deutsch-Jozsa algoritmo, kaj montri ĝian avantaĝon super klasika komputilo. Indas noti, ke la algoritmo de Deutsch-Jozsa estas tute determinisma, tio estas, ĝi resendas la ĝustan respondon 100% de la tempo (male al multaj aliaj kvantumalgoritmoj bazitaj sur la probabla difino de kvbitoj).

Ni imagu, ke vi havas nigran skatolon kiu enhavas funkcion/funkciigiston sur unu bito (memoru - per unu bito, nur kvar operacioj povas esti faritaj: identeca konvertiĝo, neado, taksado de la konstanta "0" kaj taksado de la konstanta "1". "). Kio precize estas la funkcio plenumita en la skatolo? Vi ne scias kiun, sed vi povas trarigardi tiom da variantoj de enigvaloroj kiom vi volas kaj taksi la eligajn rezultojn.

Senmistificante la principojn de kvantuma komputado
Kiom da enigaĵoj kaj eliroj vi devus trakuri la nigran skatolon por ekscii, kiu funkcio estas uzata? Pensu pri tio dum sekundo.

En la kazo de klasika komputilo, vi devos fari 2 demandojn por determini la funkcion por uzi. Ekzemple, se la enigo "1" produktas "0" eligon, evidentiĝas, ke aŭ la funkcio de kalkulo de la konstanta "0" aŭ la nea funkcio estas uzata, post kio vi devos ŝanĝi la valoron de la eniga signalo. al "0" kaj vidu kio okazas ĉe la elirejo.

En la kazo de kvantuma komputilo, du demandoj ankaŭ estos postulataj, ĉar vi ankoraŭ bezonas du malsamajn elirajn valorojn por precize difini la funkcion por apliki al la eniga valoro. Tamen, se oni iom reformulas la demandon, montriĝas, ke kvantumkomputiloj ankoraŭ havas seriozan avantaĝon: se oni volus scii ĉu la uzata funkcio estas konstanta aŭ varia, kvantumkomputiloj havus la avantaĝon.

La funkcio uzata en la skatolo estas ŝanĝiĝema se malsamaj valoroj de la eniga signalo produktas malsamajn rezultojn ĉe la eligo (ekzemple, identeca konvertiĝo kaj bita inversio), kaj se la eligo-valoro ne ŝanĝiĝas sendepende de la eniga valoro, tiam la funkcio estas konstanta (ekzemple, kalkulante konstantan "1" aŭ kalkulante la konstantan "0").

Uzante kvantuma algoritmo, vi povas determini ĉu funkcio en nigra skatolo estas konstanta aŭ variablo surbaze de nur unu demando. Sed antaŭ ol ni rigardu kiel fari tion detale, ni devas trovi manieron strukturi ĉiun el ĉi tiuj funkcioj sur kvantuma komputilo. Ĉar iuj kvantumaj operatoroj devas esti inversigeblaj, ni tuj alfrontas problemon: la funkcioj por kalkuli la konstantojn "1" kaj "0" ne estas.

Ofta solvo uzita en kvantuma komputiko devas aldoni ekstran produktaĵan kvbito kiu resendas kian ajn enigvaloron la funkcio ricevas. 

Antaŭ: Post:
Senmistificante la principojn de kvantuma komputado Senmistificante la principojn de kvantuma komputado

Tiamaniere ni povas determini la enigajn valorojn nur surbaze de la eliga valoro, kaj la funkcio fariĝas inversigebla. La strukturo de kvantumcirkvitoj kreas la bezonon de kroma enigpeco. Por evoluigi la ekvivalentajn funkciigistojn, ni supozos ke la kroma eniga kbito estas metita al |0⟩.

Uzante la saman kvantumcirkvitan reprezenton, kiun ni uzis pli frue, ni vidu kiel ĉiu el la kvar elementoj (identectransformo, negacio, taksado de la konstanta "0" kaj taksado de la konstanta "1") povas esti efektivigita uzante kvantumajn funkciigistojn. 

Ekzemple, jen kiel vi povas efektivigi la funkcion por kalkuli la konstantan "0":

Kalkulo de la konstanto "0":
Senmistificante la principojn de kvantuma komputado
Ĉi tie ni tute ne bezonas funkciigistojn. La unua eniga kvoto (kiun ni supozis esti |0⟩) revenas kun la sama valoro, kaj la dua eniga valoro resendas sin - kiel kutime.

Kun la funkcio por kalkuli la konstantan "1" la situacio estas iomete malsama:

Kalkulo de la konstanto "1":
Senmistificante la principojn de kvantuma komputado
Ĉar ni supozis ke la unua eniga kvoto ĉiam estas agordita al |0⟩, la rezulto de aplikado de la bita inversa funkciigisto estas ke ĝi ĉiam produktas unu ĉe la eligo. Kaj kiel kutime, la dua kbito donas sian propran valoron ĉe la eligo.

Dum mapado de la identeca transformfunkciigisto, la tasko komencas iĝi pli komplika. Jen kiel fari ĝin:

Identa transformo:
Senmistificante la principojn de kvantuma komputado
La simbolo uzata ĉi tie indikas la CNOT-elementon: la supra linio indikas la kontrolbiton, kaj la malsupra linio indikas la kontrolbit. Mi memorigu vin, ke kiam oni uzas la CNOT-funkciigiston, la valoro de la kontrolbito ŝanĝiĝas se la kontrolbito estas egala al |1⟩, sed restas senŝanĝa se la kontrolbito estas egala al |0⟩. Ĉar ni supozis, ke la valoro de la supra linio ĉiam estas egala al |0⟩, ĝia valoro ĉiam estas atribuita al la malsupra linio.

Ni procedas en simila maniero kun la nega operatoro:

Negado:
Senmistificante la principojn de kvantuma komputado
Ni simple inversigas la biton ĉe la fino de la eliglinio.

Nun kiam ni havas tiun preparan komprenon ekster la vojo, ni rigardu la specifajn avantaĝojn de kvantuma komputilo super tradicia komputilo kiam temas pri determini la konstantecon aŭ ŝanĝeblecon de funkcio kaŝita en nigra skatolo uzante nur unu demandon.

Por solvi ĉi tiun problemon uzante kvantuman komputadon en ununura peto, estas necese meti la enigajn kbtojn en superpozicion antaŭ ol transdoni ilin al la funkcio, kiel montrite malsupre:
Senmistificante la principojn de kvantuma komputado
La Hadamard-elemento estas reaplikita al la rezulto de la funkcio por rompi la kvbitojn el supermeto kaj igi la algoritmon determinisma. Ni komencas la sistemon en stato |00⟩ kaj, pro kialoj, kiujn mi klarigos baldaŭ, ricevas la rezulton |11⟩ se la funkcio aplikata estas konstanta. Se la funkcio ene de la nigra skatolo estas varia, tiam post mezurado la sistemo resendas la rezulton |01⟩.

Por kompreni la reston de la artikolo, ni rigardu la ilustraĵon, kiun mi montris antaŭe:
Senmistificante la principojn de kvantuma komputado
Uzante la bitan inversan operatoron kaj poste aplikante la elementon Hadamard al ambaŭ enigvaloroj egalaj al |0⟩, ni certigas, ke ili estas tradukitaj en la saman supermeton de |0⟩ kaj |1⟩, jene:
Senmistificante la principojn de kvantuma komputado
Uzante la ekzemplon de pasado de ĉi tiu valoro al nigra skatolo funkcio, estas facile pruvi ke ambaŭ konstanta valoro funkcioj eligas |11⟩.

Kalkulo de la konstanto "0":
Senmistificante la principojn de kvantuma komputado
Simile, ni vidas ke la funkcio por kalkuli la konstantan "1" ankaŭ produktas |11⟩ kiel eligo, tio estas:

Kalkulo de la konstanto "1":
Senmistificante la principojn de kvantuma komputado
Notu ke la eligo estos |1⟩, ĉar -1² = 1.

Laŭ la sama principo, ni povas pruvi, ke uzante ambaŭ variajn funkciojn, ni ĉiam ricevos |01⟩ ĉe la eligo (kondiĉe ke ni uzas la saman metodon), kvankam ĉio estas iom pli komplika.

Identa transformo:
Senmistificante la principojn de kvantuma komputado
Ĉar CNOT estas du-kbita funkciigisto, ĝi ne povas esti reprezentita kiel simpla ŝtatmaŝino, kaj tial estas necese difini du produktaĵsignalojn bazitajn sur la tensorprodukto de kaj enigkvbitoj kaj multipliko de la CNOT-matrico kiel priskribite pli frue:
Senmistificante la principojn de kvantuma komputado
Kun ĉi tiu metodo ni povas ankaŭ konfirmi, ke la eligovaloro |01⟩ estas ricevita se la nea funkcio estas kaŝita en la nigra skatolo:

Negado:
Senmistificante la principojn de kvantuma komputado
Tiel, ni ĵus pruvis situacion en kiu kvantuma komputilo estas klare pli efika ol konvencia komputilo.

Kio sekvas?

Mi proponas, ke ni finu ĉi tie. Ni jam faris bonegan laboron. Se vi komprenis ĉion, kion mi kovris, mi pensas, ke vi nun havas bonan komprenon pri la bazoj de kvantuma komputado kaj kvantuma logiko, kaj kial kvantumalgoritmoj povas esti pli efikaj ol tradicia komputado en certaj situacioj.

Mia priskribo apenaŭ povas esti nomita plenrajta gvidilo pri kvantuma komputado kaj algoritmoj - prefere ĝi estas mallonga enkonduko al matematiko kaj notacio, destinita por dispeli ideojn de legantoj pri la temo trudita de popularsciencaj fontoj (serioze, multaj vere ne povas kompreni). la situacio!). Mi ne havis tempon por tuŝi multajn gravajn temojn, kiel ekz kvantuma implikiĝo de kvbitoj, komplekseco de la amplitudvaloroj |0⟩ kaj |1⟩ kaj la funkciado de diversaj kvantumlogikaj elementoj dum transformo de la Bloch-sfero.

Se vi volas sistemigi kaj strukturi viajn sciojn pri kvantumkomputiloj, urĝe Mi rekomendas vin legi "Enkonduko al Kvantumaj Algoritmoj" Emma Strubel: malgraŭ la abundo de matematikaj formuloj, ĉi tiu libro multe pli detale diskutas kvantumajn algoritmojn.

fonto: www.habr.com

Aldoni komenton