Algorithmiq Tensor-network エラー軽減 API リファレンス
Qiskit Functions — パートナー組織によって開発された既製のツール — ソフトウェア開発ワークフローの一部を抽象化することで、ユーティリティ規模でのアルゴリズムの発見とアプリケーション開発を簡素化し、加速させます。 このQiskit関数のガイドを表示するには、ここをクリックしてください。
Algorithmiq TEM Qiskit 関数ガイド
入力
TEMには現在、以下の制限があります:
- パラメータ化された回路はサポートされていません。 精度が指定されている場合、
Noneparameters引数は に設定する必要があります。 この制限は今後のバージョンで解除される予定です。 - ループのない回路のみがサポートされています。 この制限は今後のバージョンで解除される予定です。
- リセット、計測、およびあらゆる形式の制御フローなどの非ユニタリーゲートはサポートされていません。 リセット機能のサポートは、今後のリリースで追加される予定です。
パラメーター
pubs
タイプ: Iterable[EstimatorPubLike]
PUB のような(プリミティブ統一ブロック)オブジェクトの反復可能オブジェクト。例えば、タプル (circuit, observables) やなど (circuit, observables, parameters, precision)。 詳細については、 「PUBの概要」 をご覧ください。 ISAに適合しない回路が通過した場合、最適な設定でトランスパイルされます。 ISA回路が通過した場合、それはトランスパイルされません。この場合、オブザーバブルはQPU全体で定義されている必要があります。
- 必須:はい
- 例:
(circuit, observables)
backend_name
タイプ: str
デフォルト値: Least busy backend
クエリを実行するバックエンドの名前
- 必須:いいえ
- 例:
"ibm_fez"
オプション
タイプ: dict
この関数の入力オプションは、ネストされた辞書として指定されます。 オプションの一覧とそのデフォルト値を確認してください。
- 必須:いいえ
- 例:
{"max_bond_dimension": 100}
TEMの詳細設定をまとめた辞書。 この辞書には、以下のリストにあるキーが含まれている場合があります。 いずれかのオプションが指定されていない場合、リストに記載されているデフォルト値が使用されます。 デフォルト値は、TEMの一般的な用途には適しています。
オプション・リスト
tem_max_bond_dimension
タイプ: int
デフォルト値: 500
テンソルネットワークで使用する結合の最大サイズ。
tem_compression_cutoff
タイプ: float
デフォルト値: 1e-16
テンソルネットワークで使用する閾値。
compute_shadows_bias_from_observable
タイプ: bool
デフォルト値: False
古典的なシャドウ測定プロトコルのバイアスを、 PUB 観測量に合わせて調整すべきかどうかを示すブール値のフラグ。 false の場合、従来のシャドウプロトコル(Z、X、Y の測定確率が等しい)が使用されます。
shadows_bias
タイプ: np.ndarray
デフォルト値: np.array([1 / 3, 1 / 3, 1 / 3])
無作為化された古典的シャドウ測定プロトコルで使用するバイアス。これは、それぞれサイズ3の 1d 配列、または形状(num_qubits, 3)の 2d 配列である。 順序はZXYです。
max_execution_time
タイプ: int or None
デフォルト値: None
QPUでの最大実行時間(秒単位)。 実行時間がこの値を超えた場合、ジョブはキャンセルされます。 その場合 None、 IBM Quantum Compute Service によって設定されたデフォルトの制限が適用されます。
num_randomizations
タイプ: int
デフォルト値: 32
ノイズ学習およびゲートツイリングに使用するランダム化の回数。
max_layers_to_learn
タイプ: int
デフォルト値: True
学習対象とするユニークなレイヤーの最大数。
mitigate_readout_error
タイプ: bool
デフォルト値: True
読み出しエラーの緩和処理を実行するかどうかを示すブール値のフラグ。
num_readout_calibration_shots
タイプ: int
デフォルト値: 10000
読み出し誤差の低減に使用するショット数。
default_precision
タイプ: float
デフォルト値: 0.02
精度が指定されていないPUBに対して使用されるデフォルトの精度。
seed
タイプ: int or None
デフォルト値: None
再現性を確保するために、乱数生成器のシードを設定してください。 その場合は None、シードを設定しないでください。
shots_per_randomization
タイプ: int
デフォルト値: 128
ランダム学習回路ごとに使用するショットの総数。
layer_pair_depths
タイプ: list[int]
デフォルト値: [0, 1, 2, 4, 16, 32]
学習実験で使用する回路の深さ(ペア数で測定)。
layer_noise_model
タイプ: NoiseLearnerResult, Sequence[LayerError], or None
デフォルト値: None
事前に計算されたノイズ学習器は、以前に実行された実行結果に基づいています。
private
タイプ: bool
デフォルト値: False
QPUジョブを非公開にするかどうか。 これを「True」に設定すると、実験データのその後のダウンロードが防止されるため、機密性の高いジョブではこの設定を推奨します。
tem_enforce_linear_circuit
タイプ: bool
デフォルト値: False
回路を線形トポロジーとするかどうか。
精度
結果の精度は、3つの方法で指定することができます。 精度は PUB に指定することができ、その指定は当該の PUB にのみ適用されます。 それ以外の場合は、前述のようにオプションとして a を default_precision 渡すことができます。 最後に、高度な用途として、 PUB ごとの具体的なショット数をオプションで指定することができます。この設定は、他の精度 default_shotsに関するオプションよりも優先されます。
a default_precision または per- PUB の値が渡された場合、所望の精度を達成するためにショット数が推定されます。 これは、選択されたQPUパラメータと誤差率に基づいて、次のように行われます:
- 2量子ビットゲートの層によって生じるノイズを定量化する「層ごとのゲート誤差(EPLG)」を算出する。 バックエンドのプロパティが利用可能な場合は、関連する忠実度を抽出します。そうでない場合は、デフォルト値を使用します。
- 回路内の2量子ビットゲートの数を数える。これらは通常、ノイズの主な原因となるためである。
- 2量子ビットゲートの数とEPLGに基づいて、ノイズ係数を計算する。
- 要求された精度を用いて、ノイズ係数と精度の二乗の逆数で重み付けを行うことにより、必要なショット数を推定します。
このアプローチにより、回路構造とバックエンドのノイズ特性の両方を考慮した上で、所望の精度を達成するのに十分なショット数が確保されます。
出力
TEMの影響を軽減した結果を含む PrimitiveResults Qiskit。 各 PUB の結果は、以下のフィールドを含む PubResult として返されます:
データ
タイプ: Databin
TEM補正済みの観測量とその標準誤差を含む DataBin Qiskit。 DataBin には、以下のフィールドがあります:
evs: TEMによる補正が施された観測値。stds: TEMの影響を補正した観測量の標準誤差。
メタデータ
タイプ: dict
追加の結果を含む辞書。 この辞書には、以下のキーが含まれています:
"evs_non_mitigated": エラーの緩和を行わない場合の観測値。"stds_non_mitigated": エラー軽減を行わない場合の、結果の標準誤差。"evs_mitigated_no_readout_mitigation": 誤差低減は適用されているが、読み出し誤差低減は適用されていない場合の観測値。"stds_mitigated_no_readout_mitigation": 誤差低減は適用しているが、読み出し誤差の低減は適用していない場合の、結果の標準誤差。"evs_non_mitigated_with_readout_mitigation": 誤差低減を行わないが、読み出し誤差の低減を行った場合の観測値。"stds_non_mitigated_with_readout_mitigation": 誤差低減を行わない場合の結果の標準誤差(ただし、読み出し誤差の低減は行う)。"resource_usage": TEMが使用する時間リソースを格納した辞書。