Классические и квантовые коды
Симплектические (стабилизирующие) коды [26]
Это аналог классических линейных кодов. Квантовые симплектические коды устроены так же, только вместо контрольных сумм будут использоваться -операторы (
в предыдущих обозначениях).
Зададим, например, таким способом код Шора. Для него ,
. Кодовое подпространство порождено двумя векторами, см. (14.11).
Каким условиям удовлетворяют базисные векторы ?
- Для любых
выполнено
, т.е. каждая строка состоит из повторений одного бита.
- Для любого
выполнено
. Что означает это условие? Оператор
переводит
(остальные строки не меняются). Эти два вектора должны входить вс одинаковыми коэффициентами.
Утверждение 14.4. Если удовлетворяет условиям 1 и 2, то
.
Прежде чем перейти к изучению более общих симплектических кодов, рассмотрим подробнее свойства -операторов.
Как уже говорилось, -операторы удобно индексировать элементами группы
. Будем обозначать мультииндекс
-оператора через
.
-операторы образуют базис в
, более того, есть естественная
-градуировка:
![\LL(\BB^{\otimes n})=\bigoplus_{\gamma\in G^n} \CC\big(\sigma(\gamma)\big).](/sites/default/files/tex_cache/7f51371d6175a6ad7db35de7d3dc7141.png)
Для -операторов выполнены следующие соотношения
![\sigma(\gamma_1)\sigma(\gamma_2)=(-i)^{\tilde\omega(\gamma_1,\gamma_2)} \sigma(\gamma_1+\gamma_2)= (-1)^{\omega(\gamma_1,\gamma_2)}\sigma(\gamma_2)\sigma(\gamma_1),](/sites/default/files/tex_cache/99d812d98ef597894189dfa95f9b1bb7.png)
![\begin{multiline}
\tilde\omega(\alpha^{\mathstrut}_1,\beta^{\mathstrut}_1,\dots,
\alpha^{\mathstrut}_n,\beta^{\mathstrut}_n;
\alpha'_1,\beta'_1,\dots,\alpha'_n,\beta'_n
) =\sum_{j=1}^{n}(\alpha^{\phantom{'}}_j\beta'_j
-\alpha'_j\beta^{\phantom{'}}_j)\bmod 4,\\
\omega(\gamma_1,\gamma_2)=\tilde\omega(\gamma_1,\gamma_2)\bmod 2.
\end{multiline}
{\looseness=1\tolerance=400](/sites/default/files/tex_cache/a5a7a0b662ed4b22f87e6589f60b65b8.png)
Рассмотрим унитарные преобразования — действия унитарных операторов . Такое действие не меняется при домножении
на число, равное по модулю единице, поэтому группа унитарных преобразований имеет вид
. Отметим, что унитарные преобразования — это в точности автоморфизмы
-алгебры
.
Нас интересуют такие преобразования, для которых (
— некоторая функция). Оператор
эрмитов, поэтому
, то есть мы можем написать
![]() |
( 14.14) |
![\ESp_2(n)](/sites/default/files/tex_cache/9effc34269a79a11708e3251b007b7b6.png)
-
-операторы.
. В данном случае
.
- Оператор
. Непосредственно проверяется, что
. Таким образом, преобразование
.
Можно показать, что . Если учитывать фазовые множители, то получилась бы группа Клиффорда из
элементов.
Основные свойства введенного отображения таковы:
-
линейно на
.
-
сохраняет форму
, т.е.
.
Отображения с такими свойствами, как известно, называются симплектическими; они образуют симплектическую группу . Таким образом, определен гомоморфизм
.
Теорема 14.3. ,
(ядро состоит из
-операторов). Таким образом,
.
Для понимания доказательства желательно знать что-нибудь про расширения и когомологии групп [15]. Читателю, незнакомому с этими понятиями, будет предложен "обходной путь" (см. ниже).
Доказательство. Преобразование (14.14) должно быть автоморфизмом -алгебры
. Это имеет место тогда и только тогда, когда сохраняются правила умножения операторов
. Это означает, что функция
обладает указанными свойствами, а
удовлетворяет уравнению
![]() |
( 14.15) |
![w(x,y)=\frac{\tilde\omega(u(x),u(y))-\tilde\omega(x,y)}{2}\in\ZZ_2](/sites/default/files/tex_cache/2108a7cc1ea657a41812e4644e43a568.png)
В случае, когда — тождественное отображение, правая часть уравнения (14.15) равна нулю. Решениями являются все линейные функции. Это доказывает, что
.
Утверждение равносильно тому, что уравнение (14.15) имеет решение при любом
из
. Чтобы доказать это, заметим, что функция
обладает следующими свойствами:
![]() |
( 14.16) |
![]() |
( 14.17) |
![]() |
( 14.18) |
Формула (14.16) — это уравнение коцикла. Оно означает, что функция задает структуру группы на декартовом произведении множеств
согласно правилу
. Полученная группа (обозначим ее
) является расширением
посредством
, т.е. определен гомоморфизм
,
с ядром
.
Уравнение (14.17) означает, что группа абелева. Наконец, уравнение (14.18) означает, что все элементы группы
имеют порядок
(или
). Следовательно,
. Отсюда вытекает, что расширение
тривиально: существует гомоморфизм
, такой что
. Записывая этот гомоморфизм в виде
, получаем решение уравнения (14.15).
Существует другой, несколько кустарный способ доказать, что . Рассмотрим следующие симплектические преобразования:
,
и
. (Напомним, что
). Их образы при гомоморфизме
порождают всю группу
. (Намек на доказательство: любую пару векторов
, такую что
, можно перевести этими преобразованиями в
,
и
.) На самом деле, таким способом можно получить и другой интересный результат. Указанные элементы группы
порождают все матрицы Паули, т.е. ядро гомоморфизма
. Следовательно, верно такое утверждение.
Утверждение 14.5. Группа порождается элементами
![(H\cdot H^\dagger)[j],\ (K\cdot K^\dagger)[j],\ \left(\Lambda(\sx)\cdot\Lambda^\dagger(\sx)\right)[j,k].](/sites/default/files/tex_cache/b683c4a25cda50c3633aa07872e2b116.png)
Для примера посмотрим на действие оператора . По определению имеем
. Действие
на образующие алгебры
:
![\begin{align*} U\sz_1U^\dagger&=\sz_1,\\ U\sz_2U^\dagger&=\sz_1\sz_2,\\ U\sx_2U^\dagger&=\sx_2,\\ U\sx_1U^\dagger&=\sx_1\sx_2. \end{align*}](/sites/default/files/tex_cache/4128b7a5f7c934a7a3d7375738f4f153.png)
![\sz](/sites/default/files/tex_cache/af91870b0155b3d8d7b9757787bda734.png)
![U](/sites/default/files/tex_cache/4c614360da93c0a041b22e537de151eb.png)
![U](/sites/default/files/tex_cache/4c614360da93c0a041b22e537de151eb.png)
Дадим теперь определение симплектического кода. В пространстве мы выделим подпространство
условиями
(
будем называть проверочными операторами ). Проверочные операторы будут иметь вид
![]() |
( 14.19) |
![\{f_j\}](/sites/default/files/tex_cache/0d28e41b48dce1bfd285d460d95913db.png)
![X_j](/sites/default/files/tex_cache/9ad099394c6c5cea2a84519998301c9b.png)
![X_jX_k=(-1)^{\omega(f_j,f_k)}X_kX_j](/sites/default/files/tex_cache/310cfe8d8c83a872872a0198aa1b6f26.png)
![\omega(f_j,f_k) =0](/sites/default/files/tex_cache/16baeee509ce22ba180eb5b5cf9e85c9.png)
Определение 14.9. Симплектический квантовый код задается условиями (14.19), где все коммутируют.
Итак, симплектическому квантовому коду соответствует изотропное подпространство ; изотропность означает, что для любых
выполнено
. Поэтому размерность симплектического кода легко вычисляется.
Теорема 14.4. .
Лемма 14.6. Любой симплектический код приводится преобразованиями из к стандартному виду, когда проверочными операторами являются
, где
.
Доказательство. Подпространство можно перевести отображением из
в подпространство
, состоящее из векторов вида
, где
— произвольные. Согласно теореме 14.3, этому отображению соответствует некоторое унитарное преобразование
. Оно переводит кодовое подпространство в подпространство, заданное проверочными операторами
(
). Применяя дополнительное преобразование вида
, все знаки можно сделать плюсами.
Теперь посмотрим, какие ошибки способен обнаруживать симплектический код. Напомним, что код обнаруживает ошибки из , если
![]() |
( 14.20) |
![Z\double=\sigma(g)](/sites/default/files/tex_cache/bbb8a821e7dd45d0a9a6e67624a012b6.png)
![|g|\leq k](/sites/default/files/tex_cache/962ddb818e7dc527a193d1708f59e4d8.png)
Пусть , т.е.
для всех
, где
. Обозначим
, где
. Как мы сейчас увидим, вектор
является собственным для всех проверочных операторов
, поэтому он либо принадлежит кодовому подпространству
, либо ему
ортогонален. Подействуем проверочным оператором на
:
![\begin{align*}
X_j\ket\psi=X_jZ\ket\eta=
(-1)^{\omega(f_j,g)}ZX_j\ket\eta=(-1)^{\omega(f_j,g)}Z\ket\eta=\\=
(-1)^{\omega(f_j,g)}\ket\psi.
\end{align*}](/sites/default/files/tex_cache/c6a248aaa7db2007e29a7cd4f9c1f740.png)
Условие равносильно условию
для всех
. Такие
образуют линейное подпространство, которое мы обозначим
,
т.е.
.
Возможны следующие три случая:
-
. При этом
, поэтому
. Такую ошибку код обнаружит.
-
. Такая ошибка фактически неотличима от тождественного оператора, так как она не меняет кодового вектора
(с точностью до фазового множителя). Пусть
, тогда
, где
. В этом случае
— условие (14.20) выполнено.
-
. В этом случае (проверьте!)
не имеет вида
. Такую ошибку код не обнаруживает.
Этими рассуждениями доказана следующая теорема.
Теорема 14.5. Кодовое расстояние для симплектического кода
![d(\calM)=\min\{|f|: f\in F_+\setminus F\}.](/sites/default/files/tex_cache/06e00a8e21b584052bf9d6aebb454f35.png)
Заметим отличие от классических линейных кодов. Там кодовое расстояние определяется как наименьшая норма вектора из подпространства с выкинутым нулем. А у симплектических кодов нуль раздувается до подпространства.
Задача 14.4. Постройте симплектический квантовый код типа , исправляющий одну ошибку.
Задача 14.5. Докажите, что не существует квантового кода типа , исправляющего одну ошибку.