Pauli-Operator-Vereinfachung
qiskit_addon_obp.utils.simplify
Funktionen zur Vereinfachung von Pauli-Operatoren.
OperatorBudget
class OperatorBudget(max_paulis=None, max_qwc_groups=None, simplify=True, atol=None, rtol=None)
Basen: object
Eine Klasse zum Speichern der Konstanten, die bestimmen, wie groß ein Operator werden darf.
Die Backpropagation wird beendet, wenn eine der folgenden Bedingungen erfüllt ist:
- Die Anzahl der Pauli-Terme in allen Observablen übersteigt
max_paulis. Beimax_paulis = Noneist die Anzahl der Pauli-Terme in den Observablen nicht eingeschränkt. - Die Anzahl der Qubit-weise kommutierenden Pauli-Gruppen für alle Observablen übersteigt
max_qwc_groups. Wennmax_qwc_groups = None, ist die Anzahl der Qubit-weise kommutierenden Pauli-Gruppen in den Observablen nicht eingeschränkt.
Parameter
- max_paulis (int | None)
- max_qwc_groups (int | None)
- simplify (bool)
- atol (float | None)
- rtol (float | None)
atol
Standardwert: None
Absolute Toleranz für die Prüfung, ob die Koeffizienten Null sind. Standardmäßig wird der atol wert von SparsePauliOp.
is_active
is_active()
Gibt zurück, ob self irgendwelche Grenzen für die Operatorgröße festlegt.
Rückgabetyp
max_paulis
Standardwert: None
Die maximale Anzahl von Pauli-Termen, die der Backpropagated-Operator enthalten darf.
max_qwc_groups
Standardwert: None
Die maximale Anzahl von Qubit-weise kommutierenden Pauli-Gruppen, die der Backpropagated-Operator enthalten darf.
rtol
Standardwert: None
Relative Toleranz für die Prüfung, ob die Koeffizienten Null sind. Standardmäßig wird der rtol wert von Sparse.
simplify
Typ: bool
Standardwert: True
Ein Flag, das angibt, ob der Aufruf von simplify() bei jeder Iteration aufrufen soll.
SimplifyMetadata
class SimplifyMetadata(num_unique_paulis, num_duplicate_paulis, num_trimmed_paulis, sum_trimmed_coeffs)
Basen: object
Eine einfache Datenklasse für die Rückgabe der verfolgten Attribute während der Operatorvereinfachung.
Parameter
- num_unique_paulis (int)
- num_duplicate_paulis (int)
- num_trimmed_paulis (int)
- sum_trimmed_coeffs (float)
num_duplicate_paulis
Typ: int
Die Anzahl der doppelten Pauli-Terme. Siehe auch num_duplicate_paulis.
num_trimmed_paulis
Typ: int
Die Anzahl der trimmbaren Pauli-Terme. Siehe auch num_trimmed_paulis.
num_unique_paulis
Typ: int
Die Anzahl der eindeutigen Pauli-Terme. Siehe auch num_unique_paulis.
sum_trimmed_coeffs
Typ: float
Die Summe der getrimmten Koeffizienten. Siehe auch sum_trimmed_coeffs.
simplify
simplify(operator, *, atol=None, rtol=None)
Vereinfacht den angegebenen Pauli-Operator.
Dies ist eine Anpassung von SparsePauliOp.simplify() , die Metadaten der vereinfachten Begriffe verfolgt.
Parameter
- operator (SparsePauliOp) – die
SparsePauliOpzu vereinfachen. - atol (float | None) – die absolute Toleranz für die Prüfung, ob die Koeffizienten Null sind. Wenn
Noneverwendet wird, wird aufSparsePauliOp.atolzurückgegriffen. - rtol (float | None) – die relative Toleranz für die Prüfung, ob die Koeffizienten Null sind. Wenn
Noneverwendet wird, wird aufSparsePauliOp.rtolzurückgegriffen.
Rückgabe
Der vereinfachte Pauli-Operator.
Rückgabetyp