GKP符号の基礎

GKP符号 について整理します。
(私自身学びながら書いているため、間違いなどありましたら申し訳ないです。指摘してください。)

GKP符号[1]とは、Gottesman, Kitaev, Preskill が提案した誤り訂正符号です。

"Encoding a qubit in an oscillator"というタイトルの通り、調和振動子(Harmonic oscillator)の直交位相状態を、誤り訂正によって保護可能な論理量子ビットにエンコードします。

古典(非量子)的な情報通信では、実際には連続的な値をとる電圧値などをHighとLowで離散化し、通信路に必ず発生する外乱(ノイズ等)への耐性を持たせます。
さらに情報を正しく伝えるためにエンコードにおいて情報に冗長性を持たせ、誤り訂正を行います。
最も単純な例として、論理bit1つに対し物理bitを3つ用意してみましょう。
仮に通信路で1つの物理bitが意図せず反転しても、残り2つの物理qubitを確認することで多数決により元の信号が復元できます。

GKP符号でも同様に、連続量量子状態の離散化と冗長性の付与を行っています。
この方式の面白い点は、冗長性のリソースとして量子調和振動子が持つより高いエネルギー準位を用いていることです。これにより、二準位系量子ビットのみで構築した表面符号などと比べ、誤り耐性量子計算に必要な量子ビット数を削減することが期待されます。

すなわち、誤り訂正においてよく議論される「1論理量子ビットを構成するために大量の物理量子ビットが必要」という問題を緩和できる可能性があります。
NISQの探索から誤り訂正量子計算実現への回帰+エンジニアリングの発展により、最近GKP符号への注目は少しずつ増しているように思います。

### 直交位相状態
直交位相状態のおさらいです。
位置状態 $|q\rangle$, 運動量状態 $|p\rangle$ は、位置演算子 $\hat{q}$, 運動量演算子 $\hat{p}$ と共に次のように書けます。

```math
\hat{q}=\frac{1}{\sqrt{2}}(\hat{a}+\hat{a}^\dagger) \\
\hat{p}=\frac{i}{\sqrt{2}}(\hat{a}-\hat{a}^\dagger)
```

$|q\rangle$ と $|p\rangle$ の間には交換関係 $[\hat{q}, \hat{p}] = i$ が成立します。
また、以下のようにフーリエ変換の関係にあります。

```math
|q\rangle = \int \frac{dp}{\sqrt{2\pi}} e^{-ipq} |p\rangle
```

### シフト演算子とスタビライザ

ここで、位置状態を一定量だけシフトさせる演算子 $e^{-iu\hat{p}}$ を考えることが出来ます。
やや天下り的ですが、以下のように演算子をテイラー展開することで確認できます。

```math
\begin{align}
e^{-iu\hat{p}}|q\rangle &= \sum_n \frac{1}{n!}(-iu\hat{p})^n \int \frac{dp}{\sqrt{2\pi}} e^{-ipq} |p\rangle \\
&=  \int \frac{dp}{\sqrt{2\pi}} e^{-ipq} \biggl(\sum_n \frac{1}{n!}(-iu\hat{p})^n \biggr) |p\rangle \\
&=\int \frac{dp}{\sqrt{2\pi}} e^{-ipq} e^{-iup} |p\rangle \\
&=\int \frac{dp}{\sqrt{2\pi}} e^{-ip(q+u)} |p\rangle
 \\
&= |q+u\rangle
\end{align}
```

同様に、$e^{iv\hat{q}}|p\rangle = |p+v\rangle$ です。

ここで、位置と運動量をそれぞれ $2\sqrt{\pi}$ シフトさせる演算子を $\hat{S}_q=e^{-i2\sqrt{\pi}\hat{p}}$, $\hat{S}_p=e^{i2\sqrt{\pi}\hat{q}}$ としましょう。
この2つは可換であり、GKP符号におけるスタビライザになります。

$\hat{S}_q, \hat{S}_p$ は、次のような固有状態を考えることができます。

```math
\sum^{\infty}_{n=-\infty} \delta(q-n\sqrt{\pi})|q\rangle = \sum^{\infty}_{n=-\infty} |q=n\sqrt{\pi}\rangle\\
\sum^{\infty}_{n=-\infty} \delta(p-n\sqrt{\pi})|p\rangle = \sum^{\infty}_{n=-\infty} |p=n\sqrt{\pi}\rangle
```

これらは、直交位相空間上で離散的な櫛、あるいは格子点のような分布となります。
$\sum^{\infty}_{n=-\infty} |q=n\sqrt{\pi}\rangle$ に $\hat{S}_q$ を作用させた場合は、$q$ が $2\sqrt{\pi}$ だけシフトしますが、無限和をとっているため元の状態に戻ってきます。$\hat{S}_p$ を作用させた場合は、指数関数のテイラー展開と $\hat{q}|q\rangle = q|q\rangle$ の関係からやはり固有状態であることが言えます。

### 論理量子ビットとパウリ演算子

この固有状態を2つの部分空間に分けることで、論理量子ビットの状態 $|0\rangle_L$ と $|1\rangle_L$ を次のように定義します。

```math
|0\rangle_L = \sum^{\infty}_{n=-\infty} \delta(q-2n\sqrt{\pi})|q\rangle = \sum^{\infty}_{n=-\infty} |q=2n\sqrt{\pi}\rangle \\
|1\rangle_L = \sum^{\infty}_{n=-\infty} \delta(q-(2n+1)\sqrt{\pi})|q\rangle = \sum^{\infty}_{n=-\infty} |q=(2n+1)\sqrt{\pi}\rangle
```

これも $\hat{S}_q, \hat{S}_p$ の固有状態で、固有値は $+1$ です。
この2状態は、$\sqrt{\hat{S}_q}=e^{-i\sqrt{\pi}\hat{p}}$ ($\sqrt{\pi}$シフト)によって相互に行き来できます。よって、$\sqrt{\hat{S}_q}=\hat{X}_L$ を論理パウリ$\hat{X}$演算子とします。

同様に $p$ 基底を考えることで、論理 $|\pm \rangle$ も次のように定義できます。

```math
|+\rangle_L = \sum^{\infty}_{n=-\infty} \delta(p-2n\sqrt{\pi})|p\rangle = \sum^{\infty}_{n=-\infty} |p=2n\sqrt{\pi}\rangle \\
|-\rangle_L = \sum^{\infty}_{n=-\infty} \delta(p-(2n+1)\sqrt{\pi})|p\rangle = \sum^{\infty}_{n=-\infty} |p=(2n+1)\sqrt{\pi}\rangle
```

すると同様に $\sqrt{\hat{S}_p}=\hat{Z}_L$ として論理パウリ$\hat{Z}$演算子を導入できます。
論理パウリ$\hat{Y}$は $\hat{Y}_L=i\hat{X}_L \hat{Z}_L$ なので、これでGKP符号における計算基底、$|\pm\rangle$基底、パウリ演算子を表現出来たことになります。

### 論理CNOT

最後に論理CNOTを考えましょう。
論理CNOTは、二準位系のスタビライザ形式との対応で考えることが出来ます。
スタビライザ形式についての詳細な解説は優れたものが多くあるので([[2]](https://qiita.com/SamN/items/db915e9842b81192286d)など)、ここでは理解のための最小限の内容をかいつまみます。

二準位系のCNOT($CX$)は例えば $CX|10\rangle=|11\rangle$ という変換を行いますが、これはスタビライザ形式を用いて次のように書くことが出来ます。

```math
\begin{align}
CX|10\rangle &= CX(\hat{X}_1 \hat{I}_2)|00\rangle \\
&= CX(\hat{X}_1 \hat{I}_2)CX^{\dagger}CX|00\rangle \\
&= CX(\hat{X}_1 \hat{I}_2)CX^{\dagger}CX|00\rangle \\
&= (\hat{X}_1 \hat{X}_2) CX|00\rangle \\
&= |11\rangle
\end{align}
```

添字$1$を制御量子ビット、添字$2$をターゲット量子ビットとしています。
このように、$CX$ をパウリ積の変換作用として記述する方法が一般的です。

$CX$ による変換をまとめると以下のようになります。

```math
\begin{align}
&\hat{X}_1 \to \hat{X}_1 \hat{X}_2\ \ & \hat{Z}_1 &\to \hat{Z}_1 \\
&\hat{X}_2 \to \hat{X}_2\ \ & \hat{Z}_2 &\to \hat{Z}_1 \hat{Z}_2 \\
\end{align}
```

これをGKP符号における論理 $\hat{X}$ ($\hat{X}_L=e^{-i\sqrt{\pi}\hat{p}}$)、論理 $\hat{Z}$ ($\hat{Z}_L=e^{i\sqrt{\pi}\hat{q}}$) に置き換えます。

結論から言うと、($\hat{q}, \hat{p}$) において次のような変換になります。

```math
\begin{align}
&\hat{q}_1 \to \hat{q}_1\ \ & \hat{p}_1 &\to \hat{p}_1 + \hat{p}_2 \\
&\hat{q}_2 \to \hat{q}_1 - \hat{q}_2\ \ & \hat{p}_2 &\to \hat{p}_2 \\
\end{align}
```

このように定義すると、$\hat{X}_L$ と $\hat{Z}_L$ について次のようになります。
(※ $\pm$ が逆の定義もよく見かける、というかおそらくそちらの方が古いのですが、以下の式では $\hat{X}_L \leftrightarrow \hat{X}_L^{-1}$、$\hat{Z}_L \leftrightarrow \hat{Z}_L^{-1}$ の置き換えとなり論理としては差がないので、どちらで定義しても問題ないのではと思っています。)

```math
\begin{align}
&\ \ \ \ \ CX(\hat{X}_L \otimes \hat{I})CX^{\dagger} \\
&= CX(e^{-i\sqrt{\pi} \hat{p}_1})CX^{\dagger} \\
&=e^{-i\sqrt{\pi} (\hat{p}_1 + \hat{p}_2)} \\
&=e^{-i\sqrt{\pi} \hat{p}_1} e^{-i\sqrt{\pi} \hat{p}_2} \\
&= \hat{X}_L \otimes \hat{X}_L
\end{align}
```

```math
\begin{align}
&\ \ \ \ \ CX(\hat{I} \otimes \hat{Z}_L)CX^{\dagger} \\
&= CX(e^{i\sqrt{\pi} \hat{q}_2})CX^{\dagger} \\
&=e^{-i\sqrt{\pi} (\hat{q}_2 - \hat{q}_1)} \\
&=e^{-i\sqrt{\pi} \hat{q}_1} e^{i\sqrt{\pi} \hat{q}_2} \\
&= \hat{Z}_L^{-1} \otimes \hat{Z}_L
\end{align}
```

(他、省略)

二準位系CNOTにはない inverse がありますが、パウリ演算子 $\hat{P}$ について $\hat{P}\hat{P}=\hat{I}$ という関係から等価と言ってしまいたいと思います。

### まとめ
以上では、直交位相成分からスタートしてGKP符号における $|0\rangle_L, |1\rangle_L$ と論理パウリ演算子、および論理CNOTを確認出来ました。
他の Clifford や non-Clifford、誤り訂正の方法なども少しずつ取り上げられたらと思います。

### 参考文献
[1] Daniel Gottesman, Alexei Kitaev, and John Preskill, Phys. Rev. A 64, 012310 ([preprint](https://arxiv.org/abs/quant-ph/0008040))
[2] https://qiita.com/SamN/items/db915e9842b81192286d
[3] [arXiv:1908.00147 [quant-ph]](http://arxiv.org/abs/1908.00147)
[4] Samuel L. Braunstein and Peter van Loock, Rev. Mod. Phys. 77, 513 ([preprint](http://arxiv.org/abs/quant-ph/0410100))