Skip to main content
IBM Quantum Platform

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)

GitHub

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. Lorsque max_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. Lorsque max_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

Type : float | None

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

is_active()

GitHub

Retourne si self impose des limites à la taille des opérateurs.

Type de retour

booléen

max_paulis

Type : int | None

Valeur par défaut : None

Le nombre maximum de termes de Pauli que l'opérateur rétropropagé peut contenir.

max_qwc_groups

Type : int | None

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

Type : float | None

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)

GitHub

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)

GitHub

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 SparsePauliOp pour simplifier.
  • atol (float | None) – la tolérance absolue pour vérifier si les coefficients sont nuls. Si None, l'utilisation de SparsePauliOp.atol sera rétablie.
  • rtol (float | None) – la tolérance relative pour vérifier si les coefficients sont nuls. Si None, l'utilisation de SparsePauliOp.rtol sera rétablie.

Retours

L'opérateur de Pauli simplifié.

Type de retour

tuple [*SparsePauliOp*, SimplifyMetadata ]

Cette page a-t-elle été utile ?
Signaler un bogue, une coquille ou proposer du contenu sur GitHub.