CommutationChecker
class qiskit.circuit.CommutationChecker(standard_gate_commutations=None, cache_max_entries=1000000, *, gates=None)
Bases : object
Vérifier les commutations de deux opérations.
Deux unitaires et sur des qubits commutent si
où
et nous avons fixé à pour tenir compte des erreurs d'arrondi sur les systèmes à peu de qubits. Cette métrique est choisie pour des raisons de cohérence avec d'autres contrôles de proximité dans Qiskit.
Dans la mesure du possible, les relations de commutation sont extraites d'une table de correspondance. C'est le cas des portes standard sans paramètres (telles que XGate ou HGate) ou des portes à paramètres libres (telles que RXGate avec un ParameterExpression comme angle). Sinon, on procède à une vérification matricielle : on dit que deux opérations commutent si la fidélité moyenne des portes lors de la commutation est supérieure à un certain seuil (voir approximation_degree).
qiskit.circuit.commutation_checker.CommutationChecker.__init__()L'argument cache_max_entries est obsolète depuis la version 2.5.0 de Qiskit. Elle sera supprimée dans la version 3.0 de Qiskit.
Méthodes
Paramètres
check_commutation_entries
check_commutation_entries(first_op, first_qargs, second_op, second_qargs)
Renvoie la relation de commutation stockée, le cas échéant
Paramètres
- first_op (Operation) – première opération.
- first_qargs (list) – les qubits de la première opération.
- second_op (Operation) – deuxième opération.
- second_qargs (list) – les qubits de la deuxième opération.
Retours
Vrai si les portes commutent et faux si ce n'est pas le cas.
Type de retour
clear_cached_commutations
clear_cached_commutations()
Efface le dictionnaire contenant les commutations mises en cache
Cette méthode ne fait rien, car il n'y a plus de cache interne
Cette méthode qiskit.circuit.commutation_checker.CommutationChecker.clear_cached_commutations() est obsolète depuis la version 2.5 de Qiskit. Elle sera supprimée dans la version 3.0 de Qiskit.
commute
commute(op1, qargs1, cargs1, op2, qargs2, cargs2, max_num_qubits=None, approximation_degree=1.0, matrix_max_num_qubits=3)
Vérifie si deux opérations sont commutatives. La valeur renvoyée par True signifie que les opérations commutent réellement, et la valeur renvoyée par False signifie que soit les opérations ne commutent pas, soit la vérification de commutation a été ignorée (par exemple, lorsque les opérations ont des conditions ou comportent trop de qubits).
Paramètres
- op1 (Operation) – première opération.
- qargs1 (Sequence[Qubit |int]) – les qubits de la première opération.
- cargs1 (Sequence[Qubit |int]) – les clbits de la première opération.
- op2 (Operation) – deuxième opération.
- qargs2 (Sequence[Qubit |int]) – les qubits de la deuxième opération.
- cargs2 (Sequence[Qubit |int]) – les clbits de la deuxième opération.
- max_num_qubits (int | None) – le nombre maximal de qubits à prendre en compte, la vérification peut être ignorée si le nombre de qubits pour l'une ou l'autre opération dépasse ce nombre. La valeur par défaut est
None, ce qui signifie aucune limite. Voir aussimatrix_max_num_qubitspour limiter la dimension des matrices calculées. - approximation_degree (float) – Si la fidélité moyenne de la porte entre les deux opérations est supérieure à ce nombre (jusqu'à
1e-12), on suppose qu'elles sont commutées. - matrix_max_num_qubits (int) – le nombre maximal de qubits pour lesquels il est possible de calculer la représentation matricielle. Cela s'avère nécessaire lorsqu'il n'existe pas de vérification efficace toute prête, par exemple pour les portes personnalisées.
Retours
Si deux opérations commutent.
Type de retour
commute_nodes
commute_nodes(op1, op2, max_num_qubits=3, approximation_degree=1.0)
Vérifie si deux DAGOpNode objets commutent.
Cela revient à commute() mais avec l'opération, les qubits et les clbits regroupés dans l'objet DAGOpNode . Cliquez ici commute() pour plus de détails.
Paramètres
Type de retour
num_cached_entries
num_cached_entries()
Renvoie le nombre d'entrées mises en cache
Cette méthode renverra toujours 0, car il n'y a plus de cache interne.
Cette méthode qiskit.circuit.commutation_checker.CommutationChecker.num_cached_entries() est obsolète depuis la version 2.5 de Qiskit. Elle sera supprimée dans la version 3.0 de Qiskit.