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

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

.pdf
Скачиваний:
3
Добавлен:
07.09.2026
Размер:
2 Мб
Скачать
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