はじめに
量子コンピュータは様々な問題への応用が期待されているが、その実現には未だ多くの課題がある。その一つが量子コンピュータに生じるエラーである。量子コンピュータでは量子重ね合わせや量子もつれといった、量子力学に特有の性質を用いて高速な計算を行う。しかし、これらの性質はエラーに非常に弱い上、エラーの発生確率も古典コンピュータに比べて非常に高いため、発生したエラーを訂正できるような技術が求められる。エラーに対処しつつ量子計算を行う枠組みが、今回紹介する量子誤り訂正符号である。量子誤り訂正では複数の量子ビットを用いて冗長化を行うことで、エラーへの耐性を高めることができる。本稿では量子誤り訂正の概要と、有力視されている量子誤り訂正符号に関して紹介する。
量子誤り訂正符号
量子誤り訂正の話に入る前に、感覚を掴むために古典コンピュータにおける誤り訂正から始めたい。ここでは簡単に、ビットの値を反転させるようなエラーから1ビットの情報を保護する場合を考える。この時、一番簡単な対処法は、0→000, 1→111のように繰り返された3ビットを用いた冗長化である。例えばビット列000のうち2番目のビットにエラーが発生するとビット列は010となるが、3ビットで多数決を行うことで、保護したかったビット値(以降、論理ビット値と呼ぶ)である0を得ることができる。正しい論理ビット値が得られれば、その値からビット列の値を初期化することで、エラーを訂正することができる。このような冗長化の方法を誤り訂正符号化と呼ぶ。
量子コンピュータではビットの代わりに量子ビットが情報の最小単位となっているが、誤り訂正の基本的な考え方は古典誤り訂正の場合と同じであり、複数量子ビットを用いた符号化により論理量子ビットを構成する。一方で、量子ビットの場合には量子重ね合わせ状態に起因してエラー種類が多様化することや、測定を行わないと値を読み出すことができない性質から、符号化や誤り訂正の具体的な手法は古典誤り訂正の場合と異なるものとなる。
例として、先程紹介した3ビット繰り返し符号を拡張し、3量子ビットの繰り返し符号を考える。古典の場合と同様に多数決を行おうとすると、量子ビットの値を読み出す必要があるが、測定は一般に量子状態を変化させてしまうため、測定の行い方も明示的に考える必要がある。この場合では1番目と2番目、2番目と3番目の量子ビットの値を同時に読み取るような測定を行うと、二つの量子ビットの値が異なる場合にビット反転エラーが発生したことがわかる。例えば前者の測定でのみエラーを検知した場合には、1番目の量子ビットにエラーが発生したと推測できるため、推測されたエラー箇所の訂正を行うことで誤り訂正を実行できる。
また、上の例では1量子ビットのビット反転エラーを訂正することができたが、量子ビットでは量子重ね合わせが許されるため、重ね合わせ係数へのエラーである位相反転エラーなど、古典コンピュータに比べ多様な種類のエラーが考えられる。実際、先程の3量子ビット繰り返し符号では位相反転エラーは訂正することができず、1量子ビットに生じる任意のエラーを訂正するには最低でも5量子ビットを用いた符号化を行う必要がある。
量子誤り訂正符号の種類
大規模な量子コンピュータを実現する上で量子誤り訂正符号の実現が望まれるが、現在の実装の仕様上、次の三点が量子誤り訂正符号実現の課題となる。
- 離れた量子ビット間で量子もつれを生成することが難しい
- 使用できる量子ビット数が少ない
- 誤り検出のための測定や誤り訂正自体がエラーを誘起する場合がある
これらの課題に対処できる量子誤り訂正符号として、表面符号、量子LDPC(Low-Density Parity-Check)符号、自律的な量子誤り訂正符号がそれぞれ精力的に研究されている。本節ではこれらの符号について紹介する。
表面符号は隣接した量子ビット間の量子もつれのみを必要とする量子誤り訂正符号である。表面符号では量子ビットは二次元格子上に配置され、隣接した量子ビット間の量子もつれだけで符号化・誤り訂正を行うことができる。また、量子誤り訂正符号ではエラー率がある閾値以下になると、繰り返し符号化を行うことで論理量子ビットに生じるエラー率を任意に小さくできることが知られている。表面符号は他符号に比較して高い、現在の実験で生じるエラー率と同程度の値を閾値として持つ。このような利点から、表面符号は実現性の高い量子誤り訂正符号と考えられており、Google1等により実証実験が行われている。
一方で、表面符号で論理量子ビットに生じるエラー率を小さくしようとすると、実装に必要な量子ビット数が多くなってしまう欠点がある。この欠点を解消する符号が量子LDPC符号2である。LDPC符号自体は古典誤り訂正で考えられた符号であり、現在も無線LAN等の誤り訂正に用いられる高性能な符号である。量子LDPC符号は古典LDPC符号を基に構成された量子誤り訂正符号であり、一般的な量子誤り訂正符号に比べてエラー訂正を効率的に行うことができる他、表面符号より少ない量子ビット数で同程度のエラー耐性を得ることができる。一方で量子LDPC符号は長距離の量子もつれを必要とし、実装のハードルが高い。
最後に、これらの符号とは異なるアプローチの符号である自律的な量子誤り訂正符号について紹介する。一般的な量子誤り訂正符号では測定を行うことでエラーを読み出し、測定値を用いたフィードバック制御を量子ビットに行うことでエラーを訂正する。しかし、誤り検出のための測定や誤り訂正自体も量子コンピュータの動作と同様、完璧に動作させることはできないため、エラーが発生してしまう場合がある。自律的な量子誤り訂正符号は、フィードバック制御を行うことなくエラーを訂正する符号であり、フィードバック制御の代わりにエネルギー散逸を用いることで、エラーの訂正された状態に自律的に収束させることができる。自律的な量子誤り訂正符号は光学系などでよく研究されており、実験的な実証も行われている3。
まとめ
本稿では大規模な量子コンピュータの実現に不可欠な技術である、量子誤り訂正符号に関して解説した。本稿で紹介した符号を含む様々な量子誤り訂正符号が理論的に提案されている他、その実験的な実現も研究が進んでおり、誤り耐性のある量子コンピュータの実現に向けて着実に進歩している。BTCリサーチセンターでは特に自律的な量子誤り訂正符号に着目して調査・研究を行っており、大規模量子コンピュータの早期実現に向けて取り組んでいる。