Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Квантовые вычисления. Теория и практика. Учебник

.pdf
Скачиваний:
3
Добавлен:
07.09.2026
Размер:
2 Мб
Скачать
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
|
0
q
|0²
1
H
q
|0²
2
После этого кубит Боба можно перенести на большое рас­стояние. Как мы знаем, запутанные кубиты, даже находясь
70