Московский государственный университет имени М.В.Ломоносова
Опубликован: 15.03.2007 | Доступ: свободный | Студентов: 611 / 26 | Оценка: 5.00 / 4.50 | Длительность: 19:30:00
Специальности: Программист
Лекция 6:

Соотношение между классическим и квантовым вычислением

< Лекция 5 || Лекция 6: 12 || Лекция 7 >
Аннотация: Основное внимание в лекции уделено понятию обратимой классической схемы и реализуемых ею перестановок, вводится понятие элемента Тоффоли, рассматривается содержательный смысл операции обратимого копирования.

Классический объект, соответствующий унитарному оператору, — перестановка. Любой перестановке G\colon\cb^k \to \cb^k естественно сопоставляется унитарный оператор \ha{G} в пространстве \BB^{\otimes k}, действующий по правилу \ha{G}\ket{x}\bydef\ket{Gx}.

Аналогично определению 5.1, можно определить обратимые классические схемы, реализующие перестановки.

Определение 6.1. Обратимая классическая схема. Пусть \calA — некоторое множество перестановок вида G\colon\cb^k\to\cb^k (базис). Обратимая классическая схема в базисе \calA — это последовательность перестановок U_1[A_1],\dots, U_l[A_l], где A_jмножества битов, U_j\in\calA.

Перестановка, реализуемая обратимой схемой. Это произведение перестановок U_l[A_l]\cdot\ldots\cdot U_1[A_1].

Перестановка U, реализуемая схемой в расширенном смысле. Это такая перестановка, что произведение перестановок

W=U_l[A_l]\cdot\ldots\cdot U_1[A_1]
(действующее на N битов, N\geq n ) для любого x\in\cb^n удовлетворяет условию W(x,0^{N-n})=\left(Ux,0^{N-n}\right).

В каких случаях функцию, заданную булевой схемой, можно реализовать обратимой схемой? Обратимые схемы реализуют только перестановки. Преодолеть эту трудность можно так. Вместо вычисления функции F\colon{} \cb^n\to\cb^m будем вычислять функцию F_\oplus\colon{} \cb^{n+m}\to\cb^{n+m}, заданную соотношением F_\oplus(x,y)\double=(x,y\oplus F(x)) (здесь \oplus означает побитовое сложение по модулю 2). Тогда значение F(x) можно получить так: F_\oplus(x,0)=(x,F(x)).

Чтобы можно было вычислять функции, заданные булевыми схемами в полном базисе, недостаточно взять базис для обратимых схем из перестановок на двух битах. Оказывается, что любая перестановка на двух битах g\colon{} \cb^2\to \cb^2 является линейной функцией (при естественном отождествлении множества \cb и поля из двух элементов \FF_2 ): g(x,y) =(ax\oplus by\oplus c, dx\oplus ey\oplus f), где a, b, c, d, e, f\in\FF_2. Поэтому все функции, вычисляемые обратимыми схемами в базисе из перестановок на двух битах, являются линейными.

А вот перестановок на трех битах уже достаточно, чтобы реализовать любую функцию. При этом не обязательно использовать все перестановки, достаточно включить в базис лишь две функции — отрицание \neg и элемент Тоффоли \wedge_\oplus\colon (x,y,z)\mapsto(x,y,z\oplus xy). При этом имеется в виду реализуемость в расширенном смысле, т.е. можно брать напрокат биты в состоянии 0 и возвращать их после окончания вычислений в том же состоянии.

Задача 6.1. Докажите для обратимых схем полноту базиса, состоящего из отрицания и элемента Тоффоли.

Лемма 6.1. Пусть функция F\colon\cb^n\to\cb^m реализуется булевой схемой размера L в некотором базисе \calA. Тогда можно реализовать функцию (x,0)\mapsto (F(x),G(x)) обратимой схемой размера O(L) в базисе { \calA_\oplus, состоящем из функций f_\oplus ( f\in\calA ), а также функции \qxor\colon(x,y)\mapsto(x,x\oplus y).

Замечание 6.1. Помимо "полезного" ответа F(x) схема, указанная в формулировке леммы, производит "мусор" G(x).

Замечание 6.2. Содержательный смысл операции \qxor — обратимое копирование бита (если начальное значение y равно 0 ). В литературе эта операция обычно называется Controlled NOT по причинам, которые станут ясными из дальнейшего.

Замечание 6.3. Применяя функцию (\leftrightarrow)\colon(a,b)\mapsto(b,a) можно менять биты местами в записи. Обратите внимание, что для перестановок битов достаточно также иметь в базисе \qxor, так как

(\leftrightarrow)[j,k]\double=\null\qxor[j,k]\qxor[k,j]\qxor[j,k].

Доказательство. Возьмем схему, вычисляющую F. Пусть входные переменные — это x_1,\dots,x_n. Вспомогательные переменные схемы и биты результата — это x_{n+1},\dots, x_{n+L} ; в обратимой схеме сопоставим им дополнительные биты, имеющие в начальном состоянии значение 0.

Каждое присваивание в схеме имеет вид x_{n+k}:=f_k(x_{j_k},\dots,x_{l_k}), f_k\in\calA, j_k,\dots,l_k<n+k. В обратимой схеме аналогом присваивания будет действие перестановки (x_{j_k},\dots,x_{l_k},x_{n+k}):=(f_k)_\oplus(x_{j_k},\dots,x_{l_k}, x_{n+k}), т.е. x_{n+k}:=x_{n+k}\oplus f_k(x_{j_k},\dots,x_{l_k}).

Поскольку начальные значения дополнительных переменных были равны 0, их конечные значения будут такими же, как и в булевой схеме.

Осталось поменять местами биты, чтобы получить указанный в условии формат ответа.

Весь процесс вычисления удобно представить следующей схемой (над прямоугольниками подписано количество битов, внутри — их содержимое):


< Лекция 5 || Лекция 6: 12 || Лекция 7 >