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

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

.pdf
Скачиваний:
3
Добавлен:
07.09.2026
Размер:
2 Мб
Скачать
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., Crepeau C. et al. Teleporting an unknown quantum state via dual classical and Einstein-Po­dolsky-Rosen channels // Phys. Rev. Lett. – 1993. – No 70. – P. 1895–1899.
Grover L. K. A fast quantum mechanical algorithm for da­tabase search // Proceedings of the Twenty-Eighth Annual ACM Symposium on Theory of Computing. STOC ‘96. Associa­tion 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