Skip to main content
IBM Quantum Platform

CommutationChecker

class qiskit.circuit.CommutationChecker(standard_gate_commutations=None, cache_max_entries=1000000, *, gates=None)

GitHub

Basi: object

Verificare le commutazioni di due operazioni.

Due unitari AA e BB su nn qubit commutano se

2nFprocess(AB,BA)+12n+1>1ε,\frac{2^n F_{\text{process}}(AB, BA) + 1}{2^n + 1} > 1 - \varepsilon,

Dove

Fprocess(U1,U2)=Tr(U1U2)2n2,F_{\text{process}}(U_1, U_2) = \left|\frac{\mathrm{Tr}(U_1 U_2^\dagger)}{2^n} \right|^2,

e abbiamo impostato ε\varepsilon su 101210^{-12} per tenere conto degli errori di arrotondamento sui sistemi a pochi qubit. Questa metrica è stata scelta per coerenza con gli altri controlli di vicinanza di Qiskit.

Quando possibile, le relazioni di commutazione vengono ricavate da una tabella di riferimento. Questo vale per le porte standard senza parametri (come XGate o HGate) o per le porte con parametri liberi (come RXGate con un ParameterExpression come angolo). In caso contrario, viene eseguito un controllo basato su matrici, in cui si dice che due operazioni commutano se la fedeltà media dei gate nell’eseguire la commutazione è superiore a una certa soglia (vedi approximation_degree).

Obsoleto a partire dalla versione 2.5.0

qiskit.circuit.commutation_checker.CommutationChecker.__init__()L'argomento cache_max_entries è deprecato a partire dalla versione 2.5.0 di Qiskit. Verrà rimosso in Qiskit 3.0.


Metodi

Parametri

  • standard_gate_commutations (dict | None)
  • cache_max_entries (int)
  • gates (set[str] | None)

check_commutation_entries

check_commutation_entries(first_op, first_qargs, second_op, second_qargs)

GitHub

Restituisce la relazione di commutazione memorizzata, se presente

Parametri

  • first_op (Operation) – prima operazione.
  • first_qargs (list) – i qubit della prima operazione.
  • second_op (Operation) – seconda operazione.
  • second_qargs (list) – qubit della seconda operazione.

Risultati

Vero se i cancelli commutano e falso se non è così.

Tipo di restituzione

bool

clear_cached_commutations

clear_cached_commutations()

GitHub

Cancella il dizionario delle commutazioni memorizzate nella cache

Questo metodo non ha alcun effetto, poiché non esiste più una cache interna

Obsoleto a partire dalla versione 2.5

Il metodo qiskit.circuit.commutation_checker.CommutationChecker.clear_cached_commutations() è deprecato a partire dalla versione 2.5 di Qiskit. Verrà rimosso in Qiskit 3.0.

commute

commute(op1, qargs1, cargs1, op2, qargs2, cargs2, max_num_qubits=None, approximation_degree=1.0, matrix_max_num_qubits=3)

GitHub

Verifica se due operazioni sono commutative. Il valore restituito da True indica che le operazioni sono realmente commutative, mentre il valore restituito da False indica che le operazioni non sono commutative o che il controllo di commutazione è stato saltato (ad esempio, quando le operazioni hanno condizioni o hanno troppi qubit).

Parametri

  • op1 (Operation) – prima operazione.
  • qargs1 (Sequence[Qubit |int]) – i qubit della prima operazione.
  • cargs1 (Sequence[Qubit |int]) – i clbits della prima operazione.
  • op2 (Operation) – seconda operazione.
  • qargs2 (Sequence[Qubit |int]) – i qubit della seconda operazione.
  • cargs2 (Sequence[Qubit |int]) – i clbits della seconda operazione.
  • max_num_qubits (int | None) – il numero massimo di qubit da considerare; il controllo può essere saltato se il numero di qubit per entrambe le operazioni supera tale quantità. Il valore predefinito è None, che significa nessun limite. Vedi anche matrix_max_num_qubits per limitare la dimensione delle matrici calcolate.
  • approximation_degree (float) – Se la fedeltà media del gate tra le due operazioni è superiore a questo numero (fino a 1e-12), si presume che le due operazioni si commutino.
  • matrix_max_num_qubits (int) – il numero massimo di qubit per i quali è consentito calcolare la rappresentazione matriciale. Ciò è necessario qualora non sia disponibile un controllo efficiente, ad esempio nel caso di porte personalizzate.

Risultati

Se due operazioni sono commutative.

Tipo di restituzione

bool

commute_nodes

commute_nodes(op1, op2, max_num_qubits=3, approximation_degree=1.0)

GitHub

Verifica se due DAGOpNode oggetti commutano.

Ciò equivale a commute() ma con l'operazione, i qubit e i clbit raggruppati nell'oggetto DAGOpNode . Per ulteriori dettagli, consultare commute() [...].

Parametri

Tipo di restituzione

bool

num_cached_entries

num_cached_entries()

GitHub

Restituisce il numero di voci nella cache

Questo metodo restituirà sempre 0 perché non esiste più una cache interna.

Obsoleto a partire dalla versione 2.5

Il metodo qiskit.circuit.commutation_checker.CommutationChecker.num_cached_entries() è deprecato a partire dalla versione 2.5 di Qiskit. Verrà rimosso in Qiskit 3.0.

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