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

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

.pdf
Скачиваний:
3
Добавлен:
07.09.2026
Размер:
2 Мб
Скачать
Приложение 2. Решения задач
Угол уже известен, он равен /2. Запишем вектор для
сферы Блоха:

cos 0 sin 1
  .
i
66
Найдем координаты этого вектора на сфере Блоха:
sin cos 0 0
x ;
3
2
sin sin 1
y ;
33
22
cos
z .
1 2
13. Разделим схему временными точками:
123
|0²
|0²
H H
H
Y
U
f
Применим операторы к исходному состоянию для того,
чтобы получить состояние в первой временной точке:
HHY HHi 

122 12
00 01 0 1 0 1
i
00 01 10 11
 .

2
i

2
Во второй временной точке, после применения оракула,
состояние примет такой вид:
  
i
UUUU
 

ffff
2
00 01 10 11

f
2
00 01 10 11
171
i
U
Приложения
i
00 (0) 01 (0) 10 (1) 11 (1)

2
После применения оператора Адамара к верхнему кубиту (в третьей временной точке) полученное состояние отлича­ется от состояния в оригинальном алгоритме только общим множителем i, поэтому после измерения верхнего кубита алгоритм будет работать как обычный алгоритм Дойча, вы­давая 1 в случае сбалансированной функции и 0 – в случае несбалансированной.
14. Разделим схему на части временными точками:
Во временной точке 1 два кубита будут находиться в за­путанном состоянии:
ffff
i

2
|0²
|0²
(0) (1)
ff
(1) 0 (1) 1 0 1

12 3 4
H H
H

U
f
.
1
CNOT H
Далее на нижний кубит воздействует оператор Адамара:
11
H  
После применения оракула (во временной точке 3) состо­яние будет таким:
172
00 11 0 0 1 1 0 1

2
2
1
00 01 10 11


2
1
U
f
2
00 00 11
1,2 1

2
00 01 10 11


2
.
.
Приложение 2. Решения задач
1
0(0) 01 (0) 1(1) 11 (1)
ffff

2
1
0 (0) 1 (0) 1 (1) 1 (1)
ff ff.


2
Во временной точке 4, после применения оператора Ада­мара к верхнему кубиту, система перейдет в состояние
1
0 (0) 1 (0) 1 (1) 1 (1)
Hf f f f    
1
1
0 1 (0) 1 (0) 0 1 (1) 1 (1)


22
В том случае, если в оракуле реализована функция f(x) = 0, это состояние будет таким:
  
1

22
Полученное состояние при измерении верхнего кубита с равной вероятностью выдаст состояние 0 или 1.
Если в оракуле реализована другая константная функция f(x) = 1, то мы получим следующее:


2
ff ff .
1
0101 0101


22
00 01 10 11 00 01 10 11

11
.
2 00 2 11 00 11

22 2
1
  
22
1


22
0110 0110


00 01 11 10 01 00 11 10
11
.
2 01 2 10 01 10

22 2
173
Приложения
Здесь после измерения верхнего кубита на нем также с равной вероятностью будет получено состояние 0 или 1. Мы видим, что в случае определения класса функций, кото­рые в действительности являются константными, процент правильных ответов должен быть равен 50.
В случае когда оракул реализует функцию f(x) = x, во временной точке 4 будет получено состояние
11
   .
22 2
После измерения на верхнем кубите будет получено со­стояние 0 или 1 с равной вероятностью.
Для случая, когда в оракуле реализована функция f(x) =
x , состояние будет таким:
=
0101 0110 0110



11
  
22 2
И опять будет получено состояние 0 или 1 при измерении верхнего кубита. Таким образом, мы видим, что в случае, когда в оракуле реализованы сбалансированные функции, алгоритм Дойча, измененный в соответствии с условия­ми данного задания, будет правильно определять функцию только в 50 % случаев.
15. Найдем парный аргумент функции f(x) для x = 000:
а также для оставшихся возможных аргументов:
Отсюда следует:
174
0110 0101 0011


000 000 110 110s  ,
001 001 110 111s ; 010 010 110 100s  ; 011 011 110 101s .
(000) (110)ff ;

.
Приложение 2. Решения задач
(001) (111)ff ;
(010) (100)ff ;
(011) (101)ff .
16. Обозначим соответствующие элементы строки s как
, s2, s3:
s
1
ssss
123
.
Рассмотрим первое полученное при измерении кубитов значение 001. Это значение при скалярном произведении на s должно давать ноль:
001 001 (0 ) (0 ) (1 ) 0sssss s s        .
Первые два слагаемых при любых s сюда можно вывести, что s
123 1 2 3
и s2 равны нулю. От-
1
может быть равно только нулю
3
для того, чтобы итоговое скалярное произведение было рав­но нулю. Поставим в соответствующий разряд числа s най­денное значение s
= 0:
3
12
0sss .
Запишем уравнение для выходного значения 101, ис­пользуя обновленный вариант s:
101 101 0 (1 ) (0 ) (1 0) 0sss s s        .
12 1 2
Третья скобка равна нулю, поэтому она не будет влиять на результат сложения по модулю 2, следовательно, ее мож­но не записывать:
(1 ) (0 ) 0ss .
12
Вторая скобка при любом s
равна 0, поэтому ее также
2
можно пока не рассматривать. Запишем выражение без нее:
10s.
1
Из этого уравнения можно сделать вывод, что s нулю. Остается вопрос: что делать с s
? Как мы узнаем, чему
2
равно
1
175
Приложения
оно равно? Вторая скобка обнуляется при любом значении
, но мы уже знаем, что s1 и s3 равны нулю. Если s2 также
s
2
будет равно нулю, тогда получится, что s = 000, чего не мо­жет быть по условию. Отсюда мы можем сделать вывод, что
= 1, и тогда s = 010.
s
2
17. Разделим алгоритм Саймона временными отметками:
123
|0²
H H
|0²
|0²
|0²
H
U
H
f
Во временной точке состояние квантовой системы будет таким:
1

00 01 10 11 00

2
.
После действия оракула состояние примет вид
1
00 (00) 01 (01) 10 (10) 11 (11)
ffff .

2
Нам известна скрытая величина s = 10, поэтому мы мо­жем записать равенство функций для парных значений x:
(00) (10)ff ;
(0 1) (1 1)ff
.
Поэтому мы можем переписать состояние после действия оракула (временная точка 2):
1
00 (00) 01 (01) 10 (00) 11 (01)
ffff

2
.
176
Приложение 2. Решения задач
Во временной точке 3 состояние квантовой системы ста­нет таким:
1
00 01 10 11 (00)

4
00 01 10 11 (01)f 

00 01 10 11 (00)f 

00 01 10 11 (01)f

1
00 01 (00) 00 01 (01)


2
Если перегруппировать элементы, то получается следую­щее:
1
00 (00) (01) 01 (00) (01)
ff ff .


2
После измерения верхних кубитов будут получены зна­чения 00 или 01. Теперь можно перейти к классической ча­сти алгоритма Саймона. Значение 00 не позволит получить информацию о скрытом значении s, поэтому сразу перейдем к вычислениям, в которых используется выходное значе­ние 01:
01 01 (0 ) (1 ) 0sss s s       .
Первая скобка в любом случае равна нулю, поэтому ее можно не писать:
ff .
12 1 2
f
10s.
2
Отсюда можно сделать вывод, что s не может равняться нулю (иначе s будет равно 00, что явля­ется невозможным), значит s s равно 10, что совпадает со значением s, заданным в условии задачи.
= 1. Итак, мы определили, что
1
равно нулю. Тогда s1
2
177
Приложения
18. Проведем расчеты для алгоритма Саймона, зная, что скрытое значение s = 11. Перед действием оракула имеем со­стояние
1

Для значения s, данного в условии задачи, следующие
функции должны быть равны:
00 01 10 11 00

2
(00) (11)ff
;
.
(01) (10)ff
После действия оракула на квантовую систему состояние
станет таким:
1
00 (00) 01 (01) 10 (10) 11 (11)
ffff

2
1
00 (00) 01 (01) 10 (01) 11 (00)
ffff

2
После действия операторов Адамара на верхние кубиты
получаем следующее состояние:
1
00 01 10 11 (00)

4
00 01 10 11 (01)f 

00 01 10 11 (01)f 

00 01 10 11 (00)f

1
00 11 (00) 00 11 (01)


2
Перегруппируем это выражение:
ff
.
f
.
.
178
1
00 (00) (01) 11 (00) (01)
ff ff .


2
Приложение 2. Решения задач
После измерения будут получены значения 00 или 11. Перейдем к классической части алгоритма Саймона. Решим уравнение, используя значение 11:
11 11 (1 ) (1 ) 0sss s s       .
Решение, при котором s подойдет другое решение, когда s
12 1 2
= 0 и s2 = 0, нам не подходит, но
1
= 1 и s2 = 1, тогда равен-
1
ство будет верным:
11 11 (1 1) (1 1) 1 1 0sss       .
12
Полученное значение s = 11 совпадает с тем значением s, которое было указано в условии задачи.
19. а) Для того чтобы пометить минусом базисное со­стояние 00 в алгоритме Гровера, нужно сделать так, чтобы оператор Тоффоли реагировал на состояние 00 так же, как на состояние 11. Для этого перед применением оператора Тоффоли нужно применить к верхним кубитам операторы X (тогда состояние 00 перейдет в 11), а после того как оператор Тоффоли отработал, опять применить операторы X, чтобы отменить действие операторов X, то есть вернуть состояние 00 на верхних кубитах:
X X
X X
б) Для того чтобы оператор Тоффоли помечал минусом базисное состояние 01, нужно применить операторы X перед и после оператора Тоффоли только для второго кубита:
X X
179
Приложения
в) Для того чтобы пометить минусом базисное состояние 10, нужно применить операторы X перед и после оператора Тоффоли только для первого кубита:
X X
20. Для того чтобы пометить минусом состояния 00 и 11, последовательно применим соответствующие операторы. Сначала для 00 – четыре оператора X и оператор Тоффоли, а затем для 11 – оператор Тоффоли:
X X
X X
На вход этой части схемы поступает состояние
1

22

00 0 1 01 0 1 10 0 1 11 0 1 .


После воздействия операторов X на два верхних кубита состояние в данном случае (на первой итерации) фактически не меняется. Тем не менее эти операторы нужны в том слу­чае, если два верхних кубита не находятся в такой суперпо­зиции, когда амплитуды при состояниях 0 и 1 одинаковы:
1

22

11 0 1 10 0 1 01 0 1 00 0 1 .


180