Skip to main content
IBM Quantum Platform

groups_are_hermitian

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

Indique, pour chaque groupe, si l'opérateur formé par les éléments de ce groupe est hermitien.

Les groupes ne se dotent pas d'une signification propre; cela permet de vérifier une convention courante, à savoir que chaque groupe est hermitien en soi. C'est la propriété sur laquelle repose une formule de produit aléatoire lorsqu'elle échantillonne des groupes entiers, car seul un groupe hermitien présente une évolution temporelle unitaire. Si l'opérateur ne suit aucun groupe, cette fonction renvoie None.

Un groupe vide est considéré comme hermitien, car l'opérateur nul l'est.

Remarque

Cela reprend la garantie unilatérale selon laquelle is_hermitian(): une entrée True est toujours fiable, tandis qu'une entrée False n'est fiable que pour les types d'opérateurs dont la forme normale est une forme canonique véritable. Pour les autres, la vérification est prudente et peut aboutir à un résultat False indiquant qu'un groupe est en réalité hermitien.

Remarque

Cela n'est pas sous-entendu par (et n'implique pas non plus) groups_have_uniform_coeffs(). Des coefficients uniformes ne suffisent pas à rendre un groupe hermitien, et un groupe hermitien peut présenter des grandeurs mixtes.

>>> 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]

Paramètres

  • op – l'opérateur dont il faut vérifier les groupes.
  • atol – Précision numérique jusqu'à laquelle les coefficients sont considérés comme égaux. Cette valeur est définie par défaut sur 1e-8.

Retours

Un indicateur par index de groupe, ou None si l'opérateur ne suit aucun groupe.

Augmentations

TypeError – si n'est op pas un type d'opérateur pris en charge (voir OperatorTrait).

Cette page a-t-elle été utile ?
Signaler un bogue, une coquille ou proposer du contenu sur GitHub.