Классические и квантовые коды
Код Шора [40].
Опишем серию кодов со сколь угодно большим кодовым расстоянием. Они используют кодовых q-битов и кодируют один q-бит (т.е.
), а кодовое расстояние
равно
.
Поскольку количество кодовых q-битов — точный квадрат, удобно задавать базисные состояния в таком кодовом пространстве в виде матрицы. В этих обозначениях код Шора порождается векторами
![]() |
( 14.11) |
Для анализа кода Шора нам потребуется классификация операторов с помощью матриц Паули. Их, вообще говоря, три, но четвертой матрицей Паули будем считать единичную. Введем нестандартную индексацию матриц Паули:
![{\arraycolsep=0.5mm \tabcolsep=0.5mm
$$\def\arraystretch{0.9}
\begin{aligned}
&\sigma_{00}=
\hbox{$\leftp\begin{array}{*2 r}
1&0\\0&1
\end{array}\rightp$};
&&
\sigma_{01}=
\hbox{$\leftp\begin{array}{*2 r}
1&0\\0&-1
\end{array}\rightp$}=\sz;
\\
&\sigma_{10}=
\hbox{$\leftp\begin{array}{*2 r}
0&1\\1&0
\end{array}\rightp$}=\sx;\qquad
&&
\sigma_{11}=
\hbox{$\leftp\begin{array}{*2 r}
0&-\ii\\ \ii&0
\end{array}\rightp$}=\sy.
\end{aligned}
$$
}](/sites/default/files/tex_cache/db878abb8fad7bcf795a4daef9b3775b.png)
Матрицы Паули замечательны тем, что они эрмитовы и унитарные одновременно. Введенная индексация позволяет удобно записывать коммутационные соотношения между матрицами Паули
![]() |
( 14.12) |
![G=\ZZ_2\oplus\ZZ_2](/sites/default/files/tex_cache/9cf10717bf3a7188a4175de8e4a1999e.png)
![\FF_2](/sites/default/files/tex_cache/30b73bc7874c6898f0f751dd86f3c00a.png)
Матрицы Паули образуют базис пространства :
![\LL(\BB)=\CC(\sigma_{00})\oplus\CC(\sigma_{01})\oplus \CC(\sigma_{10})\oplus\CC(\sigma_{11}).](/sites/default/files/tex_cache/1b05ac33786dc155c10f93f8a1711fb7.png)
![\BB^{\otimes n}](/sites/default/files/tex_cache/20be50e2188154f33320b28e383416dd.png)
![4^n](/sites/default/files/tex_cache/0e727e07f1a22829d8c383d1dbf6cdba.png)
![\sigma(f)= \sigma(\alpha_1,\beta_1, \alpha_2,\beta_2, \dots, \alpha_n,\beta_n) \bydef \sigma_{\alpha_1,\beta_1}\otimes\sigma_{\alpha_2,\beta_2}\otimes \dots \otimes\sigma_{\alpha_n,\beta_n}.](/sites/default/files/tex_cache/77ca12f4f9d493327537fa3bd76f6e17.png)
![f\in G^n=\FF_2^{\,2n}](/sites/default/files/tex_cache/691d75c104f037e199e7fc09f5021dc9.png)
Используя коммутационные соотношения, можно написать, с точностью до общего фазового множителя, , где
называется классической ошибкой, а
— фазовой ошибкой.
Теперь проанализируем код Шора. В силу линейности определения достаточно ограничиться изучением базисных ошибок. Пусть ,
и
. Поскольку
(
— число ненулевых переменных в
), то
.
Достаточно показать, что в этом случае
![]() |
( 14.13) |
Рассмотрим два случая.
- Классическая ошибка отлична от 0. В этом случае каждое базисное состояниеизменяется под действием
в некоторых
битах,
. Поэтому в скалярных произведениях (14.13) все слагаемые будут равны 0.
-
. Ошибка чисто фазовая:
, где
. Обозначим
. Тогда (см.(14.11))
Нас интересуют значенияпо модулю 2. Возможны 3 случая:
-
.
-
.
-
.
Случай 2 в действительности реализоваться не может, так как
. В случае 3 все скалярные произведения обращаются в нуль,
. В случае 1
, т.е.
действует на кодовом подпространстве тождественным образом. (Такая ошибка, по существу, не является ошибкой, поскольку ничего не портит). Следовательно,
.
-
Итак, код Шора обнаруживает ошибку; кодовое расстояние равно~
.
Замечание. Код Шора основан на дуальности между классическими и фазовыми ошибками, которая выражается равенством . Внутри каждой строки
реализован обычный повторительный код, исправляющий классические ошибки. Строки организованы в аналогичный код, отличающийся заменой базиса в каждом q-бите:
. Этот код исправляет фазовые ошибки.