メインコンテンツへスキップ
このプロジェクトはベータ版です。バグを見つけましたか?GitHub Issueを開く。質問やアイデアがありますか?Discussionsで質問する — フィードバックをお待ちしています!
このページの翻訳品質はいかがですか?

ドレスト・ボックス

量子回路の実行中に生じる物理的なノイズのメカニズムは、文脈に依存します。互いに素な量子ビット集合に対して同時に演算を適用すると、全体の演算のノイズ・プロファイルは、それぞれを単独で適用した場合の構成要素のノイズ・プロファイルとは異なる可能性があります。同様に、同じ量子ビット上で理想的には可換な演算でも、個々の演算に関連するノイズ・プロファイルは可換とは限らず、演算の順序を変えると全く異なるものになる可能性があります。そのため、ノイズを抑制、緩和、訂正するプロトコルは、ノイズが生じる文脈を把握している必要があります。

Samplomaticは、安定したノイズの文脈を持つものとして扱うべき回路演算の集まりについて推論するためにボックス命令を使用し、ユーザーがその意図を宣言・設定できるようにボックスへのアノテーションを使用します。すべてのボックスは、量子ビットの集合、それらの量子ビットに作用する演算、およびアノテーションのリストを所有するスコープです。Samplomaticのアノテーションはディレクティブとドレッシングを指定します。ディレクティブはボックスに対して何を行うかを指定します(例: ボックスをツワールする)。ドレッシングは、ボックスの左側または右側に追加するパラメーター化されたゲートのグループです(例: 1量子ビット・ゲートの層)。ドレッシング内のゲートには、ボックス内のゲートと、ディレクティブを実行するために必要な演算が組み込まれます。たとえば次のようなものです。

  • ボックス内にあり、パラメーター化されたゲートと互換性があり、同じ側にあるゲート。

  • ボックスをランダム化するために、ある集合からサンプリングされたツワーリング・ゲート。

  • Pauli Lindbladマップからサンプリングされたノイズ注入ゲート。

  • ユーザーが指定した基底変換ゲート。

ディレクティブは他のボックスのドレッシングを変更できることに注意してください。

例​

次の回路をツワールしたいとします。回路の論理的な内容は変えず、有効なノイズ・モデルのみを変える、ランダムなPauliゲートを並列のエンタングリング・ゲートの前後に追加します。

../_images/undressed_pauli.drawio.png

Pauliツワールを適用する回路。

これは、回路をボックスに層別化し、ツワール・アノテーションを追加することで実現できます。

../_images/dressed_pauli_twirl.drawio.png

Pauliツワーリング・ディレクティブを持つ回路。@ 記号はディレクティブを指定するために使われ、ドレッシングはデフォルトで左側になります。

各ドレスト・ボックスには、1量子ビット・ゲートの層と、互いに素な量子ビット対に対する2量子ビット・エンタングリング・ゲートの層が含まれます。エンタングリング・ゲートの層は、ボックスの論理的な作用が変わらないように、ランダムなPauliゲートの層で挟まれます。これらのランダムなPauli層は、仮想Zゲートと同じ意味で仮想的です。回路に演算を追加することはなく、隣接する1量子ビット・ゲートの実装方法を変更するディレクティブとして機能します。

../_images/pauli_twirl.drawio.png

ディレクティブによるドレッシングとゲートを含む回路。ドレッシングは破線のボックスです。矢印でつながれたPauli層は互いに打ち消し合います。最後のPauli層は、測定結果へのビット反転として適用されます。

エンタングリング・ゲートと1量子ビット・ゲートの間のランダムなPauli層は、1量子ビット・ゲートの層に合成され、そのドレッシングの中で実装されます。もう一方のランダムなPauli層は、次のドレスト・ボックスのドレッシングに合成されます。

まとめると、左(または右)ツワール・ディレクティブは、このボックスのドレッシングにランダムなPauliを実装し、それを元に戻すPauliを次(または前)のボックスのドレッシングに適用します。ノイズ注入と基底変換のディレクティブも同様です。

仮想ゲートによる回路のランダム化​

Samplomaticは、ドレスト・ボックスを持つ回路について推論するために、仮想ゲートのフレームワークを使用します。概念的に、また build() プロセスによって生成される Samplex インスタンスでの実装においても、仮想ゲートはボックスのドレッシングとは反対側の境界で生成されます。これらの仮想ゲートは決められた方法で回路内を移動し、ドレッシングに合成される必要があります。すべての仮想ゲートをドレッシングに合成できれば、回路のランダム化を手続き的に構築できます。

../_images/dressed_box.drawio.png

ツワール、基底変換、ノイズ注入のディレクティブを持つ回路。

ドレッシングのテンプレート・パラメーター化と互換性のある、ドレッシング側のゲートは、そこに合成でき、物理ゲートの数を減らせます。これらはイージーゲートと呼ばれます。ボックスの残りの部分はハードと呼ばれ、そのまま実装されます。

../_images/dressed_box_uncollected.drawio.png

宙に浮いた仮想ゲートを持つ回路の例。ドレッシングの反対側にある仮想ゲートには、実装先がありません。

../_images/dressed_box_collected.drawio.png

すべての仮想ゲートがドレッシングに合成される回路の例。測定では、それが引き起こすビット反転を考慮してPauliゲートが合成されます。

../_images/dressed_box_mixed_collect.drawio.png

すべての仮想ゲートが収集される複雑な例。1つのボックスで生成された仮想ゲートは、異なるドレッシングに合成できます。

これにより、ドレスト・ボックスが同じ幅を持つ必要がない構成が可能になります。