CNOT vartai

**CNOT vartai** () – 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\oplus1=0;
:1\oplus0=0\oplus1=1;
:0\oplus0=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  \frac{1}{\sqrt{2}}(|0\rangle+|1\rangle)  arba  \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  \frac{1}{\sqrt{2}}(|0\rangle+|1\rangle), o antras  \frac{1}{\sqrt{2}}(|0\rangle-|1\rangle), tada jie abu užrašomi taip:
:  \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:
:  \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:
:   \frac{1}{2}H(|0\rangle-|1\rangle)H(|0\rangle-|1\rangle)=|1\rang |1\rang=|11\rang.
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\rang H|0\rang= \frac{1}{2}(|0\rangle+|1\rangle)(|0\rangle+|1\rangle)=\frac{1}{2}(|00\rangle+|11\rangle+|01\rangle+|10\rangle).
:  CNOT \frac{1}{2}(|00\rangle+|10\rangle+|01\rangle+|11\rangle)=\frac{1}{2}(|00\rangle+|10\rangle+|01\rangle+|11\rangle)=
=\frac{1}{2}(|0\rangle+|1\rangle)(|0\rangle+|1\rangle).
: \frac{1}{2}H(|0\rangle+|1\rangle)H(|0\rangle+|1\rangle)=|0\rang|0\rang=|00\rang.

: H|1\rang H|0\rang= \frac{1}{2}(|0\rangle-|1\rangle)(|0\rangle+|1\rangle)=\frac{1}{2}(|00\rangle-|10\rangle+|01\rangle-|11\rangle).
:  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).
: \frac{1}{2}H(|0\rangle-|1\rangle)H(|0\rangle+|1\rangle)=|10\rang.

: H|1\rang H|1\rang= \frac{1}{2}(|0\rangle-|1\rangle)(|0\rangle-|1\rangle)=\frac{1}{2}(|00\rangle-|10\rangle-|01\rangle+|11\rangle).
:  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).
: \frac{1}{2}H(|0\rangle+|1\rangle)H(|0\rangle-|1\rangle)=|01\rang.

Kaip matome visada apsiverčia pirmas kubitas jei antras yra 1, o antras kubitas niekada nesikeičia.
CNOT vartai naudojami Doičo algoritme.

## Kvantiniai vartai
:* Hadamardo vartai
:* CNOT vartai
:* Kvantiniai NOT vartai
:* Fazės vartai
:* Tofolio vartai