Skip to main content
IBM Quantum Platform

OneQubitEulerDecomposer

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

GitHub

Bases: object

Una clase para descomponer unitarios 1-qubit en rotaciones de ángulo de Euler.

La descomposición resultante se parametriza mediante 3 parámetros de ángulo de rotación de Euler (θ,ϕ,λ)(\theta, \phi, \lambda), y un parámetro de fase γ\gamma. El valor de los parámetros para un unitario de entrada depende de la base de descomposición. Las bases permitidas y los circuitos resultantes se muestran en la siguiente tabla. Nótese que para las bases que no son de Euler ( U3U3, U1XU1X, RRRR ), se utilizan los parámetros de Euler de ZYZZYZ.

Base
Ángulo de Euler Base
Circuito de descomposición
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) o 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

Descomponer la puerta de un qubit en un circuito.

Parámetros

  • unitary (Operator |Gate | np.ndarray) – matriz unitaria 1-qubit
  • simplify (bool) – reducir el número de puertas en la descomposición [Por defecto: Verdadero].
  • atol (float) – tolerancia absoluta para comprobar los ángulos al simplificar el circuito devuelto [Por defecto: 1e-12].

Devuelve

el circuito de puerta monocubit descompuesto

Tipo de retorno

QuantumCircuit

Eleva

QiskitError - si la entrada no es válida o falla la síntesis.

Inicializar descomponedor

Las bases soportadas son: 'U', 'PSX', 'ZSXX', 'ZSX', 'U321', 'U3', 'U1X', 'RR', 'ZYZ', 'ZXZ', 'XYX', 'XZX'.

Parámetros

  • basis (str) – la base de descomposición [Predeterminado: 'U3']
  • use_dag (bool) – Si es true la salida de las llamadas al descomponedor será un DAGCircuit en lugar de un objeto QuantumCircuit.

Eleva

QiskitError - Si no se reconoce la base de entrada.


Atributos

basis

La base de descomposición.


Métodos

angles

angles(unitary)

GitHub

Devuelve los ángulos de Euler de la matriz de entrada.

Parámetros

unitary (ndarray) – 2×22\times2 matriz unitaria.

Devuelve

(theta, phi, lambda).

Tipo de retorno

tupla

angles_and_phase

angles_and_phase(unitary)

GitHub

Devuelve los ángulos de Euler y la fase de la matriz de entrada.

Parámetros

unitary (ndarray) – 2×22\times2

Devuelve

(theta, phi, lambda, phase).

Tipo de retorno

tupla

build_circuit

build_circuit(gates, global_phase)

GitHub

Devuelve el circuito u objeto dag de una lista de puertas.

Tipo de retorno

QuantumCircuit | DAGCircuit

¿Le ha resultado útil esta página?
Informe de un error, de una errata o solicite contenido en GitHub.