Skip to main content
IBM Quantum Platform

CommutationChecker

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

GitHub

Bases : object

Vérifier les commutations de deux opérations.

Deux unitaires AA et BB sur des qubits nn commutent si

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

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,

et nous avons fixé ε\varepsilon à 101210^{-12} 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).

Obsolète depuis la version 2.5.0

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

  • 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

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

booléen

clear_cached_commutations

clear_cached_commutations()

GitHub

Efface le dictionnaire contenant les commutations mises en cache

Cette méthode ne fait rien, car il n'y a plus de cache interne

Obsolète depuis la version 2.5

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)

GitHub

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 aussi matrix_max_num_qubits pour 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

booléen

commute_nodes

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

GitHub

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

booléen

num_cached_entries

num_cached_entries()

GitHub

Renvoie le nombre d'entrées mises en cache

Cette méthode renverra toujours 0, car il n'y a plus de cache interne.

Obsolète depuis la version 2.5

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.

Cette page a-t-elle été utile ?
Signaler un bogue, une coquille ou proposer du contenu sur GitHub.