Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Квантовые вычисления. Теория и практика. Учебник
.pdf
2.3. Операторы CZ и
CNOT
CNOT
101 100
1,3
110 111
1,3
CY
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
;
;
CNOT
111 110
1,3
0
0
0
0
0
0
1
0
.
61

Глава 2. Многокубитные операции
Далее из получившихся векторов-столбцов можно собрать матрицу, которая и будет являться оператором
CNOT
1,3
:
10000000
01000000
00100000
00010000
CNOT
1,3
00000100
00001000
00000001
00000010
.
Аналогичным способом можно получить не только операторы CNOT, но и CY, CZ для любых многокубитных систем.
Конечно, для больших матриц целесообразнее делать это
не вручную, а с помощью программы, написать которую для
данного способа несложно.
2.4. Вентиль Тоффоли
Для того чтобы создавать сложные алгоритмы, иногда недостаточно бывает применять операторы с одним управляющим кубитом. Вентиль Тоффоли, который также называют
оператором CCNOT или CCX, использует два управляющих
кубита и один целевой. В случае если целевой кубит находится внизу схемы, оператор Тоффоли обозначают таким образом:
Соответствующая матрица будет такой:
62

2.4. Вентиль Тоффоли
10000000
01000000
00100000
00010000
CСNOT
00001000
00000100
00000001
00000010
.
Нетрудно догадаться, что вентиль Тоффоли применяет к целевому кубиту оператор X в том случае, если оба
управляющих кубита находятся в состоянии 1. Если целевой кубит находится в состоянии 0, а управляющие кубиты
принимают только базисные состояния, то работу вентиля
Тоффоли можно представить как запись в целевой кубит результата применения логического оператора И к управляющим кубитам. Если же целевой кубит до применения вентиля Тоффоли находится в состоянии 1, тогда в целевой кубит
запишется результат применения логического оператора
И-НЕ (NAND). Если в классических вычислениях на вход
логического оператора И (для И-НЕ это также справедливо)
подается два бита, а на выходе – один бит, то очевидно, что
происходит потеря информации и восстановить исходные
значения, зная лишь результат, невозможно. В квантовых
же вычислениях за счет того, что входная информация поступает на управляющие кубиты, а результат записывается
на целевой кубит, потери информации не происходит. Вентиль Тоффоли является эрмитовым и унитарным, поэтому
вернуться к исходному состоянию трехкубитной системы
можно, применив оператор повторно.
Вентиль Тоффоли можно рассматривать как верхнеуровневый, так как он может быть реализован при помощи бо-
63

Глава 2. Многокубитные операции
лее простых операторов – нескольких операторов Адамара,
†
CNOT, T и T
:
T
†
T
T
†
T
TH
†
T
T H
Оператор CNOT сам по себе является затратным в плане
времени, а по приведенной схеме реализации вентиля Тоффоли видно, что он является практически на порядок затратнее по сравнению с CNOT.
2.5. Оператор
SWAP
Изучив теорему о запрете клонирования, мы установили,
что в квантовых вычислениях нет оператора, копирующего
состояние кубита. Тем не менее существует операция, позволяющая двум кубитам обменяться своими состояниями. Эта
операция называется SWAP (от англ. swap – обмен).
Для начала мы разберемся, как осуществить эту операцию с помощью уже известных нам операторов. Здесь нам
потребуется три последовательно идущих оператора CNOT:
Легко убедиться, что такая квантовая схема будет производить обмен состояний кубитов между собой для всех четырех базисных состояний двухкубитной системы: |00, |01,
|10 и |11 (разумеется, при одинаковых состояниях кубитов
в итоге ничего не поменяется), а значит, и для различных состояний суперпозиций (так как суперпозиция – это линейная комбинация базисных состояний кубита) эта схема также будет действовать.
Вообще, мы можем абстрагироваться от операторов
CNOT и рассматривать SWAP как самостоятельный опера-
64

2.5. Оператор
SWAP
тор. Получим из трех операторов путем их умножения результирующую матрицу:
1000 1000
0100 0001
SWAP
0001 0010
0010 0100
1000 1000
0100 0010
0001 0100
0010 0001
.
Еще один вариант получения матрицы SWAP уже встречался ранее – это способ, когда мы получаем итоговые состояния для всех возможных исходных базисных состояний.
Главное – расположить исходные состояния в правильном
порядке, по возрастанию:
1
0
SWAP
00 00
0
0
;
SWAP
SWAP
01 10
10 01
0
0
1
0
0
1
0
0
;
;
65

Глава 2. Многокубитные операции
0
0
SWAP
11 11
0
1
.
Из полученных векторов состояний можно составить матрицу SWAP:
1000
0010
SWAP
0100
0001
.
В обозначении оператора SWAP на квантовой схеме также не обязательно использовать CNOT, так как для SWAP
есть отдельное обозначение:
2.6. Вентиль Фредкина
Вентиль Фредкина – трехкубитный вентиль, который
также называют CSWAP (сокращение от Controlled SWAP).
Этот оператор предназначен для одного управляющего и
двух целевых кубитов. CSWAP нужен в тех случаях, когда
требуется произвести обмен состояний двух целевых кубитов в случае, если управляющий кубит находится в состоянии |1. Обозначение вентиля Фредкина на квантовой схеме:
66

2.6. Вентиль Фредкина
p
Вентилю Фредкина соответствует матрица
10000000
01000000
00100000
00010000
CSWAP
00001000
00000010
00000100
00000001
.
Вентиль Фредкина, как и вентиль Тоффоли, полезен тем,
что с помощью него можно создавать логические операторы,
а значит, с помощью оператора Фредкина можно создавать и
более сложные операции, например подсчет суммы двух чисел. В частности, полный сумматор можно реализовать, даже
не используя другие вентили, кроме вентиля Фредкина:
p
q
q
r
0
1
carry
parity
g
Полный сумматор – это оператор, который производит
сложение чисел p и q, а также числа r, являющегося переносом, образовавшимся после сложения более младших
разрядов. В данной реализации полного сумматора с использованием пяти операторов CSWAP результат сложения
выводится на кубит, обозначенный как parity (показывает
четность суммы), а перенос на более старший разряд – на кубит под названием carry. Кубит g (сокращение от garbage) –
67

Глава 2. Многокубитные операции
вспомогательный, он используется в качестве корзины для
временной информации.
2.7. Логические операторы
Квантовые вычисления позволяют реализовать те операции, которые используются в классическом компьютере.
И хотя квантовая реализация не всегда будет эффективнее
классической (все-таки квантовые компьютеры имеет смысл
применять не для всех, а только для определенных задач,
в которых они значительно превосходят классические компьютеры), но полезно узнать, как в квантовом компьютере
воспроизвести базовые операции классических вычислений.
Разберем, как можно реализовать основные логические операторы с помощью квантовых вентилей. Ранее уже было сказано, что можно использовать вентиль Тоффоли в качестве
логического И.
Простейший логический оператор НЕ реализуется с помощью оператора X. Этот оператор работает с одним битом
как в классических вычислениях, так и в квантовых. Здесь
не нужен вспомогательный кубит, так как одного кубита
хватает, чтобы обеспечить обратимость вычислений:
XM
Всегда можно повторно применить оператор X и вернуться тем самым к исходному состоянию |, то есть информация не пропадает без возможности восстановления.
С оператором ИЛИ сложнее, так как в классических вычислениях на входе два бита, а на выходе – один. По одному
выходному значению восстановить входные значения не получится, поэтому в квантовых вычислениях входные кубиты не меняют свое значение, то есть в квантовой схеме применяют три кубита: два для входных значений и один для
выходного значения. Таким образом, так же, как и в случае
с оператором X, потери информации не происходит и всегда
68

2.8. Квантовая телепортация
|
|
|
можно вернуться к начальному состоянию системы кубитов.
В квантовой схеме для логического оператора ИЛИ два верхних кубита (a и b) входные и нижний – выходной, причем
изначально нижний кубит должен быть в состоянии |0:
|a²
|b²
1²
Если же нижний кубит в начале схемы находится в состоянии |1, то мы получаем логический оператор ИЛИ-НЕ
(NOR):
|a²
|b²
0²
Реализовать логический оператор Исключающее ИЛИ
(XOR) еще проще, для этого требуется всего два вентиля
CNOT:
|a²
|b²
0²
В конце этих операторов мы не поместили измерение состояний кубитов, так как такие схемы редко используются
как самостоятельный логический элемент. Скорее всего, они
могут встретиться внутри большой квантовой схемы.
2.8. Квантовая телепортация
После того как мы изучили определенное количество
квантовых операторов, мы можем приступить к созданию
квантовых алгоритмов. Один из таких алгоритмов – квантовая телепортация. К сожалению, это название создает
не совсем правильное представление о сущности квантовой
69

Глава 2. Многокубитные операции
телепортации. Если в фантастических романах с помощью
телепортации мгновенно перемещают предметы и даже
живых существ на большие расстояния, то квантовая телепортация имеет с фантастикой мало общего, так как при
этом физическом явлении не происходит передача вещества
на расстояние. Например, нельзя телепортировать кубит таким образом. Но зато мы можем телепортировать состояние
кубита на большие расстояния. Причем в таком способе передаче информации также есть вещи, которые способны удивить.
В квантовой телепортации состояние одного кубита передается на другой кубит, но, как это часто бывает в квантовых
вычислениях, в процессе участвует вспомогательный кубит
(на схеме он обозначен как q
), так что речь идет о трехку-
1
битной системе. Для того чтобы не запутаться, мы будем
считать, что тот из кубитов, с которого будет передаваться
состояние, принадлежит Алисе (кубит q
на который состояние будет передаваться, – Бобу (кубит q
), а другой кубит,
0
2
).
Кубит Алисы находится в некотором состоянии |, которое
она должна передать на кубит Боба. Вспомогательный кубит
также находится у Алисы.
q
1
В самом начале алгоритма все три кубита находятся в одном месте. Обратите внимание, что вспомогательный кубит
и кубит Боба в начале схемы находятся в состоянии |0. Вспомогательный кубит и кубит Боба приводят в запутанное состояние, так что начальный участок квантовой схемы выглядит таким образом:
q
|X²
0
q
|0²
1
H
q
|0²
2
После этого кубит Боба можно перенести на большое расстояние. Как мы знаем, запутанные кубиты, даже находясь
70
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
