Skip to main content
IBM Quantum Platform

XXDécompositeur

class qiskit.synthesis.XXDecomposer(basis_fidelity=1.0, euler_basis='U', embodiments=None, backup_optimizer=None)

GitHub

Bases : object

Une classe permettant la décomposition optimale d'opérateurs unitaires à 2 qubits en portes de base à 2 qubits de XX type (c'est-à-dire chacune localement équivalente à CAN(α,0,0)CAN(\alpha, 0, 0) pour une valeur de l' α\alpha pouvant varier).

Paramètres

  • basis_fidelity (dict |float) – les points forts disponibles et la fidélité de chacun d'entre eux. Il peut s'agir soit (1) d'un dictionnaire associant les valeurs d'angle XX à la fidélité à cet angle, soit (2) d'un seul flotteur f, interprété comme {pi: f, pi/2: f/2, pi/3: f/3}.
  • euler_basis (str) – Chaîne de base fournie à OneQubitEulerDecomposer pour la synthèse 1Q. La valeur par défaut est "U".
  • CXGateembodiments (dict[float, QuantumCircuit] | None) – Un dictionnaire associant les intensités d'interaction alpha à des circuits natifs qui incarnent l' CAN(α,0,0)CAN(\alpha, 0, 0) de la porte. Les intensités sont choisies de telle sorte que π/2\pi/2 représente la classe d'un. complet.
  • backup_optimizer (Callable[..., QuantumCircuit] | None) – Si cet élément est fourni, la synthèse est déléguée à cette fonction appelable lorsque XXDecomposer ne dispose pas de décomposition efficace propre. Utile dans certains cas particuliers nécessitant deux ou trois applications d’ XX(π/2)XX(\pi/2); dans ce cas, les méthodes de synthèse standard permettent d’obtenir un nombre de portes d’ 1Q s plus faible.
Remarque

Si embodiments n'est pas transmis, ou si une entrée est manquante, elle sera remplie si nécessaire à l'aide de la méthode _default_embodiment.

__call__

__call__(unitary, basis_fidelity=None, approximate=True, use_dag=False)

GitHub

Crée un circuit qui modélise (peut-être approximativement) l'opération unitaire spéciale unitary, en utilisant les modèles de circuits fournis à l'initialisation comme embodiments. La routine utilise basis_fidelity pour sélectionner le modèle de circuit optimal, y compris lors de la synthèse exacte; le contenu de basis_fidelity est un dictionnaire établissant une correspondance entre les forces d'interaction (échelonnées de manière à ce que CX=RZX(π/2)CX = RZX(\pi/2) corresponde à π/2\pi/2 ) et les fidélités du circuit.

Paramètres

  • unitary (Operator or ndarray) – 4×44 \times 4 unitaire à synthétiser.
  • basis_fidelity (dict orfloat) – Fidélité des portes de base. Il peut s'agir soit (1) d'un dictionnaire associant les valeurs d'angle XX à la fidélité à cet angle, soit (2) d'un seul flotteur f, interprété comme {pi: f, pi/2: f/2, pi/3: f/3}. S'il est donné, il remplace la fonctionnalité de base (basis_fidelity) donnée lors de l'initialisation.
  • approximate (bool) – Approximations si les fidélités de base sont inférieures à 1.0.
  • use_dag (bool) – Si vrai, un DAGCircuit est renvoyé à la place de QuantumCircuit lorsque cette classe est appelée.

Retours

Circuit synthétisé.

Type de retour

QuantumCircuit


Méthodes

num_basis_gates

num_basis_gates(unitary)

GitHub

Compte le nombre de portes qui seraient émises lors de la re-synthèse.

Remarque

Cette méthode est utilisée par ConsolidateBlocks.

Paramètres

unitary (Operator |ndarray)

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