Simplification de l'opérateur de Pauli
qiskit_addon_obp.utils.simplify
Fonctions de simplification des opérateurs de Pauli.
OperatorBudget
class OperatorBudget(max_paulis=None, max_qwc_groups=None, simplify=True, atol=None, rtol=None)
Bases : object
Une classe pour stocker les constantes qui déterminent la taille d'un opérateur.
La rétropropagation s'arrête si l'une des conditions suivantes est remplie :
- Le nombre de termes de Pauli pour l'ensemble des observables dépasse
max_paulis. Lorsquemax_paulis = None, le nombre de termes de Pauli dans les observables n'est pas contraint. - Le nombre de groupes de Pauli commutés dans le sens du qubit pour l'ensemble des observables est supérieur à
max_qwc_groups. Lorsquemax_qwc_groups = None, le nombre de groupes de Pauli commutés dans le sens du qubit dans les observables n'est pas contraint.
Paramètres
- max_paulis (int | None)
- max_qwc_groups (int | None)
- simplify (bool)
- atol (float | None)
- rtol (float | None)
atol
Valeur par défaut : None
Tolérance absolue pour vérifier si les coefficients sont nuls. La valeur par défaut est atol la valeur de SparsePauliOp.
is_active
max_paulis
Valeur par défaut : None
Le nombre maximum de termes de Pauli que l'opérateur rétropropagé peut contenir.
max_qwc_groups
Valeur par défaut : None
Le nombre maximal de groupes de Pauli commutés dans le sens du qubit que l'opérateur rétropropagé peut contenir.
rtol
Valeur par défaut : None
Tolérance relative pour vérifier si les coefficients sont nuls. La valeur par défaut est rtol la valeur de Sparse.
simplify
Type : bool
Valeur par défaut : True
Un drapeau indiquant s'il faut appeler simplify() à chaque itération.
SimplifyMetadata
class SimplifyMetadata(num_unique_paulis, num_duplicate_paulis, num_trimmed_paulis, sum_trimmed_coeffs)
Bases : object
Une classe de données simple pour renvoyer les attributs suivis lors de la simplification de l'opérateur.
Paramètres
- num_unique_paulis (int)
- num_duplicate_paulis (int)
- num_trimmed_paulis (int)
- sum_trimmed_coeffs (float)
num_duplicate_paulis
Type : int
Le nombre de termes de Pauli dupliqués. Voir aussi num_duplicate_paulis.
num_trimmed_paulis
Type : int
Le nombre de termes de Pauli élagués. Voir aussi num_trimmed_paulis.
num_unique_paulis
Type : int
Le nombre de termes de Pauli uniques. Voir aussi num_unique_paulis.
sum_trimmed_coeffs
Type : float
La somme des coefficients élagués. Voir aussi sum_trimmed_coeffs.
simplify
simplify(operator, *, atol=None, rtol=None)
Simplifie l'opérateur de Pauli fourni.
Il s'agit d'une adaptation de SparsePauliOp.simplify() qui suit les métadonnées des termes simplifiés.
Paramètres
- operator (SparsePauliOp) – le site
SparsePauliOppour simplifier. - atol (float | None) – la tolérance absolue pour vérifier si les coefficients sont nuls. Si
None, l'utilisation deSparsePauliOp.atolsera rétablie. - rtol (float | None) – la tolérance relative pour vérifier si les coefficients sont nuls. Si
None, l'utilisation deSparsePauliOp.rtolsera rétablie.
Retours
L'opérateur de Pauli simplifié.
Type de retour