検査
qiskit_paulice.checks
有効な時空パウリチェックを見つけるための機能。
add_pauli_checks
add_pauli_checks(circuit, target_qubits, noise_model, cost='gamma', cost_nshots=10000, method='windowed', ancilla_qubits=None, check_creg_name='checks_c', check_qreg_name='checks_q', seed=None)
クリフォード回路に時空パウリチェックを追加する。
チェック選択アルゴリズムは、各ターゲット量子ビットについて、指定された順序で target_qubits 有効かつ重みの小さいチェックを検索し、エラー検出カバレッジが最大となる(すなわち、値が cost 最小となる)チェックを選択する。 target_qubits[0]がチェックとして確定すると、そのチェックはアルゴリズムの残りの処理を通じて固定され、に対する target_qubits[1] 適切なチェックの探索が開始される。 このため、の target_qubits 順序によっては、関数によって生成されるチェックの集合に何らかの影響が生じる可能性があります。
この関数は、から 0 ターゲット量子ビット1つあたり1回のチェックに至る範囲のチェック回数を格納したインスタンスを生成 qiskit_paulice.CheckedCircuit します。 チェックを追加していくにつれて、コスト関数がどのように収束していくかを観察することは参考になる。なぜなら、より少ないチェック数でもコストが収束することがわかる場合があるからだ。
効果的な時空パウリチェックを見つける方法の詳細については、以下を参照してください 補足条項 マルティエル、ジャヴァディ著『II-VI』
パラメーター
-
circuit (QuantumCircuit) – 時空パウリチェックで装飾されたクリフォード回路。 回路は、少なくとも1つの量子ビットに対する測定を行って終了させなければならない。 この回路は、仮想量子ビットまたは物理量子ビット上で定義することができます。
ancilla_qubits回路のレイアウトがある場合は、ユーザーがそれを提供する必要があります。 -
target_qubits (Sequence[int]) – チェック量子ビットとペイロード量子ビットを量子もつれさせるために使用される量子ビットの
circuitインデックス。ancilla_qubitsがレイアウト(ISAモード)を持つ場合circuit、これらは物理量子ビットのインデックスであり、と同じインデックス空間に属する。 -
noise_model (NoiseModel) – 対象デバイスに対するノイズの影響を記述するノイズモデル。 このモデルは、ピッキング作業中の特定のチェックが及ぼす影響を推定するために使用されます。 学習済みのパウリ・リンドブラッドノイズからノイズモデルを生成することも可能ですが、バックエンドのベンチマークデータから生成されたノイズを用いた、より大まかな近似で十分な場合がしばしばあります。 チェックの挿入によって導入され、指定された
GateWiseNoiseまたはLayeredNoiseに含まれていないアンシラ/ターゲットエッジは、自動的に推論されます(指定されたデータ全体におけるパウリ対ごとの中央値)。上書きするには、これらを明示的に指定してください。 -
cost (Literal['gamma', 'LER']) –
最適化すべき指標。 または
"LER"(論理誤り率)となる"gamma"。"gamma": 逆論理ノイズチャネル(すなわち、チェックでは検出できない測定光錐内の誤差からなるノイズチャネル)に関連するガンマ値。"LER": ポストセレクション後の経験的論理誤り率。 モンテカルロシミュレーションを実行し、ポストセレクション後のショットのうち、検出されていない論理ノイズの影響を受ける割合を算出する。
-
"LER"cost_nshots (int) – モンテカルロ法に基づくコスト指標で使用されるモンテカルロシミュレーションの試行回数(現在はのみ)。 -
method (Literal['windowed', 'genetic', 'windowed_genetic']) –
ピッキング方法(
"windowed"、"genetic"、または"windowed_genetic")を確認してください。 各メソッドは、target_qubits順次チェックを追加していきます。 あるターゲット量子ビットに対してチェックが確定すると、その後さらにチェックが追加されても、そのチェックは取り消されることはありません。cost各手法は、エラー検出能力が最大となる(すなわち、が最小となる)チェックを選択します。"windowed": 各ターゲット量子ビットの配線のうち、ごく一部のサブセットをサンプリングして、適切なチェックを見つける"genetic": 各ターゲット量子ビットの全ワイヤ空間から、一連の候補チェックを導出する"windowed_genetic": 各ターゲット量子ビット上のワイヤのランダムなウィンドウ内で、遺伝的探索を実行する
-
target_qubitsancilla_qubits (Sequence[int] | None) – 出力回路内のチェックアンシラを配置する位置を指定する、物理キュービットのインデックス一覧(各インデックスにつき1つ)。Noneが でない場合にcircuit.layout必要となる。i``ancilla_qubits[i]\番目のチェックを実装する際、とtarget_qubits[i]エンタングルメントゲートを共有します。 -
check_creg_name (str) – チェック測定用のクラシックレジスタ名(デフォルト:「checks_c」)
-
check_qreg_name (str) – 出力回路内のチェック・アンシラを保持する量子レジスタの名前(デフォルト:「checks_q」)。 ISAモードでは無視されます。
-
seed (int | None) – 適切なチェックを検索する際のランダム性を制御するための乱数シード。 このシードはアルゴリズムにおけるランダム性をある程度制御しますが、コスト関数や、いずれかの遺伝的チェック選択法を使用
LERする場合、依然としてある程度の非決定性が残ります。Noneとmethod="windowed"のcost="gamma"組み合わせは、 が でない場合seed、完全に決定論的である。
戻り値
インスタンスの一覧 qiskit_paulice.CheckedCircuit – チェックを一切含まない基本回路のインスタンスと、チェックが1つ追加されたもの1つずつ。 出力の最後の要素には、有効なチェックのセットが見つかったと仮定して、すべてのターゲット量子ビットに対するチェックが含まれています。 qiskit_paulice.CheckedCircuit