Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Квантовые вычисления. Теория и практика. Учебник
.pdf
8.3. Алгоритм Шора
остаются только показатели степеней, соответствующие данному остатку. Далее в дело вступает обратный оператор QFT,
действующий таким образом, что на выходе после измерения получается некоторое число y. Нам нужно рассмотреть
n
дробь y/N (где N = 2
, а за n взято число кубитов верхнего
регистра), приведя ее к приблизительно равной дроби j/r, такой, что соблюдаются условия
11yjy
;
NrN
rN .
Число y, полученное при измерении верхнего регистра,
не всегда подходит для решения (вероятность удачного исхода примерно равна 0,406). После получения r нужно убедиться, что r – четное число (вероятность этого не менее 1/2).
В случае неудачи алгоритм следует перезапустить. Если же
работа алгоритма прошла удачно и получено число r, то сразу же после этого можно найти числа p и q, найдя наибольший общий делитель чисел: a
r/2
+ 1 и M либо a
r/2
– 1 и M.
Нахождение НОД производится с помощью алгоритма Евклида, сложность которого является полиномиальной.
После того как найдены числа p и q, сразу же становит-
ся известна функция Эйлера (M), которая используется для
нахождения числа d, позволяющего расшифровать зашифрованное сообщение. Перехватив открытый ключ (числа e
и M), можно легко найти значение d.
Приведем в качестве примера расчеты для нахождения
простых множителей числа 15. Для алгоритма Шора потребуется число a, сделаем его равным 13. Это число является
взаимно простым с 15, а также меньше него, что соответствует требованиям к числу a. Как уже было указано выше, для
данного достаточно простого примера и в верхнем, и в нижнем регистре будет по 4 кубита.
151

Глава 8. Алгоритм Шора
Приведем уже известную нам схему алгоритма Шора
с разбиением на этапы вычислений:
123 4
n
|0²
|0²
n
H
U
n
f
QFT
†
Обозначим кубиты верхнего регистра как |x, а нижнего –
как |. Изначальные состояния кубитов нулевые:
0000 0000x .
После применения операторов Адамара к верхнему регистру (во временной точке 1) состояние будет таким:
4
Hx
1
0000 0001 0010 0011 ... 1111 0000 .
4
В результате на верхнем регистре появилась суперпозиция из 16 состояний, которые будут представлять показатели степеней от 0 до 15 для числа a. Далее, после применения
оператора U
(во временной точке 2), на нижнем регистре
f
появится суперпозиция состояний, которые представляют
собой остатки, вычисленные как значения функции f(x) =
x
= a
(M), сложенные по модулю 2 с входным нулевым состоянием нижнего регистра (это нулевое состояние не повлияет
на результат такого сложения, поэтому мы получим остатки
в чистом виде: 1, 13, 4, 7, 1, 13 … и т.д.):
4
Hx fx
()
152
1
0000 0001 0001 1101 0010 0100
4
0011 0111 ... 1111 0111 .

8.3. Алгоритм Шора
Очевидно, что показатели степеней в этом выражении
уникальны, а остатки могут повторяться (для успешного
решения задачи алгоритмом Шора они должны встречаться
не один раз) с периодичностью r – это порядок функции, который мы ищем, используя алгоритм Шора.
Далее мы должны провести измерение кубитов нижнего регистра. Представим, что в результате такого измерения мы получили значение |1101 (временная точка 3
на квантовой схеме), то есть в нашем распоряжении остались только те состояния кубитов, которые соответствуют
получению остатка 13. Это означает, что на верхнем регистре (хотя мы его еще не измеряли) теперь представлены
не все значения показателей степеней, а только те, которые соответствуют данному остатку, то есть это показатели степеней 1, 5, 9, 13:
1
0001 1101 0101 1101 1001 1101 1101 1101
2
Несмотря на то, что мы не рассматриваем остаток 1, который фигурирует в определении понятия порядка функции, легко заметить, что при остатке 13 (как и при других
возможных остатках) по соответствующим показателям степени легко определить порядок функции – они встречаются
с такой же периодичностью, как и при остатке 1.
Затем в дело вступает оператор QFT
преобразовать последовательность степеней таким образом,
чтобы при измерении верхнего регистра мы получили некоторое число, из которого легко выводится порядок функции.
Так как оператор QFT
регистр, то мы можем далее отбросить информацию о кубитах нижнего регистра, тем более что никаких изменений
там уже не произойдет и интересовать нас будет только ин-
1
0001 0101 1001 1101 1101
.
2
†
, задача которого –
†
будет действовать только на верхний
153

Глава 8. Алгоритм Шора
формация на верхнем регистре. Состояние верхнего регистра
во временной точке 4 будет таким:
1
†
QFT
1
2
††††
QFT QFT QFT QFT
0001 0101 1001 1101
0001 0101 1001 1101
2
.
Обратное преобразование Фурье, примененное к регистру
кубитов, можно представить как преобразование, примененное к каждому базисному состоянию в отдельности. Распишем более подробно:
2
ixy iy
115
N
†
QFT e y e y
0001
11
N
†
QFT e y
0101
†
1001
QFT e y
†
QFT e y
1101
N
00
yy
15
1
4
y
15
1
4
0
y
15
1
4
0
y
4
5
iy
8
0
9
iy
8
13
iy
8
8
;
;
;
.
Если опять свести все слагаемые в одно выражение, то
получится 64 слагаемых с одинаковыми по модулю амплитудами:
1
†
QFT
1
0
ee e e
0000 0001 0010 ... 1111
8
1
0
ee e e
0000 0001 0010 ... 1111
8
154
0001 0101 1001 1101
2
ii
88
575
ii
88
i
4
5
i
4
15

8.3. Алгоритм Шора
9 135
ii
1
0
0000 0001 0010 ... 1111
ee e e
8
1
0
ee e e
0000 0001 0010 ... 1111
8
88
13 195
ii
88
1
0000 0100 1000 1100
2
ii.
В результате применения оператора QFT
9
i
4
13
i
4
†
амплитуды
некоторых состояний обнулились. Можно рассмотреть это
на примере состояния |0001. Если представить два числа
–i/8
e
и e
–9i/8
на комплексной плоскости в виде векторов, то
видно, что они противоположно направлены, то есть при сложении дадут 0. То же самое для других амплитуд при |0001:
–5i/8
e
и e
–13i/8
, они также дадут в сумме 0.
Если же рассмотреть состояние |0100 в качестве примера
состояния, амплитуды которого не обнулились, а наоборот,
взаимно усилились, то можно заметить, что все четыре вектора на комплексной плоскости, соответствующие числам
–i/2
e
, e
–5i/2
, e
–9i/2
и e
–13i/2
, являются сонаправленными (бо-
лее того, они полностью совпадают, все их можно предста-
–i/2
вить числом e
, или –i). При сложении этих векторов мы
получим –4i, а при дальнейшем умножении на множитель
1/8 получим –0,5i. Здесь мы видим один из примеров интерференции, когда одни амплитуды взаимно гасятся, а другие,
наоборот, проявляются сильнее.
После измерения кубитов верхнего регистра мы с равной
вероятностью получим одно из чисел: 0, 4, 8 или 12. Это число мы ранее договорились обозначить буквой y. Далее в дело
вступают классические вычисления. Если y оказалось равным нулю, то с этим числом ничего сделать нельзя и алгоритм Шора придется запускать заново. Если же y не равно
нулю, то для нахождения порядка функции необходимо пре-
155

Глава 8. Алгоритм Шора
образовать дробь y/N. Допустим, после измерения мы получили y, равный 12:
12
y
.
16
N
Далее мы должны преобразовать эту дробь, приведя ее
к другой дроби j/r, где j – некоторое целое число, а r – искомый порядок функции. Для начала можно попробовать сократить дробь:
3
y
.
4
N
Здесь нам сразу удалось найти почти подходящий вид дроби для j/r, так что мы можем сказать, что r = 4. Почему почти? Потому что из-за того, что мы рассматриваем пример с небольшими числами, здесь формально не соблюдается условие
16r .
Тем не менее r, равное 4, действительно является порядком функции. Далее производим следующие вычисления:
r
2
a
r
2
a
2
113 1168
2
1 13 1 170
;
;
НОД(168,15) 3p ;
НОД(170,15) 5q .
Итак, мы нашли простые множители для числа 15 – это
3 и 5. В этом примере мы достаточно легко нашли период, зная число y. Если же речь идет о больших числах, то
не всегда это получается так просто. Для того чтобы в более
сложных случаях вывести число r, может потребоваться
применить метод непрерывной дроби, и тогда можно достаточно быстро найти нужный знаменатель в дроби j/r. Если
все же найденный знаменатель не является порядком функ-
156

КОНТРОЛЬНЫЕ ВОПРОСЫ
ции, он может быть его делителем, что также является неплохой подсказкой для классической части решения.
Контрольные вопросы
1. Почему шифрование с использованием алгоритма RSA
называют асимметричным?
2. Какой участник общения создает ключи, используе-
мые в ассиметричном шифровании?
3. Почему собеседник сам не создает ключи для шифро-
вания своих сообщений?
4. У какого участника общения хранится закрытый
ключ?
5. Какую информацию может перехватить злоумышлен-
ник в сети?
6. Почему до недавнего времени алгоритмы шифрования
наподобие RSA считались надежными?
7. Какой этап расшифровки сообщения, созданного с использованием асимметричного шифрования, может выполнять квантовый компьютер?
8. Что показывает функция Эйлера?
9. К какой задаче сводится поиск простых множителей
числа?
10. Почему период функции некоторого числа a должен
быть четным числом?
11. Как можно использовать известное значение функции Эйлера в получении закрытого ключа?
12. В каких задачах применяется преобразование Фурье?
13. Какой оператор является примером квантового преобразования Фурье, применяемого к одному кубиту?
14. Какие действия выполняет квантовое преобразование
Фурье в алгоритме Шора?
15. Что происходит после измерения кубитов нижнего
регистра в процессе работы алгоритма Шора?
16. В каких случаях алгоритм Шора запускают повторно?

БИБЛИОГРАФИЧЕСКИЙ СПИСОК
Ааронсон С. Квантовые вычисления со времен Демокри-
та. Пер. с англ. – М.: Альпина нон-фикшн, 2018. – 494 с.
Борзунов С.В., Кургалин С. Д. Квантовые вычисления:
пер. с англ. – СПб.: БХВ-Петербург, 2022. – 144 с.
Душкин Р. В. Квантовые вычисления и функциональное
программирование. – М.: ДМК Пресс, 2015. – 232 с.
Львовский А. Отличная квантовая механика: учеб. посо-
бие. В 2 ч. Пер. с англ. – М.: Альпина нон-фикшн, 2019. – 422 с.
Нильсен М., Чанг И. Квантовые вычисления и квантовая
информация. Пер. с англ. – М.: Мир, 2006. – 824 с.
Прескилл Дж. Квантовая информация и квантовые вычисления. Т. 1, 2. – М.; Ижевск: НИЦ «Регулярная и хаотическая динамика», Ижевский институт компьютерных исследований, 2011. – 312 с.
Силва В. Разработка с использованием квантовых компьютеров. – СПб.: Питер, 2020. – 352 с.
Сысоев С. С. Введение в квантовые вычисления. Квантовые алгоритмы: учеб. пособие. – СПб.: Изд-во С.-Петерб.
ун-та, 2019. – 144 с.
Хидари Дж. Д. Квантовые вычисления: прикладной подход / пер. с англ. В.А. Яроцкого. – М.: ДМК Пресс, 2021. – 370 с.
Химено-Сеговиа М., Хэрриган Н., Джонстон Э. Программирование квантовых компьютеров. Базовые алгоритмы и
примеры кода. – СПб.: Питер, 2021. – 336 с.
Bennett C. H., Brassard G., Crepeau C. et al. Teleporting
an unknown quantum state via dual classical and Einstein-Podolsky-Rosen channels // Phys. Rev. Lett. – 1993. – No 70. –
P. 1895–1899.
Grover L. K. A fast quantum mechanical algorithm for database search // Proceedings of the Twenty-Eighth Annual
ACM Symposium on Theory of Computing. STOC ‘96. Association for Computing Machinery, 1996. – P. 212–219.

ПРИЛОЖЕНИЯ
Приложение 1. Задачи
1. Известно, что кубит находится в суперпозиции, при-
чем вероятность получить |1 после измерения равна 0,36.
Какие значения может иметь амплитуда состояния |0 (если
говорить о состоянии кубита до измерения)?
2. Запишите состояние |010 в виде вектора-столбца.
3. Посчитайте скалярное произведение | векторов
состояний | = 0,6 |0 – 0,8i |1 и | = |1.
4. К кубиту, находящемуся в состоянии |0, применили
оператор X, а затем Z. Какое состояние кубита будет получено?
5. Каковы вероятности получения состояний |0 и |1 по-
сле измерения кубита, находящегося в состоянии –|1?
6. Если к кубиту в состоянии |0 применить оператор Z,
а затем оператор X, будет ли результат таким же, как при
применении операторов в обратном порядке (сначала X, а затем Z)?
7. Используя какие-либо матрицы Паули, получите со-
стояние –i |1 из состояния |0. Приведите два варианта реше-
ния из множества возможных.
8. К двухкубитной системе в первоначальном состоянии
|00 к первому кубиту применен оператор X, а ко второму –
оператор Z. Произведите расчеты для получения итогового
состояния с использованием матриц и векторов.
9. Представьте число z = 3 + 2i в тригонометрической и
показательной форме.
10. Дано состояние | = (2 + i) |0 + (2i – 3) |1.
а) Произведите нормировку амплитуд (так, чтобы сумма
квадратов модулей амплитуд равнялась 1).
б) Посчитайте, чему равно скалярное произведение |
(для нормализованного вектора |).
159

Приложения
в) Для состояния с нормированными амплитудами сократите общую фазу так, чтобы амплитуда при |0 была действительным числом.
11. Для состояния кубита | = (1 + i) |0 + 0,5 |1 нормируй-
те амплитуды, а затем избавьтесь от мнимой части в амплитуде при состоянии |0. Полученное состояние должно быть равно исходному состоянию с точностью до общей фазы.
12. Найдите координаты вектора на сфере Блоха, соот-
ветствующего состоянию
3
.
i
01
22
13. В алгоритме Дойча, приведенном в соответствующей
главе, замените оператор X (первый оператор, действующий
на нижний кубит) на оператор Y:
|0²
|0²
H H
H
Y
U
f
Проведите расчеты, показывающие, как изменятся результаты определения классов функций (сбалансированных
и несбалансированных) после измерения верхнего кубита.
Посчитайте процент правильных ответов алгоритма для
каждого класса функций.
14. Проведите действия, аналогичные расчетам в предыдущем задании, для схемы с оператором CNOT вместо оператора X:
|0²
H H
|0²
H
U
f
15. Для функции f(x), исследуемой с помощью алгоритма
Саймона при n = 3 и s = 110, найдите все пары аргументов,
при которых эта функция выдает одинаковый результат.
160
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
