Skip to main content
IBM Quantum Platform

OneQubitEulerDecomposer

class qiskit.synthesis.OneQubitEulerDecomposer(basis='U3', use_dag=False)

GitHub

Bases : object

Une classe pour décomposer les unitaires de 1 qubit en rotations d'angle d'Euler.

La décomposition résultante est paramétrée par 3 paramètres d'angle de rotation d'Euler (θ,ϕ,λ)(\theta, \phi, \lambda), et un paramètre de phase γ\gamma. La valeur des paramètres pour une unité d'entrée dépend de la base de décomposition. Les bases autorisées et les circuits qui en résultent sont indiqués dans le tableau suivant. Notez que pour les bases non Euler ( U3U3, U1XU1X, RRRR ), les paramètres d'Euler de ZYZZYZ sont utilisés.

De base
Base de l'angle d'Euler
Circuit de décomposition
zYZZ(ϕ)Y(θ)Z(λ)Z(\phi) Y(\theta) Z(\lambda)eiγRZ(ϕ).RY(θ).RZ(λ)e^{i\gamma} R_Z(\phi).R_Y(\theta).R_Z(\lambda)
zXZZ(ϕ)X(θ)Z(λ)Z(\phi) X(\theta) Z(\lambda)eiγRZ(ϕ).RX(θ).RZ(λ)e^{i\gamma} R_Z(\phi).R_X(\theta).R_Z(\lambda)
xYXX(ϕ)Y(θ)X(λ)X(\phi) Y(\theta) X(\lambda)eiγRX(ϕ).RY(θ).RX(λ)e^{i\gamma} R_X(\phi).R_Y(\theta).R_X(\lambda)
xZXX(ϕ)Z(θ)X(λ)X(\phi) Z(\theta) X(\lambda)eiγRX(ϕ).RZ(θ).RX(λ)e^{i\gamma} R_X(\phi).R_Z(\theta).R_X(\lambda)
‘U3’Z(ϕ)Y(θ)Z(λ)Z(\phi) Y(\theta) Z(\lambda)eiγU3(θ,ϕ,λ)e^{i\gamma} U_3(\theta,\phi,\lambda)
‘U321’Z(ϕ)Y(θ)Z(λ)Z(\phi) Y(\theta) Z(\lambda)eiγU3(θ,ϕ,λ)e^{i\gamma} U_3(\theta,\phi,\lambda)
'U'Z(ϕ)Y(θ)Z(λ)Z(\phi) Y(\theta) Z(\lambda)eiγU3(θ,ϕ,λ)e^{i\gamma} U_3(\theta,\phi,\lambda)
pSXZ(ϕ)Y(θ)Z(λ)Z(\phi) Y(\theta) Z(\lambda)eiγU1(ϕ+π).RX(π2).e^{i\gamma} U_1(\phi+\pi).R_X\left(\frac{\pi}{2}\right). U1(θ+π).RX(π2).U1(λ)U_1(\theta+\pi).R_X\left(\frac{\pi}{2}\right).U_1(\lambda)
zSXZ(ϕ)Y(θ)Z(λ)Z(\phi) Y(\theta) Z(\lambda)eiγRZ(ϕ+π).X.e^{i\gamma} R_Z(\phi+\pi).\sqrt{X}. RZ(θ+π).X.RZ(λ)R_Z(\theta+\pi).\sqrt{X}.R_Z(\lambda)
zSXXZ(ϕ)Y(θ)Z(λ)Z(\phi) Y(\theta) Z(\lambda)eiγRZ(ϕ+π).X.RZ(θ+π).X.RZ(λ)e^{i\gamma} R_Z(\phi+\pi).\sqrt{X}.R_Z(\theta+\pi).\sqrt{X}.R_Z(\lambda) ou eiγRZ(ϕ+π).X.RZ(λ)e^{i\gamma} R_Z(\phi+\pi).X.R_Z(\lambda)
‘U1X’Z(ϕ)Y(θ)Z(λ)Z(\phi) Y(\theta) Z(\lambda)eiγU1(ϕ+π).RX(π2).e^{i\gamma} U_1(\phi+\pi).R_X\left(\frac{\pi}{2}\right). U1(θ+π).RX(π2).U1(λ)U_1(\theta+\pi).R_X\left(\frac{\pi}{2}\right).U_1(\lambda)
rRZ(ϕ)Y(θ)Z(λ)Z(\phi) Y(\theta) Z(\lambda)eiγR(π,ϕλ+π2).e^{i\gamma} R\left(-\pi,\frac{\phi-\lambda+\pi}{2}\right). R(θ+π,π2λ)R\left(\theta+\pi,\frac{\pi}{2}-\lambda\right)

__call__

__call__(unitary, simplify=True, atol=1e-12)

GitHub

Décomposer la porte à qubit unique en un circuit.

Paramètres

  • unitary (Operator |Gate | np.ndarray) – matrice unitaire à 1 qubit
  • simplify (bool) – réduire le nombre de portes dans la décomposition [Défaut : True].
  • atol (float) – tolérance absolue pour le contrôle des angles lors de la simplification du circuit retourné [Défaut : 1e-12].

Retours

le circuit de porte à qubit unique décomposé

Type de retour

QuantumCircuit

Augmentations

QiskitError – si les données d'entrée ne sont pas valides ou si la synthèse échoue.

Initialiser le décomposeur

Les bases prises en charge sont les suivantes 'U', 'PSX', 'ZSXX', 'ZSX', 'U321', 'U3', 'U1X', 'RR', 'ZYZ', 'ZXZ', 'XYX', 'XZX'.

Paramètres

  • basis (str) – la base de décomposition [Par défaut : 'U3']
  • use_dag (bool) – Si cette option est activée, les appels au décomposeur renverront un DAGCircuit objet au lieu de QuantumCircuit.

Augmentations

QiskitError – Si la base de saisie n'est pas reconnue.


Attributs

basis

La base de décomposition.


Méthodes

angles

angles(unitary)

GitHub

Renvoie les angles d'Euler pour le tableau d'entrée.

Paramètres

unitary (ndarray) – 2×22\times2 matrice unitaire.

Retours

(theta, phi, lambda).

Type de retour

bloc de données

angles_and_phase

angles_and_phase(unitary)

GitHub

Renvoie les angles d'Euler et la phase pour le tableau d'entrée.

Paramètres

unitary (ndarray) – 2×22\times2

Retours

(theta, phi, lambda, phase).

Type de retour

bloc de données

build_circuit

build_circuit(gates, global_phase)

GitHub

Renvoie l'objet circuit ou dag d'une liste de portes.

Type de retour

QuantumCircuit | DAGCircuit

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