Skip to main content
IBM Quantum Platform

group_coeff_means

group_coeff_means(op)

Restituisce il valore medio assoluto del coefficiente di ogni gruppo.

La i-esima voce è la somma di abs(coeff) sui termini del gruppo i, divisa per il numero di termini di quel gruppo. Se l'operatore non tiene traccia di alcun gruppo, questa funzione restituisce None.

Si tratta del peso di campionamento di una formula di prodotto randomizzata (ad esempio, qDRIFT ) che estrae interi gruppi anziché singoli termini: è l’entità di un gruppo atomico, che costituisce la scala rilevante poiché è proprio il raggruppamento a rendere ogni elemento campionato ermitiano (e quindi la sua evoluzione temporale unitaria) in primo luogo.

Il calcolo nativo è notevolmente più efficiente rispetto alla riduzione di e get_coeffs() groups in NumPy,, poiché questi due accessori copiano ciascuno un valore per ogni termine non raggruppato dall’operatore, solo per poi aggregarli nuovamente in un unico valore per gruppo, mentre questo metodo restituisce direttamente i valori num_groups() ridotti.

Nota

Un indice di gruppo a cui nessun termine è associato ha peso 0.0, il che lo esclude dal campione.

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

Parametri

op – l'operatore i cui gruppi devono essere ridotti.

Risultati

Il valore medio assoluto del coefficiente di ogni indice di gruppo, oppure None se l’operatore non monitora alcun gruppo.

Aumenti

TypeError – se non op è un tipo di operatore supportato (vedi OperatorTrait).

Questa pagina è stata utile?
Segnala un bug, un errore di battitura o richiedi contenuti su GitHub.