Skip to main content
IBM Quantum Platform

Condizioni per gli operatori

Questo modulo raccoglie le routine che agiscono sui singoli termini di un operatore, suddividendoli in base alla loro struttura. I sottomoduli riportati di seguito raggruppano le funzionalità correlate.


Raggruppamento

Si prega di fare riferimento ai termini relativi agli operatori di gruppo: utilizzare la struttura degli operatori per una spiegazione dettagliata delle funzionalità di questo modulo.

Assegnazione

Anziché affidarsi sempre all'utente per l'inserimento degli indici di raggruppamento, questo modulo offre una serie di funzioni che determinano automaticamente le informazioni relative al raggruppamento.

Rubrica 1
Rubrica 2
group_terms_by_electronic_structure(op,...)Raggruppa i termini di un operatore in base alla loro struttura elettronica.

Analisi

Gli indici di gruppo non hanno alcun significato intrinseco: l'array indica solo quali termini appartengono allo stesso gruppo, mai il motivo. Di conseguenza, nessuna delle funzioni riportate di seguito indica se un raggruppamento sia “corretto”: ciascuna risponde a una domanda specifica e circoscritta relativa a un raggruppamento esistente, lasciando a te il compito di interpretare il risultato. Vengono forniti affinché un'ipotesi formulata da un consumatore a valle riguardo a un raggruppamento possa essere verificata in anticipo, anziché doverne sostenere il costo ad ogni chiamata.

Rubrica 1
Rubrica 2
group_coeff_means(op)Restituisce la media del modulo assoluto del coefficiente di ciascun gruppo.
groups_are_hermitian(op, *[, atol])Restituisce, per ciascun gruppo, se l'operatore formato dai termini di quel gruppo è hermitiano.
groups_have_uniform_coeffs(op, *[, atol, abs])Restituisce, per ciascun gruppo, se tutti i suoi coefficienti sono numericamente uguali.

Filtro

Questo modulo fornisce funzioni di utilità per rimuovere da un operatore i termini che non contribuiscono in modo significativo al calcolo successivo.

Membri

Rubrica 1
Rubrica 2
filter_diagonal_terms(op)Esclude i termini di un operatore che sono diagonali nella base dei numeri di occupazione.

Ordinamento

Questo modulo fornisce funzioni per riorganizzare i termini di un operatore. Sebbene gli operatori risultanti siano matematicamente identici, l'ordine dei termini può avere implicazioni significative sul comportamento dell'algoritmo in fase di esecuzione, a causa dell'ordine di iterazione dei termini.

Gli indici di gruppo sono un'etichetta assegnata a ciascun termine che non fornisce alcuna indicazione sulla posizione di tali termini; pertanto, i termini di un gruppo sono in genere sparsi all'interno di un operatore. group_order() raggruppa ogni gruppo in un unico blocco contiguo, il che permette di individuare split_out_groups() un gruppo richiesto tramite ricerca binaria anziché scansionare ogni singolo termine.

Nota

A differenza di canonical_order(), non order_terms() ha alcun equivalente nell'API C.

Membri

Rubrica 1
Rubrica 2
canonical_order(op)Restituisce una copia di un operatore con i suoi termini ordinati secondo un ordine canonico.
group_order(op)Restituisce una copia di un operatore con i suoi termini ordinati in base all'indice del gruppo.
order_terms(op, chiave, *[, inverso] )Restituisce una copia di un operatore con i suoi termini riordinati in base a una chiave specificata dall'utente.
Questa pagina è stata utile?
Segnala un bug, un errore di battitura o richiedi contenuti su GitHub.