CNOT vartai
CNOT vartai (angl. C-NOT gate) – tai kvantiniai vartai, naudojami kvantiniame kompiuteryje. CNOT vartams analogiškas yra XOR loginis elementas. Pirmas kubitas, pereidamas per CNOT vartus, nepasikeičia x=x, kur x gali būti 0 arba 1, bet mes žymėsime nulį vienetu, o vienetą - minus vienetu (0=1; 1=-1), to reikės kito per CNOT vartus pereinančio kubito aprašymui. Taigi kitas kubitas, pereidamas per CNOT vartus, bus yx. Jeigu skaičiuoti ne su 1 ir -1, o su 0 ir 1, tai reikia remtis sudėtimi pagal modulį 2. Modulis 2 reiškia, kad jeigu sveikųjų skaičių sudėtis lygi 2, tai atsakymas bus nulis (įprastai modulis 2 žymimas + apskritime): 1 ⊕ 1 = 0 {\displaystyle 1\oplus 1=0} ; 1 ⊕ 0 = 0 ⊕ 1 = 1 {\displaystyle 1\oplus 0=0\oplus 1=1} ; 0 ⊕ 0 = 0 {\displaystyle 0\oplus 0=0} . Tai reiškia, kad pirmą ir antrą kubitą sudedame moduliu 2 ir, tokiu būdu, tai yra antro kubito išeinamasis atsakymas. Kas bus jeigu pro CNOT vartus praleisime kubitus, esančius ne bazinėje būsenoje |0> arba |1>, o kubitus, esančius superpozicijos būsenoje 1 2 ( | 0 ⟩ + | 1 ⟩ ) {\displaystyle {\frac {1}{\sqrt {2}}}(|0\rangle +|1\rangle )} arba 1 2 ( | 0 ⟩ − | 1 ⟩ ) {\displaystyle {\frac {1}{\sqrt {2}}}(|0\rangle -|1\rangle )} ? Įprastai antras (apatinis) kubitas (arba bitas) apsiverčia, jeigu pirmas kubitas yra 1. Ir neapsiverčia, jei pirmas kubitas yra 0. Tarkim superpozicijoje pirmas kubitas yra 1 2 ( | 0 ⟩ + | 1 ⟩ ) {\displaystyle {\frac {1}{\sqrt {2}}}(|0\rangle +|1\rangle )} , o antras 1 2 ( | 0 ⟩ − | 1 ⟩ ) {\displaystyle {\frac {1}{\sqrt {2}}}(|0\rangle -|1\rangle )} , tada jie abu užrašomi taip: 1 2 ( | 0 ⟩ + | 1 ⟩ ) ( | 0 ⟩ − | 1 ⟩ ) = 1 2 ( | 00 ⟩ + | 10 ⟩ − | 01 ⟩ − | 11 ⟩ ) {\displaystyle {\frac {1}{2}}(|0\rangle +|1\rangle )(|0\rangle -|1\rangle )={\frac {1}{2}}(|00\rangle +|10\rangle -|01\rangle -|11\rangle )} . Antras kubitas apsiverčia visose superpozicijos būsenose, jei pirmas kubitas yra 1: 1 2 ( | 00 ⟩ + | 11 ⟩ − | 01 ⟩ − | 10 ⟩ ) = 1 2 ( | 0 ⟩ − | 1 ⟩ ) ( | 0 ⟩ − | 1 ⟩ ) {\displaystyle {\frac {1}{2}}(|00\rangle +|11\rangle -|01\rangle -|10\rangle )={\frac {1}{2}}(|0\rangle -|1\rangle )(|0\rangle -|1\rangle )} . Kadangi kubitai, pereidami CNOT vartus, buvo superpozicijos būsenoje, tai faktiškai pirmas kubitas pasidarė toks koks buvo antras, ir tokį jį išmatuosime abu kubitus, praleidę pro Hadamardo vartus: 1 2 H ( | 0 ⟩ − | 1 ⟩ ) H ( | 0 ⟩ − | 1 ⟩ ) = | 1 ⟩ | 1 ⟩ = | 11 ⟩ {\displaystyle {\frac {1}{2}}H(|0\rangle -|1\rangle )H(|0\rangle -|1\rangle )=|1\rangle |1\rangle =|11\rangle } . Tokiu būdu faktiškai yra atvirkščiai, jei prieš ir po CNOT vartų bus Hadamardo vartai. Pirmas kubitas "apsivers" (iš nulio pereis į vienetą arba iš vieneto į nulį) tik tada, kai antras kubitas bus 1. Štai įrodymai, kad tikrai taip: H | 0 ⟩ H | 0 ⟩ = 1 2 ( | 0 ⟩ + | 1 ⟩ ) ( | 0 ⟩ + | 1 ⟩ ) = 1 2 ( | 00 ⟩ + | 11 ⟩ + | 01 ⟩ + | 10 ⟩ ) {\displaystyle H|0\rangle H|0\rangle ={\frac {1}{2}}(|0\rangle +|1\rangle )(|0\rangle +|1\rangle )={\frac {1}{2}}(|00\rangle +|11\rangle +|01\rangle +|10\rangle )} . C N O T 1 2 ( | 00 ⟩ + | 10 ⟩ + | 01 ⟩ + | 11 ⟩ ) = 1 2 ( | 00 ⟩ + | 10 ⟩ + | 01 ⟩ + | 11 ⟩ ) = {\displaystyle CNOT{\frac {1}{2}}(|00\rangle +|10\rangle +|01\rangle +|11\rangle )={\frac {1}{2}}(|00\rangle +|10\rangle +|01\rangle +|11\rangle )=} = 1 2 ( | 0 ⟩ + | 1 ⟩ ) ( | 0 ⟩ + | 1 ⟩ ) {\displaystyle ={\frac {1}{2}}(|0\rangle +|1\rangle )(|0\rangle +|1\rangle )} . 1 2 H ( | 0 ⟩ + | 1 ⟩ ) H ( | 0 ⟩ + | 1 ⟩ ) = | 0 ⟩ | 0 ⟩ = | 00 ⟩ {\displaystyle {\frac {1}{2}}H(|0\rangle +|1\rangle )H(|0\rangle +|1\rangle )=|0\rangle |0\rangle =|00\rangle } . H | 1 ⟩ H | 0 ⟩ = 1 2 ( | 0 ⟩ − | 1 ⟩ ) ( | 0 ⟩ + | 1 ⟩ ) = 1 2 ( | 00 ⟩ − | 10 ⟩ + | 01 ⟩ − | 11 ⟩ ) {\displaystyle H|1\rangle H|0\rangle ={\frac {1}{2}}(|0\rangle -|1\rangle )(|0\rangle +|1\rangle )={\frac {1}{2}}(|00\rangle -|10\rangle +|01\rangle -|11\rangle )} . C N O T 1 2 ( | 00 ⟩ − | 10 ⟩ + | 01 ⟩ − | 11 ⟩ ) = 1 2 ( | 00 ⟩ − | 11 ⟩ + | 01 ⟩ − | 10 ⟩ ) = {\displaystyle CNOT{\frac {1}{2}}(|00\rangle -|10\rangle +|01\rangle -|11\rangle )={\frac {1}{2}}(|00\rangle -|11\rangle +|01\rangle -|10\rangle )=} = 1 2 ( | 0 ⟩ − | 1 ⟩ ) ( | 0 ⟩ + | 1 ⟩ ) {\displaystyle ={\frac {1}{2}}(|0\rangle -|1\rangle )(|0\rangle +|1\rangle )} . 1 2 H ( | 0 ⟩ − | 1 ⟩ ) H ( | 0 ⟩ + | 1 ⟩ ) = | 10 ⟩ {\displaystyle {\frac {1}{2}}H(|0\rangle -|1\rangle )H(|0\rangle +|1\rangle )=|10\rangle } . H | 1 ⟩ H | 1 ⟩ = 1 2 ( | 0 ⟩ − | 1 ⟩ ) ( | 0 ⟩ − | 1 ⟩ ) = 1 2 ( | 00 ⟩ − | 10 ⟩ − | 01 ⟩ + | 11 ⟩ ) {\displaystyle H|1\rangle H|1\rangle ={\frac {1}{2}}(|0\rangle -|1\rangle )(|0\rangle -|1\rangle )={\frac {1}{2}}(|00\rangle -|10\rangle -|01\rangle +|11\rangle )} . C N O T 1 2 ( | 00 ⟩ − | 10 ⟩ − | 01 ⟩ + | 11 ⟩ ) = 1 2 ( | 00 ⟩ − | 11 ⟩ − | 01 ⟩ + | 10 ⟩ ) = 1 2 ( | 0 ⟩ + | 1 ⟩ ) ( | 0 ⟩ − | 1 ⟩ ) {\displaystyle CNOT{\frac {1}{2}}(|00\rangle -|10\rangle -|01\rangle +|11\rangle )={\frac {1}{2}}(|00\rangle -|11\rangle -|01\rangle +|10\rangle )={\frac {1}{2}}(|0\rangle +|1\rangle )(|0\rangle -|1\rangle )} . 1 2 H ( | 0 ⟩ + | 1 ⟩ ) H ( | 0 ⟩ − | 1 ⟩ ) = | 01 ⟩ {\displaystyle {\frac {1}{2}}H(|0\rangle +|1\rangle )H(|0\rangle -|1\rangle )=|01\rangle } . Kaip matome visada apsiverčia pirmas kubitas jei antras yra 1, o antras kubitas niekada nesikeičia. CNOT vartai naudojami Doičo algoritme.