CommutationChecker
class qiskit.circuit.CommutationChecker(standard_gate_commutations=None, cache_max_entries=1000000, *, gates=None)
Basi: object
Verificare le commutazioni di due operazioni.
Due unitari e su qubit commutano se
Dove
e abbiamo impostato su 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).
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
check_commutation_entries
check_commutation_entries(first_op, first_qargs, second_op, second_qargs)
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
clear_cached_commutations
clear_cached_commutations()
Cancella il dizionario delle commutazioni memorizzate nella cache
Questo metodo non ha alcun effetto, poiché non esiste più una cache interna
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)
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 anchematrix_max_num_qubitsper 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
commute_nodes
commute_nodes(op1, op2, max_num_qubits=3, approximation_degree=1.0)
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
num_cached_entries
num_cached_entries()
Restituisce il numero di voci nella cache
Questo metodo restituirà sempre 0 perché non esiste più una cache interna.
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.