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)
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. Cuandomax_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. Cuandomax_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
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)
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)
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
SparsePauliOppara simplificar. - atol (float | None) – la tolerancia absoluta para comprobar si los coeficientes son cero. Si
None, se volverá a utilizarSparsePauliOp.atol. - rtol (float | None) – la tolerancia relativa para comprobar si los coeficientes son cero. Si
None, se volverá a utilizarSparsePauliOp.rtol.
Devuelve
El operador de Pauli simplificado.
Tipo de retorno