Skip to main content
IBM Quantum Platform

Simplificación del operador de Pauli

qiskit_addon_obp.utils.simplify

Funciones de simplificación de los operadores de Pauli.

OperatorBudget

class OperatorBudget(max_paulis=None, max_qwc_groups=None, simplify=True, atol=None, rtol=None)

GitHub

Bases: object

Una clase para almacenar las constantes que determinan lo grande que puede crecer un operador.

La retropropagación se detendrá si se cumple alguna de las siguientes condiciones:

  • El número de términos de Pauli en todos los observables supera max_paulis. Cuando max_paulis = None, el número de términos de Pauli en los observables no está restringido.
  • El número de grupos de Pauli conmutables entre qubits en todos los observables es superior a max_qwc_groups. Cuando max_qwc_groups = None, el número de grupos Pauli conmutables en qubit en los observables no está restringido.

Parámetros

  • max_paulis (int | None)
  • max_qwc_groups (int | None)
  • simplify (bool)
  • atol (float | None)
  • rtol (float | None)

atol

Tipo: float | None

Valor predeterminado: None

Tolerancia absoluta para comprobar si los coeficientes son cero. Por defecto el atol valor de SparsePauliOp.

is_active

is_active()

GitHub

Devuelve si self impone algún límite al tamaño del operador.

Tipo de retorno

bool

max_paulis

Tipo: int | None

Valor predeterminado: None

El número máximo de términos de Pauli que puede contener el operador retropropagado.

max_qwc_groups

Tipo: int | None

Valor predeterminado: None

El número máximo de grupos de Pauli conmutables entre qubits que puede contener el operador retropropagado.

rtol

Tipo: float | None

Valor predeterminado: None

Tolerancia relativa para comprobar si los coeficientes son cero. Por defecto el rtol valor de Sparse.

simplify

Tipo: bool

Valor predeterminado: True

Una bandera que indica si se debe llamar a simplify() en cada iteración.

SimplifyMetadata

class SimplifyMetadata(num_unique_paulis, num_duplicate_paulis, num_trimmed_paulis, sum_trimmed_coeffs)

GitHub

Bases: object

Una clase de datos simple para devolver los atributos rastreados durante la simplificación del operador.

Parámetros

  • num_unique_paulis (int)
  • num_duplicate_paulis (int)
  • num_trimmed_paulis (int)
  • sum_trimmed_coeffs (float)

num_duplicate_paulis

Tipo: int

El número de términos de Pauli duplicados. Consulte también num_duplicate_paulis.

num_trimmed_paulis

Tipo: int

El número de términos de Pauli recortados. Consulte también num_trimmed_paulis.

num_unique_paulis

Tipo: int

El número de términos de Pauli únicos. Consulte también num_unique_paulis.

sum_trimmed_coeffs

Tipo: float

La suma de los coeficientes recortados. Consulte también sum_trimmed_coeffs.

simplify

simplify(operator, *, atol=None, rtol=None)

GitHub

Simplifica el operador de Pauli proporcionado.

Se trata de una adaptación de SparsePauliOp.simplify() que rastrea los metadatos de los términos simplificados.

Parámetros

  • operator (SparsePauliOp) – la SparsePauliOp para simplificar.
  • atol (float | None) – la tolerancia absoluta para comprobar si los coeficientes son cero. Si None, se volverá a utilizar SparsePauliOp.atol.
  • rtol (float | None) – la tolerancia relativa para comprobar si los coeficientes son cero. Si None, se volverá a utilizar SparsePauliOp.rtol.

Devuelve

El operador de Pauli simplificado.

Tipo de retorno

tupla [*SparsePauliOp*, SimplifyMetadata ]

¿Le ha resultado útil esta página?
Informe de un error, de una errata o solicite contenido en GitHub.