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.
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).