Puertas en Eje Z
Este artículo se centra en un conjunto específico de puertas que actúan sobre el eje .
Primero se explorará la puerta Pauli-Z, luego la puerta RotZ que la generaliza y que permite definir las puertas S y T. Por último, se hace mención a sus variantes condicionales.
Pauli-Z
Sección titulada «Pauli-Z»La puerta Pauli-Z (o simplemente Z) nombrada por el físico Wolfgang Pauli, al aplicarse, realiza una rotación de radianes (o 180 grados) a traves del eje de la esfera de Bloch.
En forma de matriz se ve de la siguiente manera:
La versión general de la aplicación de la puerta es la siguiente:
Se dice que Pauli-Z aplica una fase relativa de radianes.
Ejemplos
Sección titulada «Ejemplos»A continuación se detallarán las pruebas matemáticas de las conversiones de un estado base a otro utilizando la puerta Pauli-Z.
Aplicando en
Aplicando en
Aplicando en
Aplicando en
from qiskit import QuantumCircuitqc = QuantumCircuit(1)qc.z(0) # aplica la puerta Z al qubit 0
RotZ, S y T
Sección titulada «RotZ, S y T»Es la generalización de la puerta anterior. Aplica una rotación en el eje de la esfera de Bloch pero con la rotación especificada. Imitar el comportamiento de la puerta Pauli-Z implica aplicar una RotZ con radianes de rotación. La puerta S por otro lado es con radianes de rotación y T con radianes de rotación.
Esta puerta permite abstraerse de ángulos fijos, permitiendo una mayor libertad de aplicación.
En forma de matriz se puede observar de la siguiente manera, siendo un valor en radianes:
Por lo que definimos Z, S y T de la siguiente manera:
Por otra parte, la inversa de estas puertas es equivalente a aplicar el ángulo opuesto (e.g en el caso de Z).
Ejemplos
Sección titulada «Ejemplos»from qiskit import QuantumCircuitimport numpy as nppi = np.piqc = QuantumCircuit(1)qc.rz(pi, 0) # aplica una rotacion de pi al qubit 0 en el eje z
Variante condicional
Sección titulada «Variante condicional»La variante condicional es conocida como CZ, los puntos negros representan que la puerta Z se activa con , mientras que los puntos blancos o sin relleno implican que la puerta Z se activa con . Otro aspecto a tener en cuenta es que la puerta CZ se aplica tanto en el control como en el objetivo.
from qiskit import QuantumCircuitfrom qiskit.circuit.library import CZGateqc = QuantumCircuit(3)qc.cz(0, 1) # condicion en 0, objetivo en 1qc.barrier()toff_z=CZGate().control(1)qc.append(toff_z,[0,2,1]) # condicion en 0 y 2, objetivo en 1print(qc)
░q_0: ─■──░──■─ │ ░ │q_1: ─■──░──■─ ░ │q_2: ────░──■─ ░