Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Квантовые вычисления. Теория и практика. Учебник
.pdf
8.2. Квантовое преобразование Фурье
Мы фактически получили оператор Адамара в примере
для одного кубита, этот оператор при переборе (по порядку
от нулевого) всех базисных состояний системы кубитов |x поворачивает вектор состояния на 180 градусов. Это же будет
соблюдаться и для системы с большим количеством кубитов – вектор состояния одного из кубитов будет поворачиваться на 180 градусов, следующий кубит – на 90 градусов, третий
кубит – на 45 градусов и т.д., с уменьшением угла поворота
в 2 раза в каждом последующем кубите. Но самое интересное
происходит, если, используя возможности квантового компьютера, подавать на оператор QFT суперпозицию различных
состояний |x, причем с действительными амплитудами. При
этом становятся возможными ситуации, когда в результате
вычислений какие-то пары векторов состояния отдельного
кубита направлены в одну сторону, а какие-то наоборот – противоположны по направлению (разумеется, будут и векторы
под другими возможными углами). Сама возможность подать
все необходимые входные данные одновременно уже позволяет говорить о значительном ускорении расчетов даже по сравнению классическими алгоритмами, называемыми быстрым
преобразованием Фурье. По крайней мере на данный момент
неизвестен классический алгоритм дискретного преобразования Фурье, работающий быстрее, чем QFT.
Вернемся к состояниям x и y. Наша задача сейчас – перейти от формулы преобразования Фурье к операторам, применяемым к многокубитной системе (мы уже выяснили ранее,
что для случая с одним кубитом это оператор Адамара). Для
начала представим y в виде суммы:
nn nk
12 0
yy y yy N
2 2 ... 2 2 .
12
nn n
nk
11 1
kk k
yN y
kk
kk
22
Затем поставим эту сумму в формулу преобразования
Фурье (обратите внимание на то, что N в показателе степени
при этом сократится):
141

Глава 8. Алгоритм Шора
ix
nn
yy
11
NN
11
QFT x e y e y
NN
2
00
yy
kk
ix
kk
22
11
kk
1
.
Далее превратим сумму в показателе степени в произведение степеней числа e:
ix
y
k
n
1
N
1
QFT x e y
N
0
y
y
k
n
1
N
1
N
0
y
k
2
eyyy
1
k
k
1
2
1
k
ix
1
12
... .
n
Здесь мы уже почти подошли к ключевому моменту, позволяющему понять, какие квантовые операторы должны
быть применены к кубитам. Для этого потребуется перейти
к тензорному произведению векторов состояний отдельных
кубитов. Подробно распишем этот переход сначала для небольшого примера с системой из двух кубитов для конкретного входного состояния |, на которое действует оператор
квантового преобразования Фурье:
ii
00 01
11
01 01
22 22
QFT e e e e
22
00 01
ii
10 11
11
01 01
22 22
ee ee
22
10 11
.
Здесь мы не стали перемножать значения в скобках, так
как далее соотнесем каждый из этих множителей с конкретным кубитом (а точнее, с это будут амплитуды при базисных
состояниях каждого отдельного кубита):
142

8.2. Квантовое преобразование Фурье
01 01
ii ii
1
00 11
22 22
QFT e e e e
2
01 01
1
.
2
ii
010 1
ee
/2
Отсюда можно получить общую формулу:
ix ix
1
QFT x e e
N
ix ix
21
22
0 1 ... 0 1 .
ee
01
22
0101
n
Теперь мы имеем представление о том, в каком итоговом
состоянии должны быть отдельные кубиты. При этом мы
видим, что фаза при состоянии |1 зависит от входного вектора состояния |x. Для того чтобы понять, какие операторы
требуется применить, продолжим рассматривать пример
с двумя входными кубитами, перебирая все их возможные
значения.
В том случае, когда |x равен |00, мы получаем следующее (не будем писать знак тензорного произведения, но, как
обычно, будем подразумевать его наличие):
00
ii
1
000101
QFT e e
2
1
2
01
22
0101.
В данном случае оба кубита находятся в состоянии |+,
то есть фазы при состояниях |1 нулевые. Далее рассмотрим
случай, когда |x = |01:
143

Глава 8. Алгоритм Шора
11
ii
1
010101
QFT e e
2
1
01 0 1.
2
01
22
i
2
e
Здесь видно, что фазы не нулевые, причем, если сравнивать итоговое состояние с предыдущим итоговым состоянием |++ (при входном состоянии |x = |00), то вектор
состояния одного кубита повернулся на 180 градусов, а второго – на 90 градусов.
В случае когда |x = |10, получается следующее:
22
ii
11
1001010101
QFT e e
22
01
22
.
Здесь видим, что по сравнению с предыдущим случаем
(при |x = |01) наблюдается поворот фаз при состояниях |1
на 180 и 90 градусов.
При |x = |11 будет аналогичная ситуация:
33
ii
1
110101
QFT e e
2
1
01 0 1.
2
01
22
3
i
2
e
Квантовый оператор для QFT будет состоять из множества более мелких операторов: он будет включать как операторы Адамара, так и условные операторы, совершающие
поворот вектора состояния на разные углы (в случае, если
контролирующий кубит будет находиться в состоянии 1).
Когда эти условные операторы будут срабатывать, на управляемый кубит будут оказывать воздействие операторы поворота, которые мы обозначим как R
:
k
144

8.2. Квантовое преобразование Фурье
10
R
k
i
,
1
k
2
0
e
где k – номер кубита (начиная с 1 и до n).
Разумеется, сам условный оператор можно представить
матрицей большего размера, так как он, во-первых, двухкубитный, а во-вторых, схема может состоять из множества
кубитов.
Так как в рассматриваемом примере мы используем два
кубита, нам потребуются однокубитные операторы Адамара,
а также двухкубитный оператор, который должен содержать
однокубитный оператор R
:
2
10
R
2
0
.
i
2
e
Соответствующий двухкубитный оператор мы можем называть CR
ворота (в данном случае это 90 градусов) связан с кубитом x
Оператор CR
ний кубит x
, причем нижний индекс обозначает, что угол по-
2
выглядит таким образом (учитывая, что ниж-
2
является управляющим, а верхний кубит x1 –
2
2
целевым):
.
1000
000
CR
2
0010
i
2
e
000
i
2
e
.
Данный оператор срабатывает при состояниях |01 и |11,
поступающих на вход квантового преобразования Фурье.
Мы увидели, какие изменения должны происходить при
применении QFT на уровне отдельных кубитов. Для того
145

Глава 8. Алгоритм Шора
чтобы расставить эти операторы в квантовой схеме, нужно
понять принцип, по которому производится поворот векторов состояний. Для этого в состояниях, полученных нами
для двухкубитной системы, раскроем скобки и опять вернемся к рассмотрению на уровне базисных состояний системы кубитов:
QFT ;
QFT e e
01 00 01 10 11
10 00 01 10 11
QFT
11 00 01 10 11
QFT e e
2
ii
1
2
1
2
1
2
22
33
ii
22
;
;
.
1
00 00 01 10 11
Реализовать операцию, которая будет действовать на систему из двух кубитов, можно таким образом:
|x1²
H
R
2
|y
²
2
²
|x
2
H
²
|y
1
Обратите внимание, что в итоговом состоянии |y порядок
кубитов получается обратный. Например, младший кубит
(на данной схеме это |x
) влияет на итоговую величину |y1
2
с помощью оператора Адамара, который не только переводит свой вектор состояния в плоскость xy сферы Блоха, но и
сразу размещает этот вектор в 0 либо в 180 градусов относительно состояния |+ в зависимости от того, какое значение
поступает на вход оператора: 0 или 1. Таким образом,
|x
2
на то, в каком состоянии будет |y
, влияет только кубит |x2.
1
Следующий, младший разряд итогового значения, представленный состоянием |y
146
, формируется за счет значений
2

8.2. Квантовое преобразование Фурье
|x1 и |x2, поэтому |y2 (при условии, что |x представлен базисным состоянием) может быть только в одном из четырех состояний, соответствующих поворотам на 0, 90, 180 и
270 градусов в плоскости xy сферы Блоха относительно состояния |+. Если |x
зависит только от |x2. Если же |x1 = 1, то оператор Ада-
|y
2
= 0, то угол поворота вектора состояния
1
мара на верхнем кубите дает вектору поворот на 180 градусов относительно состояния |+, а то, будет ли к этому углу
добавлен угол в 90 градусов, решает входное состояние |x
Таким образом, на итоговое состояние |y
влияет и |x1, и |x2.
2
.
2
Если бы мы добавили в схему еще один кубит, который
бы представлял самый старший разряд, то на этот кубит
воздействовали бы уже три кубита – он сам и два нижних.
На этой схеме мы добавили третий кубит, назвав его x
,
1
а остальные два кубита, перекочевавшие сюда из двухкубитной схемы, переименовали (это сделано для того, чтобы
рассуждения по работе двухкубитной схемы были также актуальны как часть рассуждения по работе трехкубитной): x
теперь называется x
|x1²
H
, а x2 стал называться x3:
2
R
R
2
3
|y
²
3
1
²
|x
2
²
|x
3
H
R
2
H
²
|y
2
²
|y
1
Кубит x1 здесь представляет старший разряд, при этом
на выходное состояние |y
влияет три кубита, от каждого
3
из которых с помощью оператора Адамара и двух условных
операторов поступает информация о том, на какой угол должен повернуться вектор состояния выходного кубита y
эти три угла складываются, так что вектор состояния |y
. Все
3
за-
3
нимает одно из восьми возможных положений в плоскости
xy сферы Блоха относительно состояния |+: поворот на 0,
45, 90, 135, 180, 225, 270 или 315 градусов при условии, что
147

Глава 8. Алгоритм Шора
на вход поступило одно из базисных состояний |x (в случае
если |x представлено суперпозицией с некоторыми амплитудами, у кубита |y
возможные положения вектора состояния
3
могут быть и в других позициях, зависящих от амплитуд состояний входных кубитов).
Хотя мы здесь говорим о входных и выходных кубитах,
но схема QFT достаточно экономна, так что это одни и те же
кубиты, просто в одном случае это кубиты до применения
операторов, а в другом – после.
Нетрудно также заметить, что в случае поступления
на вход схемы QFT базисных состояний на выходных кубитах мы получаем что-то вроде остатков от деления на степени числа 2. Причем эти остатки соотнесены с углом поворота. К примеру, в трехкубитной схеме мы можем подать
на вход состояние |5 (более привычно это можно обозначить
как |101), обозначим его как = 5. При делении на 2 число дает остаток 1, так что выходной кубит |y
находится
1
в положении 180 градусов относительно |+. При делении
на 4 остаток равен 1, выходной кубит |y
при этом находится
2
в положении 90 градусов. При делении числа на 8 остаток
равен 5, вектор состояния кубита |y
сов (если пронумеровать возможные углы для кубита |y
повернут на 225 граду-
3
на-
3
чиная с нуля, то угол, равный 225 градусам, будет находиться в позиции 5). Чем младше кубит в итоговом результате,
тем больше старших входных кубитов на него влияют. Если
представить все кубиты в виде двоичного числа, то самый
младший кубит будет находиться слева. Так как мы решили
нумеровать кубиты слева направо, то у самого младшего кубита будет наибольший порядковый номер (но, конечно же,
так поступают не всегда, иногда нумеруют справа налево,
и тогда младшие кубиты имеют меньшую нумерацию).
В том случае, если на выходе нужно получить кубиты
в таком же порядке, как и на входе, это решается достаточно просто: состояния соответствующих кубитов можно поме-
148

8.3. Алгоритм Шора
нять местами в конце схемы с помощью операторов SWAP.
Например, для схемы из трех кубитов потребуется всего
один такой оператор:
R
|x1²
H
R
2
3
|y
²
3
²
|x
2
²
|x
3
H
R
2
H
²
|y
2
²
|y
1
Итак, мы выяснили, что в конце схемы, соответствующей применению оператора QFT, если мы подавали на его
вход базисное состояние или суперпозицию состояний с действительными амплитудами, получившиеся векторы состояний будут находиться в плоскости xy сферы Блоха.
8.3. Алгоритм Шора
Пришло время перейти непосредственно к алгоритму
Шора, в котором QFT выступает строительным блоком:
n
|0²
|0²
n
H
U
n
f
В этой схеме QFT используется не в чистом виде, а в виде
эрмитово сопряженного оператора QFT
зывать его обратным преобразованием Фурье. Получить такой оператор просто: элементарные операторы, из которых
состоит QFT, нужно применить в обратном порядке, причем
каждый из этих операторов должен быть эрмитово сопряженным. Формула для обратного преобразования Фурье отличается от обычного преобразования только наличием минуса в показателе степени:
1
N
†2/
QFT x e y
1
N
0
y
†
QFT
†
, также мы будем на-
ixy N
.
149

Глава 8. Алгоритм Шора
Схема алгоритма Шора содержит верхний и нижний регистры, количество кубитов в которых не обязательно будет одинаковым, хотя на схеме и указано, что оба регистра
содержат по n кубитов. Тем не менее в примере для разложения на простые множители числа 15, который мы далее
разберем, количество кубитов будет совпадать: n будет равно четырем. В квантовых схемах, реализующих алгоритм
Шора для разложения больших чисел, для верхнего кубита
может потребоваться 2n кубитов и для нижнего m кубитов,
где m – некоторое число, достаточное по меньшей мере для
того, чтобы выводить все возможные остатки от деления
на M (так мы будем далее называть число, которое нужно
разложить на простые множители p и q, во избежание пута-
n
ницы с N = 2
, где n – число кубитов).
Каждый кубит верхнего регистра сначала приводится
в состояние суперпозиции с помощью оператора Адамара.
С помощью этого достигается то, что дальнейшие операторы будут воздействовать одновременно на все возможные
входные значения (значения будут играть роль показателей степеней для числа a). Затем наступает очередь оператора U
Этот оператор реализует функцию f
f.
торую уже «зашиты» (то есть реализованы в операторе U
(x), в ко-
a,M
)
f
конкретные параметры a (произвольное взаимно простое
с M число меньше M) и само число M, для которого нужно найти множители p и q. После применения оператора U
f
с аргументом x (или множеством аргументов, если на вход
подается суперпозиция) на нижнем регистре появляются
x
остатки от деления степеней числа a
на M, а на верхнем
регистре так и остаются показатели степеней, поступавшие
на вход U
.
f
Далее происходит измерение нижнего регистра. Это позволяет от суперпозиции полученных остатков перейти
к конкретному значению остатка. Так как остальные остатки отсеиваются после измерения, то на верхнем регистре
150
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
