Semplificazione dell'operatore di Pauli
qiskit_addon_obp.utils.simplify
Funzioni per la semplificazione degli operatori di Pauli.
OperatorBudget
class OperatorBudget(max_paulis=None, max_qwc_groups=None, simplify=True, atol=None, rtol=None)
Basi: object
Una classe per memorizzare le costanti che determinano la dimensione di un operatore.
La retropropagazione si interrompe se si verifica una delle seguenti condizioni:
- Il numero di termini di Pauli in tutte le osservabili supera
max_paulis. Quandomax_paulis = None, il numero di termini di Pauli nelle osservabili non è vincolato. - Il numero di gruppi di Pauli commutativi tra i qubit in tutte le osservabili supera
max_qwc_groups. Quandomax_qwc_groups = None, il numero di gruppi Pauli commutativi tra i qubit nelle osservabili non è vincolato.
Parametri
- max_paulis (int | None)
- max_qwc_groups (int | None)
- simplify (bool)
- atol (float | None)
- rtol (float | None)
atol
Valore predefinito: None
Tolleranza assoluta per verificare se i coefficienti sono zero. Il valore predefinito è il atol di SparsePauliOp.
is_active
is_active()
Restituisce se self pone dei limiti alla dimensione dell'operatore.
Tipo di restituzione
max_paulis
Valore predefinito: None
Il numero massimo di termini Pauli che l'operatore retropropagato può contenere.
max_qwc_groups
Valore predefinito: None
Il numero massimo di gruppi di Pauli commutativi tra qubit che l'operatore retropropagato può contenere.
rtol
Valore predefinito: None
Tolleranza relativa per verificare se i coefficienti sono zero. Il valore predefinito è il rtol di Sparse.
simplify
SimplifyMetadata
class SimplifyMetadata(num_unique_paulis, num_duplicate_paulis, num_trimmed_paulis, sum_trimmed_coeffs)
Basi: object
Una semplice classe di dati per restituire gli attributi tracciati durante la semplificazione dell'operatore.
Parametri
- num_unique_paulis (int)
- num_duplicate_paulis (int)
- num_trimmed_paulis (int)
- sum_trimmed_coeffs (float)
num_duplicate_paulis
Tipo: int
Il numero di termini di Pauli duplicati. Vedere anche num_duplicate_paulis.
num_trimmed_paulis
Tipo: int
Il numero di termini di Pauli tagliati. Vedere anche num_trimmed_paulis.
num_unique_paulis
Tipo: int
Il numero di termini di Pauli unici. Vedere anche num_unique_paulis.
sum_trimmed_coeffs
Tipo: float
La somma dei coefficienti tagliati. Vedere anche sum_trimmed_coeffs.
simplify
simplify(operator, *, atol=None, rtol=None)
Semplifica l'operatore di Pauli fornito.
Si tratta di un adattamento di SparsePauliOp.simplify() che tiene traccia dei metadati dei termini semplificati.
Parametri
- operator (SparsePauliOp) – il sito
SparsePauliOpper semplificare. - atol (float | None) – la tolleranza assoluta per verificare se i coefficienti sono zero. Se
None, si ripiega sull'uso diSparsePauliOp.atol. - rtol (float | None) – la tolleranza relativa per verificare se i coefficienti sono zero. Se
None, si ripiega sull'uso diSparsePauliOp.rtol.
Risultati
L'operatore di Pauli semplificato.
Tipo di restituzione