
"Unë mendoj se mund të them me siguri se askush nuk e kupton mekanikën kuantike - Richard Feynman."
Tema e informatikës kuantike ka magjepsur gjithmonë shkrimtarët dhe gazetarët e teknologjisë. Potenciali dhe kompleksiteti i tij llogaritës i dhanë një atmosferë të caktuar mistike. Shumë shpesh, artikujt me tipare dhe infografikë përshkruajnë në detaje perspektivat e ndryshme të kësaj industrie, ndërkohë që mezi prekin zbatimin e saj praktik: kjo mund të mashtrojë lexuesin më pak të vëmendshëm.
Artikujt e njohur shkencorë heqin përshkrimet e sistemeve kuantike dhe bëjnë deklarata si:
Një bit i rregullt mund të jetë një 1 ose një 0, por një kubit mund të jetë një 1 dhe një 0 në të njëjtën kohë.
Nëse jeni shumë me fat (për të cilën nuk jam i sigurt), do t'ju thuhet se:
Kubiti është në një mbivendosje midis "1" dhe "0".
Asnjë nga këto shpjegime nuk duket i besueshëm, pasi ne po përpiqemi të formulojmë një fenomen mekanik kuantik duke përdorur gjuhën e zhvilluar në një botë shumë tradicionale. Për të shpjeguar qartë parimet e llogaritjes kuantike, është e nevojshme të përdoret një gjuhë tjetër - matematikore.
Në këtë tutorial, unë do të mbuloj mjetet matematikore të nevojshme për të modeluar dhe kuptuar sistemet e llogaritjes kuantike, si dhe se si të ilustrohet dhe zbatohet logjika e llogaritjes kuantike. Për më tepër, unë do të jap një shembull të një algoritmi kuantik dhe do t'ju tregoj se cili është avantazhi i tij ndaj një kompjuteri tradicional.
Do të bëj çmos për t'i shpjeguar të gjitha këto në gjuhë të qartë, por ende shpresoj që lexuesit e këtij artikulli të kenë një kuptim bazë të algjebrës lineare dhe logjikës dixhitale (algjebra lineare është e mbuluar , në lidhje me logjikën dixhitale - ).
Së pari, le të kalojmë mbi parimet e logjikës dixhitale. Ai bazohet në përdorimin e qarqeve elektrike për të kryer llogaritjet. Për ta bërë përshkrimin tonë më abstrakt, le të thjeshtojmë gjendjen e telit elektrik në "1" ose "0", që do të korrespondojë me gjendjet "ndezur" ose "off". Duke rregulluar transistorët në një sekuencë të caktuar, ne do të krijojmë të ashtuquajturat elementë logjikë që marrin një ose më shumë vlera të sinjalit hyrës dhe i konvertojnë ato në një sinjal dalës bazuar në rregulla të caktuara të logjikës Boolean.

Portat e zakonshme logjike dhe tabelat e gjendjes së tyre
Bazuar në zinxhirët e elementeve të tillë bazë, mund të krijohen elementë më kompleksë, dhe bazuar në zinxhirët e elementeve më komplekse, në fund të fundit, me një shkallë të madhe abstraksioni, mund të presim të marrim një analog të procesorit qendror.
Siç e përmenda më herët, ne kemi nevojë për një mënyrë për të përfaqësuar matematikisht logjikën dixhitale. Së pari, le të prezantojmë logjikën tradicionale matematikore. Duke përdorur algjebër lineare, bitet klasike me vlerat "1" dhe "0" mund të përfaqësohen si vektorë me dy kolona:

ku janë numrat në të majtë vektoriale. Duke i paraqitur bitet tona në këtë mënyrë, ne mund të modelojmë operacione logjike në bit duke përdorur transformime vektoriale. Ju lutemi vini re: megjithëse përdorimi i dy biteve në portat logjike mund të kryejë shumë operacione (AND, JO, XOR, etj.), kur përdoret një bit, mund të kryhen vetëm katër operacione: konvertimi i identitetit, mohimi, llogaritja e konstantës "0" dhe llogaritja e konstantës "1". Me një konvertim identiteti, biti mbetet i pandryshuar, me një mohim, vlera e bitit ndryshon në të kundërtën (nga "0" në "1" ose nga "1" në "0"), dhe llogaritja e konstantës "1" ose "0" e vendos bitin në "1" ose "0" pavarësisht nga vlera e tij e mëparshme.

| Identitet | Transformimi i identitetit |
| Mohimi | mohim |
| Konstante-0 | Llogaritja e konstantes "0" |
| Konstante-1 | Llogaritja e konstantes "1" |
Bazuar në paraqitjen tonë të re të propozuar të një biti, është mjaft e lehtë të kryhen operacione në bitin përkatës duke përdorur një transformim vektori:

Para se të shkojmë më tej, le të shohim konceptin , që thjesht nënkupton se për të siguruar kthyeshmërinë e një operacioni ose elementi logjik, është e nevojshme të përcaktohet një listë e vlerave të sinjalit hyrës bazuar në sinjalet e daljes dhe emrat e operacioneve të përdorura. Kështu, mund të konkludojmë se transformimi dhe mohimi i identitetit janë të kthyeshëm, por operacionet për llogaritjen e konstantave "1" dhe "0" nuk janë. Falë mekanika kuantike, kompjuterët kuantikë përdorin operacione ekskluzivisht të kthyeshme, kështu që kjo është ajo ku do të fokusohemi. Më pas, ne konvertojmë elementë të pakthyeshëm në elementë të kthyeshëm për t'i mundësuar ato të përdoren nga një kompjuter kuantik.
Me bitet individuale mund të përfaqësohen nga shumë bit:

Tani që kemi pothuajse të gjitha konceptet e nevojshme matematikore, le të kalojmë te porta jonë e parë logjike kuantike. Ky është operatori , ose i kontrolluar (NOT), i cili ka një rëndësi të madhe në llogaritjen e kthyeshme dhe kuantike. Elementi CNOT zbatohet për dy bit dhe kthen dy bit. Biti i parë caktohet si biti "kontroll", dhe i dyti si biti "kontroll". Nëse biti i kontrollit është vendosur në "1", biti i kontrollit ndryshon vlerën e tij; Nëse biti i kontrollit është vendosur në "0", biti i kontrollit nuk ndryshohet.

Ky operator mund të përfaqësohet si vektori i mëposhtëm i transformimit:

Për të demonstruar gjithçka që kemi mbuluar deri më tani, unë do t'ju tregoj se si të përdorni elementin CNOT në bit të shumtë:

Për të përmbledhur atë që është thënë tashmë: në shembullin e parë ne zbërthejmë |10⟩ në pjesë të produktit tensor të tij dhe përdorim matricën CNOT për të marrë një gjendje të re korresponduese të produktit; më pas e faktorizojmë në |11⟩ sipas tabelës së vlerave CNOT të dhëna më parë.
Pra, ne kemi mbajtur mend të gjitha rregullat matematikore që do të na ndihmojnë të kuptojmë llogaritjen tradicionale dhe bitet e zakonshme, dhe më në fund mund të kalojmë te llogaritja moderne kuantike dhe kubitët.
Nëse keni lexuar deri këtu, atëherë kam një lajm të mirë për ju: kubitët mund të shprehen lehtësisht matematikisht. Në përgjithësi, nëse një bit klasik (cbit) mund të vendoset në |1⟩ ose |0⟩, kubiti është thjesht në mbivendosje dhe mund të jetë edhe |0⟩ edhe |1⟩ përpara matjes. Pas matjes, ajo shembet në |0⟩ ose |1⟩. Me fjalë të tjera, një kubit mund të përfaqësohet si një kombinim linear i |0⟩ dhe |1⟩ sipas formulës më poshtë:

ku a₀ и a1 përfaqësojnë, përkatësisht, amplituda |0⟩ dhe |1⟩. Këto mund të mendohen si "probabilitete kuantike", të cilat përfaqësojnë probabilitetin që një kubit të shembet në një nga gjendjet pasi të matet, pasi në mekanikën kuantike një objekt në mbivendosje shembet në një nga gjendjet pasi të jetë fiksuar. Le ta zgjerojmë këtë shprehje dhe të marrim sa vijon:

Për të thjeshtuar shpjegimin tim, ky është përfaqësimi që do të përdor në këtë artikull.
Për këtë kubit, mundësia e kolapsit në vlerë a₀ pas matjes është e barabartë me |a₀|², dhe mundësia e kolapsit në vlerë a₁ është e barabartë me |a₁|². Për shembull, për kubitin e mëposhtëm:

mundësia për t'u rrëzuar në "1" është e barabartë me |1/ √2|², ose ½, domethënë 50/50.
Meqenëse në sistemin klasik të gjitha probabilitetet duhet të mblidhen në një (për një shpërndarje të plotë probabiliteti), mund të konkludojmë se katrorët e vlerave absolute të amplitudave |0⟩ dhe |1⟩ duhet të mblidhen në një. Bazuar në këtë informacion, ne mund të formulojmë ekuacionin e mëposhtëm:

Nëse jeni të njohur me trigonometrinë, do të vini re se ky ekuacion korrespondon me teoremën e Pitagorës (a²+b²=c²), domethënë, ne mund të paraqesim grafikisht gjendjet e mundshme të kubitit si pika në rrethin e njësisë, përkatësisht:

Operatorët dhe elementët logjikë aplikohen në kubit në të njëjtën mënyrë si në situatën me bitët klasikë - bazuar në një transformim matricë. Të gjithë operatorët e matricës së kthyeshme që kemi kujtuar deri më tani, në veçanti CNOT, mund të përdoren për të punuar me kubit. Operatorë të tillë matricë ju lejojnë të përdorni secilën nga amplitudat e kubit pa e matur dhe shembur atë. Më lejoni t'ju jap një shembull të përdorimit të operatorit të mohimit në një qubit:

Para se të vazhdojmë, më lejoni t'ju kujtoj se vlerat e amplitudës a₀ dhe a₁ janë në të vërtetë , kështu që gjendja e një kubiti mund të hartohet më saktë në një sferë njësi tre-dimensionale, e njohur gjithashtu si :

Megjithatë, për të thjeshtuar shpjegimin, ne do të kufizohemi këtu në numra realë.
Duket se është koha për të diskutuar disa elementë logjikë që kanë kuptim vetëm në kontekstin e llogaritjes kuantike.
Një nga operatorët më të rëndësishëm është "elementi Hadamard": ai merr pak në një gjendje "0" ose "1" dhe e vendos atë në mbivendosjen e duhur me një shans 50% për t'u rrëzuar në "1" ose "0". pas matjes.

Vini re se ka një numër negativ në anën e poshtme të djathtë të operatorit Hadamard. Kjo për faktin se rezultati i aplikimit të operatorit varet nga vlera e sinjalit hyrës: - |1⟩ ose |0⟩, dhe për këtë arsye llogaritja është e kthyeshme.
Një pikë tjetër e rëndësishme në lidhje me elementin Hadamard është kthyeshmëria e tij, që do të thotë se mund të marrë një kubit në mbivendosjen e duhur dhe ta transformojë atë në |0⟩ ose |1⟩.

Kjo është shumë e rëndësishme sepse na jep mundësinë të transformohemi nga një gjendje kuantike pa përcaktuar gjendjen e kubitit - dhe, në përputhje me rrethanat, pa e shembur atë. Kështu, ne mund të strukturojmë llogaritjen kuantike bazuar në një parim përcaktues dhe jo në një parim probabilist.
Operatorët kuantikë që përmbajnë vetëm numra realë janë të kundërtën e tyre, kështu që ne mund të paraqesim rezultatin e aplikimit të operatorit në një kubit si një transformim brenda rrethit të njësisë në formën e një makine të gjendjes:

Kështu, kubiti, gjendja e të cilit është paraqitur në diagramin e mësipërm, pas aplikimit të operacionit Hadamard, shndërrohet në gjendjen e treguar nga shigjeta përkatëse. Po kështu, ne mund të ndërtojmë një makinë tjetër të gjendjes që do të ilustrojë transformimin e një qubit duke përdorur operatorin e mohimit siç tregohet më sipër (i njohur gjithashtu si operatori i mohimit Pauli, ose përmbysja e bitit), siç tregohet më poshtë:

Për të kryer operacione më komplekse në qubit tonë, ne mund të lidhim operatorë të shumtë ose të aplikojmë elementë disa herë. Shembull i transformimit serial bazuar në duket si kjo:

Kjo do të thotë, nëse fillojmë me bitin |0⟩, aplikojmë një përmbysje biti, dhe më pas një operacion Hadamard, pastaj një përmbysje tjetër biti, dhe përsëri një operacion Hadamard, i ndjekur nga një përmbysje e bitit përfundimtar, përfundojmë me vektorin e dhënë nga më anën e djathtë të zinxhirit. Duke vendosur makineri të ndryshme gjendjesh mbi njëra-tjetrën, mund të fillojmë me |0⟩ dhe të gjurmojmë shigjetat me ngjyra që korrespondojnë me secilin prej transformimeve për të kuptuar se si funksionon gjithçka.

Meqenëse kemi arritur deri këtu, është koha të shqyrtojmë një nga llojet e algoritmeve kuantike, domethënë - , dhe tregon avantazhin e tij ndaj një kompjuteri klasik. Vlen të theksohet se algoritmi Deutsch-Jozsa është plotësisht determinist, domethënë ai kthen përgjigjen e saktë 100% të rasteve (ndryshe nga shumë algoritme të tjera kuantike të bazuara në përkufizimin probabilistik të kubitëve).
Le të imagjinojmë se keni një kuti të zezë që përmban një funksion/operator në një bit (mos harroni - me një bit, mund të kryhen vetëm katër operacione: konvertimi i identitetit, mohimi, vlerësimi i konstantës "0" dhe vlerësimi i konstantës "1 "). Cili është saktësisht funksioni i kryer në kuti? Ju nuk e dini se cilën, por mund të kaloni sa më shumë variante të vlerave hyrëse që dëshironi dhe të vlerësoni rezultatet e daljes.

Sa hyrje dhe dalje do të duhet të kaloni nëpër kutinë e zezë për të kuptuar se cili funksion po përdoret? Mendoni për këtë për një sekondë.
Në rastin e një kompjuteri klasik, do t'ju duhet të bëni 2 pyetje për të përcaktuar funksionin që do të përdorni. Për shembull, nëse hyrja "1" prodhon një dalje "0", bëhet e qartë se përdoret ose funksioni i llogaritjes së konstantës "0" ose funksioni i mohimit, pas së cilës do të duhet të ndryshoni vlerën e sinjalit hyrës. në "0" dhe shikoni se çfarë ndodh në dalje.
Në rastin e një kompjuteri kuantik, do të kërkohen gjithashtu dy pyetje, pasi ju duhen ende dy vlera të ndryshme dalëse për të përcaktuar saktësisht funksionin që do të zbatohet në vlerën hyrëse. Megjithatë, nëse e riformuloni pak pyetjen, rezulton se kompjuterët kuantikë kanë ende një avantazh serioz: nëse dëshironi të dini nëse funksioni që përdoret është konstant apo i ndryshueshëm, kompjuterët kuantikë do të kishin avantazhin.
Funksioni i përdorur në kuti është i ndryshueshëm nëse vlera të ndryshme të sinjalit hyrës prodhojnë rezultate të ndryshme në dalje (për shembull, konvertimi i identitetit dhe përmbysja e bitit), dhe nëse vlera e daljes nuk ndryshon pavarësisht nga vlera e hyrjes, atëherë funksioni është konstant (për shembull, llogaritja e një konstante "1" ose llogaritja e konstantës "0").
Duke përdorur një algoritëm kuantik, mund të përcaktoni nëse një funksion në një kuti të zezë është konstant ose i ndryshueshëm bazuar në vetëm një pyetje. Por, përpara se të shohim se si ta bëjmë këtë në detaje, duhet të gjejmë një mënyrë për të strukturuar secilin prej këtyre funksioneve në një kompjuter kuantik. Meqenëse çdo operator kuantik duhet të jetë i kthyeshëm, menjëherë përballemi me një problem: funksionet për llogaritjen e konstantave "1" dhe "0" nuk janë.
Një zgjidhje e zakonshme e përdorur në llogaritjen kuantike është shtimi i një qubit shtesë dalës që kthen çfarëdo vlere hyrëse që merr funksioni.
| Para: | Pas: |
![]() | ![]() |
Në këtë mënyrë, ne mund të përcaktojmë vlerat hyrëse vetëm në bazë të vlerës së daljes dhe funksioni bëhet i kthyeshëm. Struktura e qarqeve kuantike krijon nevojën për një bit shtesë hyrës. Për hir të zhvillimit të operatorëve përkatës, do të supozojmë se kubiti shtesë i hyrjes është vendosur në |0⟩.
Duke përdorur të njëjtin përfaqësim të qarkut kuantik që kemi përdorur më parë, le të shohim se si secili nga katër elementët (transformimi i identitetit, mohimi, vlerësimi i konstantës "0" dhe vlerësimi i konstantës "1") mund të zbatohet duke përdorur operatorë kuantikë.
Për shembull, kështu mund të zbatoni funksionin për llogaritjen e konstantës "0":
Llogaritja e konstantës "0":

Këtu nuk na duhen fare operatorë. Kubiti i parë i hyrjes (që ne supozuam se ishte |0⟩) kthehet me të njëjtën vlerë, dhe vlera e dytë e hyrjes kthehet vetë - si zakonisht.
Me funksionin për llogaritjen e konstantës "1" situata është pak më ndryshe:
Llogaritja e konstantës "1":

Meqenëse kemi supozuar se kubiti i parë i hyrjes është vendosur gjithmonë në |0⟩, rezultati i aplikimit të operatorit të përmbysjes së bitit është se ai gjithmonë prodhon një në dalje. Dhe si zakonisht, kubiti i dytë jep vlerën e vet në dalje.
Kur hartoni operatorin e transformimit të identitetit, detyra fillon të bëhet më e ndërlikuar. Ja se si ta bëni atë:
Transformimi i njëjtë:

Simboli i përdorur këtu tregon elementin CNOT: vija e sipërme tregon bitin e kontrollit dhe vija e poshtme tregon bitin e kontrollit. Më lejoni t'ju kujtoj se kur përdorni operatorin CNOT, vlera e bitit të kontrollit ndryshon nëse biti i kontrollit është i barabartë me |1⟩, por mbetet i pandryshuar nëse biti i kontrollit është i barabartë me |0⟩. Meqenëse supozuam se vlera e vijës së sipërme është gjithmonë e barabartë me |0⟩, vlera e saj caktohet gjithmonë në vijën fundore.
Ne vazhdojmë në mënyrë të ngjashme me operatorin e mohimit:
Negacion:

Ne thjesht e përmbysim bitin në fund të linjës së daljes.
Tani që e kemi hequr atë kuptim paraprak, le të shohim avantazhet specifike të një kompjuteri kuantik ndaj një kompjuteri tradicional kur bëhet fjalë për përcaktimin e qëndrueshmërisë ose ndryshueshmërisë së një funksioni të fshehur në një kuti të zezë duke përdorur vetëm një pyetje.
Për të zgjidhur këtë problem duke përdorur llogaritjen kuantike në një kërkesë të vetme, është e nevojshme të vendosni kubitët e hyrjes në një mbivendosje përpara se t'i kaloni ato në funksion, siç tregohet më poshtë:

Elementi Hadamard riaplikohet në rezultatin e funksionit për të thyer kubitët nga mbivendosja dhe për ta bërë algoritmin determinist. Ne e nisim sistemin në gjendjen |00⟩ dhe, për arsyet që do t'i shpjegoj së shpejti, marrim rezultatin |11⟩ nëse funksioni i aplikuar është konstant. Nëse funksioni brenda kutisë së zezë është i ndryshueshëm, atëherë pas matjes sistemi kthen rezultatin |01⟩.
Për të kuptuar pjesën tjetër të artikullit, le të shohim ilustrimin që tregova më parë:

Duke përdorur operatorin e përmbysjes së bitit dhe më pas duke aplikuar elementin Hadamard në të dy vlerat hyrëse të barabarta me |0⟩, ne sigurojmë që ato të përkthehen në të njëjtin mbivendosje të |0⟩ dhe |1⟩, si më poshtë:

Duke përdorur shembullin e kalimit të kësaj vlere në një funksion të kutisë së zezë, është e lehtë të demonstrohet se të dy funksionet me vlerë konstante japin |11⟩.
Llogaritja e konstantës "0":

Në mënyrë të ngjashme, shohim se funksioni për llogaritjen e konstantës "1" prodhon gjithashtu |11⟩ si një dalje, që është:
Llogaritja e konstantës "1":

Vini re se dalja do të jetë |1⟩, pasi -1² = 1.
Me të njëjtin parim, mund të vërtetojmë se kur përdorim të dy funksionet e ndryshueshme, gjithmonë do të marrim |01⟩ në dalje (me kusht që të përdorim të njëjtën metodë), megjithëse gjithçka është pak më e ndërlikuar.
Transformimi i njëjtë:

Meqenëse CNOT është një operator me dy kubit, ai nuk mund të përfaqësohet si një makinë e thjeshtë e gjendjes, dhe për këtë arsye është e nevojshme të përcaktohen dy sinjale dalëse bazuar në produktin tensor të të dy kubitëve të hyrjes dhe shumëzimit me matricën CNOT siç përshkruhet më parë:

Me këtë metodë mund të konfirmojmë gjithashtu se vlera e daljes |01⟩ merret nëse funksioni i mohimit është i fshehur në kutinë e zezë:
Negacion:

Kështu, ne sapo kemi demonstruar një situatë në të cilën një kompjuter kuantik është qartësisht më efikas se një kompjuter konvencional.
Ç'pritet më tej?
Unë sugjeroj të përfundojmë këtu. Tashmë kemi bërë një punë të shkëlqyer. Nëse keni kuptuar gjithçka që kam mbuluar, mendoj se tani keni një kuptim të mirë të bazave të llogaritjes kuantike dhe logjikës kuantike, dhe pse algoritmet kuantike mund të jenë më efikase se llogaritjet tradicionale në situata të caktuara.
Përshkrimi im vështirë se mund të quhet një udhëzues i plotë për llogaritjen kuantike dhe algoritmet - është, përkundrazi, një hyrje e shkurtër në matematikë dhe shënime, e krijuar për të shpërndarë idetë e lexuesve në lidhje me temën e imponuar nga burimet e shkencës popullore (seriozisht, shumë me të vërtetë nuk munden kuptoni situatën!). Nuk pata kohë të prekja shumë tema të rëndësishme, si p.sh , kompleksiteti i vlerave të amplitudës |0⟩ dhe |1⟩ dhe funksionimi i elementeve të ndryshme logjike kuantike gjatë transformimit nga sfera Bloch.
Nëse dëshironi të sistematizoni dhe strukturoni njohuritë tuaja rreth kompjuterëve kuantikë, urgjentisht Unë ju rekomandoj të lexoni Emma Strubel: megjithë bollëkun e formulave matematikore, ky libër diskuton algoritmet kuantike në shumë më tepër detaje.
Burimi: www.habr.com


