Užívateľ:Viliam

Z bur.sk
Skočit na navigaci Skočit na vyhledávání

https://arxiv.org/pdf/1803.05316.pdf An Invitation to Applied Category Theory


https://quantum.country/ https://michaelnielsen.org/blog/quantum-computing-for-the-determined/

Slovo "superpozícia" znamená lineárna kombinácia stavov.


Ak máme hodnotu "a*k0 + b*k1", nevieme zistiť čísla "a" a "b". Vieme však s pravdepodobnosťou "|a*a|" dostať hodnotu 0 (čím sa hodnota zmení na k0), a s pravdepodobnosťou "|b*b|" hodnotu 1 (čím sa hodnota zmení na k1).

Kvantová brána je komplexná matica 2×2, ktorá zachováva jednotkovú dĺžku vektorov. Aby to platilo, musí byť [[a b] [c d]] × [[a' c'][b' d']] = [[1 0] [0 1]].

rotácia = [[cos q -sin q] [sin q cos q]]


CNOT × [|+> |->] = [|-> |->] = ako je to možné?


Toffoli gate t k00z = k00z t k01z = k01z t k10z = k10z t k110 = k111 t k111 = k110

Toffoli gate sa dá poskladať z CNOT a jednoqubitových brán, konkrétne z [[1 0][0 0.7+0.7i]] a jeho daggeru.


Uncomputation: kvantové brány sú reverzibilné dajú sa nimi simulovať klasické výpočty, ale potrebujeme pomocné bity, ktoré sa naplnia medzivýpočtami ak chceme výpočet opakovať, potrebujeme pomocné bity vyčistiť postup: urobíme výpočet pomocou CNOT skopírujeme výsledok výpočtu do výstupných bitov revertneme výpočet

Hľadanie: začíname v stave 000... aplikujeme H na každý vstupný qubit, dostaneme rovnomerne pokryté všetky možnosti klasicky vypočítame, či je riešenie dobré a podľa toho nastavíme "solution bit" skopírujeme "solution bit" a revertneme výpočet


Ak máme dva qubity v stave [a, b, c, d] a odmeriame prvý, dostaneme 0 s pravdepodobnosťou |a|^2 + |b|^2 druhý qubit je v stave [a / |a|^2 + |b|^2, b / |a|^2 + |b|^2] dostaneme 1 s pravdepodobnosťou |c|^2 + |d|^2, druhý qubit je v stave [c / |c|^2 + |d|^2, b / |c|^2 + |d|^2]

Ak máme dva qubity v stave [a b c d] a odmeriame prvý v bázach e0 = [√½ √½] a e1 = [√½ -√½], [1 0] = √½(e0 + e1) [0 1] = √½(e0 - e1) takže [a, b, c, d] = √½(a+c)[e0 0] + √½(b+d)[e0 1] + √½(a-c)[e1 0] + √½(b-d)[e1 1] pravdepodobnosť e0 je (a+c)^2+(b+d)^2 /2

Ak máme bázy b0 = 00+11, b1 = 10+01, b2 = 00-11, b3 = 10-01 00 = b0+b2 01 = b1-b3 10 = b1+b3 11 = b0-b2

https://www.youtube.com/watch?v=NZqRUH1uSlE vývoj kvantového systému v čase


.


Pri modelovaní kvantového počítača potrebujeme vedieť amplitúdy všetkých možných stavov qubitov. Počítač s N qubitmi teda reprezentuje vektor s 2^N komplexnými číslami. Pri vektore nie je podstatné poradie čísel, je to skôr mapa z P(B) do C. Tradične je poradie stavov pre jeden qubit ["q0=0", "q0=1"], pre dva qubity ["q0=0 q1=0", "q0=0 q1=1", "q0=1 q1=0", "q0=1 q1=1"] čiže [|00> |01> |10> |11>], atď.

[1 0] = |0> = qubit je (klasicky) vypnutý [0 1] = |1> = qubit je (klasicky) zapnutý [a b] = a|0> + b|1> = qubit je v superpozícii; "a" a "b" sú komplexné čísla; "|a|^2 + |b|^2 = 1"

Vektor "ket" je zvislý. Vektor "bra" je vodorovný a komplexné hodnoty majú otočené znamienko pri imaginárnej časti; čiže "<x| = |x>†". Kedže "x × x* = |x|^2", tak "<x|x> = <x| × |x> = | |x> |^2".

Skrátené zápisy [√½ √½] = |+> [√½ -√½] = |->


Fyzickú operáciu s qubitmi reprezentuje štvorcová matica komplexných čísel, mapa z P(B)×P(B) do C.

× [p]

         [q]

[a b] [ap+bq] [c d] [cp+dq]

Intuitívne, stĺpec v matici je východiskový stav, riadok v matici je cieľový stav. Ak aplikujeme viac operácií, napríklad najprv A, potom B, nakoniec C, výsledok je: C(B(Ax)) = CBAx


Ak je prvý qubit [a b] a druhý [c d], spolu sú [ac ad bc bd]. Čiže ak máme stav [a b c d], kde ad = bc, sú to dva nepreviazané qubity.

Matica [[a b][c d]] aplikovaná na prvý alebo druhý z dvoch qubitov: [a 0 b 0] [a b 0 0] [0 a 0 b] [c d 0 0] [c 0 d 0] [0 0 a b] [0 c 0 d] [0 0 c d] aplikovaná na prvý, druhý, alebo tretí z troch qubitov: [a 0 0 0 b 0 0 0] [a 0 b 0 0 0 0 0] [a b 0 0 0 0 0 0] [0 a 0 0 0 b 0 0] [0 a 0 b 0 0 0 0] [c d 0 0 0 0 0 0] [0 0 a 0 0 0 b 0] [c 0 d 0 0 0 0 0] [0 0 a b 0 0 0 0] [0 0 0 a 0 0 0 b] [0 c 0 d 0 0 0 0] [0 0 c d 0 0 0 0] [c 0 0 0 d 0 0 0] [0 0 0 0 a 0 b 0] [0 0 0 0 a b 0 0] [0 c 0 0 0 d 0 0] [0 0 0 0 0 a 0 b] [0 0 0 0 c d 0 0] [0 0 c 0 0 0 d 0] [0 0 0 0 c 0 d 0] [0 0 0 0 0 0 a b] [0 0 0 c 0 0 0 d] [0 0 0 0 0 c 0 d] [0 0 0 0 0 0 c d]

Matica [[a b c d][e f g h][i j k l][m n o p]] aplikovaná v opačnom poradí: [...


.

X[p q] = [q p] X[1 0] = [0 1] čiže X|0> = |1> X[0 1] = [1 0] čiže X|1> = |0>

Y[p q] = [-qi pi] Y[1 0] = [0 i] čiže Y|0> = i|1> Y[0 1] = [-i 0] čiže Y|1> = -i|0>

Z[p q] = [p -q] Z[1 0] = [1 0] čiže Y|0> = |0> Z[0 1] = [0 -1] čiže Y|1> = -|1>

H[p q] = [p+q p-q]÷√2 H[1 0] = [1 1]÷√2 čiže H|0> = √½|0> + √½|1> H[0 1] = [1 -1]÷√2 čiže H|0> = √½|0> - √½|1>

XX = I YY = I ZZ = I HH = I

|H[p q]|^2 = |√½[p+q p-q]|^2 = ½((p+q)^2 + (p-q))^2) = ½(pp + 2pq + qq + pp - 2pq + qq) = pp + qq

. H = [1 1] [1 -1]÷√2

[√½ 0 √½ 0] [√½ √½ 0 0] [ 0 √½ 0 √½] [√½ -√½ 0 0] [√½ 0 -√½ 0] [ 0 0 √½ √½] [ 0 √½ 0 -√½] [ 0 0 √½ -√½]

.

X = [0 1] [1 0]

[0 0 1 0] [0 1 0 0] [0 0 0 1] [1 0 0 0] [1 0 0 0] [0 0 0 1] [0 1 0 0] [0 0 1 0]

.

Y = [0 -i] [i 0]

. Z [1 0] [0 -1]

[1 0 0 0] [1 0 0 0] [0 1 0 0] [0 -1 0 0] [0 0 -1 0] [0 0 1 0] [0 0 0 -1] [0 0 0 -1]

.

CNOT - CN, NC [1 0 0 0] [1 0 0 0] [0 1 0 0] [0 0 0 1] [0 0 0 1] [0 0 1 0] [0 0 1 0] [0 1 0 0]

Toffoli [1 0 0 0 0 0 0 0] [0 1 0 0 0 0 0 0] [0 0 1 0 0 0 0 0] [0 0 0 1 0 0 0 0] [0 0 0 0 1 0 0 0] [0 0 0 0 0 1 0 0] [0 0 0 0 0 0 0 1] [0 0 0 0 0 0 1 0]

.


Superhusté kódovanie https://www.youtube.com/watch?v=w5rCn593Dig

Vytvoríme dva previazané qubity, jeden pošleme Alici, druhý Bobovi

0--[H]--[C]-
0-------[N]-

[1] [√½] [√½] [0] [ 0] [ 0] [0] [√½] [ 0] [0] [ 0] [√½]

Alica má dva klasické bity, a podľa ich hodnoty urobí so svojím qubitom nasledujúcu operáciu: 00 = I, 01 = X, 10 = Z, 11 = XZ (najprv Z, potom X), výsledok pošle Bobovi

00   01   10    11

[√½] [ 0] [ √½] [ 0] [ 0] [√½] [ 0] [-√½] [ 0] [√½] [ 0] [ √½] [√½] [ 0] [-√½] [ 0]

Bob má dva qubity 00+11, 10+01, 00-11, 10-01 (všetky štyri možnosti sú na seba kolmé), revertne pôvodné previazanie, a odmeria ich.


[C]--[H]


[N]-----

[√½] [√½] [1] = 00 [ 0] [ 0] [0] [ 0] [√½] [0] [√½] [ 0] [0]

[ 0] [ 0] [0] [√½] [√½] [1] = 01 [√½] [ 0] [0] [ 0] [√½] [0]

[ √½] [ √½] [0] [ 0] [ 0] [0] [ 0] [-√½] [1] = 10 [-√½] [ 0] [0]

[ 0] [ 0] [ 0] [-√½] [-√½] [ 0] [ √½] [ 0] [ 0] [ 0] [ √½] [-1] = 11

.

Alica má tajný qubit [a b]. Vytvoríme dva previazané qubity [√½ 0 0 √½], jeden pošleme Alici, druhý Bobovi [a√½ 0 0 a√½ b√½ 0 0 b√½] = a×000 + a×011 + b×100 + b×111

see: https://www.youtube.com/watch?v=3wZ35c3oYUE


CNOT zo source qubitu na previazaný, Hadamard na source qubit odmeriame previazaný qubit; ak je 1, povieme adresátovi, nech na svojom qubite spraví X odmeriame source qubit; ak je 1, povieme adresátovi, nech na svojom qubite spraví Z teraz je adresátov qubit v rovnakom stave, ako bol source qubit na začiatku aj keby niekto odpočúal poslané informácie, nič mu to nepovie


c/eJxM0sFuozoUxvGngV0jcwwkLFjklnAHFIjaEALdIGMbajCQgmkLTz-iGmlmaf31_eTFoUTxehgXVw616HXmIrvkBHTuGrZj2HvkwF7nHRGyqHnPR6I4K4j6W00HsP7uVnvbskpmItPBtu3sjQoTwNTYHyoOJiK6cAEBRgcDGYAtwDu8q1iFqoo5FbG4eTD2u49BtYDrQTNRVz-pb2M3zeWkCG13dOh06b4r9Zg0fNTA18D_N25PUfdPotfA__mvBj4duofkimvYV0PLew17fAkNCumSgWyDZljiJLfipl6i65egkK4U5GfZ_jQRZ2H2uoZtjlJ5hfR-vzGZSydI5H9vl9urxeTr_xdfdkkaiPNz-KDPgR00JytazCX2bnPsHedLkm-tK3FY0V-p2Nw8ixHt_CkHp33L3tHb3fzZ59mLuDQnuCQniNejFTXRFHSpublRkltRkuPYuy3R8iVIFq-btZnn5LjtV3YPxEWEK7mz-XyXc9Cj3Xq1X4qqpl14PZ-LYxQ2eyos7H0MHjNfkshJAnzCydhgpIE9ciZGTpWGPQ0s8PXHXBZ06Lq5F2opeE9KyZmrxplvSQpKlBj6QjD34BiA9NH9FFKQTjNROY-7qdWnuWRDR0TvkkmNRNKB8W_Fe139Obl54uMGgGU79gGM3wEAAP__quXX_AZZ

.


Motivácia: - každý mnohočlen N-tého stupňa má N koreňov - 2D súradnice - https://en.wikipedia.org/wiki/Cubic_equation#Cardano's_formula - https://en.wikipedia.org/wiki/Steiner_inellipse

Definujme i ako i*i=-1 a predpokladajme, že platie bežné pravidlá matematiky. Nemôžeme sčítať hrušky s jablkami, preto sa a+bi nedá ďalej zjednodušiť. a+bi + c+di = (a+c)+(b+d)i a+bi - c-di = (a-c)+(b-d)i a+bi * c+di = ac + adi + bci + bdii = (ac+bd)+(ad+bc)i a+bi / c+di = (a+bi)(c-di) / (c+di)(c-di) = (ac+bd)+(bc-ad)i / cc+dd = (ac+bd)/(cc+dd)+(bc-ad)/(cc+dd)i 1 / a+bi = a/(aa+bb) - b/(aa+bb)i

geometrická interpretácia: zoom a otočenie - násobenie 2, delenie 2, násobenie i, delenie i = násobenie -i absolútna hodnota |a+bi| = sqrt(aa+bb), |cis(u)| = 1, a+bi = r*cis(u) # u je nejednoznačné na pridanie násobku 360 r*cis(u) * s*cis(v) = (r*s)*cis(u+v) r*cis(u) / s*cis(v) = (r/s)*cis(u-v) mimochodom, aj -i je odmocnina z -1; a celkovo každé číslo má dve druhé odmocniny sqrt(r*cis(u)) = sqrt(r)*cis(u/2) alebo sqrt(r)*cis(pi + u/2) sqrt(i) = cis(45) = +-sqrt(1/2)+-sqrt(1/2)i skúška správnosti: (+-sqrt(1/2)+-sqrt(1/2)i)^2 = 1/2 -1/2 +2*1/2i = i každé číslo má tri tretie odmocniny sqrt(1) = 1 alebo +-cis(120) = -1/2 +-sqrt(3/4)i skúška správnosti: (-1/2 +- sqrt(3/4)i)^3 = (1/4 - 3/4 -+sqrt(3/4)i) * (-1/2 +- sqrt(3/4)i) = 1/4 -+sqrt(3/4)/2i +-sqrt(3/4)/2i +3/4 = 1

vizualizácia: kladné čísla zelené, záporné červené, i modré, -i žlté; osi čierne https://en.wikipedia.org/wiki/Domain_coloring vizualizácia kvadratickej rovnice s 2 reálnymi, 1 reálnym, 2 komplexnými koreňmi

umocňovanie na iné ako celé číslo nie je jednoznačne definované, keďže už odmocniny (mocniny na 1/N) sú nejednoznačné reálna mocnina ako limita racionálnych mocnín... môžeme povedať akurát jej absolútnu hodnotu

čo by to znamenalo "umocniť niečo na i"? pomôže nám Taylorov rad: e^x = x^0/0! + x^1/1! + x^2/2! ... cos(x) = 1 - x^2/2! + x^4/4! ... sin(x) = x^1/1! - x^3/3! + x^5/5! ... z čoho by vyplývalo e^ix=cis(x)

ln(r*cis(u)) = ln(r)+ui # nejednoznačné, lebo k u možno pridať násobky 360 ln(-1)=180i ale aj -180i

Taylorov rad pre ln(1) diverguje ak |x-1|>1 ln(x) = (x-1)^1/1 - (x-1)^2/2 + (x-1)^3/3 ... a ešte aj keď konverguje, je citlivý na preusporiadanie prvkov ln(1+i) = i - i^2/2 + i^3/3 ... = i + 1/2 - i/3 - 1/4 ... = (1/2 - 1/4 + 1/6 ...) + (1 - 1/3 + 1/5 ...)i

a^x = e^ln(a)*x ak a je kladné reálne, je to jednoznačné, ale inak nie

Ak berieme aj celé komplexné čísla ako celé čísla, zmení sa nám definícia prvočísla, lebo napríklad 2 = (1+i)(1-i), 5 = (2+i)(2-i) Násobenie zachováva absolútne hodnoty, takže stačí skúšať delitele s absolútnou hodnotou menšou ako odmocnina absolútnej hodnoty N Súčin dvoch celých komplexných čísel je prirodzené číslo iba ak je to (a+bi)(a-bi)=aa+bb; keďže modulo 4 aa aj bb sú {0,1}, prvočísla dávajúce zvyšok 3 po delení Neviem to dokázať, ale komplexné prvočísla sú buď typu 4k+3 alebo a+bi kde aa+bb je prvočíslo nie typu 4k+3.

.


.