なぜエラー修正プロトコルは、最初からエラー率がすでに非常に低い場合にのみ機能するのですか?


15

量子誤差補正は、量子計算の基本的な側面であり、これなしでは、大規模な量子計算は実際には実行不可能です。

よく言及されるフォールトトレラント量子コンピューティングの1つの側面は、各エラー訂正プロトコルがエラー率のしきい値に関連付けられていることです。基本的に、特定の計算を特定のプロトコルを介してエラーから保護するには、ゲートのエラー率が特定のしきい値を下回っている必要があります。

言い換えると、単一ゲートのエラー率が十分に低くない場合、エラー訂正プロトコルを適用して計算の信頼性を高めることはできません。

どうしてこれなの?そもそもそれほど低くないエラー率を減らすことができないのはなぜですか?


まあ、ある時点で単にノイズがあります。エラー修正が適切な部分をノイズに修正する可能性が高い点があるのは奇妙ですか?
離散トカゲ

1
@Discretelizardはそれほど多くないかもしれませんが、通常、しきい値は非常に低い(または忠実度の点で高い)です。どうしてこんなことに?
-glS

回答:


4

出力状態をいくつかの理想的な状態と比較したいので、通常、忠実度が使用されます。結果のの可能な測定結果と比較ここで、理想的な出力状態であり、、いくつかのノイズ処理後の達成(潜在的混合)状態です。状態を比較しているので、これは ρ | ψ | ψ ρ F | ψ ρ = F|ψρρ|ψ|ψρ

F|ψρ=ψ|ρ|ψ

Kraus演算子を使用してノイズとエラー修正プロセスの両方を記述します。はKraus演算子ノイズチャネルで、はKraus演算子エラー修正チャネルです。ノイズ後の状態はおよびノイズとエラー修正後の状態さN I E E J ρ " = N | ψ ψ | = Σ I N I | ψ ψ | N ρ = EN | ψ ψ | = Σ I J E J N I | ψ ψ | NNNEEj

ρ=N|ψψ|=N|ψψ|N
ρ=EN|ψψ|=jEjN|ψψ|NEj

この忠実度は、によって与えられ

F|ψρ=ψ|ρ|ψ=i,jψ|EjNi|ψψ|NiEj|ψ=i,jψ|EjNi|ψψ|EjNi|ψ=i,j|ψ|EjNi|ψ|2.

エラー修正プロトコルを使用するには、エラー修正後の忠実度をノイズ後の忠実度よりも大きくする必要がありますが、エラー修正前はエラー修正後の状態と非修正後の状態を区別しにくくします。つまり、これにより、忠実度は正であるため、これは

F(|ψ,ρ)>F(|ψ,ρ).
ij| ψ| EjNi| ψ| 2>i| ψ| Ni| ψ| 2
j|ψ|EjN|ψ|2>|ψ|N|ψ|2
j|ψ|EjN|ψ|2>|ψ|N|ψ|2

分割訂正部分に、N CNNc、そのためおよび修正不可能な部分、、ここで。が与えるように、エラーがとして修正可能であり、修正不可能である(つまり、理想状態を再構築するにはエラーが多すぎる)確率を示すN N C EN N C| ψ ψ | = σ P C P N C Σ I J | ψ | ENc(|ψψ|)=|ψψ|NncENnc(|ψψ|)=σPcPnc

i,j|ψ|EjNi|ψ|2=Pc+Pncψ|σ|ψPc,
ここでと仮定することにより、等式が仮定され。それは間違った「修正」が正しい結果に直交する結果に投影することです。ψ|σ|ψ=0

以下のためにとして各量子ビットにエラーの(等しい)確率で量子ビット、(:これはありませんpnpノイズパラメータと同様、エラーの確率を計算するために使用されなければならない)、Aを有する確率修正可能なエラー(キュービットを使用してキュービットをエンコードし、シングルトン境界で決定される最大キュービットのエラーを許容すると仮定します)k個のT N - K 4 T P Cnktnk4t

Pc=jt(nj)pj(1p)nj=(1p)n+np(1p)n1+12n(n1)p2(1p)n2+O(p3)=1(nt+1)pt+1+O(pt+2)

ノイズチャネルは、基底に対してとこともできます。これは、プロセスマトリックスを定義するために使用できます。これは与えるP JNi=jαi,jPjPj Σ私は | ψ | N i | ψ | 2 = ΣのJ K χ J Kψ | P j | ψ ψ | P k | ψ χ 0 0χj,k=iαi,jαi,k

i|ψ|Ni|ψ|2=j,kχj,kψ|Pj|ψψ|Pk|ψχ0,,0,
ここでは、エラーが発生しない確率です。χ0,0=(1p)n

これにより、場合、エラー修正によりノイズ(少なくとも一部)が正常に軽減されました。これはのみ有効であり、より弱い境界が使用されているため、エラー修正が成功した場合の結果が不正確になる可能性がありますが、これはエラー修正が小さなエラー確率に適していることを示しています

1(nt+1)pt+1(1p)n.
ρ1pより速く成長しはが小さい場合。pt+1p

ただし、がわずかに大きくなると、はよりも速く成長し、コードのサイズと修正するキュービットの数に依存するプリファクターに応じて、エラー修正が誤って「修正」されます発生したエラーは、エラー修正コードとして失敗し始めます。を与える場合、これはで発生しが、これは単なる推定値です。ppt+1pn=5t=1p0.29

コメントから編集:

なので Pc+Pnc=1、これは与え

i,j|ψ|EjNi|ψ|2=ψ|σ|ψ+Pc(1ψ|σ|ψ).

これを上記のように接続すると、これは以前と同じ動作ですが、異なる定数のみがあります。

11ψ|σ|ψnt+1pt+11pn

これは、エラー修正により忠実度を高めることができても、忠実度を上げることはできないことも示しています。1、特にエラーの実装に起因するエラー(実際にはゲートを完全に実装できないことによるゲートエラーなど)があるいます補正。定義上、合理的な深さの回路には合理的な数のゲートが必要であるため、各ゲート後の忠実度は前のゲートの忠実度より低くなり(平均)、エラー修正プロトコルの効果は低くなります。その場合、エラー訂正プロトコルが忠実度を低下させ、エラーが継続的に悪化するゲートのカットオフ数があります。

大まかな概算で、回路の深さに応じてエラーが極端に低い場合を除き、エラー訂正、または単にエラー率を減らすだけではフォールトトレラントな計算には不十分であることがわかります。


修正不可能なエラーの可能性が低い物理エラー率まで説明しようとしていると思いますか?フォールトトレランスのしきい値が小さいことに注意してください(多くのコードの桁数)
M.スターン

@ M.Sternしたがって、これはエラー修正によって「エラーが減少する」(つまり、ノイズが適用された後に忠実度がある程度増加する)ための(非常に大雑把な)推定であるため、間違いなくフォールトトレラントなしきい値ではありません。エラー修正を実行すると、ノイズの後の忠実度がある程度向上した可能性がありますが、リセットなどは行われていないため、エラー修正が継続的に適用されていても忠実度は低下し、エラー修正が表示されます単独ではフォールトトレランスに十分ではありません
Mithrandir24601

うーん、glSはそれが質問に答えるかどうかを判断する必要があります。いずれにせよ、それは興味深く、よく書かれています。だから、エラーが修正不可能な場合、状態は直交していると仮定しますよね?(これは多くのシナリオで確かに合理的です。)他の極端な例は、修正不可能なエラーの場合に論理エラーの可能性が50/50である場合です。
M.スターン

@ M.Sternありがとう!はい、その状態は直交であるか、下限をとっています。ある下限と別の下限を比較するのは良い考えではないので、それらが直交しているという仮定で行きました。この最後に追加するのに役立つと思われる編集がある場合は、作業してください!うーん... 50/50の論理エラーの可能性をとっても同じ結果になると思いますが、最終的には異なるプリファクターしかありません
Mithrandir24601

4

数学的な答えはすでにあるので、わかりやすいものを提供してみます。

量子誤り訂正(QEC)は、かなり複雑なアルゴリズム(のグループ)であり、キュービット上およびキュービット間で多くのアクション(ゲート)を必要とします。QECでは、2つのキュービットを3番目のヘルパーキュービット(ancilla)に接続し、他の2つが(特定の点で)等しい場合、その3番目のキュービットに情報を転送します。次に、その情報をanciallaから読み取ります。それらが等しくないことをあなたに告げるなら、あなたはその情報に基づいて行動する(修正を適用する)。それでは、量子ビットとゲートが完全でない場合、どのようにうまくいかないのでしょうか?

QECは、キュービットに保存されている情報を減衰させることができます。これらの各ゲートは、完全に実行されない場合、格納されている情報を減衰させる可能性があります。そのため、QECを実行するだけで、平均で回復するよりも多くの情報が破壊される場合、それは役に立ちません。

エラーを見つけたと思うが、そうしなかった。比較(ゲートの実行)または情報の読み出し(補助)が不完全な場合、間違った情報を取得し、「間違った修正」を適用する可能性があります(読み取り:エラーの導入)。また、読み上げる前にアンシラの情報が減衰する(またはノイズによって変化する)場合も、誤った読み取りが行われます。

すべてのQECの目標は明らかに、修正するよりも少ないエラーを導入することです。したがって、前述の影響を最小限に抑える必要があります。すべての計算を行うと、キュービット、ゲート、および読み出しに関する非常に厳しい要件が見つかります(選択した正確なQECアルゴリズムによって異なります)。


4

クラシック版

古典的なエラー訂正の簡単な戦略について考えてください。エンコードしたい1ビット、 がありますが、5ビットにエンコードすることを選択しましたが、奇数の場合は(より良い)。ここで、いくつかのビットフリップエラーが発生したと仮定します。したがって、 ます。これは元々エンコードされた0または1でしたか?ビットあたりのエラーの確率が半分未満であると仮定した場合、半分未満のビットにエラーがあると予想されます。したがって、0の数と1の数を調べます。どちらが多いかは、私たちが始めたものであると仮定するものです。これは多数決と呼ばれます。間違っている可能性もありますが、エンコードするビットが増えると、

000000111111
01010。
p

一方、であることがわかっている場合は、引き続き修正を行うことができます。あなたは、少数投票を実施するだけです!ただし、ポイントは、完全に反対の操作を行う必要があるということです。ここには鋭いしきい値があり、少なくとも、どの政権で働いているかを知る必要があることを示しています。p>12

フォールトトレランスの場合、事態はより複雑になります。取得した文字列は、実際の状態ではない場合があります。修正しなければならないいくつかのエラーがまだある場合もありますが、ビットの読み取りで行った測定もわずかに欠陥があります。おおざっぱに言うと、これが急激な移行を、何をすべきか本当にわからない曖昧な領域に変えると想像するかもしれません。それでも、エラーの確率が十分に低い場合、または十分に高い場合は、修正できます。どちらの場合かを知る必要があります。01010

量子バージョン

一般に、量子レジームでは、ビットフリップエラー()とフェーズフリップエラー()の2種類のエラーを処理する必要があるため、事態は悪化します。これにより、あいまいな領域が大きくなる傾向があります。ここではこれ以上詳しく説明しません。しかし、量子レジームには、明るいかもしれない可愛らしい議論があります。バツZ

物理キュービットにまたがる量子エラー修正コード単一の論理キュービットの状態があると想像してください。そのコードが何であるかは関係ありません。これは完全に一般的な議論です。ここで、量子ビットの量子状態を破壊するほど多くのノイズがあることを想像してください(「非常に多くのノイズ」とは、すでに100%に近いではなく50%の確率でエラーが発生することを意味します)と言う、修正することができます)。そのエラーを修正することは不可能です。どうやってそれを知るのですか?完全にノイズのないバージョンがあり、量子ビットを保持し、残りの量子ビットをあなたに与えると想像してください。私たちはそれぞれ、十分な空白キュービットを導入して、|ψNN/2N/2N合計で量子ビットであり、それらに対してエラー訂正を実行します。 クローン作成デモ そのエラー修正を実行することが可能であった場合、結果は私たちの両方が元の状態を持つことになります。論理キュービットのクローンを作成していました!しかし、複製は不可能なので、エラー修正は不可能だったに違いありません。|ψ


2

私には、この質問には2つの部分があるようです(タイトルに関連する部分と、質問自体に関連する部分)。

1)エラー訂正コードはどの程度のノイズに対して有効ですか?
2)ゲートのどの程度の不完全性で、フォールトトレラントな量子計算を実装できますか?

違いを強調しましょう。量子エラー訂正コードは、たとえば伝送の損失を補正するなど、さまざまなシナリオで使用できます。ここで、ノイズの量は主に光ファイバの長さに依存し、ゲートの不完全性には依存しません。ただし、フォールトトレラントな量子計算を実装する場合は、ゲートがノイズの主な原因です。

オン1)

1/2fp=p

物理的エラー率と論理的エラー率をプロットする

p1/2ppOpOp2

オン2)

量子コンピューターを使用して、任意の長い量子計算を実行したい。ただし、量子ゲートは完全ではありません。ゲートによって導入されたエラーに対処するために、量子エラー訂正コードを使用します。これは、1つの論理キュービットが多くの物理キュービットにエンコードされることを意味します。この冗長性により、論理キュービットに格納された情報がそのまま残るように、物理キュービットの一定量のエラーを修正できます。より大きなコードでは、より正確な計算を行うことができます。ただし、コードが大きいほどゲートが多くなり(たとえば、シンドローム測定が増える)、これらのゲートはノイズを引き起こします。ここにはいくつかのトレードオフがあり、最適なコードは明らかではありません。
各ゲートで発生するノイズがしきい値(フォールトトレランスまたは精度のしきい値)を下回っている場合、コードサイズを大きくして、任意の長い計算を可能にすることができます。このしきい値は、開始したコードによって異なります(通常、それ自体と繰り返し連結されます)。この値を推定する方法はいくつかあります。多くの場合、数値シミュレーションによって行われます。ランダムエラーを導入し、計算がまだ機能しているかどうかを確認します。この方法では、通常、しきい値が高すぎます。文献にはいくつかの分析的証拠もあります。たとえば、これはAliferisとCrossによるものです。


2番目の段落は正しい点に触れていますが、それでも非常に質的です。エラー率を上げるよりもエラー率を減らすには、エラー修正プロトコルによって導入されたゲートが必要だと言っています。しかし、この直感的なアイデアから、しきい値を超える実際の定量的推定値にどのように移行しますか?また、これは、エラー修正プロトコルが勝てない普遍的な下限しきい値を意味しますか?
glS

@glSこのような「普遍的な下限しきい値」、つまりそれを超えるとフォールトトレラントな修正プロトコルが存在しないエラー値があると思います。ただし、値はゲートセットとエラーモデルの両方に依存する必要があります。ここで、人々は肯定的な結果にもっと興味を持つ傾向があります(優れたフォールトトレラントプロトコルの存在を示す)。フォールトトレラントスキームを改善するために「どれだけのスペースを残したか」を確認するために、上限を見つけることは興味深いかもしれません。余地はあまりないと思います。
ジャレックススターク

@glS確かに、実際の定量的な計算はこの答えを改善するでしょう。これらの計算は通常数値的に行われると思いますか?しかし、私はまた、これについて知りたい
M.スターン

@JalexStark余地があまりないと思う理由は何ですか?たとえば、表面のコードはこのしきい値に対して最適化されていないようです。ラティス上の最近傍の相互作用のみを使用し、一般的にもっと多くのことができます。
M.スターン

@ M.Stern私は定理に基づいた証拠を持っていませんし、この分野の専門家でもありません。作業量と最適なしきい値の大きさに基づいて推測していました。
ジャレックススターク

2

バツYZバツYZバツYZバツYZバツYZバツYZ

ただし、理由の主な部分は、単純なエラー検出回路を使用できないことです:すべてのCNOT(または他のすべての非自明な2つ以上のキュービットゲート)は、1つのキュービットのエラーを別のキュービットに転送します。単一のキュービットエラー修正コードのケースであり、さらに洗練されたコードには非常に悪い。したがって、フォールトトレラントな(有用な)実装は、単純に考えるよりも多くの労力を必要とします。

ϵNϵN2ϵ

GGG+ϵバツϵϵバツNGN+NϵGNバツNϵN2ϵ

一貫性のないエラーはより害がありません。それでも、エラーしきい値として単一の値を指定する必要がある場合、良性エラーのみを想定することはできません。


N2ϵNϵ

@glS回答を大幅に拡張して、すべての質問に対処しました。なんとかできましたか?
ピラミッド
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.