Классические и квантовые коды
Торические коды.
Приведем важный пример симплектического кода. Он строится так. Пусть есть квадратная решетка размера на торе. Сопоставим каждому ее ребру по q-биту. Таким образом, всего имеется
q-битов. Проверочные операторы будут двух типов.
Тип I задается вершинами. Выберем некоторую вершину и сопоставим ей проверочный оператор

Тип II задается гранями. Выберем некоторую грань и сопоставим ей проверочный оператор

Операторы и
коммутируют, поскольку граница и звезда всегда пересекаются по четному числу ребер. (Перестановочность операторов одного типа очевидна.)
Хотя мы указали проверочных операторов (по одному на грань и на вершину), между ними есть соотношения. Произведение всех
-операторов, как и произведение всех
-операторов, равны тождественному. Можно показать, что других соотношений нет. Поэтому
, а
. Поэтому торический код позволяет закодировать два q-бита. Посмотрим, чему равно кодовое расстояние для торического кода.
Для торического кода имеются естественные разложения












Возьмем произвольный элемент ,
. Условия коммутирования запишутся следующим образом:






Итак, пространства ,
состоят из 1-циклов и 1-коциклов, а пространства
,
состоят из 1-границ и 1-кограниц. Следовательно, кодовое расстояние есть минимальная мощность (количество ненулевых коэффициентов) по циклам, не являющимся границами, и коциклам, не являющимся кограницами. Легко видеть, что этот минимум равен
(нужны либо цикл, либо разрез, не гомологичные 0). Это означает, что торический код исправляет
ошибок.
Будем обозначать коды описанного вида через .
Замечание. Торические коды являются очень важным примером, обладающим рядом замечательных свойств. В частности, это коды с локальными проверками. Последовательность кодов называется кодами с локальными проверками, если выполнены следующие условия:
- каждый проверочный оператор действует на ограниченное константой число q-битов;
- каждый q-бит входит в ограниченное константой число проверочных операторов;
- кодовое расстояние неограниченно возрастает.
Такие коды представляют интерес для задачи построения вычислительных схем, устойчивых к ошибкам. При исправлении ошибок могут происходить новые ошибки. Но для кодов с локальными проверками схемы исправления ошибок имеют фиксированную глубину, поэтому одна ошибка при работе такой схемы портит ограниченное число q-битов.
Процедура исправления ошибок.
Определение 14.6 и теорема 14.2 указывают только на принципиальную возможность восстановить исходное состояние системы после действия ошибки. На примере симплектических кодов покажем, как реализовать процедуру исправления ошибки.
Рассмотрим частный случай, к которому все сводится. Пусть имеются две ошибки, заданные операторами ,
. Тогда
(
). Назовем синдромом ошибки
вектор
(для
— аналогично).
Возьмем вектор . Обозначим
. Проверочные операторы действуют на
так:
. Поэтому, измеряя собственные числа
на состоянии
, можно измерить синдром.
Если кодовое расстояние равно , то выполнено










Теперь ясно, как нужно исправлять ошибку. После того как определен синдром, применим оператор, обратный к оператору восстановленной по синдрому ошибки. Получим состояние, отличающееся от исходного лишь на фазовый множитель. Вся процедура изображена на рис. 14.2.
Выше рассмотрен случай ошибки типа . На самом деле ошибка состоит в действии преобразования матриц плотности вида

Задача 14.6. Постройте полиномиальный алгоритм определения ошибки по синдрому для торического кода.