Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Квантовые вычисления. Теория и практика. Учебник
.pdf
Приложение 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
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
