close

Вход

Забыли?

вход по аккаунту

?

Prilipko

код для вставкиСкачать
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
Федеральное государственное автономное
образовательное учреждение высшего образования
САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
АЭРОКОСМИЧЕСКОГО ПРИБОРОСТРОЕНИЯ
ФИЗИЧЕСКИЕ ОСНОВЫ
КВАНТОВЫХ ВЫЧИСЛЕНИЙ
Практикум
Санкт-Петербург
2016
Составители: В. К. Прилипко, Ю. А. Новикова
Рецензент – доктор физико-математических наук, профессор
В. Г. Фарафонов
Предлагаемое издание представляет собой практикум по курсу
«Физические основы квантовых вычислений» и предназначено для
студентов старших курсов, магистров и аспирантов технических специальностей. Включает в себя основные положения теории квантовых вычислений с примерами и задачами, а также две виртуальные
лабораторные работы по темам «Кубит» и «Двухкубитовые квантовые схемы». В заключении приводится пример квантового алгоритма
Дойча и его имитация в среде Матлаб.
Публикуется в авторской редакции.
Компьютерная верстка Ю. В. Умницына
Подписано к печати 05.10.2016. Формат 60 × 84 1/16.
Бумага офсетная. Усл. печ. л. 2,3. Тираж 50 экз. Заказ № 361.
Редакционно-издательский центр ГУАП
190000, Санкт-Петербург, Б. Морская ул., 67
© Санкт-Петербургский государственный
университет аэрокосмического
приборостроения, 2016
1. КУБИТ. ОСНОВНЫЕ СВЕДЕНИЯ
Главным действующим лицом квантовых вычислений является
квантовый бит – кубит.
Кубит это любая квантовая система, которая может находиться в двух состояниях, в том числе и одновременно. Понятие
состояние в квантовой физике – очень емкое и всякий раз требует
конкретизации для его корректного определения. Например, кубитом можно назвать электрон, если мы описываем его состояние с позиции его собственного момента количества движения – спина. Как
известно, спин электрона (как и ряда других частиц Ферми например протонов и нейтронов, ряда атомов и пр.) и любая его проекция
на некоторое направление в пространстве могут быть точно измере=
 1,05 ⋅ 10−34 Äæ/c – постоянная
ны и окажутся равными s ⋅ , где
Планка, s = +1/2, –1/2 – спиновое квантовое число (и в этом смысле
об электроне говорят как о частице со спином ½). В дальнейшем изложении для обозначения ψ -волновой функции квантовой частицы будем пользоваться символикой Дирака: волновой функции ψ
соответствует вектор состояния ψ в конечномерном векторном
пространстве – гильбертовом пространстве. Обозначим состояние
электрона со спином s = ½. символом 0 , а состояние с s = –1/2 символом 1 . Будем рассматривать эти состояния, как векторы в 2-х
мерном Гильбертовом пространстве H2. Запишем первое из них –
1 
0
0 в виде вектора   , а второе – 1 в виде вектора   . Нетрудно
0
 
1 
видеть, что при такой форме записи эти векторы удовлетворяют условию ортогональности: 0 1 = 0.
Общее спиновое состояние электрона, вследствие принципа суперпозиции, должно описываться выражением (вектором состояния):
ψS = α 0 + β 1 , (1–1)
3
что эквивалентно выражению:
α
ψS =
(1–2)
 . β

Способность квантового объекта находиться в суперпозиции состояний противоречит «здравому смыслу», так как предполагает
одновременную реализацию двух (и более) альтернатив. Например,
фотон, падающий на полупрозрачную пластинку будет одновременно отражаться и пропускаться. Или, электрон, пролетающий
сквозь неоднородное магнитное поле, будет одновременно повернут
вверх (спин вверх) и вниз (вектор спина – вниз).
Именно принцип суперпозиции, являющийся одним из постулатов квантовой механики (в т.ч. и в скромной форме 1–1) позволяет производить параллельные вычисления. По этому поводу см.
ниже – алгоритм Дойча.
В рассматриваем примере с электроном коэффициенты α,β подчиняются условию нормировки:
2
2
α + β =1 (1–3)
Геометрически это означает, что спиновое состояние электрона
описывается единичным вектором в двумерном гильбертовом пространстве.
Введенные нами векторы состояний 0 и 1 имеют смысл базисных векторов и в литературе, посвященной квантовым вычислениям, носят название –вычислительного базиса.
Коэффициенты α,β в разложении (1–1) носят название амплитуд вероятности. Указанные амплитуды – комплексные числа, а
это значит, что они могут быть записаны в виде произведения модуля на фазовый множитель. Например
=
α eiθ α ,
где θ -фаза, а множитель eiθ – носит название фазового множителя.
Важно отметить, что выражение (1–1) описывает когерентную
суперпозицию, а не некогерентную смесь состояний 0 и 1 .Аналогом этих состояний в классической физике являются состояния
поляризации световых пучков состоящих из поляризованных и неполяризованных электромагнитных волн соответственно.
Суперпозиционные состояния, описываемые (1–1) в квантовой
физике называют чистыми состояниями (при этом максималь4
ное число членов суперпозиции равняется размерности рассматриваемого гильбертова пространства).
Различие между чистыми и смешанными состояниями заключается в том, что в первом случае- чистых состояний всегда может
быть найден базис, в котором состояние кубита строго определено, в то время, как для некогерентной смеси – т. е. смешанных
состояний, такого базиса нет и она в любом базисе остается смесью. Сказанное справедливо не только для частиц со спином, но и
для любой квантовой системы.
Так, например, в случае состояния:
1
=
ψ
(0 +1)
2
можно найти другой, нежели ( 0 , 1 ) базис, в котором состояние кубита будет строго определенным. Для этого, достаточно исходный
базис ( 0 1 ) повернуть на 45°. О том, как это делается см. ниже. Сказанное означает, что в рассмотренном примере мы имеем дело с когерентной суперпозицией состояний, а не их статистической смесью.
Другой пример кубита – это фотон, который может быть приготовлен в двух ортогональных состояниях поляризации.
Еще один пример – это так называемый двухуровневый атом,
т. е. атом, энергия которого в данных экспериментальных обстоятельствах может принимать лишь два значения.
Или более экзотический пример: любая квантовая частица которая в данный момент времени может находиться (состояние) или не
находиться (состояние 1 в данной точке пространства. Примеров
такого рода – великое множество. Нетрудно видеть, что различие
кубитов определяется тем, какие физические степени свободы мы
выделяем в данном объекте для характеристики его состояния.
Отметим теперь важное математическое свойство кубитов, как
векторов состояния: состояние, описываемое вектором eiθ ψ эквивалентно состоянию, описываемому вектором ψ , причем eiθ может быть выражено любым комплексным число с нормой 1.
Но состояние, описываемое вектором 0 + 1 , отличается от состояiθ
ния e 0 + 1 . Это означает, что относительная фаза состояний, входящих в суперпозицию важна и имеет большой физический смысл.
С учетом сказанного выше, состояние кубита может быть записано в следующем виде:
θ
θ
=
ψ cos   0 + eiφ sin   1 . 2
2
(1–4)
5
z
0
ψ
θ
у
ϕ
х
1
Рис 1–1. Сфера Блоха. Состоянию ψ кубита, представленному
вектором на сфере, соответствует точка с координатами θ, φ .
Нетрудно убедиться, что эта запись не противоречит условию
нормировки (1–3) и позволяет, что весьма важно, дать геометрическую интерпретацию кубита (см. ниже стр).
Состояние квантового бита с учетом выражения (1–4) можно
представить в виде точки на поверхности сферы Блоха (по имени знаменитого исследователя середины 20 века, Феликса Блоха,
внесшего большой вклад в развитие физики твердого тела). Сфера
Блоха имеет радиус равный единице, что соответствует требованию, накладываемому на векторы состояния условием нормировки. Положение точки на сфере задается двумя углами θ, φ. Указанные углы связаны с координатами точки x, y и z:
x = sin θ cos φ, y = sin θ sin φ, z = cos θ . (1–5)
Из (1–4) можно увидеть, что вектор состояния 0 изображается
точкой, лежащей на верхнем полюсе сферы Блоха, а вектор 1 –
точкой на нижнем полюсе.
Для произвольного состояния ψ из формул: 1–4 и 1–5 в результате элементарных преобразований получаем:
=
ψ
1+ z
x + iy
1 . (1–5,а)
0 +
1 , причем x2 + y2 + z2 =
2
2 (1 + z )
Задачи
Задача 1–1. Обозначения Дирака. Запишите выражение, связывающее бра- и кет- векторы.
6
Задача 1–2. Прокомментируйте следующие комбинации бра и
кет векторов:
ϕ ; ϕ; φϕ ; φ ϕ; φ ϕ .
Пример. Покажите, что для двух произвольных векторов ν , ω
справедливо:
( ω , ν )+ =ν
ω.
Решение: Представим операторы в виде матриц. Для этого воспользуемся формулой матричного умножения С = А × В:
cij = ∑ aik bkj .
Произведение матрицы-столбца порядка n × 1 (ей соответствует
вектор v ) на матрицу-строку (ей соответствует вектор ω порядка
1 × n имеет смысл. Поскольку согласно (2–30, а), (n × 1)(1 × n) = n × n,
то мы в этом случае получим квадратную матрицу порядка n × n:
n
x
1
x
nx1
=
nxn
В формуле (2–30) индексы к теперь отсутствуют. А потому никакого суммирования не производится. Иными словами матрица –
произведение строится из всевозможных попарных произведений
элементов матриц-сомножителей. Эта матрица называется тензорным произведений матриц ϕ и φ и обозначается, как ν , ω В рассматриваемом примере произведение ν ω приобретает вид матрицы с элементами: . cij =ν i ω*j . И матрица этого тензорного произведения имеет вид (столбец – первый вектор на строку – второй
вектор):
 ν1ω1* ν1ω*2 ν1ω*n 


 ν2ω1* ν2 ω*2 ν2ω*n 
cij = 
.




*
*
* 
 νn ω1 ν2ω2 νn ωn 
Произведение ω ν имеет вид:
7
 ω1ν1* ω1ν*2 ω1ν*n 


 ω2ν1* ω2ν*2 ω2ν*n 






*
*
* 
 ωn ν1 ω2ν2 ωn νn 
Отсюда видно, что матрица, получаемая из последней в результате транспонирования и комплексного сопряжения – то есть матрица эрмитово-сопряженная и следовательно представляющая
+
эрмитово-сопряженный оператор ( ω ν ) (в дальнейшем просто –
сопряженный) совпадает с матрицей оператора ν ω , что и требовалось доказать.
Пример. Покажите, что любое собственное число унитарной матрицы по модулю равно единице, т. е. может быть записано, как
. eiθ
Решение:
Оператор U (и соответствующая матрица) называется унитарным, если U + U = I .
Унитарный оператор сохраняет скалярное произведение. Действительно:
( U ν ,U ω ) = ( ν U + U ω ) ν I ω
= νω.
Пусть система находится в собственном состоянии унитарного
оператора U, т. е. справедливо:
U ν =ν ν .
По сказанному выше в случае, когда ω = ν должно быть:
2
ν U + U ν = ν ν = 1 . С другой стороны ν U + U ν = ν ν ν .Отсюда
следует, что ν =eiθ .
Задача 1–3. Покажите, что матрицы Паули являются эрмитовыми и унитарными.
Задача 1–4. Докажите, что два собственных вектора эрмитова
оператора, соответствующие разным собственным значениям ортогональны.
Задача1–5. Три состояния кубита описываются следующими
выражениями:
1
3
1
3
ϕ0 =
0 , ϕ1 =
− 0 −
1 , ϕ2 =
− 0 +
1 ,
2
2
2
2
8
где
{ 0 , 1 } ортонормированный базис.
2
2
2
Найти ϕ0 ϕ1 ; ϕ1 ϕ2 ; ϕ2 ϕ0 .
Пример 1–6. Найдите точки на сфере Блоха, соответствующие
нормализованным собственным векторам различных матриц Паули.
Решение:
Вставка-напоминание: квантово-механические операторы, связанные со спиновыми наблюдаемыми величинами, имеют вид:



SX= σ X ; SY=
σY ; SZ= σ Z .
2
2
2
В особом случае спина 1/2 имеются три матрицы Паули σx, σy
и σz:
 01 
0 − i
1 0 
σX =
  ; σY =

 ; σZ =

.
10
i
0
 


 0 − 1
Каждая из матриц Паули имеет два собственных значения, +1
и –1.
Для матрицы оператора σx соответствующими нормализованными волновыми собственными векторами являются следующие:
=
ϕX +
1 1
ϕX −
  ; =
2 1
1  1
 .
2  −1 
α
Действительно, уравнение для собственных векторов   в диβ 
раковских обозначениях имеет вид:
α
α
σ X   = λ  , (1–6)
β  β 

где λ – собственное значение оператора σ X , соответствующее данному собственному вектору. Собственные значения можно найти,
решая характеристическое уравнение:
 0 − λ 1
det 
 = 0 → λ = ±1 .
1 0 − λ 
Подставляя полученные собственные значения в уравнение (1–6).
Получим два решения: α = β и α = −β , что с учетом условия нормировки:
2
2
α + β =1
9
Дает два решения, т. е. два указанных выше собственных вектора:
1 1
1  1
ϕX+ =  и ϕX− =  .
2 1
2  −1 
Таким образом, кубит, находящийся в собственном состоянии
ϕX+ оператора Паули Х, соответствующему собственному значению +1, есть:
ϕX+ =
1 1
 =
2 1
1
2
0 +
1
2
1 .
Отсюда найдем угловые координаты. Так как
(( ))
( )
=
a cos θ 2=
, b exp ( iφ ) sin θ 2 ,
где
a 1= cos θ 2 →
=
=
θ π2
2
b 1 = exp(iφ) ⋅ sin π 4 → exp(=
iφ) 1 ,
=
2
то есть φ =0 . Таким образом, собственный вектор оператора Паули – Х (σ X ) на сфере Блоха представляется вектором, направленным вдоль оси ох.
Аналогично, для кубита в собственном состоянии ϕX− :
ϕX− =
1  1
 =
2  −1 
1
2
0 −
1
2
1 ,
получим
θ=π 2
b =− 1
2
=exp ( iφ ) ⋅ sin ( π 4 ) → exp(iφ) =−1 .
то есть φ = π. А это значит, что соответствующий вектор Блоха направлен против оси ох.
Случаи σy и σ Z рассмотрите самостоятельно.
10
2. ДИНАМИКА КУБИТА.
Кубит представляет собой физическую систему, которая, в общем случае, изменяется со временем. Одним из постулатов квантовой механики является постулат об эволюции квантовой системы,
который утверждает, что за время t эволюция кубита, взаимодействие которого описывается гамильтонианом Н, осуществляется
унитарным оператором:
 iHt  .
=
U exp  −

  
И тогда, эволюция кубита из начального состояния ψ1 в конечное состояние ψ2 , описывается выражением:
ψ2 = U ψ1 .
Что касается важных свойств унитарного оператора U, то этот
оператор:
а) линеен и
б) он сохраняет норму (длину) векторов состояния.
В качестве примера унитарного оператора приведем квантовый логический элемент NOT (отрицание). Этому элементу соответствует унитарный оператор, который может быть представлен
в виде матрицы 2х2. Как известно, линейный оператор определяется его действием на векторы базиса. В рассматриваемом примере он
переводит 0 в 1 и обратно. Поскольку это линейный оператор, то
он будет переводить линейную комбинацию входных данных в соответствующую линейную комбинацию выходных:
α0 0 + α1 1  α0 1 + α1 0 .
Поскольку базисные векторы могут быть представлены матрицей-столбцом, то в матричном виде последняя формула может быть
переписана в виде:
1 
0
0
1 
α0   + α1    α0   + α1   ,
0
1
1
 
 
 
0
а это значит, что элемент NOT действует на базисные векторы следующим образом:
1   0   0  1 
NOT :      ,      .
 0  1  1   0 
11
Отсюда можно увидеть, что матрица элемента NOT имеет(в вычислительном базисе) следующий вид:
 01 
NOT ≡   .
 10 
Убедимся в «правильности» действия NOT на состояние кубита
0 :
 01  1   0 
NOT ∗ 0 ≡    =
 .
 10  0   1 
Другой вариант представления оператора NOT в операторном
представлении, с использованием Дираковских обозначений
NOT = |0><1|+|1><0|.
Элемент NOT является одним из четырех элементов Паули,
играющих важную роль в квантовых вычислениях..
1 0 
 0 1
=
σ0 ≡ I 
; NOT ≡ σ1 ≡ σx ≡ X ≡ 
;
0
1


1 0 
0 − i 
1 0 
σ2 ≡ σy ≡ Y ≡ 
; σ3 ≡ σz ≡ Z ≡ 
.
0
i


 0 − 1
(2–1)
Это связано с тем, что любой однокубитовый унитарный оператор может быть выражен в виде линейной комбинации элементов
Паули.
Рассмотрим действие элемента Паули Z на состояния вычислительного базиса:
 1 0  1   1 
 1 0  0   0 
Z 0 ≡
  =
 ; Z 1 ≡ 
  =
 ;
 0 − 1  0   0 
 0 − 1  1   −1 
т. е. он не меняет кубит 0 и меняет знак у 1 , переводя его в − 1 .
Для произвольного кубита действиеZ состоит в зеркальном отражении вектора Блоха от плоскости xoy. В операторном представлении
действие Z описывается выражением:
=
Z 0 0−1 1
Рассмотрим элемент Паули Y:его действие на состояния вычислительного базиса, приводит к следующим результатам:
0 → i ⋅ 1 , 1 → −i ⋅ 0
Отсюда, Y действует на произвольный кубит ϕ = α 0 + β 1 по
правилу:
12
Y ϕ = −i ⋅β ⋅ 0 + iα 1 .
В дираковских обозначениях действие Y описывается выражением:=
Y 1 0 −i⋅ 0 1 .
Наряду с рассмотренными элементами Паули важную роль
в квантовых вычислениях играют три других квантовых элемента: оператор Адамара – «Н»,оператор сдвига фазы –«S» и элемент
π – «Т»:
8
1 0

1 0 
1 1 1 

.
H≡

 , S ≡ 0 i  , T =
0 exp  i π  
2 1 − 1



 4  
Задача 2–1. Запишите вышеприведенные операторы в дираковских обозначениях.
Из рассмотренных выше операторов можно «сконструировать»
более сложные унитарные операторы, так называемые операторы
поворота. С их помощью можно реализовать (теоретически) повороты вектора Блоха вокруг x,y и z осей сферы Блоха. Они представляют собой степени операторов Паули и в вычислительном базисе
имеют следующий вид:
θ
θ

cos
− i sin 

−i θ X 
2
2 ,
θ X 
cos θ I − i sin=
=
Rz ( θ ) exp  =

2 
2
2
θ
θ

 −i sin
cos 
2
2 

(
)
(
)
θ
θ

cos 2 − sin 2 
−i θ Y 

θ Y 
cos θ I − i sin=
=
Ry ( θ ) exp  =
,
2 
2
2

sin θ cos θ 
2
2 

(
)
(
)


 iθ 
exp  − 2  0

−i θ Z 

θ Z 
cos θ I − i sin=
.
=
Rz ( θ ) exp  =


2
2
2

1θ
0
exp  2  


 
(
)
(
)
При выводе этих соотношений мы воспользовались результатом, полученным в задаче 2–2 (см. ниже).
В заключение отметим, что представление с помощью сферы
Блоха удобно ввиду его наглядности. По этому поводу см. ниже –
Лабораторная работа № 1. Основные однокубитовые элементы.
13
3. НЕСКОЛЬКО ЗАДАЧ ПО ТЕМЕ – 
ОДНОКУБИТОВЫЕ ПРЕОБРАЗОВАНИЯ
Задача 3–1. Покажите, что любой однокубитовый унитарный
 ñ s 
оператор можно записать в виде U = eiδU , где U =  * *  – специ −s c 
2
2
1 , а eiδ – общий
альный унитарный оператор, у которого c + s =
фазовый множитель.
Задача 3–2. Пусть х – действительное число и А такая матрица,
что A2 = I , где I– единичная матрица. Покажите, что
exp
=
( iAx ) cos ( x ) I + i sin ( x ) A
и что из этого вытекает формула 2–1.
Задача 3–3. Найдите собственные числа и нормированные соб1 
±1; ϕ1,2   ).
ственные векторы оператора Паули Y. (Ответ: λ1,2 =
 ±i 
Пример. Покажите, что с точностью до общей фазы элемент π 8
удовлетворяет условию: T = Rz π 4 .
Действительно:
( )


 −i θ  0
exp 

2 
θ 
θ 
θ
i
Z
RZ ( θ ) ≡ exp −=
 Z  exp 

2 cos  2 I  − i sin=
2 
0
exp iθ 
2 

(
)
( )
При θ =π 4
RZ


 −i π  0
exp 

8 
π 
π 
i
π
Z
=
=
 exp 
,
4 ≡ exp −
8 cos  8 I  − i sin  8 Z

0
exp iπ 8 


( )
π
(
)
( )
что с точностью до множителя совпадает с −i π 

exp 
0
8 
iπ 


T = exp 


 8 
0
exp iπ 8

( )


.


Задача 3–4. Найдите собственные числа и собственные векторы
оператора Паули Z.
14
Задача 3–5. Найдите собственные числа и нормированные
собственные векторы оператора Адамара Н. (Ответ: собствен1
ные значения ±
. Нормированные собственные векторы
2
1

1
ϕ1,2 =

 ).
4  2 2  ± 2 − 1
Задача 3–6. Представьте оператор Адамара Н в виде произведения операторов поворота Rx и Rz и общего фазового множителя . eiφ
Если n единичный вектор в трехмерном пространстве, то формулу для поворота на некоторый угол можно записать по-иному:

iθ nσ 
θ 
θ
Rn ( θ ) ≡ exp  − =
 cos  I  − i sin   nx X + ny Y + nz Z .
2


2 
2
  2
Задача 3–7. Докажите, что ( n ⋅ σ ) = I и проверьте с помощью
этого равенства предыдущую формулу.
Задача 3–8. Покажите, что XYX = –Y и выведите отсюда уравнение XRy ( θ )=
X Ry ( −θ ).
Задача 3–9.
1. Докажите, что произвольный унитарный оператор, действующий на кубит, можно записать в виде:
(
)
U = exp ( iα ) Rn ( θ )
где α, θ – некоторые вещественные числа.
2. Найдите значения α, θ и n, при которых получится оператор
Адамара.
3. Найдите значения α, θ и n, при которых получится оператор
сдвига фазы S.
Произвольный унитарный оператор, действующий на один кубит, можно представить множеством способом в виде комбинации
поворотов и общего фазового сдвига.
Задача 3–10. Докажите три тождества:
HXH = Z; HYH = -Y, HZH = X.
Задача 3–11. Опишите действие вентиля Адамара с точки зрения вращений вектора Блоха и общего фазового сдвига.
Задача 3–12. Тема – проекционный оператор.
Немного теории: произвольность общей фазы кубита означает,
что чистое состояние кубита удобно описывать проекционным оператором Pϕ =ϕ ϕ , не зависящим от фазы состояния ϕ . Переходя к матричным обозначениям, получим:
15
α
ϕ = α 0 + β 1 =   , ϕ = α* 0 + β* 1 = α* β* ,
β 
(
)
для Pϕ получаем:
 α 2 αβ* 

Pϕ = ϕ ϕ = 
 βα* β 2 


Задача 3–13. Покажите, справедливость выражения:
P=
ϕ
1
1

I + xσx + yσy + zσz= ( I + r σ ) ,
2
2
(
)
 10 


где I =   – единичный оператор, σ = ( σ X , σY , σ Z ) и r = ( x, y, z ) –
 01 
вектор Блоха.
Немного теории: операторы I, σ X,σY,σ Z образуют базис в пространстве операторов, которые действуют в гильбертовом пространстве состояний кубитов. Это пространство операторов носит
название пространства Лиувилля. Отсюда получается, что вектор
Блоха – вектор, который определяет состояние кубита в пространстве Лиувилля, когда проекционный оператор раскладывается по
базисным векторам Паули.
Задача 3–14. Предположим, что кубит находится в состоянии

описываемом блоховским вектором r . Тогда оператор Rn поворачивает этот вектор на угол θ относительно оси n. Докажите это.(Напоминание: вектор Блоха r(x,y,z) определяет состояние кубита в пространстве Лиувилля, когда проекционный оператор: Pψ =ψ ψ

1
раскладывается по базисным операторам Паули: Pψ= ( I + r σ ) ;
2
вектор Блоха определяется координатами: x = cosφ sinθ, y = sinφ
sinθ, z = cosθ, при условии: x2 + y2 + z2 =
1 .)
Задача 3–15. Покажите, что координаты вектора Блоха

r = ( x, y, z ) равны, соответственно, средним значениям наблюдаемых σ X , σY , σ Z в состоянии ψ .
16
4. ЛАБОРАТОРНАЯ РАБОТА № 1. ЭЛЕМЕНТАРНЫЕ  
КВАНТОВЫЕ ЛОГИЧЕСКИЕ ЭЛЕМЕНТЫ.
Цель работы: изучение основных однокубитовых квантовых логических элементов.
Объект исследования: виртуальная лабораторная работа.
Задачи, решаемые в работе:
1. Изучение работы квантовых логических элементов X, Y, Z, H и I.
2. Прогнозирование результатов виртуального эксперимента и
сравнение результатов теоретических и экспериментальных расчетов.
Описание работы.
Работа состоит из двух частей. В первой части с клавиатуры
приготавливается кубит, т. е. задаются углы, характеризующие
его положение на сфере Блоха и строится соответствующая картинка. Во второй части предлагается подействовать на кубит одним
из рассмотренных выше однокубитовых операторов; получившийся кубит изображается на сфере Блоха. Задача состоит в том чтобы
рассчитать координаты: сферические. декартовы и амплитуды полученного кубита и сравнить с результатом компьютерного эксперимента.
Описание работы. Работа состоит из двух частей. В первой части
с клавиатуры приготавливается кубит ψ = α 0 + β 1 . Параметры
кубита – его положение на сфере Блоха, задаются через углы q и
j сферической системы координат. Программа вычисляет соответствующие декартовы координаты, а также амплитуды. Затем строится изображение сферы Блоха с вектором Блоха r и предлагается
подействовать на кубит одним из операторов Паули. В результате
действия оператора получается новый кубит и строится его изображение на сфере Блоха.
Во второй части предлагается подействовать на кубит одним из
рассмотренных выше однокубитовых операторов; получившийся
кубит изображается на сфере Блоха. Задача состоит в том чтобы
рассчитать координаты: сферические. декартовы и амплитуды полученного кубита и сравнить с результатом компьютерного эксперимента.
На рис. 4 –1 приведен результат для следующей ситуации. Приготовлен кубит – на рис. – слева. Вводились параметры q = pi/4 рад. и
j = 0. Подсчитаны декартовы координаты x = 0.7071,y = 0,z = 0.7071.
Амплитуды α è β кубита: |y> равняются: α = 0.9239 и β = 0.3827.
Вектор-столбец приготовленного кубита имеет вид
17
Сфера Блоха
1
0.5
0.5
0
0
Z
Z
1
-0.5
-0.5
-1
-1
0
Y
1
Сфера Блоха
-1
-0.5
X
0
0.5
1
Y
-1
1
0
-1 -1
-0.5
0
0.5
1
X
Рис. 4–1. Сфера Блоха
 0.9239 
ψ in =

.
 0.3827 
Справа – результат действия на кубит оператора Паули Х (отрицание NOT). В матричном представлении оператор X имеет вид
 0 1
(в вычислительном базисе): X = 
. Полученный кубит –на рис.
1 0 
справа имеет следующие характеристики: θout = 2.3562 рад. Фаза
ϕout = 0. Координаты вектора Блоха x = 0.7071, y = 0.7071 и z = 0.
 0.3827 
ψ out =
0.3827 0 + 0.9239 1 .

 , т.е ψ=
out
 0.9239 
= = = = = = = = = = = = = = = = = = = = = = = = = = = = Приведем программу vektorBlocha
Note1 = input(‘ приготовим кубит, введя угловые координаты
вектора Блоха !’)
teta = input(‘введите угол teta(рад.) вектора Блоха’)
fi = input(‘введите угол фи вектора Блоха’)
% радиус сферы Блоха = 1
Note2 = input(‘декартовы координаты вектора Блоха! ‘)
z = cos(teta)
x = sin(teta)*cos(fi)
18
y = sin(teta)*sin(fi)
X = [0 x];
Y = [0 y];
Z = [0 z];
subplot(2,1,1), plot3(X,Y,Z)
xlabel(‘X’)
ylabel(‘Y’)
zlabel(‘Z’)
hold on% нарисуем сферу Блоха – взято из Инета – всего 7 команд
n = 50; % n обычно вводится с клавиатуры ввод числа n по запросу в командном окне
t1 = pi*(-n:5:n)/n;
t2 = (pi/2)*(-n:5:n)’/n; % транспонированный вектор
X = cos(t2)*cos(t1);
Y = cos(t2)*sin(t1);
E = ones(size(t1)); % матрица единиц размерности вектора t1
Z = sin(t2)*E;
plot3(X,Y,Z,’r’),grid,title(‘СфераБлоха›)
axis equal
hold off
Note3 = input(‹результат: приготовленкубит fi = а|0>+b|1>, где
a = и b = ‹)
a = cos(teta/2)
b = exp(i*fi)*sin(teta/2)
fi = [a;b]
Note4 = input(‘приготовим основные операторы Паули XY и
Z,единичный I и Адамара H ‘)
I = [1 0;0 1]
X = [0 1;
1 0]
Y = [0 -i; i 0]
Z = [1 0; 0 -1]
H = [1 1; 1 -1]*(sqrt(2))^-1
A = input(‘ введите любой из приготовленных операторов A’)
Note6 = input(‘ подействуем на fi оператором A’)
v = A*fi
Note7 = input(‘выпишем амплитуды базисных векторов получившегося в результате действия оператора А’)
v(1)
v(2)
19
Note8 = input(‘рассчитаем фазы экспонент phase1 и phase2 и
dphase = dphase2-dphase1 получившегося кубита ‘)
phase(1) = angle(v(1))
phase(2) = angle(v(2))
dphase = phase(2)-phase(1)
Note9 = input(‘ запишем амплитуды кубита в стандартной форме
a|0>+b*exp(i*dfi)|1>›)
a = abs(v(1))
b = abs(v(2))
Note10 = input(‘посчитаем угол teta2 и угол fi2’)
teta2 = 2*acos(a)
fi2 = dphase
Note11 = input(‘построим сферу Блоха и вектор Блоха получившегося кубита’)
z = cos(teta2)
x = sin(teta2)*cos(fi2)
y = sin(teta2)*sin(fi2)
X = [0 x];
Y = [0 y];
Z = [0 z];
subplot(2,1,2),plot3(X,Y,Z)
xlabel(‘X’)
ylabel(‘Y’)
zlabel(‘Z’)
hold on% дорисуем сферу Блоха
n = 50; % n обычно вводится с клавиатуры ввод числа n по запросу в командном окне
t1 = pi*(-n:5:n)/n;
t2 = (pi/2)*(-n:5:n)’/n; % транспонированный вектор
X = cos(t2)*cos(t1);
Y = cos(t2)*sin(t1);
E = ones(size(t1)); % матрица единиц размерности вектора t1
Z = sin(t2)*E;
plot3(X,Y,Z,’r’),grid,title(‘СфераБлоха›)
axis equal
hold off
Note12 = input(‹результат: приготовлен кубита|0>+b|1>, где a = и
b = ‹)
a2 = cos(teta2/2)
b2 = exp(i*dphase)*sin(teta2/2)
20
5. ДВУХКУБИТОВЫЙ ЭЛЕМЕНТ.  
УСЛОВНЫЕ ОПЕРАЦИИ.
В квантовых вычислениях важную роль играет логический элемент контролируемое нет или иначе CNOT. Этот элемент является
примером условной логической операции – на схемах он изображается следующим образом:
Рис. 5–1. Условное изображение логического элемента CNOT
При изображении на схемах мы пользуемся следующими правилами: время течет слева направо, верхний провод изображает
управляющий кубит, а нижний – управляемый. Действие этого
элемента в терминах вычислительного базиса выглядит следующим образом:
c t c t⊕c .
Последнее означает: если управляющий «с» кубит установлен
в единицу, то значение управляемого«t» (от target) кубита меняется на противоположное, в противном случае управляемый «t»
кубит не меняется. Мы видим, что операция управляемое нетосуществляется на двух кубитах.
Далее, пусть U произвольная унитарная операция на одном кубите. Тогда операция управляемое U – операция на двух кубитах.
Если управляющий кубит установлен в единицу, то к управляемому кубиту применяется операция U. Эту операцию можно записать
следующим образом:
c t → c Uc t
Графическое
изображение
указанной операции представлено на рис. 5.2.
Структура его матрицы в вычислительном базисе выглядит
следующим образом:
U
Рис. 5.2. Логическая операция –
«управляемое U»
21
1
0
ÑU = 
0

0
0 0 0
1 0 0



0 u11 u12 

0 u21 u22 
Вместо оператора U может стоять любой однокубитовый оператор.
В частности, для рассмотренного выше оператора CNOT получаем:
1
0
ÑNOT = 
0

0
0
1
0
0
0
0
0
1
0
0 
,
1

0
а для элемента управляемого изменения фазы:
1
0
ÑP ( δ ) =
0

0
0 0 0 
1 0 0 
.
0 1 0 

0 0 eiδ 
Задача 5.1. Выбор управляющего и управляемого кубита произволен и зависит от того в каком базисе действует оператор. Так
в случае, когда СNOT действует в вычислительном базисе значение
управляющего кубита не изменяется. Что же произойдет с управляющим кубитом в другом базисе? Опишите применение элемента
CNOT относительно следующих базисов:
  0 +1
0 
2
 

 0 + 1 


2 


 0 −1
, 0 
2


0 −1   0
, 
2  

 0 +1 
 0 −1 
, 1 
, 1 
,
2 
2 




− 1  0 − 1 




2 
2 

Запишите ответы в дираковской символике и в матричном виде.
Задача 5–2. Докажите, что элемент «управляемое U» соответствует оператору
0 0 ⊗ I + 1 1 ⊗U .
22
Задача 5–3. Докажите, что, используя элементы Адамара, можно выразить элемент CNOT через элемент управляемого обращения
фазы и наоборот:
Рис. 5–3
Важным теоретическим результатом сформулированном в виде
теоремы о «Z-Y разложении» является возможность реализации
элемента «управляемое U» с помощью только элементов CNOT и
однокубитовых элементов. Дальнейшим обобщением полученного результата является возможность реализации любой квантовой
схемы, выполняющей унитарную операцию.
23
6. УНИВЕРСАЛЬНЫЙ НАБОР КВАНТОВЫХ  
ЭЛЕМЕНТОВ
Наряду с простыми операторами, действующими на один – два
кубита в квантовых вычислениях часто возникают ситуации, когда
кубитов много и на них действуют сложные унитарные операторы.
В классических вычислениях сложные логические процедуры удается свести к набору простых логических элементов. Возникают вопросы:
– существует ли универсальный набор этих простых элементов,
достаточный для проведения сложных и интересных квантовых
вычислений?
– насколько точна аппроксимация унитарных операторов элементами из универсального набора?
На это счет существует несколько определений и теорем, содержание которых мы коротко осветим. Вначале дадим определение
универсального набора квантовых логических элементов
Определение: множество логических элементов считается
универсальным, если для любого целого n ≥ 1 любой n-кубитовый
унитарный оператор можно аппроксимировать с произвольной
точностью квантовой схемой, построенной только на элементах
этого множества.
В состав универсального множества должен входить хотя бы
один элемент, действующий на два и более кубитов. Это необходимо для реализации очень важной функции CNOT. Дадим еще одно
определение.
Определение: двухкубитовый элемент считается запутывающим, если для некоторого состояния, являющегося тензорным
произведением ϕ φ на входе этого элемента, выход элемента
имеет состояние не в виде тензорного произведения (т. е. выходные кубиты запутаны).
И, наконец,
Теорема: множество всех однокубитовых элементов и любого
двухкубитового запутывающего элемента является универсальным.
Из теоремы вытекает, например, что объединение всех однокубитовых элементов и элемента СNOT является универсальным
множеством. То есть имеется возможность произвести любую
n-кубитовую операцию.
24
7. ЛАБОРАТОРНАЯ РАБОТА № 2. ДВУХКУБИТОВЫЕ  
КВАНТОВЫЕ СХЕМЫ
Цель работы: изучение простейших двухкубитовых квантовых
логических схем.
Объект исследования: виртуальная лабораторная работа.
Задачи, решаемые в работе:
1. Изучение работы квантовых логических схем, составленных
из элементов CNOT, I, X, Z и H (см. рис. 7–1).
2. Прогнозирование результатов виртуального эксперимента и
сравнение результатов теоретического и машинного расчетов.
В качестве примера рассмотрим квантовую схему, приготавливающую так называемые состояния Белла (рис. 7–2). Это очень
важные для квантовых вычислений и квантовой криптографии
коррелированные – запутанные состояния. Математически запутанность означает, что эти состояния ψ en tan glet не могут быть
представлены в виде тензорного произведения однокубитовых состояний ψ1 и ψ2 , т. е. ψ en tan gled ≠ ψ1 ⊗ ψ2 . Рассмотрим работу этой схемы для случая когда управляющий x и управляемый y кубиты находятся в состоянии 0 .
x = 0
y = 0
: подадим на управляющий вход схемы (верхняя линия)
|0>, а на управляемый – кубит |0>. Далее подействуем на верхний
X
Z
Z
H
H
X
Рис. 7–1. Квантовая схема, реализуемая в л. р. № 2
СNOT
|X>
|Y>
H
Cостояния
Белла
β 00 β 01 β10 β11
Рис. 7.2. Схема реализующая состояния Белла
25
кубит |0> оператором Адамара Н. Получим состояние. Нижний кубит остается в состоянии |0>. Состояние системы – тензорное произведение – вектор:
1
2
(0
0
+ 1 ) ⊗=
1
2
( 00
+ 10 ) .
В матричном виде он имеет вид
 1   0  
1 
   
 
1  1  1   0  1   1   0   0   1  0 
.
+ =
   ⊗   +   ⊗  =
 
2   0  1  
2 1 
2   0   0  1   0  
     
 
0
0 0
Действуем на полученный вектор оператором CNOTи получаем
в результате вектор Белла β00 :
 1000 
1 
1 


 
 
0100
0
1 0 1

* =1  =
=( 00 + 11 ) =
β00 .
 0001 
2 1 
2 0
2


 
 
 0010 
0
1 
Этот же результат мы получаем запустив программу dvaqubitam.
Программа dvaqubita
% Двухкубитовые квантовые схемы.CNOT,X,Z,H
Note1 = input(‘создадим матрицы CNOT,X,Z,H и I ‘)
X = [0 1; 1 0]
Z = [1 0;0 -1]
H = (1/sqrt(2))*[1 1;1 -1]
I = [1 0; 0 1]
CNOT = [1 0 0 0;0 1 0 0; 0 0 0 1; 0 0 1 0]
x1 = input(‘введите a управляющего кубита ‘)
x2 = sqrt(1-x1^2)% b управляющего кубита
x = [x1;x2]% создали управляющий кубит
y1 = input(‘ введите a управляемого кубита ‘)
y2 = sqrt(1-y1^2)% b управляемого кубита
y = [y1;y2] % управляемый кубит
X1 = input(‘создадим произведение элементов из набораI,X,Z,Hвведите 1-й элемент любой из набора’)
X2 = input(‘введите 2-й элемент из набора I,X,Z,H’)
X3 = input(‘введите 3-й элемент из набора I,X,Z,H’)
26
% Note5 = input(‘ cообщение №5 подействуем на управляющий
кубит тремя операторами XZH ’)
x3 = X3*X2*X1*x % состояние управляющего кубита после действия X
% Note6 = input(‘ cообщение №6^: создадим тройное произведение элементов из набора I,X,Z,H’)
Y1 = input(‘ введите 1-й элемент любой из набора ‘)
Y2 = input(‘введите 2-й элемент из набора I,X,Z,H ‘)
Y3 = input(‘введите 3-й элемент из набора I,X,Z,H ‘)
% Note7 = input(‘ состояние управляемого кубита после действия трех операторов)
y3 = Y3*Y2*Y1*y% состояние управляемого кубита после действия трех операторов
% Note8 = input(‘cообщение №8 состояние системы из двух кубитов перед CNOT”)
kronx3y3 = kron(x3,y3)
% Note9 = input(‘cообщение №9: подействуем СNOT ‘)
T = CNOT*kronx3y3% состояние на выходе схемы – суперпозиция двухкубитовых базисных 00
%01 10 и 11 с коэффициентами(амплитудами t1 t2 t3 t4
pause
t1 = T(1)
t2 = T(2)
t3 = T(3)
t4 = T(4)
normT = sqrt(t1^2+t2^2+t3^2+t4^2)
27
8. КВАНТОВЫЕ АЛГОРИТМЫ
Квантовый компьютер – это устройство, способное производить
параллельные вычисления, оперируя с квантовой суперпозицией
состояний кубитов.
Квантовый компьютер состоит из конечного множества кубитов, называемого квантовым регистром. Пространство состояний
квантового регистра имеет размерность N = 2n, где n – число кубитов. Будем нумеровать кубиты следующим образом: 0, 1, 2,..., n−1.
Тогда вычислительный базис пространства состояний квантового
регистра есть множество состояний вида:
|x> = |xn–1, xn–2,..., x1, xo>, |xi> = {0, 1}.
Каждому вектору вычислительного базиса можно сопоставить
число 0 ≤ x ≤ N в двоичном представлении:
x = xn–12n–1+ xn–22n–2 +... + x12 + x0.
Произвольное чистое состояние квантового регистра записывается в виде:
=
ψ
2
N −1
ax x , ∑ ax
1.
∑=
x =0
x
Таким образом, квантовый регистр, в отличие от классического,
может находиться в суперпозиционном состоянии. Поэтому, если
классический регистр, состоящий из n битов, может содержать
лишь одно число x, то квантовый регистр из n кубитов может содержать 2n чисел одновременно, благодаря принципу суперпозиции.
Если выполнять вычисление на классическом компьютере, то для
каждого числа потребуется отдельное вычисление (прогон). Наоборот, квантовый компьютер может выполнить вычисление сразу
для всех чисел, записанных в квантовый регистр, за один прогон.
Такая особенность его работы называется квантовым параллелизмом и является основой для резкого увеличения производительности квантового компьютера по сравнению с классическим.
Квантовое вычисление представляет собой унитарное преобразование, совершаемое в пространстве состояний квантового
регистра. Любое унитарное преобразование реализуется путем
выполнения последовательности элементарных преобразований
(квантовых логических элементов), каждое из которых действует в подпространствах состояний одного или двух кубитов. Такую
28
последовательность квантовых логических элементов называют
квантовой схемой или квантовой сетью, а рассматриваемый вариант квантовых вычислений схемной или сетевой моделью квантовых вычислений.
Преимущество квантового компьютера по сравнению с классическим проявляется тогда, когда существует эффективное разложение унитарного преобразования U на элементарные логические
элементы (эффективная квантовая схема), число элементов в которой полиномиально (а не экспоненциально) зависит от числа кубитов.
Для выполнения квантового вычисления необходимо:
1. Приготовить квантовый регистр в определенном начальном
состоянии |yнач>, например |yнач> = |0, 0,..., 0>.
2. Осуществить унитарное преобразование U: |yнач> → |yконеч> в
некоторое конечное состояние |yконеч>.
3. Выполнить измерение конечного состояния. В результате измерения происходит «коллапс» состояния квантового компьютера
в некоторую бинарную последовательность значений физических
величин, что и является результатом вычисления.
29
9. КВАНТОВЫЙ АЛГОРИТМ ДОЙЧА
Это первый и самый простой из квантовых алгоритмов. Этот алгоритм демонстрирует квантовый параллелизм и квантовую интерференцию.
Задача Дойча состоит в следующем. Допустим, что для вычисления неизвестной однобитовой функции f:{0,1} → {0,1} нам задана обратимая схема – «оракул», иногда именуемый – «черный
ящик». Это устройство можно применять для получения значений
f(x) на входных значениях х, но его конструкция и процессы, происходящие в нем в нам неизвестны. Ставится задача определения
величины f ( 0 ) ⊕ f (1). Получив результат f ( 0 ) ⊕ f (1) =
0, мы можем
заключить, что f ( 0 ) = f (1). (хотя само значение неизвестно) и f –
константа. С другой стороны f ( 0 ) ⊕ f (1) =
1 свидетельствует, что
f ( 0 ) ≠ f (1) ; в этом случае говорят, что функция является сбалансированной. Для вычисления f ( 0 ) ⊕ f (1) на классическом компьютере потребуется, очевидно, два запроса оракулу: на вычисление
f ( 0 ) и f (1). Алгоритм Дойча позволяет вычислить f ( 0 ) ⊕ f (1) , сделав лишь один запрос оракулу. Для вычисления этой функции на
квантовом компьютере обратимую схему нужно трансформировать
в квантовую, заменяя классические обратимые элементы на аналогичные унитарные квантовые и используя в качестве входных
данных квантовые биты.Эта схема может быть представлена унитарным оператором:
Uf x y  x y ⊕ f (x) .
Здесь слева стоят два входных кубита, а справа – два выходных.
Определив Uf таким образом, мы получим, что при фиксированном значении второго кубита ó = 0 , состояние первого кубита
õ = 0 дает значение 0 ⊕ f ( 0 ) =
f ( 0 ) на втором выходном кубите, а состояние õ = 1 – значение f (1) .
Состояние õ = 0 может рассматриваться как аналог классического входного значения 0, а õ = 1 – аналог единицы.
Алгоритм Дойча заключается в нахождении f ( 0 ) ⊕ f (1) . Схема,
реализующая указанный алгоритм приведена на рис. 9–1.
Работу схемы исследуем, проследив эволюцию состояния на
каждом этапе вычислений. Вначале состояние имеет вид:
ϕ0 =
0
(0 − 1 )
2
.
После применения элемента Адамара к первому кубиту, имеем:
30
0
Н
Н
Uf
0 − 1
2
φ2
φ1
φ
0
φ3
Рис. 9–1. Схема, реализующая алгоритм Дойча по вычислению
f ( 0 ) ⊕ f (1)
 0 +1
=
ϕ1 
2

 0 − 1 
=

2 

0  0 −1  1  0 −1

+

2
2 
2
2

.

Подействуем оператором Uf::
 x 0 ⊕ f (x) − x 1 ⊕ f (x) 
=



2


0 ⊕ f (x) − 1 ⊕ f (x) 
.

2

 0 − 1   Uf x 0 − Uf x 1 
=
Uf : x 


2  
2



= x 


В результате цепочки несложных преобразований получим результат действия Uf: на произвольный управляющий кубит |x>:
 0 −1 
 0 −1
f(x)
Uf : x 
x 
  ( −1)
2 
2



,

что отражает факт изменения управляющего кубита. В полученном выражении состояние управляемого регистра не меняется(т. е.
является собственным состоянием оператора Uf.).
Применение Uf к ϕ1 в свете предыдущего дополнения приводит к следующему результату:
Uf ϕ1 = ( −1)
f (0)
0  0 −1 
f (1) 1  0 − 1 

 + ( −1)

.
2
2 
2
2 
Из полученного выражения видно, что если f(0) = f(1), то есть
функция – постоянная, то:
31
 0 + 1  0 − 1 
ϕ2 =
±


2 
2 

И если f(0)≠f(1), то есть f – функция – сбалансированная, то:
 0 − 1  0 − 1 
ϕ2 =
±


2 
2 

и тогда действие последнего элемента Адамара на управляющий
кубит, в первом случае постоянной функции, переводит ϕ2 в:
 0 −1 
ϕ3 =
±0 

2 

или, в матричном представлении:
ϕ3
и в :
 1
 
 0 −1 
1
1 −1
=
±0 
±
( 00 − 01 ) =±  0 
=
2 
2
2

 
 0
 0 −1 
ϕ3 =
±1 
,
2 

что в матричном представлении дает
ϕ3
0 


1
1 0 
=
±
( 10 − 11 ) =±  1 
2
2
 − 1 


во втором случае, когда функция – сбалансированная.
0 если f (0) = f (1) и f (0) ⊕ f (1) =
1 , если
Учитывая, что f (0) ⊕ f (1) =
f (0) ≠ f (1) , результат можно переписать в виде:
 0 −1 
ϕ3 =
± f (0) ⊕ f (1) 
.
2 

Отсюда, проведя измерение, мы узнаем искомую величину
f (0) ⊕ f (1) , проведя всего одно измерение (вычисление).
Важный вопрос – можно ли реализовать двухкубитовый оператор Uf, используя квантовые логические элементы (NOT, CNOT,I)?
32
Мы установим вид матрицы U для функций fi. Исходим из того,
что действие оракула описывается выражением:
Uf x y  x y ⊕ f (x) ,
где f(x) функция, принимающая 4 значения: f1(x) = 0, f2(x) = 1,
f3(x) = x и f4(x) = NOT x. Более подробно:f1(0) = 0 f1(1) = 0; f2(0) = 1
f2(1) = 1; f3(0) = 0 f3(1) = 1; и f4(0) = 1 f4(1) = 0. f1 и f2 – называются
константами, а f3 и f4 –сбалансированными. Соответствующие
операторы U и их матрицы будут: U1 = I, U2 = I ⊗NOT; U3 = CNOT,
U4 = CNOT*(I⊗NOT).
Действительно: вычисление матриц Uf производится с помощью функции Матлаб: X = mrdivide(B,A) след. образом: записываем таблицу истинности для каждого из 4 вариантов, например для
сбалансированной функции f3 действие Uf переводит кубиты x и y
в кубиты x’ и y’ в соответствии с (1):
x
y
x’
y’
0
0
0
0
0
1
0
1
1
0
1
1
1
1
1
0
Начинаем с первой строки из x и y вычисляем состояние А (вектор) на входе системы из двух кубитов: А = kron(x0,y0) = [1 0 0 0]
в виде вектор-столбца (проверить). Состояние на выходе как видно
из таблицы такое же что и А:
B = kron(x0’,y0’) = [1 0 0 0]. Вид 1-й строки матрицы оператора Uf
находим исходя из уравнения:
Uf A = B. Отсюда Uf = B*A–1 (Эта процедура в матлабе исполняется функцией mrdivide(B,A).
 1000 


0000 
Uf = 
 0000 


 0000 
Указанную процедуру повторяем с каждой строк из таблицы истинности, получая на каждом этапе одну из трех оставшихся строк
матрицы оператора Uf. В результате для вычисления f3, объединяя
полученные строки получим итоговую матрицу оператора Uf (оракула):
33
 1000 


0100 

,
Uf3 =
 0001 


 0010 
и она точь в точь совпала с матрицей оператора «контролируемое
нет» – СNOT.
Действуя аналогично получим для всех f:
Константы: f1 и f2
 1000 


0100 
f1(0) = 0 f1(1) = 0:=
Uf1 
≡ I ⊗ I , где I оператор Паули.
 0010 


 0001 
 0100 


1000 
f2(0) = 1 f1(1) = 1: =
Uf 2 
≡ I ⊗ NOT
 0001 
 0010 


 01 
(напоминание NOT =   – оператор Паули Х).
 10 
Сбалансированные: f3 и f4
 1000 


0100 
f3(0) = 0 f3(1) = 1:
=
Uf 3 
≡ CNOT
 0001 


 0010 
 0100 


1000 
f4(0) = 1 f4(1) = 0:
=
Uf 4 
≡ CNOT
 0010 


 0001 
34
10. ИМИТАЦИОННОЕ МОДЕЛИРОВАНИЕ – КВАНТОВЫЕ  
ВЫЧИСЛЕНИЯ НА КЛАССИЧЕСКОМ КОМПЬЮТЕРЕ
Имитатор это программа, реализующая квантовый алгоритм на
классическом компьютере. При этом основным требованием является обратимый характер проводимых операций (вычислений), набор которых физически реализуем. Это известный фундаментальный набор элементов Паули, элемента Адамара–Уолша Н и одного
двухкубитового запутывающего элемента, например CNOT.
Но вначале несколько слов о имитационном моделировании [4].
Имеющееся в настоящее время программное обеспечение, предназначенное для моделирования квантовых вычислений можно
классифицировать по нескольким признакам.
По объекту моделирования:
1. Программное обеспечение, моделирующее поведение квантовой системы – объекта, путем решения уравнения Шредингера. Такие программы называют эмуляторами. Ярким примером может
служить QCE (QuantumComputer Emulator).
2. Программное обеспечение, моделирующее некоторую математическую абстракцию. Такие программы называют имитаторами (simulators).
3. По способу описания исходных данных для моделирования
(т. е. квантовой системы и квантового алгоритма). Таким способом,
может быть:
– Описание в виде квантовой схемы.
– Описание в виде квантовой машины Тьюринга.
– Описание в виде программы на некотором, специализированном языке программирования.
В литературе сообщается о различных имитаторах квантовых
компьютеров. Отличие между имитаторами состоит в том, что они
реализуют различные математические модели квантового компьютера. Например, имитатор, предложенный в работе Цирака и Золлера [5] фактически имитирует квантовый компьютер, построенный на ионных ловушках.
Другие имитаторы используют в качестве математической модели квантовых регистров комплексные векторы. При этом последний имитатор оптимизирован для выполнения на многопроцессорных компьютерах. К сожалению, исходный код этого имитатора не
доступен и, поэтому, трудно судить о его возможностях.
Все существующие имитаторы обладают большими требованиями к памяти, так как используют массивы для хранения векторов
35
состояний квантовых регистров. В связи с этим, такие имитаторы
не могут быть использованы для имитации квантовых алгоритмов,
использующих квантовые регистры, длина которых превышает
20–30 бит.
В связи с тем, что пока еще не понятно, на какой технологии будут основаны квантовые компьютеры, а также в связи с тем, что
основной задачей для ПО, моделирующего квантовый компьютер,
является способность выполнять квантовые алгоритмы, ПО для
моделирования квантового компьютера должно являться имитатором, а не эмулятором.
Квантовый компьютер является устройством, работающим под
управлением классического компьютера.
Наиболее перспективным способом описания квантового алгоритма является использование языка квантового программирования.
В настоящее время предложен ряд языков квантового программирования, однако таких языков мало и только один из них QCL,
физика-теоретика Бернхарда Омера [6], имеет средства для выполнения написанных на нем программ.
При этом существует тенденция по созданию универсальных
языков программирования, объединяющих в себе как квантовую,
так и классическую части. По-видимому, такая тенденция не является правильной в связи с тем, что поскольку квантовый компьютер должен управляться классическим компьютером, необходимо
разделять квантовую часть алгоритма и классическую.
Классическую часть алгоритма логично реализовывать на традиционном языке программирования, таком как, например, C++,
С# или Java, тем более что для этих языков существует большое
количество средств, предназначенных для обработки, хранения и
визуализации данных. В связи с этим, язык квантового программирования должен быть предназначен для написания процедур вызываемых из программы, работающей на классическом компьютере, в том числе, генерируемых динамически.
Остаются нерешенными или недостаточно разработанными следующие задачи, связанные с моделированием квантового компьютера:
– Разработка методов представления состояний квантовых регистров.
– Разработка алгоритмов обработки информации о состоянии
квантового регистра.
– Разработка способов моделирования квантовых вычислений.
36
– Разработка библиотеки функций, реализующих операции над
квантовыми регистрами.
– Разработка языка описания – квантовых алгоритмов.
– Разработка интерпретатора языка описания квантовых алгоритмов.
В заключение приведем программу имитирующую средствами
Матлаб рассмотренный алгоритм Дойча. Обращаем внимание, что
логика вычислительного процесса является обратимой – т. е. квантовые гейты представлены унитарными операторами в т. ч. и при
«конструировании» оракула.
37
11. РЕАЛИЗАЦИЯ АЛГОРИТМА DDEUCH  
В МАТЛАБ’Е.
(на входе х и у кубиты [0> и |1> соответственно)
remark = input(‹начальные состояния x- и y -кубитов ‘)
x0 = [1;0]
y0 = [0;1]
remark = input(‹создадим основные операторы (матрицы):HАдамара-Уолша, I-Паули едиичный ‘)
H = (sqrt(2))^-1*[1 1;1 -1]
I = [1 0;0 1]
remark = input(‘добавим сюда X-Паули (NOT),двухкубитовый
CNOT -контролируемый НЕТ’)
X = [0 1;1 0]
CNOT = [1 0 0 0;0 1 0 0;0 0 0 1; 0 0 1 0]
pause
remark = input(‹ состояние x-кубита после Адамара ‹)
x1 = H*x0
remark = input(‹ состояние y-кубита после Адамара ‹)
y1 = H*y0
remark = input(‹состояние системы двух кубитов перед оракулом U ‘)
x1y1 = kron(x1,y1)
remark = input(‘приготовим 1 оракул: Uf1 = IxI’)
Uf1 = kron(I,I)
remark = input(‘состояние после1 оракула ‹)
Uf1*x1y1
note = input(‘выход:после1 оракула -константа, f(x) = 0 и Адамара:’)
kron(H,I)*Uf1*x1y1
remark = input(‘приготовим 2 оракул-константа, f(x) = 1: Uf2’)
Uf2 = kron(I,X)
remark = input(‘состояние после2 оракула Uf2 = I*NOT ‹)
Uf2*x1y1
remark = input(‘выход:после 2 оракула f(x) = 1 и Адамара:’)
kron(H,I)*Uf2*x1y1
remark = input(‘приготовим 3 оракул f3 сбалансированная:
Uf3 = CNOT’)
Uf3 = CNOT
remark = input(‘состояние после 3 оракула U3 ‘)
Uf3*x1y1
remark = input(‘выход: после 3 оракула:f(x) = x)и Адамарa:’)
kron(H,I)*Uf3*x1y1
38
remark = input(‘приготовим 4 оракул: Uf4 = CNOT*(IхNOT)’)
Uf4 = CNOT*kron(I,X)
remark = input(‘состояние после 4 оракула U4 ‘)
Uf4*x1y1
remark = input(‘состояние после 4 оракула:f(x) = NOTx Адамара: ‘)
kron(H,I)*Uf4*x1y1
ЛИТЕРАТУРА
1. Нильсен М., Чанг И. Квантовые вычисления и квантовая информация. М.: «Мир», 2006. 822 стр.
2. Кайе Ф., Лафламм Р., Моска М. Введение в квантовые вычисления. НИЦ «Регулярная и хаотическая динамика», 2009. 346 стр.
3. Калачев А. А. Квантовая информатика в задачах. Казань: Казан. Ун-т, 2012. 48 с.
4. Ключарев П. Г. Алгоритмическое и программное обеспечение
для моделирования квантового компьютера. Диссертация на соискание ученой степени кандидата технических наук. М., 2009.
5. Cirac J. I., Zoller P. Phys. Rev. Lett 74, 4091 (1995).
6. Bernhard Omer. A Procedural Formalism for Quantum
Computing. Master’s thesis. Department of Theoretical Physics,
Technical University of Vienna (1998).
39
СОДЕРЖАНИЕ
1. Кубит. Основные сведения...................................................... 3
2. Динамика кубита.................................................................. 11
3. Несколько задач по теме – однокубитовые преобразования.......... 14
4. Лабораторная работа № 1. Элементарные
квантовые логические элементы................................................. 17
5. Двухкубитовый элемент. Условные операции............................ 21
6. Универсальный набор квантовых элементов.............................. 24
7. Лабораторная работа № 2. Двухкубитовые квантовые схемы....... 25
8. Квантовые алгоритмы ........................................................... 28
9. Квантовый алгоритм Дойча .................................................... 30
10. Имитационное моделирование – квантовые
вычисления на классическом компьютере.................................... 35
11. Реализация алгоритма DDeuch в Матлаб’е............................... 38
Литература.............................................................................. 40
Документ
Категория
Без категории
Просмотров
1
Размер файла
2 816 Кб
Теги
prilipko
1/--страниц
Пожаловаться на содержимое документа