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)
ベース: ModelSolve
パウリ・リンドブラッドの速度定数の正値性を最小化 ModelData しつつ、を解く。
は を使用 Fit しなければならない PauliLindbladModel。
ゲート集合 について、 をゲート依存の生成元集合 におけるパウリ・リンドブラッド率、 を設計行列、 を観測データとする。 ユーザー指定のアルゴリズムパラメータについては:
- ゲート係数 、
- グローバルフィットの境界条件 、および
- 設計行列で測定された各パス について、 の局所適合境界、
このクラスは、次の凸最適化問題を解きます:
以下の条件に従い:
- 各行について
- (任意)
このライブラリにおけるモデルソルバーの一般的な役割に関する詳細については ModelSolve を参照してください。
制約の境界は、 ポリシー として指定されます。ポリシーとは、解法時に引数を受け取り LinearSystemData 、対応する境界値を返す呼び出し可能オブジェクトのことです。
パラメーター
- 係数 – 目的関数に対するゲートごとの係数。ゲート名からfloat型への対応付けとして指定します。
- epsilon – 全体的な重み付き L2 ノルム制約に対する許容誤差を返すポリシー。 「または
epsilon」のいずれか少なくとも1つを指定deltasする必要があります。 - deltas – 行ごとの許容誤差を `` から
floatPathへのマッピングとして返すポリシー。 線形システムのすべての行を網羅していなければならない。なぜなら、写像に含まれていない行があると、その行は制約を受けなくなるからである。 「または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
観測量の統計的不確実性に基づいて、デルタのみを考慮する方針で構築する。
各行の許容誤差は、その行自身の統計的不確実性と、指数関数による近似の適合度に基づいて設定されます。 行 について、統計的- 1シグマおよび sigma_b 縮小カイ二乗値は、の エントリ "reduced_chi_squared" から chi2_red 読み取られます row_diagnostics:
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 – 解法実行時に、線形システムのどの行にも正の有限な不確実性が存在せず、許容誤差を導出するための根拠が何も残っていない場合。