CNOT vartai

Iš testwiki.
Pereiti į navigaciją Jump to search

Šablonas:Šaltiniai Šablonas:Copy to Wikibooks

CNOT vartai yra analogiški klasikiniams XOR vartams

CNOT vartai (Šablonas:En) – tai kvantiniai vartai, naudojami kvantiniame kompiuteryje. CNOT vartams analogiškas yra XOR loginis elementas.

Vaizdas:Functioncnot.PNG
Nuo visu funkcijų, kur prasmę turi tik f(x)=x ir f(x)=1
Vaizdas:Cnotsupernot.PNG
Viršutinis (pirmas) kubitas apsiverčia tik kai apatinis (antras) kubitas yra 1
Vaizdas:Qvsk.PNG
C-NOT tai XOR vartai
Vaizdas:Inposiblewithoutsuperpozition.PNG
CNOT su ir be Hadamardo vartų

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):

11=0;
10=01=1;
00=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 12(|0+|1) arba 12(|0|1)? Į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 12(|0+|1), o antras 12(|0|1), tada jie abu užrašomi taip:

12(|0+|1)(|0|1)=12(|00+|10|01|11).

Antras kubitas apsiverčia visose superpozicijos būsenose, jei pirmas kubitas yra 1:

12(|00+|11|01|10)=12(|0|1)(|0|1).

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:

12H(|0|1)H(|0|1)=|1|1=|11.

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|0H|0=12(|0+|1)(|0+|1)=12(|00+|11+|01+|10).
CNOT12(|00+|10+|01+|11)=12(|00+|10+|01+|11)=

=12(|0+|1)(|0+|1).

12H(|0+|1)H(|0+|1)=|0|0=|00.



H|1H|0=12(|0|1)(|0+|1)=12(|00|10+|01|11).
CNOT12(|00|10+|01|11)=12(|00|11+|01|10)=

=12(|0|1)(|0+|1).

12H(|0|1)H(|0+|1)=|10.


H|1H|1=12(|0|1)(|0|1)=12(|00|10|01+|11).
CNOT12(|00|10|01+|11)=12(|00|11|01+|10)=12(|0+|1)(|0|1).
12H(|0+|1)H(|0|1)=|01.

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