Skip to main content
IBM Quantum Platform

qiskit_noise_learning.analysis.PositivityMinSolve

class qiskit_noise_learning.analysis.PositivityMinSolve(coefficients: dict[str, float], epsilon: Callable[[LinearSystemData], float] | None = None, deltas: Callable[[LinearSystemData], Mapping[Hashable, float]] | None = None, weights: Callable[[LinearSystemData], IndexedMatrix] | None = None, non_negative: bool = False)

GitHub

ベース: ModelSolve

パウリ・リンドブラッドの速度定数の正値性を最小化 ModelData しつつ、を解く。

は を使用 Fit しなければならない PauliLindbladModel。

ゲート集合 G\mathcal{G} について、 {rG,P}\{r_{G, P}\} をゲート依存の生成元集合 K(G)\mathcal{K}(G) におけるパウリ・リンドブラッド率、 AA を設計行列、 bb を観測データとする。 ユーザー指定のアルゴリズムパラメータについては:

  • ゲート係数 {cG∈R:G∈G}\{c_G \in \mathbb{R} : G \in \mathcal{G}\}、
  • グローバルフィットの境界条件 ϵ>0\epsilon > 0、および
  • 設計行列で測定された各パス PP について、 δP\delta_P の局所適合境界、

このクラスは、次の凸最適化問題を解きます:

min⁡∑G∈GcG∑P∈K(G)max⁡(0,rP,G)\min \sum_{G \in \mathcal{G}} c_G \sum_{P \in \mathcal{K}(G)} \max(0, r_{P, G})

以下の条件に従い:

  • ∥W(Ar−b)∥2≤ϵ\|W (A r - b)\|_2 \leq \epsilon
  • ∣(Ar−b)i∣≤δi|(Ar - b)_i| \leq \delta_i 各行について ii
  • r≥0r \geq 0 (任意)

このライブラリにおけるモデルソルバーの一般的な役割に関する詳細については ModelSolve を参照してください。

制約の境界は、 ポリシー として指定されます。ポリシーとは、解法時に引数を受け取り LinearSystemData 、対応する境界値を返す呼び出し可能オブジェクトのことです。

パラメーター

  • 係数 – 目的関数に対するゲートごとの係数。ゲート名からfloat型への対応付けとして指定します。
  • epsilon – 全体的な重み付き L2 ノルム制約に対する許容誤差を返すポリシー。 「または epsilon 」のいずれか少なくとも1つを指定 deltas する必要があります。
  • deltas – 行ごとの許容誤差を `` から float Path へのマッピングとして返すポリシー。 線形システムのすべての行を網羅していなければならない。なぜなら、写像に含まれていない行があると、その行は制約を受けなくなるからである。 「または epsilon 」のいずれか少なくとも1つを指定 deltas する必要があります。
  • 重み – L2 制約の重み行列を W 、行および列のインデックスがオブジェクト Path である IndexedMatrix 形式で返すポリシー。 デフォルトは IDENTITYです。 線形システムの行または列のうち、 に含まれていないものは重みがゼロ W となり、その残差はノルムから除外される。 が epsilon 指定された場合にのみ使用されます。
  • non_negative – これを強制するかどうか x >= 0。

昇給

  • TypeError –、 epsilon、 deltas または がポリシーではなく固定値として指定 weights された場合。 固定値 from_constants() には を使用してください。
  • ValueError – 解法実行時に、 または deltas ポリシー weights によって生成されたラベルが線形システムの行ではない場合、あるいは が1つの行を deltas 省略した場合。
  • RuntimeError – 解法実行時に、制約条件が満たせないなどの理由で、凸最適化ソルバーが解を返さない場合。

__init__

__init__(coefficients: dict[str, float], epsilon: Callable[[LinearSystemData], float] | None = None, deltas: Callable[[LinearSystemData], Mapping[Hashable, float]] | None = None, weights: Callable[[LinearSystemData], IndexedMatrix] | None = None, non_negative: bool = False)


方法

コラム「 1 」
コラム「 2 」
__init__(係数[, epsilon, deltas, ...])
from_constants(係数[, epsilon, ...])データ駆動型のポリシーではなく、固定された定数の境界値に基づいて構築する。
from_data_scaled_deltas(係数[, ...])観測量の統計的不確実性に基づいて、デルタのみを考慮する方針で構築する。
run(フィット)このステージを実行し、出力レベルが設定 Fit された新しいオブジェクトを返します。

属性

コラム「 1 」
コラム「 2 」
input_levelこの段階で読み込まれるデータレベル。
output_levelこの段階で書き込まれるデータレベル。

from_constants

classmethod from_constants(coefficients: dict[str, float], epsilon: float | None = None, deltas: Mapping[Path, float] | None = None, weights: IndexedMatrix | None = None, non_negative: bool = False) → Self

データ駆動型のポリシーではなく、固定された定数の境界値に基づいて構築する。

渡された各定数は、データを無視してそのまま返すポリシーでラップされます。 各引数の意味については、クラスのドキュメント文字列を参照してください。ここでは、引数は呼び出し可能オブジェクトではなく、固定値となっています。

from_data_scaled_deltas

classmethod from_data_scaled_deltas(coefficients: dict[str, float], scale: float = 1.0, non_negative: bool = False) → Self

観測量の統計的不確実性に基づいて、デルタのみを考慮する方針で構築する。

各行の許容誤差は、その行自身の統計的不確実性と、指数関数による近似の適合度に基づいて設定されます。 行 ii について、統計的- 1シグマおよび sigma_b 縮小カイ二乗値は、の エントリ "reduced_chi_squared" から chi2_red 読み取られます row_diagnostics:

inflationi=max⁡(1,chi2_redi)δi=scale⋅inflationi⋅σb,i\begin{split}\mathrm{inflation}_i &= \max(1, \sqrt{\mathrm{chi2\_red}_i}) \\ \delta_i &= \mathrm{scale} \cdot \mathrm{inflation}_i \cdot \sigma_{b, i}\end{split}

f に比例 delta_i するように設定することは、モロゾフの不一致原理に従う sigma (約 標準 scale 偏差分の余裕を持たせる)。 は を用いて sigma_b 報告 curve_fit を行うため absolute_sigma=True、モデルの不一致には影響を受けません。 sqrt(chi2_red) 因子 により、指数関数による近似が不十分な行は緩められ、 max(1, .) クランプ により、不一致によって行が緩められることはあっても、統計的不確実性の範囲を下回るほどに締め付けられることは決してありません。 未定義の chi2_red (nan例:平均化された行) を含む行、およびシステムが 診断 "reduced_chi_squared" 情報をまったく持たない場合はすべての行について、インフレーションは適用されません。 結果として得られた許容範囲内にモデルを収めることができない場合、ソルバーは「解けない問題」と報告し、 はすべての行を一括で緩めるための調整パラメータ scale です。

不確実性が非正または非有限である行には、スケーリングの基準となる統計情報が含まれていないため、極めて精度の高い行として扱うのではなく、利用可能な不確実性を持つ行の中央値の許容誤差が割り当てられる。 これにより、この代入を通じてのみ、その行が近似等式として解を制約することなく、典型的なスケールにおいてその行を適合内に保持することができ、また、どの行の許容誤差も、この代入を通じて以外には、他の行の不確実性に依存することは決してない。

パラメーター

  • 係数 – 目的関数に対するゲートごとの係数。ゲート名からfloat型への対応付けとして指定します。
  • スケール – 行ごとの許容誤差に対する乗数。単位は(拡大された)標準偏差。
  • non_negative – これを強制するかどうか x >= 0。

昇給

ValueError – 解法実行時に、線形システムのどの行にも正の有限な不確実性が存在せず、許容誤差を導出するための根拠が何も残っていない場合。

このページは役に立ちましたか?
バグや誤字の報告、またはコンテンツの要求はGitHubで行ってください。