Skip to main content
IBM Quantum Platform

OneQubitEulerDecomposer

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

GitHub

Basi: object

Una classe per la decomposizione di unitari a 1 qubit in rotazioni ad angolo di Eulero.

La decomposizione risultante è parametrizzata da 3 parametri dell'angolo di rotazione di Eulero (θ,ϕ,λ)(\theta, \phi, \lambda) e da un parametro di fase γ\gamma. Il valore dei parametri per un'unità di ingresso dipende dalla base di decomposizione. Le basi ammesse e i circuiti risultanti sono riportati nella tabella seguente. Si noti che per le basi non di Eulero ( U3U3, U1XU1X, RRRR ), vengono utilizzati i parametri di Eulero di ZYZZYZ.

Base
Base dell'angolo di Eulero
Circuito di decomposizione
'ZYZ'Z(ϕ)Y(θ)Z(λ)Z(\phi) Y(\theta) Z(\lambda)eiγRZ(ϕ).RY(θ).RZ(λ)e^{i\gamma} R_Z(\phi).R_Y(\theta).R_Z(\lambda)
'ZXZ'Z(ϕ)X(θ)Z(λ)Z(\phi) X(\theta) Z(\lambda)eiγRZ(ϕ).RX(θ).RZ(λ)e^{i\gamma} R_Z(\phi).R_X(\theta).R_Z(\lambda)
'XYX'X(ϕ)Y(θ)X(λ)X(\phi) Y(\theta) X(\lambda)eiγRX(ϕ).RY(θ).RX(λ)e^{i\gamma} R_X(\phi).R_Y(\theta).R_X(\lambda)
'XZX'X(ϕ)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)
'PSX'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)
'ZSX'Z(ϕ)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)
'ZSXX'Z(ϕ)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)
'RR'Z(ϕ)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

Decomporre il gate di un singolo qubit in un circuito.

Parametri

  • unitary (Operator |Gate | np.ndarray) – matrice unitaria a 1 qubit
  • simplify (bool) – riduce il numero di porte nella decomposizione [Predefinito: Vero].
  • atol (float) – tolleranza assoluta per il controllo degli angoli durante la semplificazione del circuito restituito [Default: 1e-12].

Risultati

il circuito del gate a singolo qubit decomposto

Tipo di restituzione

QuantumCircuit

Aumenti

QiskitError – se l'input non è valido o la sintesi non va a buon fine.

Inizializzare il decompositore

Le basi supportate sono: 'U', 'PSX', 'ZSXX', 'ZSX', 'U321', 'U3', 'U1X', 'RR', 'ZYZ', 'ZXZ', 'XYX', 'XZX'.

Parametri

  • basis (str) – la base di decomposizione [Predefinita: 'U3']
  • use_dag (bool) – Se vero, il risultato delle chiamate al decompositore sarà un DAGCircuit oggetto invece di QuantumCircuit.

Aumenti

QiskitError – Se la base di input non viene riconosciuta.


Attributi

basis

La base di decomposizione.


Metodi

angles

angles(unitary)

GitHub

Restituisce gli angoli di Eulero per la matrice di input.

Parametri

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

Risultati

(theta, phi, lambda).

Tipo di restituzione

tupla

angles_and_phase

angles_and_phase(unitary)

GitHub

Restituisce gli angoli di Eulero e la fase per la matrice di input.

Parametri

unitary (ndarray) – 2×22\times2

Risultati

(theta, phi, lambda, phase).

Tipo di restituzione

tupla

build_circuit

build_circuit(gates, global_phase)

GitHub

Restituisce il circuito o l'oggetto dag da un elenco di porte.

Tipo di restituzione

QuantumCircuit | DAGCircuit

Questa pagina è stata utile?
Segnala un bug, un errore di battitura o richiedi contenuti su GitHub.