Skip to main content
IBM Quantum Platform

group_coeff_means

group_coeff_means(op)

Renvoie la moyenne de l'amplitude absolue des coefficients pour chaque groupe.

La i-ième entrée correspond à la somme de abs(coeff) sur les termes du groupe i, divisée par le nombre de termes de ce groupe. Si l'opérateur ne suit aucun groupe, cette fonction renvoie None.

Il s'agit du poids d'échantillonnage d'une formule de produit aléatoire (par exemple, qDRIFT ) qui prélève des groupes entiers plutôt que des termes individuels : c'est l'amplitude d'un groupe atomique, ce qui constitue l'échelle pertinente, car c'est le regroupement qui rend chaque élément échantillonné hermitien (et donc son évolution temporelle unitaire) en premier lieu.

Le calcul en mode natif est nettement moins coûteux que la réduction de et get_coeffs() groups dans l' NumPy,, car ces deux accesseurs copient chacun une valeur par terme non regroupé à partir de l'opérateur, pour ensuite les agréger à nouveau en une seule valeur par groupe, alors que cette méthode renvoie directement les valeurs réduites num_groups() .

Remarque

Un indice de groupe auquel aucun terme n'est associé a une pondération de 0.0, ce qui l'exclut de l'échantillon.

>>> from qiskit_fermions.operators import FermionOperator
>>> from qiskit_fermions.operators.terms.grouping import group_coeff_means
>>> op = FermionOperator(
...     [1.0, 2.0, -1.0, -2.0],
...     [True, False, True, False, True, False, True, False],
...     [0, 1, 2, 3, 1, 0, 3, 2],
...     [0, 2, 4, 6, 8],
... )
>>> print(group_coeff_means(op))
None
>>> op.groups = [0, 1, 0, 1]
>>> group_coeff_means(op)
[1.0, 2.0]

Paramètres

op – l'opérateur dont les groupes doivent être réduits.

Retours

La valeur moyenne absolue du coefficient de chaque indice 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.