今日から学ぶサクッと量子コンピュータ講座【上級編】第9回:スタビライザーコードと表面符号
サマリ
量子コンピュータの最大の課題である「エラー」を修正する技術として、スタビライザーコードと表面符号があります。この記事では、これらの仕組みをわかりやすく解説します。実用的な量子コンピュータの実現に向けて、欠かせない知識です。
詳細
スタビライザーコードとは何か
量子コンピュータは非常にデリケートな存在です。周囲の環境からのノイズにより、計算途中でエラーが発生しやすいのです。このエラーを修正する方法の一つが「スタビライザーコード」です。
スタビライザーコードは、複数の物理量子ビットを組み合わせて、1つの「論理量子ビット」を作る手法です。イメージとしては、大事なデータを複数のコピーで保護するようなものです。1つのコピーが傷ついても、他のコピーから元の情報を復元できます。
具体的には、3個以上の物理量子ビットを使用します。例えば3量子ビットを使う場合、元の情報を3つに分散させておくのです。そうすることで、1つにエラーが発生しても、残りの2つから正しい情報を判定できるようになります。
スタビライザーの測定とシンドローム検出
スタビライザーコードの優れた点は、エラーを「直接測定しない」という工夫にあります。もし量子状態を直接測定してしまうと、測定行為そのものが量子状態を壊してしまいます。
代わりに、複数の補助量子ビットを使って間接的にエラー情報を抽出します。このエラー情報を「シンドローム」と呼びます。シンドロームは古典的な情報(0か1か)なので、自由に測定できます。
シンドロームから、どの量子ビットにどのようなエラーが起きたのかを特定し、その後で適切な修正操作を行うのです。この流れにより、論理量子ビットを保護しながらエラーを検出・修正できます。
表面符号が注目されている理由
多くの量子エラー訂正方式がある中で、最近特に注目されているのが「表面符号」です。その理由は実装のしやすさです。
表面符号では、物理量子ビットを2次元の格子状に配置します。各量子ビットは、隣接する量子ビットとだけ相互作用すればよいのです。この局所性が極めて重要です。
実験的に見ると、現在の量子デバイスは、近い距離にある量子ビット同士の相互作用制御が得意です。遠く離れた量子ビット同士の制御は技術的に難しいのです。表面符号なら、この制限をうまく回避できるため、実装が現実的なのです。
表面符号の基本構造
表面符号を具体的に説明しましょう。例えば、5×5の格子(25個の量子ビット)を想像してください。
この格子上で、データ量子ビット(情報を保持する)と測定量子ビット(エラー検出用)が交互に配置されます。各測定量子ビットは、周囲4個のデータ量子ビットと相互作用し、シンドロームを測定します。
重要な特徴として、表面符号は「符号距離」という概念があります。2018年時点での研究では、距離13の表面符号で、物理エラー率が1パーセント以下なら、論理エラー率を大幅に減らせることが示されました。
必要な物理量子ビット数
実用的な量子コンピュータを実現するには、どのくらいの物理量子ビットが必要でしょうか。
例えば、256個の論理量子ビットを保持したいとします。表面符号を使う場合、距離15程度の符号が必要となり、1個の論理量子ビットあたり約1000個の物理量子ビットが必要になります。つまり256×1000で、約25万個の物理量子ビットが必要になるのです。
これは現在の技術からすると、非常に大きな数です。しかし研究開発により、エラー率が改善されれば、必要な物理量子ビット数は減少します。この点が、今後の量子コンピュータ発展の鍵となります。
実装上の課題と解決への道
スタビライザーコードと表面符号にも課題があります。測定の精度、時間のかかる計算過程、複雑な制御システムの構築などです。
しかし研究機関や企業の努力により、徐々に改善されています。例えば、Google、IBMなどのメジャー企業が、独自の表面符号実装に取り組んでいます。
近い将来、これらの技術が成熟すれば、エラー訂正された「実用的な」量子コンピュータが実現する可能性は高いのです。
