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)
Bases : ModelSolve
Résout l'équation ModelData tout en minimisant la positivité des taux de Pauli-Lindblad.
Exige que le Fit utilise un PauliLindbladModel.
Pour un ensemble de portes , notons les taux de Pauli-Lindblad sur les ensembles de générateurs dépendants des portes , la matrice de conception et les données observées. En ce qui concerne les paramètres de l'algorithme définis par l'utilisateur :
- Coefficients de porte ,
- Limites de l'ajustement global , et
- Limites d'ajustement local pour chaque chemin mesurées dans la matrice de conception,
Cette classe résout le problème d'optimisation convexe suivant :
sous réserve de :
- pour chaque ligne
- (facultatif)
Consultez cette section pour ModelSolve plus de détails sur le rôle général d'un solveur de modèles dans cette bibliothèque.
Les limites des contraintes sont définies sous forme de politiques : des fonctions appelables qui reçoivent l'heure de résolution et LinearSystemData renvoient la limite correspondante.
Paramètres
- coefficients – Coefficients par porte pour la fonction objectif, sous la forme d'une correspondance entre le nom de la porte et une valeur de type float.
- epsilon – Politique renvoyant la tolérance pour la contrainte globale de norme d’ L2 e pondérée. Il faut
deltasindiquer au moins l’un des éléments suivants : ouepsilon. - deltas – Politique renvoyant les tolérances par ligne sous la forme d’une correspondance entre
Pathet un nombre à virgule flottante. Elle doit couvrir toutes les lignes du système linéaire, car une ligne absente de la correspondance resterait sans contrainte. Il fautdeltasindiquer au moins l'un des éléments suivants : ouepsilon. - poids – Politique renvoyant la matrice de poids pour
Wla contrainte « L2 » sous la forme d’un objetIndexedMatrixdont les indices de lignes et de colonnes sont des objetsPath. La valeur par défaut est IDENTITY. Une ligne ou une colonne du système linéaire qui n'apparaît pas dansWest pondérée zéro, ce qui fait disparaître son résidu de la norme. Utilisé uniquement lorsqueepsilonest fourni. - non_negative – Indique s'il faut appliquer cette règle
x >= 0.
Augmentations
- TypeError : si
epsilon, oudeltasweightsest spécifié comme une valeur fixe plutôt que comme une politique. Utilisezfrom_constants()pour les valeurs fixes. - ValueError : lors de la résolution, si la politique
weightsdeltasou génère une étiquette qui n'est pas une ligne du système linéaire, ou si endeltasomet une. - RuntimeError : lors du calcul de la solution, si le solveur convexe ne renvoie pas de solution, par exemple parce que les contraintes ne sont pas réalisables.
__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)
Méthodes
Chronique « 1 » | Chronique « 2 » |
|---|---|
__init__(coefficients[, epsilon, deltas, ...]) | |
from_constants(coefficients[, epsilon, ...]) | Construire à partir de limites constantes fixes plutôt que de politiques basées sur les données. |
from_data_scaled_deltas(coefficients[, ...]) | Construire à l'aide d'une politique « delta-only » fondée sur l'incertitude statistique des grandeurs observables. |
run(adapté) | Exécutez cette étape, qui renvoie un nouvel objet Fit dont le champ « niveau de sortie » est renseigné. |
Attributs
Chronique « 1 » | Chronique « 2 » |
|---|---|
input_level | Le niveau de données lu à cette étape. |
output_level | Le niveau de données sur lequel cette étape effectue l'écriture. |
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
Construire à partir de limites constantes fixes plutôt que de politiques basées sur les données.
Chaque constante fournie est encapsulée dans une politique qui ignore les données et les renvoie telles quelles. Consultez la chaîne de documentation de la classe pour connaître la signification de chaque argument; ici, il s'agit de valeurs fixes et non d'objets appelables.
from_data_scaled_deltas
classmethod from_data_scaled_deltas(coefficients: dict[str, float], scale: float = 1.0, non_negative: bool = False) → Self
Construire à l'aide d'une politique « delta-only » fondée sur l'incertitude statistique des grandeurs observables.
La tolérance de chaque ligne est déterminée à partir de l'incertitude statistique propre à cette ligne et de l'indice d'adéquation de son ajustement exponentiel. Pour la ligne e, avec 1le sigma statistique et sigma_b le chi carré réduit tirés chi2_red de l'entrée "reduced_chi_squared" de row_diagnostics:
Le réglage proportionnel delta_i à sigma respecte le principe de divergence de Morozov (en prévoyant une marge d'environ écarts-types scale ). Comme les rapports curve_fit sigma_b avec absolute_sigma=True, il ne tient pas compte des écarts de modèle; le sqrt(chi2_red) facteur assouplit les lignes dont l'ajustement exponentiel est médiocre, et la max(1, .) limite signifie que les écarts ne peuvent qu'assouplir une ligne, sans jamais la resserrer en dessous de son incertitude statistique. Les lignes dont la valeur est indéfinie ( chi2_red``nan par exemple, les lignes moyennées) et toutes les lignes pour lesquelles le système ne fournit aucun "reduced_chi_squared" diagnostic ne subissent aucune inflation. Si le modèle ne peut pas être ajusté dans les limites des tolérances obtenues, le programme signale un problème irréalisable, et scale permet de desserrer toutes les rangées en une seule fois.
Une ligne dont l'incertitude est non positive ou non finie ne fournit aucune information statistique permettant de la mettre à l'échelle; par conséquent, au lieu d'être considérée comme une ligne extrêmement précise, on lui attribue la tolérance médiane des lignes qui présentent une incertitude exploitable. Cela permet de conserver une telle ligne dans l'ajustement à une échelle typique sans qu'elle ne contraigne la solution à une quasi-égalité, et la tolérance d'aucune ligne ne dépend jamais de l'incertitude d'une autre ligne, sauf par le biais de cette substitution.
Paramètres
- coefficients – Coefficients par porte pour la fonction objectif, sous la forme d'une correspondance entre le nom de la porte et une valeur de type float.
- échelle – Coefficient multiplicateur de la tolérance par ligne, exprimé en écarts-types (gonflés).
- non_negative – Indique s'il faut appliquer cette règle
x >= 0.
Augmentations
ValueError : au moment de la résolution, si aucune ligne du système linéaire ne présente d'incertitude positive et finie, il n'y a donc rien à partir de quoi calculer les tolérances.