Оперирует двумя кубитами. Переворачивает второй кубит (целевой), если первый кубит (контрольный) равен 1.
Before
After
Control
Target
Control
Target
0
0
0
0
0
1
0
1
1
0
1
1
1
1
1
Если в качестве входа допускать только |0> или |1> - целевой кубит выхода будет реализовывать XOR. Если зафиксировать контрольный кубит в |1> - целевой кубит будет реализовывать NOT.
В общем случае, вход может быть суперпозицией {|0>,|1>}, и вентиль CNOT переводит состояние a|00>+b|01>+c|10>+d|11> в a|00>+b|01>+d|10>+c|11>. Т.е. в виде матрицы:
На практике CNOT обычно используется для получения состояния Бэлла — максимально запутанного состояния двух кубитов. Для этого, мы подаём на вход контроль=1/√2(|0>+|1>), и цель=|0> - и на выходе CNOT получаем 1/√2(|00>+|11>). Это состояние максимальной квантовой запутанности. Кубит Алисы (А) находится в суперпозиции состояний 0 и 1 с равной вероятностью ½, результат измерения случаен. Так же и кубит Боба (B). Но если Боб измерит состояние своего кубита после Алисы, и спросит у Алисы о состоянии её кубита — они окажутся коррелированными.
Запутанность формирует базис для сверхплотного кодирования, квантовой телепортации (передача квантового состояния на расстояние при помощи разъединённой в пространстве запутанной пары и классического канала связи - состояние разрушается в точке отправления при проведении измерения, после чего воссоздаётся в точке приёма), и квантовой криптографии.
Экспериментально, впервые вентиль CNOT был реализован в 1995.
Вентиль Тоффоли
Чтобы построить обратимую вычислительную цепь, нам нужны обратимые логические вентили. 1-битные вентили — единичный, и NOT – обратимы. Единственный нетривиальный 2-битный обратимый вентиль — это CNOT (аналог XOR). Но на NOT и XOR нельзя вычислить все возможные обратимые функции — система неуниверсальна.
1 из вариантов универсального вентиля (т. е. с помощью него можно построить любую обратимую вычислительную цепь) — вентиль Тоффоли, или "controlled-controlled-not". У него 3-битный вход и выход; если первые два бита =1, он обращает третий бит, иначе оставляет всё без изменений.
INPUT
OUTPUT
Вентиль Тоффоли можно реализовать пятью 2-кубитными квантовыми вентилями.
По сути, это означает, что можно создать квантовый компьютер, реализующий любой классический алгоритм. Чтобы реализовать и любой квантовый алгоритм, к нему вдобавок нужен какой-нибудь существенно квантовый вентиль. Например, фазовый сдвиг. Но вообще, подойдёт любой 1-кубитный вентиль с вещественными коэффициентами, создающий нетривиальное квантовое состояние.
Вентиль Тоффоли был реализован на практике в 2009.