Skip to main content
IBM Quantum Platform

groups_are_hermitian

groups_are_hermitian(op, *, atol=1e-08)

Gibt für jede Gruppe zurück, ob der durch die Terme dieser Gruppe gebildete Operator hermitesch ist.

Gruppen schreiben keine eigene Bedeutung vor; dies bestätigt eine gängige Konvention, nämlich dass jede Gruppe für sich genommen hermitesch ist. Das ist die Eigenschaft, auf die sich eine randomisierte Produktformel stützt, wenn sie Stichproben aus ganzen Gruppen zieht, da nur eine hermitische Gruppe eine unitäre Zeitentwicklung aufweist. Wenn der Betreiber keine Gruppen verfolgt, gibt diese Funktion. zurück None.

Eine leere Gruppe gilt als hermitisch, da der Nulloperator hermitisch ist.

Anmerkung

Dies folgt aus der einseitigen Garantie von is_hermitian(): Ein Eintrag True vom Typ ist immer zuverlässig, während ein False Eintrag vom Typ nur für Operatortypen zuverlässig ist, deren Normalform eine echte kanonische Form ist. Bei den anderen ist die Überprüfung konservativ und kann zu einem Ergebnis führen, das eine Gruppe False betrifft, die tatsächlich hermitisch ist.

Anmerkung

Dies wird durch … nicht impliziert (und impliziert auch nichts) groups_have_uniform_coeffs(). Einheitliche Koeffizienten machen eine Gruppe noch nicht hermitisch, und eine hermitische Gruppe kann unterschiedliche Größenordnungen aufweisen.

>>> from qiskit_fermions.operators import FermionOperator
>>> from qiskit_fermions.operators.terms.grouping import groups_are_hermitian
>>> # built from the sparse arrays rather than a dictionary, because only the former
>>> # fixes the term order that the group indices are paired with
>>> op = FermionOperator(
...     [1.0, 1.0, 1.0],
...     [True, False, True, False, True, False],
...     [0, 1, 1, 0, 2, 3],
...     [0, 2, 4, 6],
... )
>>> op.groups = [0, 0, 1]  # the leading conjugate pair, then one unpaired term
>>> groups_are_hermitian(op)
[True, False]

Parameter

  • op – der Operator, dessen Gruppen überprüft werden sollen.
  • atol – Die numerische Genauigkeit, bis zu der Koeffizienten als gleich angesehen werden. Dieser Wert ist standardmäßig auf 1e-8. gesetzt.

Rückgabe

Ein Flag pro Gruppenindex oder None falls der Operator keine Gruppen verfolgt.

Erhöhungen

TypeError – wenn kein unterstützter Operatortyp op ist (siehe OperatorTrait).

War diese Seite hilfreich?
Melden Sie auf GitHub einen Fehler, einen Tippfehler oder fordern Sie Inhalte an.