9量子ビットのShor符号
ここでは、前節で取り上げた2つの符号を組み合わせることで得られる量子誤り訂正符号、9量子ビットShor符号を扱います。2つの符号とは、1回のビット反転誤りを訂正できる量子ビット用3ビット繰り返し符号と、1回の位相反転誤りを訂正できるその変形版です。
符号の説明
9量子ビットShor符号は、前節の2つの符号を連結することで得られる符号です。 具体的には、まず1つの符号化を適用して1量子ビットを3量子ビットに符号化し、次にその3量子ビットのそれぞれに別の符号化を適用することで、合計9量子ビットを得ます。
より正確には、この場合はどちらの順序で2つの符号を適用しても構いませんが、ここでは最初に3ビット繰り返し符号の変形版(位相反転誤りを検出するもの)を適用し、次に得られた3つの量子ビットのそれぞれを、元の3ビット繰り返し符号(ビット反転誤りを検出するもの)を使って独立に符号化することにします。 以下はこの符号化の回路図表現です。
図が示すように、Shor符号の9量子ビットは3量子ビットずつ3つのブロックに分けて考えます。各ブロックは2番目の符号化ステップ(通常の3ビット繰り返し符号)から得られます。 ここで3回独立に適用される通常の3ビット繰り返し符号は内符号と呼ばれ、一方で最初の符号化ステップで使われる符号、すなわち位相反転誤りを検出する3ビット繰り返し符号の変形版が外符号と呼ばれます。
元の量子ビットの2つの標準基底状態がどのように符号化されるかを記述することで、符号を別の形で指定することもできます。
これが分かれば、任意の量子ビット状態ベクトルの符号化を線形性によって決定できます。
ビット反転誤りと位相反転誤りの訂正
誤りとCNOTゲート
9量子ビットShor符号やその他の符号に対して、誤りと誤りが量子ビットの符号化にどのような影響を与えるかを分析するには、これらの誤りとCNOTゲートの間にあるいくつかの単純な関係を観察しておくことが役立ちます。 9量子ビットShor符号の分析を始める前に、ここで一度立ち止まってこれを確認しておきましょう。
以下の回路図は、ゲートとCNOTゲートの間の3つの基本的な関係を示しています。 具体的には、CNOTの前にターゲット量子ビットにゲートを適用することは、順序を入れ替えてCNOTを先に実行することと等価です。一方、CNOTの前に制御量子ビットにゲートを適用することは、CNOT後に両方の量子ビットにゲートを適用することと等価です。 最後に、CNOTの前に両方の量子ビットにゲートを適用することは、先にCNOTを実行してから制御量子ビットにゲートを適用することと等価です。 これらの関係は、必要な行列の掛け算を実行するか、標準基底状態に対する回路の効果を計算することで確認できます。
ゲートについても状況は似ていますが、制御量子ビットとターゲット量子ビットの役割が入れ替わります。 特に、以下の量子回路が示す3つの関係が成り立ちます。
ビット反転誤りの訂正
次に、9量子ビットShor符号を使って誤りを検出・訂正する方法を考えます。まず、以降では簡潔さのために誤りと呼ぶビット反転誤りから始めます。
誤りを検出・訂正するには、符号化の3つのブロックそれぞれを独立に扱えばよいのです。 各ブロックは3ビット繰り返し符号を使った量子ビットの符号化であり、誤りに対して保護されています。そのため、前節で説明したシンドローム測定と誤り訂正を各ブロックに対して実行することで、1ブロックあたり最大1回の誤りを検出・訂正できます。 特に、9量子ビットの符号化上に誤りが最大1回しか発生しない場合、この手順によってその誤りは検出・訂正されます。
簡潔に言えば、この符号においてビット反転誤りの訂正は単純な問題です。内符号がビット反転誤りを訂正するからです。
位相反転誤りの訂正
次に、位相反転誤り、簡潔に言えば誤りを考えます。 今度は、外符号が誤りを検出する符号であるにもかかわらず、内符号がある意味で「邪魔をして」おり、これらの誤りの検出と訂正がやや難しくなっています。そのため、何をすべきか必ずしも明確ではありません。
次の図に示すように、Shor符号の9量子ビットのうちの1つに誤りが発生したとします。
3ビット繰り返し符号を使用している際に誤りが発生した場合に何が起こるかは、すでに観察しています——それは符号化前に誤りが発生した場合と等価です。 9量子ビットShor符号の文脈では、これはブロック内のどの量子ビットに誤りが発生しても常に同じ効果をもたらすことを意味します。その効果は、内符号が適用される前の対応する量子ビットに誤りが発生した場合と等価です。
例えば、上の回路図は以下の図と等価です。 これは、上述したとCNOTゲートの関係を使って推論するか、任意の量子ビット状態に対して回路を評価することで確認できます。
これは、誤りを検出・訂正するための1つの選択肢を示唆しています。内符号を復号して、外符号に使われる3量子ビットと6つの初期化済みワーク用量子ビットを残します。 その後、外符号の3量子ビットで誤りを確認し、最後に内符号で再符号化することで、Shor符号による9量子ビット符号化に戻ります。 誤りを検出した場合は、内符号で再符号化する前に訂正するか、再符号化後にそのブロックの任意の量子ビットにゲートを適用して訂正することができます。
以下は、符号化回路と上述の誤り、および今述べたステップ(ただし実際の訂正ステップは除く)を含む回路図です。
この特定の例では、シンドローム測定の結果はとなり、誤りが中央ブロックのいずれかの量子ビットで発生したことが特定されます。
再符号化後に誤りを訂正することの利点の1つは、上の回路を簡略化できることです。 以下の回路は等価ですが、CNOTゲートが4つ少なくて済みます。
ここでも、シンドロームはどの量子ビットが誤りの影響を受けたかを示すのではなく、どのブロックが誤りを受けたかを示します。ブロック内のどの量子ビットが影響を受けても、効果は同じです。 その後、影響を受けたブロックの3量子ビットのいずれかにゲートを適用することで誤りを訂正できます。
余談として、ここでは量子誤り訂正符号における縮退の例が見られます。縮退とは、一部の誤り(この場合は誤り)を一意に特定しなくても訂正できることを指します。
ビット反転誤りと位相反転誤りの同時発生
ここまでで、9量子ビットShor符号を使って誤りと誤りの両方を検出・訂正する方法を見てきました。特に、最大1回の誤りまたは最大1回の誤りを検出・訂正できることを示しました。 では、同じ量子ビットで発生する可能性がある場合も含めて、ビット反転誤りと位相反転誤りの両方が発生するとしましょう。 実のところ、この状況ではすでに述べたことと異なる操作は何も必要ありません——この符号は、追加の変更なしに最大1回の誤りと1回の誤りを同時に検出・訂正できます。
より具体的には、誤りは通常の3ビット繰り返し符号のシンドローム測定を適用することで検出されます。この測定は3量子ビットからなる3つのブロックそれぞれに対して個別に実行されます。誤りは上述の手順によって検出されます。これは内符号を復号し、位相反転用の変形3ビット繰り返し符号のシンドローム測定を実行し、その後再符号化するという手順と等価です。 これら2つの誤り検出ステップ——および対応する訂正——は完全に独立して実行でき、どちらの順序で実行しても構いません。
なぜそうなのかを理解するために、次の回路図に示す例を考えます。中央ブロックの最下位量子ビットに誤りと誤りの両方が発生しています。
まず、誤りの順序は重要ではないことを確認しましょう。誤りと誤りの位置を入れ替えても等価な回路になります。 明確にしておくと、とは可換ではなく、反可換です:
これは、次の回路が上の回路と大域位相因子を除いて等価であることを意味します。
ここで、前と同様に誤りを移動させて別の等価な回路を得ることができます。
この時点で、誤りを検出・訂正する手順を先に実行すると誤りが訂正され、その後誤りを検出・訂正する手順を実行することで、前と同様に誤りを取り除けることが明らかです。
あるいは、誤りを検出・訂正する手順を先に実行することもできます。 この手順が1つ以上の誤りが存在する場合でも期待通りに機能する理由は、符号化に使われる9量子ビットのいずれかへのゲートが、誤りのシンドロームを測定するための簡略化回路内のすべてのゲートと可換であるという事実から導かれます。 したがって、このシンドローム測定はどのブロックが誤りの影響を受けたかを正しく特定します。 あるブロックへの誤りは、誤りも発生していても、そのブロックのいずれかの量子ビットにゲートを適用することで訂正されるという事実は、大域位相を除いて等価な回路を与えるゲートとゲートの順序に関する上述の議論と同じ論拠から導かれます。
以上から、9量子ビットShor符号は、この符号に使われる9量子ビットのいずれか1つについて、誤り、誤り、またはその両方を訂正できることが分かります。 実際には、それ以上の誤りも訂正でき、複数の誤り(それぞれ異なるブロックに属する限り)や複数の誤り(最大1つのブロックで奇数個の誤りが発生する限り)を訂正することも可能です——ただし、このレッスンの目的において最も重要なのは、どの1量子ビットでも誤り、誤り、またはその両方を訂正できるということです。
ランダム誤りに対する誤り低減
レッスンの最後のセクション(任意の量子誤りに関するもの)に移る前に、パウリ行列で表される誤りが量子ビットにランダムに発生する場合の9量子ビットShor符号の性能について簡単に考えてみましょう。
より具体的には、誤りが量子ビットに独立に発生する単純なノイズモデルを考えます。各量子ビットが確率で誤りを経験し、異なる量子ビット間の誤りに相関がないモデルで、古典ビットの二元対称通信路に似ています。 、、誤りの発生確率をそれぞれ異なる値に設定することもできますが、できる限り単純に保つために、9量子ビットShor符号にとって最悪のケース、すなわち影響を受ける各量子ビットに誤りが発生する場合を考えます。 ちなみに、誤りはであることから、同一量子ビットで誤りと誤りの両方が発生した場合と(無関係な大域位相因子を除いて)等価です。 これが、これまで誤りを一見無視していた理由を説明しています。
さて、ある特定の状態にある量子ビットを誤りから保護したいとします。9量子ビットShor符号を使うという選択肢を考えます。 自然な疑問として、「使うべきか?」があります。
答えは必ずしも「はい」ではありません。 ノイズが多すぎる場合、すなわちが大きすぎる場合、Shor符号を使うことがかえって状況を悪化させる可能性があります——ちょうどが2分の1より大きい場合に3ビット繰り返し符号が符号なしより悪くなるのと同様です。 しかし、が十分に小さければ、「はい」使うべきです。符号化された状態が破損する可能性を低下させるからです。 なぜそうなのか、そしてこの符号にとってが大きすぎる・十分に小さいとはどういう意味かを見てみましょう。
Shor符号は1量子ビット上の任意のパウリ誤り(もちろん誤りも含む)を訂正しますが、2つ以上の誤りは正しく訂正できません。 明確にしておくと、ここでは前節で説明した誤りと誤りの訂正を使用していると仮定しています。 (もちろん、誤りだけを心配すればよいと事前に分かっていれば、当然ながら異なる訂正方法を選ぶでしょう——しかしそれはノイズモデルを「ズル」することになります。また、そうしたところで、2つ以上の量子ビットが誤りの影響を受けるように異なるパウリ誤りを選ぶことで、この新しい訂正選択を失敗させるモデルを作ることが常にできます。)
したがって、符号は9量子ビットのうち最大1つだけが誤りの影響を受ける限りを保護します。それが起こる確率は
です。
それ以外の場合、確率
で符号はの保護に失敗します。
具体的には、この文脈でそれが意味するのは、大域位相を除いて、非恒等パウリ演算が量子ビット(論理量子ビットとして)に適用されるということです。 つまり、レッスンで前述したようにShor符号の誤りと誤りが検出・訂正された場合、の元の状態に非恒等パウリ演算を大域位相を除いて適用した状態の符号化と等価な状態の符号化が残ります。 これをより簡潔に言えば、論理誤りが発生したということです。 それがの元の状態に影響を与えるかどうかは一概には言えません——言い換えれば、9つの物理量子ビットで符号化した論理量子ビットに影響があるかどうかは状況次第です——しかし、この分析では、このような事象を失敗とみなします。
一方、符号を使わない場合、唯一の量子ビットが確率で同様の運命(非恒等パウリ演算を受けること)に見舞われます。 最初の確率が2番目より小さいときに符号が役立ちます:
以下のグラフは、が非常に小さい値の範囲で、符号が優位性をもたらすことを示しており、損益分岐点は約で発生します。
がこの損益分岐点より小さければ符号が役立ちます。損益分岐点では確率が等しいため、符号を使っても8量子ビットと時間を無駄にするだけです。損益分岐点を超えると、この符号はの論理誤りの可能性を増加させているため、絶対に使うべきではありません。
3.25%程度という値は、古典情報における3ビット繰り返し符号の対応する損益分岐点がであることと比べると、あまり良い損益分岐点には見えないかもしれません。 この差は、量子情報が古典情報よりも繊細で保護が難しいという事実に主として起因しています。 また——9量子ビットShor符号が世界初の量子誤り訂正符号として画期的な発見であることを認めつつも——実用的な観点からは、それがそれほど優れた符号ではないことも認めなければなりません。