Соотношение между классическим и квантовым вычислением
Классический объект, соответствующий унитарному оператору, — перестановка. Любой перестановке естественно сопоставляется унитарный оператор
в пространстве
, действующий по правилу
.
Аналогично определению 5.1, можно определить обратимые классические схемы, реализующие перестановки.
Определение 6.1. Обратимая классическая схема. Пусть — некоторое множество перестановок вида
(базис). Обратимая классическая схема в базисе
— это последовательность перестановок
, где
— множества битов,
.
Перестановка, реализуемая обратимой схемой. Это произведение перестановок .
Перестановка , реализуемая схемой в расширенном смысле. Это такая перестановка, что произведение перестановок
![W=U_l[A_l]\cdot\ldots\cdot U_1[A_1]](/sites/default/files/tex_cache/526cd679d7bedf77b6a7aab913526691.png)
![N](/sites/default/files/tex_cache/8d9c307cb7f3c4a32822a51922d1ceaa.png)
![N\geq n](/sites/default/files/tex_cache/b7cf8915046b9ef5de37fbcccd5c47b4.png)
![x\in\cb^n](/sites/default/files/tex_cache/eae6fbf07b0c745a3744e8ac25f0df69.png)
![W(x,0^{N-n})=\left(Ux,0^{N-n}\right)](/sites/default/files/tex_cache/7d65ac8c4a769684751b611913dbd871.png)
В каких случаях функцию, заданную булевой схемой, можно реализовать обратимой схемой? Обратимые схемы реализуют только перестановки. Преодолеть эту трудность можно так. Вместо вычисления функции будем вычислять функцию
, заданную соотношением
(здесь
означает побитовое сложение по модулю 2). Тогда значение
можно получить так:
.
Чтобы можно было вычислять функции, заданные булевыми схемами в полном базисе, недостаточно взять базис для обратимых схем из перестановок на двух битах. Оказывается, что любая перестановка на двух битах является линейной функцией (при естественном отождествлении множества
и поля из двух элементов
):
, где
,
,
,
,
,
. Поэтому все функции, вычисляемые обратимыми схемами в базисе из перестановок на двух битах, являются линейными.
А вот перестановок на трех битах уже достаточно, чтобы реализовать любую функцию. При этом не обязательно использовать все перестановки, достаточно включить в базис лишь две функции — отрицание и элемент Тоффоли
. При этом имеется в виду реализуемость в расширенном смысле, т.е. можно брать напрокат биты в состоянии 0 и возвращать их после окончания вычислений в том же состоянии.
Задача 6.1. Докажите для обратимых схем полноту базиса, состоящего из отрицания и элемента Тоффоли.
Лемма 6.1. Пусть функция реализуется булевой схемой размера
в некотором базисе
. Тогда можно реализовать функцию
обратимой схемой размера
в базисе {
, состоящем из функций
(
), а также функции
.
Замечание 6.1. Помимо "полезного" ответа схема, указанная в формулировке леммы, производит "мусор"
.
Замечание 6.2. Содержательный смысл операции — обратимое копирование бита (если начальное значение
равно
). В литературе эта операция обычно называется Controlled NOT по причинам, которые станут ясными из дальнейшего.
Замечание 6.3. Применяя функцию можно менять биты местами в записи. Обратите внимание, что для перестановок битов достаточно также иметь в базисе
, так как
![(\leftrightarrow)[j,k]\double=\null\qxor[j,k]\qxor[k,j]\qxor[j,k].](/sites/default/files/tex_cache/4e6827f1e29d3a185608c1458e5fd9df.png)
Доказательство. Возьмем схему, вычисляющую . Пусть входные переменные — это
. Вспомогательные переменные схемы и биты результата — это
; в обратимой схеме сопоставим им дополнительные биты, имеющие в начальном состоянии значение 0.
Каждое присваивание в схеме имеет вид ,
,
. В обратимой схеме аналогом присваивания будет действие перестановки
,
, т.е.
.
Поскольку начальные значения дополнительных переменных были равны 0, их конечные значения будут такими же, как и в булевой схеме.
Осталось поменять местами биты, чтобы получить указанный в условии формат ответа.
Весь процесс вычисления удобно представить следующей схемой (над прямоугольниками подписано количество битов, внутри — их содержимое):