誤り伝播の制御
耐障害性量子計算は、誤りと誤り訂正の競争に例えることができます。 誤りの数が十分に少なければ、誤り訂正はそれらを正常に訂正できますが、誤りが多すぎると誤り訂正は失敗します。
このため、回路の耐障害性実装において量子計算を実行する方法には、誤り伝播を制御するための十分な注意が払われなければなりません。 つまり、1つの量子ビットにおける誤りが、量子回路内のゲートの作用を通じて複数の量子ビットに伝播する可能性があり、誤りの数が劇的に増加する恐れがあります。 誤り伝播を制御できなければ、誤り訂正の取り組みは瞬く間に誤りに圧倒されてしまうため、これは最重要事項です。 一方、誤りの伝播を制御できれば、誤り訂正は誤りに追いつく可能性が高まり、量子計算が意図した通りに機能するのに十分な速さで誤りを訂正できるようになります。
この問題に関する技術的な議論の出発点は、2量子ビットゲート(より一般的には多量子ビットゲート)が、完全に動作している場合でも誤りを伝播させ得るという認識です。 例えば、制御NOTゲートを考え、制御NOTゲートが実行される直前に制御量子ビットに 誤りが発生したとします。 「量子誤りの訂正」レッスンですでに観察したように、これは制御NOTが実行された後、両方の量子ビットに 誤りが発生することと等価です。また、制御NOTゲートが実行される前に、制御量子ビットではなくターゲット量子ビットに 誤りが作用する場合も同様の状況になります。
これは誤りの伝播です。制御NOTゲートの前に または 誤りが不運な位置に発生すると、制御NOTゲート後には事実上2つの誤りに変わってしまうからです。 これは制御NOTゲートが完全に動作している場合でも起こりますし、特定の制御NOTゲート自体にノイズがある場合は、2つの量子ビットに相関した誤りが生成される可能性もあることも忘れてはなりません。
懸念をさらに高めるのは、後続の2量子ビットゲートがこれらの誤りをさらに伝播させる可能性があることで、それを次の図が示しています。
ある意味、これを完全に回避することはできません。多量子ビットゲートを使用する限り、誤り伝播の可能性は常に存在します。 しかし、以下のサブセクションで説明するように、この影響を限定するための手段を講じることができ、伝播した誤りを管理することが可能になります。
横断的ゲート実装
耐障害性量子回路における誤り伝播を軽減するための最も単純な方法は、ゲートを横断的(transversally)に実装することです。これは、ある単純な形式を持つガジェットを構築することを意味します。 具体的には、ガジェットは演算のテンソル積(言い換えれば、深さ1の量子回路)でなければならず、各演算はそれが触れる各コードブロック内の単一の量子ビット位置にのみ作用できます。 これはいくつかの例を通じて説明するのが最もわかりやすいでしょう。
横断的ゲート実装の例
次の図を見てみましょう。CNOTゲートの横断的実装を示しています。(CNOTを量子ビットごとに実行するこの特定の実装は、CSSコードにのみ機能しますが、実際にはすべてのCSSコードで機能します。)
この図には2つのコードブロックがあり、それぞれ5つの量子ビットから構成されているものとして示されています(実際にはもっと多い場合もあります)。 右側の回路は深さ1であり、各CNOTゲートは各ブロック内の単一の量子ビット位置に作用します。 最初のCNOTの制御とターゲットはどちらも最上位の量子ビット(Qiskitの番号付け規則では量子ビット0)であり、 2番目のCNOTの制御とターゲットはどちらも上から2番目の量子ビット(量子ビット1)であり、以下同様です。 したがって、これは横断的なガジェットです。
2番目の例として、実際にはクラスの例ですが、任意のパウリゲートを考えてみましょう。 パウリゲートは、パウリ演算から構成されるガジェットを構築することで、任意のスタビライザーコードに対して常に横断的に実装できます。 特に、スタビライザーコードでエンコードされた論理量子ビットに対するすべてのパウリ演算は、エンコードに使用される物理量子ビット上の適切なパウリ演算を選択することで横断的に実装できます。 これは、「スタビライザー形式」レッスンで触れた事実と一致しています。スタビライザーコードのすべてのスタビライザー生成元と可換なパウリ演算は、グローバル位相を除いて、そのコードによってエンコードされた量子ビット(または量子ビット群)に対するパウリ演算のように振る舞います。
具体的な例として、 量子ビットのShorコードを考えてみましょう。標準基底状態は次のようにエンコードできます。
このコードでエンコードされた論理量子ビットに対する ゲートは、 量子ビットのパウリ演算
によって横断的に実装できます。一方、論理量子ビットに対する ゲートは、 量子ビットのパウリ演算
によって横断的に実装できます。
これらのパウリ演算はどちらも重み であり、これは必要な最小重みです。 ( 量子ビットShorコードは距離 を持つため、重み 以下の非単位元パウリ演算は誤りとして検出されます。)
そして3番目の例として、 量子ビットのSteaneコード(そして実際にすべてのカラーコード)は、すべてのクリフォードゲートの横断的実装を可能にします。 CNOTゲートが任意のCSSコードに対して横断的に実装される方法はすでに見てきましたので、 ゲートと ゲートについて考えるだけです。 Steaneコードの つの量子ビットすべてにアダマールゲートを適用することは、それがエンコードする論理量子ビットに を適用することと等価であり、一方、 つの量子ビットすべてに ゲート( ゲートではなく)を適用することは、論理的な ゲートと等価です。
横断的ガジェットにおける誤り伝播
横断的なゲート実装とは何かを理解したところで、それらと誤り伝播との関係について議論しましょう。
1量子ビットゲートの横断的実装では、ガジェット内に単に1量子ビットゲートのテンソル積があるだけであり、選択された量子誤り訂正コードの物理量子ビットのコードブロックに作用します。 これらのゲートのいずれかが失敗して誤りを導入する可能性はありますが、多量子ビットゲートが関与しないため、誤りの伝播は起こりません。 ガジェットが適用された直後に誤り訂正が実行されます。ガジェットによって(またはガジェットの実行中に)導入される誤りの数が十分に少なければ、誤りは訂正されます。 したがって、欠陥のあるゲートによって導入される誤りの率が十分に小さければ、誤り訂正は成功する可能性が高くなります。
一方、2量子ビットゲートの横断的実装では、誤りの伝播の可能性があります。すでに観察したように、これを完全に回避する方法はありません。 しかし、重要なポイントは、横断的ガジェットが単一のコードブロック内での誤りの伝播を引き起こすことはないという点です。
例えば、上述のCSSコードに対するCNOTゲートの横断的実装を考えると、ガジェットが実行される直前に上側コードブロックの最上位量子ビットに 誤りが発生する可能性があり、ガジェット内の最初のCNOTはその誤りを下側ブロックの最上位量子ビットに伝播させます。 しかし、その結果生じた2つの誤りは、今や別々のコードブロックにあります。 したがって、コードが 誤りを訂正できると仮定すれば、ガジェット後に行われる誤り訂正ステップは2つの 誤りをそれぞれ個別に訂正します。なぜなら、各コードブロック内で発生する誤りは1つだけだからです。 対照的に、誤り伝播が同じコードブロック内で起こった場合、低重みの誤りが、コードが処理できない高重みの誤りに変わる恐れがあります。
横断的ゲートの非普遍性
2つの異なるスタビライザーコードに対して、特定のゲートが一方のコードでは横断的に実装できるが、もう一方では実装できない場合があります。 例えば、 量子ビットのSteaneコードを使用して ゲートを横断的に実装することはできませんが、これが可能な別のコードも存在します。
残念ながら、非自明な量子誤り訂正コードに対して、普遍的なゲートセットを横断的に実装することは、いかなるコードに対しても不可能です。 この事実はEastin-Knillの定理として知られています。
この定理の証明はここでは説明しません。 (複雑な証明ではありませんが、リー群とリー代数の基礎知識が必要であり、これらはシリーズの前提条件には含まれていません。) しかし、基本的なアイデアは直感的な言葉で伝えることができます。 横断的演算の無限族は、微小な差が低重みのパウリ演算によってよく近似されるため、非自明なコードのコード空間内に留まることができません。コードはそれを誤りとして検出するからです。
要約すると、横断的ガジェットはゲートの単純で本質的に耐障害性のある実装を提供しますが、合理的な量子誤り訂正コードの選択に対して、この方法で実装できる普遍的なゲートセットは存在しないため、代替ガジェットの使用が必要になります。
マジック状態
非自明な量子誤り訂正コードの選択に対して、普遍的な量子ゲートセットを横断的に実装することが不可能である以上、ゲートを耐障害性のある方法で実装するための他の方法を検討しなければなりません。 よく知られた方法の1つは、マジック状態の概念に基づいています。マジック状態とは、特定のゲートの耐障害性実装を可能にする量子ビットの量子状態です。
マジック状態を用いたゲートの実装
まず、 ゲートと ゲートを考えてみましょう。それらの行列表現は次のとおりです。
定義上、 はクリフォード演算ですが、 はそうではありません。 クリフォードゲート( ゲート、 ゲート、CNOTゲート)から構成される回路で ゲートを実装することはできません。
しかし、状態
のコピーがあり、さらに標準基底測定と古典的制御ゲートを許可すれば、クリフォードゲートから構成された回路で(グローバル位相を除いて) ゲートを実装することが可能です。 特に、次の回路はその一方法を示しています。 ここで示される現象は、量子ゲートテレポーテーションのやや単純化された例です。
この回路が正しく動作することを確認するために、まずCNOTゲートの入力への作用を計算できます。
したがって、測定は等確率で結果 と を与えます。 結果が の場合、 ゲートは実行されず、出力状態は となります。 結果が の場合、 ゲートが実行され、出力状態は となります。
この文脈で状態 はマジック状態と呼ばれますが、これが唯一というわけではありません。他の状態も、(場合によっては異なるゲートや異なる回路を用いて)同様の方法で使用できる場合にマジック状態と呼ばれます。 例えば、状態 を状態 に交換し、上記の回路の ゲートを ゲートに置き換えると、 ゲートを実装できます。これは、 ゲートを横断的に実装できないコードを使用する耐障害性量子計算において有用な可能性があります。
マジック状態からの耐障害性ガジェット
ゲートを実装するためにマジック状態を使用することが耐障害性にとって有益であることは、すぐには明らかではないかもしれません。 例えば、上記の ゲート実装では、マジック状態を得るために 状態に ゲートを適用する必要があり、それを使って ゲートを実装するように見えます。 では、耐障害性のためにこのアプローチを使用する利点は何でしょうか?
以下の3つの重要なポイントがこの質問への答えを提供します。
-
マジック状態の生成は、実装しようとしているゲートを特定の状態に適用することを必要としません。例えば、 状態を得るための唯一の方法は、 状態に ゲートを適用することではありません。
-
マジック状態の生成は、それらが使用される計算とは別に行うことができます。これは、マジック状態生成プロセスで発生する誤りが、実行中の実際の計算に伝播しないことを意味します。
-
マジック状態を使用して選択されたゲートを実装する回路内の個々のゲートが耐障害性をもって実装でき、マジック状態が利用可能であると仮定すれば、選択されたゲートの耐障害性実装が得られます。
以下の議論を簡略化するために、 ゲートに絞って考えてみましょう。この方法論が他のゲートにも拡張できることを念頭に置きながら。 マジック状態を使用した ゲートの耐障害性実装は、次の図が示す形式をとります。
元の ゲート回路の量子ビットは、この図では論理量子ビットに対応しており、耐障害性のために使用しているコードによってエンコードされています。 したがって、図の入力と出力はこれらの状態のエンコードとして理解されるべきです。 つまり、特に、実際にはマジック状態だけが必要なのではなく、エンコードされたマジック状態が必要です。 元の ゲート回路のゲートは、ここでは耐障害性があると仮定するガジェットに置き換えられています。
したがって、この図はCNOTゲートと ゲートの耐障害性ガジェットがすでに存在することを前提としています。 カラーコードの場合、これらのガジェットは横断的である可能性があります。 サーフェスコード(または他のCSSコード)の場合、CNOTは横断的に実行できますが、 ゲートガジェット自体は、先に示唆されたようにマジック状態を使用して実装される可能性があります。 (この図はまた、標準基底測定を耐障害性をもって実行するガジェットがあることも前提としています。これはこれまで無視していました。 実際には、それを困難にするように選択されたコードでは難しい場合もありますが、CSSコードであれば、各物理量子ビットを測定し、その後古典的な後処理を行う問題です。)
したがって、エンコードされたマジック状態 があると仮定すれば、この実装は耐障害性があります。 しかし、この状態をどのようにして得るかという問題にまだ対処していません。 エンコードされたマジック状態を得る(あるいはより正確には、より良くする)方法の1つは、マジック状態蒸留として知られるプロセスです。 次の図は、このプロセスが最高レベルでどのように見えるかを示しています。
言葉で説明すると、ノイズの多いエンコードされたマジック状態のコレクションが、蒸留器として知られる特殊な回路に送られます。 1つを除くすべての出力ブロックが測定されます。つまり、論理量子ビットが標準基底測定で測定されます。 測定結果のいずれかが であれば、プロセスは失敗し、やり直さなければなりません。 しかし、すべての測定結果が であれば、最上位コードブロックの結果状態は、ノイズが少ないエンコードされたマジック状態になります。 この状態は、別の蒸留器への入力としてさらに4つと組み合わせることもできますし、真のエンコードされたマジック状態に十分近いと判断されれば ゲートの実装に使用することもできます。 もちろん、プロセスはどこかで始めなければなりませんが、その一つの可能性は非耐障害性の方法で準備することです。
蒸留器自体を構築するには異なる既知の方法がありますが、ここでは説明も分析も行いません。 論理レベルでは、典型的なアプローチは——注目すべき偶然にも——スタビライザーコードのエンコード回路を逆に実行することです! これは実際、誤り訂正に使用されるスタビライザーコードとは異なるコードである可能性があります。 例えば、誤り訂正にサーフェスコードまたはカラーコードを使用しながら、マジック状態蒸留のために 量子ビットコードのエンコーダを逆に実行する可能性があります。 スタビライザーコードのエンコード回路はクリフォードゲートのみを必要とするため、蒸留器の耐障害性実装が簡素化されます。 実際には、具体的な内容は使用されるコードに依存します。
要約すると、このセクションはマジック状態についての非常に高レベルな議論のみを提供することを目的とし、その動作原理の基本的なアイデアを提供することを意図していました。 マジック状態を使用してこのような方法でゲートを耐障害性をもって実装するためのオーバーヘッドは非常に高く、作業の大部分が蒸留プロセスに費やされると主張されることがあります。 しかし、これは実際には明確ではありません。これらのプロセスを最適化する可能性のある方法は多くあります。 また、横断的に実装できないゲートの耐障害性ガジェットを構築するための代替アプローチも存在します。 例えば、コード変形(code deformation)とコードスイッチング(code switching)は、これらのスキームのいくつかに関連するキーワードです。そして新しい方法が継続的に開発・改良されています。
耐障害性誤り訂正
特定の量子回路の耐障害性実装に必要な様々なガジェットの実装に加えて、認識されなければならない別の重要な問題があります。それは、誤り訂正ステップ自体の実装です。 これは、量子情報に関わるものは何でも誤りの影響を受けるという考えに立ち返ります。誤りを訂正するための回路自体も例外ではありません。
例えば、「スタビライザー形式」レッスンで説明された種類の回路、すなわち位相推定を使用してスタビライザー生成元を非破壊的に測定する回路を考えてみましょう。 これらの回路は明らかに耐障害性がありません。なぜなら、それらが作用するコードブロック内で誤りが伝播する原因となり得るからです。 これは非常に問題があるように見えますが、訂正されるコードブロック内で誤りが伝播しない方法で誤り訂正を耐障害性をもって実行する複数の既知の方法があります。
1つの方法はShor誤り訂正として知られています。Peter Shorによって最初に発見されたためです。 アイデアは、いわゆる猫状態(cat state)を使ってシンドローム測定を実行することです。猫状態とは、次の形式の 量子ビット状態です。
ここで と は長さ のオールゼロとオールワンの文字列を指します。 例えば、 のときこれは 状態であり、 のときGHZ状態ですが、一般的にShor誤り訂正では が測定するスタビライザー生成元の重みであるような状態が必要です。
例として、ここに示す回路は の形式のスタビライザー生成元を測定します。
これは猫状態自体の構築を必要とし、誤りと潜在的に欠陥のあるゲートの存在下で確実に機能させるために、この方法では実際には、プロセス中に様々な誤りが発生した場所について推論するために、このような回路を繰り返し実行する必要があります。
代替的な方法としてSteane誤り訂正が知られています。 この方法は異なる動作をし、CSSコードにのみ機能します。 アイデアは、実行しようとしている回路内のエンコードされた量子状態に対してシンドローム測定を実際に実行するのではなく、誤りをワークスペースシステムに意図的に伝播させ、そのシステムを測定して古典的に誤りを検出するというものです。 次の回路図は、それぞれ 誤りと 誤りを検出するためにこれがどのように行われるかを示しています。
Knill誤り訂正として知られる関連する方法は、テレポーテーションを使用してこの方法を任意のスタビライザーコードに拡張します。