0% encontró este documento útil (0 votos)
28 vistas31 páginas

Quantum Computing 101

Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
28 vistas31 páginas

Quantum Computing 101

Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Instituto Tecnológico y de Estudios

Superiores de Monterrey

Computación cuántica 101


Notas
Realizado por :

Gilberto Juárez Rangel A01570628


Summary
1. Preliminares 4
1.1. Algebra lineal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.1.1. Linealidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.1.2. Multiplicación matricial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.1.3. Eigenvalores y Eigenvectores . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.1.4. Multiplicación Tensorial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.2. Números complejos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.3. Notación de Dirac . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.4. Superposición cuántica & mediciones . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.5. Operadores Hermitianos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.6. Operadores Unitarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

2. Bits y compuertas cuánticas 11


2.1. Bits cuánticos (Qbits) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.2. Compuertas de un qubit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2.1. Circuitos cuánticos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.3. Multiples qubits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.4. Compuertas de múltiples qubits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.4.1. Compuertas controladas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

3. Fenómenos cuánticos 17
3.1. Inversibilidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.2. Superposición y paralelismo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.3. Entrelazamiento cuántico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.4. Phase Kickback . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.4.1. Fase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.4.2. Fase global y local . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.4.3. Phase kickback . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.5. Teorema de la no clonación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

4. Algoritmos Cuánticos 24
4.1. Teleportación Cuántica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
4.2. Deutsch-Josza . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
4.3. Bernstein-Vazirani . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
4.4. Ejemplo 2 qubits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
4.5. Quantum Phase Estimation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
4.6. Grover Search Algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

2
5. Quantum Fourier Transform 29
5.1. ¿Qué es la transformada de Fourier? . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
5.2. Interpretación fı́sica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
5.3. QFT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

3
1. Preliminares

1.1. Algebra lineal


1.1.1. Linealidad

¿A que nos referimos con lineal? Cuando nosotros tenemos un operador lineal, nos referimos
a que cumple con 2 requisitos:

1. Aditividad:

L(⃗v + ⃗u) = L(⃗v ) + L(⃗u) (1)

¿Cuáles operadores/funciones son lineales?


Elevar al cuadrado: f (x) = x2
Multiplicar por constante: f (x) = c · x
Sumar una constante: f (x) = x + c
Exponencial: f (x) = ex
Derivada: f (x) = dx (x)
d

2. Homogeneidad:

L(c · ⃗v ) = cL(⃗v ) (2)

Normalmente observamos los operadores en la representación de matrices A (aveces también se


utiliza el gorro para indicar operadores Â). De manera consecuente los operadores actúan sobre
vectores ⃗v de modo que:
    
a11 a12 v1 u
A⃗v = ⃗u → = 1 (3)
a21 a22 v2 u2

En este caso se dice que el operador A transforma el vector ⃗v en el vector ⃗u. Esta transformación se
lleva a cabo utilizando la multiplicación matricial.

1.1.2. Multiplicación matricial

Decimos que una matriz tiene n filas y m columnas cómo “Una matriz tamaño (n × m)”. Dadas
las matrices A y B con tamaños (na × ma ) y (nb × mb ), la multiplicación A × B es válida si y sólo
si ma = nb y la matriz resultante es de tamaño (na × mb ).

¿Cuáles de las siguientes multiplicaciones son válidas?¿Si son válidas, de que tamaño
es la matriz resultante?

2 3 1 3 1
  

5 2 2 4 9

 3
 
2 5 9 7

8

5 
 
6 2 1 6


4
3 5 
 
6 1 2 9 2 1


4 2 9 2
0 7

3 4 8 0
  
6 1 9 2

La multiplicación entre dos matrices A y B nos da una matriz C de tal modo que cada elemento cij
(i representa la fila y j la columna) está dado por:

X
cij = aij · bji (4)
j=1

Utilizando el ejemplo de la ecuación 3:


a11 · v1 + a12 · v2
      
a11 a12 v1 u1
= = (5)
a21 a22 v2 u2 a21 · v1 + a22 · v2

Del ejercicio anterior, obtengan el resultado de las multiplicaciones que son válidas.
Cuando multiplicamos escalares (números) el orden no importa, sin embargo, en la multiplicación
matricial esto si es importante ya que no siempre sigue siendo válida la multiplicación cuando
cambiamos el orden e incluso si fuese válida la multiplicación, en general el resultado es distinto. Si
el orden de multiplicación entre dos matrices A y B no importa, es decir, el resultado es el mismo,
se dice que las matrices “conmutan”.
De las matrices utilizadas en los últimos dos ejercicios, cambia el orden de la mul-
tiplicación, verifica si es válida y de serlo compara los resultados con el orden original.

1.1.3. Eigenvalores y Eigenvectores

Los eigenvectores (también conocidos cómo vectores caracterı́sticos) de un matriz, son aquellos
vectores que se mantienen invariantes (por un factor de escala) ante la operación de la matriz, es
decir,
A⃗v = λ⃗v . (6)
Se pueden encontrar los eigenvalores y eigenvectores a partir de la ecuación 6.
(A − λI)⃗v = ⃗0, (7)
det(A − λI) = 0. (8)
La condición de la ecuación 8 es necesaria ya que en caso contrario existirı́a la matriz inversa tal
que,
(A − λI)−1⃗0 = ⃗v . (9)
Resolviendo la ecuación 8, podemos obtener los eigenvalores, y una vez que obtenemos los eigen-
valores podemos sustituirlos en la ecuación 7 para obtener los eigenvectores. (Todo el proceso de
eigenvalores y eigenvectores puede realizarse en calculadoras gráficas o programas cómo MATLAB.)

Para una matriz de tamaño (n × n) existen n eigenvectores, si además estos eigenvectores son
linealmente independientes y con eigenvalores distintos entre sı́ podemos diagonalizar la matriz
haciendo un cambio de base.
λ1 0
   
a11 a12
A= base estándar → D= base eigenvectores (10)
a21 a22 0 λ2

5
Para diagonalizar la matriz, utilizamos una matriz generada por los eigenvectores, es decir:
 
v v21
P = ⃗v1 ⃗v2 = 11 (11)
 
v12 v22 ,
donde,
   
v11 v21
⃗v1 = & ⃗v2 = . (12)
v12 v22
Una vez que tenemos la matriz P la diagonalización es la operación,
D = P −1 AP. (13)
Encuentren los eigenvectores y eigenvalores de las siguientes matrices y utilicen los
resultados para diagonalizar las matrices. (Pueden usar matlab u otro programa)

3 6 9
 
2 4 8
1 2 3
1 1 3
 
1 5 1
3 1 1
1 1
 

1 −1

1.1.4. Multiplicación Tensorial

Cuando tenemos dos sistemas o espacios {H1 , H2 }. Podemos describir matricialmente el espacio
completo cómo la multiplicación matricial de estos,
H1,2 = H1 ⊗ H2 . (14)

En este nuevo sistema un operador matricial  que actúa en el espacio H1 , se escribe cómo  ⊗ I. Y
si un operador B actúa en el espacio H2 entonces se escribe cómo I ⊗ B̂. La multiplicación matricial
de operadores está dado tal que,
     
 ⊗ I · I ⊗ B̂ =  · I ⊗ I · B̂ =  ⊗ B̂. (15)

Tomando en cuenta que los vectores se consideran matrices de tamaño (n, 1), también se puede apli-
car la multiplicación matricial sobre ellos. Si tenemos vectores {v⃗1 , v⃗2 }que viven en los espacios {H1 ,
H2 } respectivamente, entonces la acción de los operadores de la ecuación 15 sobre la multiplicación
matricial de dichos vectores es,
     
 ⊗ B̂ · (v⃗1 ⊗ v⃗2 ) = Âv⃗1 ⊗ B̂ v⃗2 = ⃗u1 ⊗ ⃗u2 (16)

Al igual que la multiplicación matricial, la multiplicación tensorial no necesariamente conmuta,


 ⊗ B̂ ̸= B̂ ⊗ Â. (17)
Matricialmente vemos la multiplicación matricial de la siguiente manera,
    
b11 b12 b b12
   
a11 b21 b22 a12 11
a11 a12 b11 b12 b21 b22 
 ⊗ B̂ = ⊗ =   . (18)
a21 a22 b21 b22 b11 b12 b b12 
a22 11

a21
b21 b22 b21 b22
Esto significa que al multiplicar tensorialmente dos matrices de tamaño (n1 , m1 ) y (n2 , m2 ), obte-
nemos una nueva matriz de tamaño (n1 · n2 , m1 · m2 ).

6
Obtén la multiplicación tensorial de las siguientes matrices:
1 1 0 1
   
• √12 ⊗
1 −1 1 0
0 1 0 1
   
• ⊗
1 0 1 0
1 0 1 0
   
• ⊗
0 eiπ 0 eiπ/2
1 0 0 −i
   
• ⊗
0 1 i 1

1.2. Números complejos


Un número complejo normalmente se representa cómo la suma de dos componentes, el real y el
imaginario, también escrito cómo,
z = x + iy, (19)
dónde los componentes x y y son reales. Podemos observar gráficamente en la figura 1 el espacio de
los números complejos en dos dimensiones,

Im
2
(2+2i)

Re
−2 −1 1 2

−1

−2

Figura 1: Representación gráfica de un número complejo en coordenadas cartesianas


Ası́ mismo se puede representar el número complejo en coordenadas polares. Para ellos utilizamos
la fórmula de Euler,
eiθ = cos(θ) + i sin(θ) (20)
Dónde observamos que en coordenadas cartesianas representa tenemos que x = cos(θ) y y = sin(θ).
Además eiθ tiene norma 1, por lo que es necesario un factor de escala para representar un número
complejo. De esta forma tenemos que un número complejo en coordenadas polares se escribe cómo,
z = x + iy = reiθ , (21)

dónde r = x2 + y 2 y θ = arctan(y/x). Podemos observar gráficamente en la figura 2.


p

El conjugado de un número complejo se obtiene invirtiendo el signo del componente imaginario


y se denota cómo,
z ∗ = x − iy, (22)
de tal modo que,
z · z ∗ = (x + iy) · (x − iy) = x2 + y 2 . (23)

7
Im
2 π
2,828ei 4
1
θ
Re
−2 −1 1 2

−1

−2

Figura 2: Representación gráfica de un número complejo en coordenadas polares

¿En qué ángulos se obtienen los valores {1, i, -1, i} en la fórmula de Euler?
¿Si nuestro número complejo tiene norma 1, cuál es la forma más general en que
se puede representar?
Obtenga la norma de los siguiente números complejos
• 1+i
• 3eiπ/7
• 1−i
• 2 + 5i
• 2eiπ/9

1.3. Notación de Dirac


En álgebra lineal utilizamos la notación ⃗v para representar un vector, sin embargo, en mecánica
cuántica (Y por lo mismo en computación cuántica) es más utilizada la notación de Dirac, también
conocida cómo braket. En esta notación nuestros vectores columna los representamos cómo |v⟩,
también conocidos cómo “ket”. Si nosotros aplicamos el adjunto 1 del ket obtenemos un “bra” o
vector columna ⟨v|,
 †
v1
 v2 
|v⟩† =  .  = v1∗ v2∗ v3∗ = ⟨v| (24)
 
...
 
..
vn

Cuando aplicamos el adjunto sobre matrices o vectores que se están multiplicando se invierte el
orden de los componentes,

(A · B)† = B † · A† (25)

(|v⟩⟨u|) = |u⟩⟨v| (26)

Si tenemos un número multiplicando a un ket aplicar el adjunto afecta también a la constante,

(c|v⟩)† = ⟨v|c∗ (27)


1 Por adjunto nos referimos al transpuesto conjugado de una matriz y/o vector.

8
Si nosotros generamos la multiplicación entre un bra y un ket obtenemos la operación “braket” que
resulta en un número,
 
u1
 u2  X n
⟨v|u⟩ = v1 v2∗ . . . vn∗ ·  .  = vi · u∗i . (28)
 ∗   
 .. 
i=1
un

Cuando hacemos la operación braket del vector mismo, es decir, ⟨v|v⟩, obtenemos la norma del
vector,
n
X
⟨v|v⟩ = ||v||2 = |vi |2 (29)
i=1

Si hacemos la operación en el orden contrario obtenemos un “ketbra” lo que resulta en una matriz,

v1 · u∗1 v1 · u∗2 . . . v1 · u∗n


   
v1
 v2     2 · u∗1
 v v2 · u∗2 . . . v2 · u∗n 
|v⟩⟨u| =  .  · u∗1 u∗2 . . . u∗n =  . .. .. ..  . (30)
  
 ..   .. . . . 
vn vn · u∗1 vn · u∗2 . . . vn · u∗n

Demuestra que,
3
X
|i⟩⟨i| = I3 ,
i=0

dónde,
 
δ0i
δ1i 
|i⟩ =  
δ2i 
δ3i

(δij es la delta de kronecker, δij = 0 si i ̸= j y δij = 1 si i = j).


Determina si los siguientes productos son matrices o vectores. Si son vectores
define si es un ket o bra
• |v⟩⟨u|w⟩⟨x|
• ⟨v|u⟩⟨w|
• ⟨v|u⟩⟨w|x⟩

1.4. Superposición cuántica & mediciones


Si nosotros tenemos un espacio de n dimensiones, podemos describir un estado cómo la superpo-
sición de kets ortogonales, (Para propósitos de explicación utilizaremos n = 2 durante esta sección.)
 
ψ
|Ψ⟩ = 0 = ψ0 |0⟩ + ψ1 |1⟩, (31)
ψ1

Cuando nosotros hacemos una medición sobre el estado, el estado colapsa al ket |i⟩ con probabilidad
P (i) = |ψi |2 . Por consecuencia se tiene la condición,

|ψ0 |2 + |ψ1 |2 = 1, (32)

9
Es importante notar que la base en la que se mide no es necesariamente la estándar2 , mientras 2 kets
sean ortogonales entre sı́ pueden formar una base de medición. Una base que se utiliza frecuentemente
es,

1 1 1 1
   
|+⟩ = √ , |−⟩ = √ . (33)
2 1 2 −1

Demuestra que los kets |+⟩ y |−⟩ son ortogonales.

Si nosotros tenemos un estado idéntico al de la ecuación 31, al hacer una medición en la base
estándar obtenemos un estado |0⟩ o |1⟩ con sus respectivas probabilidades. Supongamos que medimos
y obtenemos el estado |0⟩. Si nosotros volvemos a hacer una medición en la base estándar, obten-
dremos con un 100 % de probabilidad el estado |0⟩, sin embargo si queremos hacer una medición en
la base {|0⟩, |1⟩}, primero es necesario escribir el estado actual (|0⟩) en dicha base,

1 |+⟩ + |−⟩ 1 1
   
|0⟩ = = √ = √ . (34)
0 2 2 1
|{z} | {z }
Base estándar Base {+,-}

Al hacer una medición en esta base observamos que tenemos un 50 % de probabilidad de medir el
estado |+⟩ o el estado |−⟩. Supongamos que medimos el estado |+⟩, al medir de nuevo en la base
estándar, nuestro ket actual es,
1 1
 
|+⟩ = √ (35)
2 1
| {z }
Base estándar

Por lo que tenemos denuevo un 50 % de probabilidad de medir el estado |0⟩ o el estado |1⟩.

En conclusión, si nosotros medimos en una base ortogonal, el estado colapsa a uno de los kets
que representan la base de la medición utilizada con probabilidades dadas por el estado antes de
la medición. Con el nuevo estado, una medición en la misma base deja el estado actual invariante.
Cuando cambiamos la base de medición, se vuelve a tener una superposición de los kets en la nueva
base, donde no sabremos previamente con certeza el resultado de la medición.

Encuentra una base ortogonal con componente imaginario.

1.5. Operadores Hermitianos


En mecánica cuántica un estado evoluciona en el tiempo a partir de la ecuación se Schrödinger,

ih̄∂t |Ψ(t)⟩ = Ĥ|Ψ(t)⟩, (36)

dónde H es el Hamiltoniano del sistema. El Hamiltoniano es un operador que representa el observable


de energı́a, además, este operador es Hermitiano. Los operadores Hermitianos son aquellos operadores
que viven en el espacio de Hilbert y además son autoadjuntos, es decir,

Ĥ † = Ĥ. (37)

Una propiedad caracterı́stica de los operadores Hermitianos es que sus eigenvalores son forzosamente
reales y además sus eigenvectores son ortogonales entre sı́.

Verifica si los siguientes operadores son Hermitianos:


2 Por base estándar nos referimos a la base {|0⟩, |1⟩}

10
0 1
 

1 0
0
 
−2i

2i 0
1
 
i

1 −i
1 0
 

0 −1
1
 
−1
• √1
2 1 1

1.6. Operadores Unitarios


Si nosotros resolvemos la ecuación de Schrödinger, podemos observar que,
i
|Ψ(t)⟩ = e h̄ Ĥ |Ψ(0)⟩, (38)
i
dónde el componente e h̄ Ĥ es el operador de evolución temporal del sistema. Este operador pertenece
al grupo de los operadores unitarios, la principal caracterı́stica de estos operadores es que,

Û Û † = I. (39)

A partir de está caracterı́stica, las demás son consecuentes de la misma. Los operadores unitarios
preservan la norma de un vector,

Û |v⟩ = |u⟩, (40)



⟨u|u⟩ = ⟨v|Û Û |v⟩ = ⟨v|I|v⟩ = ⟨v|v⟩. (41)

También preserva la ortogonalidad entre dos vectores,

Û |ψ0 ⟩ = |ϕ0 ⟩ (42)


Û |ψ1 ⟩ = |ϕ1 ⟩ (43)

⟨ϕ0 |ϕ1 ⟩ = ⟨ψ0 |Û Û |ψ1 ⟩ = ⟨ψ0 |I|ψ1 ⟩ = ⟨ψ0 |ψ1 ⟩. (44)

Todos los operadores de evolución temporal en mecánica cuántica y por consecuente en computación
cuántica corresponden al grupo de los operadores unitarios.

Del ejercicio de la sección anterior, verifica que operadores son unitarios.

Demuestra que para cualquier operador Ĥ hermitiano, eiθĤ es unitario.

2. Bits y compuertas cuánticas

2.1. Bits cuánticos (Qbits)


Clásicamente nuestras computadoras y equipos electrónicos se manejan a base de 0s y 1s. Un bit
por sı́ sólo se encuentra únicamente en uno de estos dos estados. Un bit cuántico también conocido
cómo “qubit” puede encontrarse en una superposición de los estados 0 y 1. Utilizando la notación
de Dirac podemos decir que de forma general un qubit puede encontrarse en el estado,

|ψ⟩ = α|0⟩ + β|1⟩. (45)

11
Dónde se debe tener la condición,

|α|2 + |β|2 = 1. (46)

Los componentes α y β pueden ser complejos. Debido a la condición de normalización 46, podemos
reescribir el estado de un qubit cómo,
     
θ θ
|ψ⟩ = eiγ cos |0⟩ + eiϕ sin |1⟩ . (47)
2 2

Demuestra que la ecuación 47 tiene norma 1.

Más adelante notaremos que podemos ignorar el factor eiγ y reescribir la ecuación 47 cómo,
   
θ θ
|ψ⟩ = cos |0⟩ + e sin

|1⟩. (48)
2 2

Este estado arbitrario puede representarse gráficamente en lo que llamamos la esfera de Bloch. Un

|ψ⟩

θ
y

ϕ
x

Figura 3: Representación de un qubit en la esfera de Bloch.


qubit se encuentra únicamente en la superficie de la esfera de Bloch 3 .

Determina en qué parte de la esfera de Bloch pertenecen los siguientes estados:


• |0⟩
• |1⟩
|0⟩+|1⟩
• √
2
|0⟩−|1⟩
• √
2
|0⟩+i|1⟩
• √
2
|0⟩−i|1⟩
• √
2
3 Sitenemos múltiples qubits cada uno tiene su propia esfera de Bloch. Si dos qubits se encuentran entrelazados
entonces el qubit ya no vive en la superficie pero sı́ dentro de la esfera.

12
2.2. Compuertas de un qubit
Anteriormente se explicó que todo operador de evolución temporal o en el caso equivalente de
computación cuántica, “compuertas”, que actúa sobre un estado pertenece al grupo de matrices
unitarias. Estas matrices deben cumplir con la condición,
Û Û † = I. (49)
Las compuertas más utilizadas que actúan sobre1 sólo qubit son,
0 1
 
X = , (50)
1 0
0
 
−i
Y = , (51)
i 0
1 0
 
Z = , (52)
0 −1
1 1 1
 
H =√ , (53)
2 1 −1
1 0
 
T = , (54)
0 eiπ/4
1 0
 
S = . (55)
0 i
La compuerta X actúa clásicamente cómo lo que conocemos cómo una compuerta lógica “NOT”,
X|0⟩ = |1⟩, (56)
X|1⟩ = |0⟩. (57)

¿Cuál es la acción de las compuertas Z y H sobre los estados |0⟩ y |1⟩?


¿A qué es equivalente la multiplicación H · Z · H?
¿Podemos generar la compuerta S sin utilizarla explı́citamente? Si sı́, ¿Cómo?

Las compuertas X, Y y Z son las matrices de Pauli. Los eigenestados de estas compuertas/matrices
se encuentran en los ejes x, y y z de la esfera de Bloch, esto se ve representado en la figura 4.

La compuerta H es conocida cómo la compuerta “Hadamard”, y es altamente utilizada en los


algoritmos cuánticos. Las compuertas T y S son conocidas cómo compuertas de fase debido a su
comportamiento sobre los estados |0⟩ y |1⟩.

Además de las compuertas mostradas anteriormente, también existen las compuertas “Parametri-
zadas”. Estas compuertas requieren de un parámetro para definirlas. Las compuertas parametrizadas
más comunes son,
cos θ2  −i sin θ2
  
Rx(θ) = , (58)
−i sin θ2 cos θ2
cos θ2  − sin θ2
   
Ry(θ) = , (59)
sin θ2 cos θ2
" θ
#
e−i 2 0
Rz(θ) = θ , (60)
0 ei 2
1 0
 
P (θ) = . (61)
0 eiθ

13
|0⟩

|0⟩−|1⟩

2

|0⟩−i|1⟩ |0⟩+i|1⟩
√ √
2 2

|0⟩+|1⟩

2

|1⟩

Figura 4: Representación de un qubit en la esfera de Bloch.

Las compuertas Rx(θ), Ry(θ) y Rz(θ) equivalen a rotaciones de un ángulo θ sobre la esfera
de Bloch aplicando la mano derecha sobre el eje correspondiente. Estas rotaciones surgen de las
operaciones 4 ,
   
θ θ θ
Rx(θ) = e−i 2 X = cos I − i sin X. (62)
2 2
   
θ θ θ
Ry(θ) = e−i 2 Y = cos I − i sin Y. (63)
2 2
   
θ θ θ
Rz(θ) = e−i 2 Z = cos I − i sin Z. (64)
2 2
(65)

Demostrar la segunda igualdad de la ecuación 62. (Hint: Utiliza la expansión de


Taylor sobre la variable θ).

¿Qué sucede si el parámetro de las compuertas Rx(θ), Ry(θ) y Rz(θ) es θ = π ?

2.2.1. Circuitos cuánticos

Un sistema de qubits se suele representar gráficamente con circuitos cuánticos. Los circuitos
cuánticos están compuestos de “cables” que representan los qubits del sistema. El orden de los
qubits se cuenta desde arriba hacia abajo utilizando la convención de “Python” (Empezar a contar
desde 0). En la figura 5 podemos observar un circuito cuántico con 3 qubits.
En la figura 5, el estado actual del sistema siguiendo el orden de los qubits serı́a,
|q0 ⟩
|q1 ⟩
|q2 ⟩

Figura 5: Circuito cuántico de 3 qubits


4 Para comprender el motivo de realizar esta operación, se recomienda leer la sección 1.3 del libro “Group theory
in a nutshell for physicists”.

14
|q2 ⟩ ⊗ |q1 ⟩ ⊗ |q0 ⟩ ≡ |q2 q1 q0 ⟩. (66)

Los operadores que nosotros aplicamos a los kets se ejecutan de derecha a izquierda,
|0⟩ − |1⟩ |0⟩ + |1⟩
ZHX|0⟩ → ZH|1⟩ → Z √ → √ , (67)
2 2
sin embargo, en los circuitos cuánticos las operaciones suceden de izquierda a derecha. El circuito
cuántico que representa las operaciones de la ecuación 67 serı́a,

|0⟩ X H Z

Dibuja los circuitos cuánticos que corresponden a las siguientes operaciones:


• H · X · Z|0⟩
• Y · T · H|0⟩
• Z · P (π/2) · Ry(π)|0⟩
Calcula cuál deberı́a ser el resultado de aplicar estas compuertas. (Trata de dibujar
los estados en la esfera de Bloch).

2.3. Multiples qubits


Cuando nosotros tenemos múltiples qubits, consideramos un sistema compuesto, es decir que
para 2 qubits, tenemos el espacio H1 (2) ⊗ H2 (2) = H12 (4) dónde Hi (n) ı́ndica que el espacio i de
dimensión n. Si nosotros tenemos 2 qubits tenemos una base estándar de 4 kets,
1 1
    
1 0  0
|0⟩ ⊗ |0⟩ =    =   , (68)
1 0
  
0
0 0
0 0
    
1 1  1
|0⟩ ⊗ |1⟩ =  = , (69)
0  0
   
0
1 0
1 0
    
0 0  0
|1⟩ ⊗ |0⟩ = 
 1  = 1 ,
    (70)
1
0 0
0 0
    
0 1  0
 0  = 0 .
|1⟩ ⊗ |1⟩ =      (71)
1
1 1

Normalmente utilizando la base estándar escribimos los sistemas de los compuestos cómo,

|i⟩ ⊗ |j⟩ ≡ |ij⟩. (72)

Podemos notar que si leemos el ket compuesto en binario,

|00⟩ = |0⟩, (73)


|01⟩ = |1⟩, (74)
|10⟩ = |2⟩, (75)
|11⟩ = |3⟩, (76)

15
El número obtenido es equivalente a la posición del 1 en nuestro vector de dimensión n contando
desde 0 (Convención de Python).

Un estado en el espacio H12 (4) en su forma más general se puede expresar ćomo,
|Ψ⟩ = α0 |00⟩ + α1 |01⟩ + α2 |10⟩ + α3 |11⟩ (77)
con la misma restricción,
|α0 |2 + |α1 |2 + |α2 |2 + |α3 |2 = 1 (78)

¿De que tamaño serı́a el espacio de 5 qubits?


¿Cómo escribirı́as el estado |12⟩ en la base estándar (0s y 1s) y en forma de vector
con un sistema de 4 qubits?¿Puede escribirse ese estado con menos qubits?
Genera la base de estándar de un sistema de 3 qubits.

2.4. Compuertas de múltiples qubits


Cuando tenemos múltiples qubits, las compuertas que se aplican sobre diferentes qubits equivalen
a la multiplicación tensorial de estas,
0 1 0 1
 
1 1 1 0 1 1 1 0 1 0
   
H ⊗X = √ ⊗ =√  (79)
2 1 −1 1 0 2 0 1 0 −1


1 0 −1 0
Hay que tomar en cuenta que el orden en el que se están aplicando las matrices va de derecha a
izquierda, es decir que en este caso la compuerta X se aplica sobre tu primer qubit, y la compuerta
H sobre tu segundo qubit. Esta operación se observa en un circuito cuántico cómo,

|0⟩ X

|0⟩ H

2.4.1. Compuertas controladas

Las compuertas controladas requieren por lo menos 2 qubits, 1 qubit será el “control” y el otro
el “target”. Al qubit target se le aplicará la compuerta indicada únicamente si el valor del qubit
control es 1. Estas compuertas se escriben con un punto, para indicar el control, que va conectado
a la compuerta que se aplica al qubit target.

|q0 ⟩ •
|q1 ⟩ X

Figura 6: Compuerta controlada del operador X, también conocida cómo CNOT.

El comportamiento de la compuerta CNOT cómo se muestra en la figura 6 puede reducirse a,


CNOT|00⟩ = |00⟩, (80)
CNOT|01⟩ = |11⟩, (81)
CNOT|10⟩ = |10⟩, (82)
CNOT|11⟩ = |01⟩. (83)

16
Esta compuerta es muy utilizada en computación cuántica y es la principal compuerta que nos
permite generar entrelazamiento cuántico. Otra forma muy común en la que se puede encontrar esta
compuerta es,

|q0 ⟩ •
|q1 ⟩

Figura 7: Compuerta controlada del operador X, también conocida cómo CNOT.

¿Cuál es el estado final de un sistema al que le aplicamos una compuerta CNOT


con un control qubit q0 en el estado q0 = √12 (|0⟩ + |1⟩) y un target q1 en el estado
|0⟩?
Escribe la matriz correspondiente a al operador CNOT con el primer qubit q0
cómo control y el segundo qubit q1 cómo target.
¿Cómo podemos hacer una compuerta controlada por un |0⟩ en lugar del |1⟩?

Todas las compuertas de un qubit que observamos anteriormente pueden utilizarse de manera con-
trolada. Otras compuertas de múltiples qubits comúnmente utilizadas son la toffoli,

|q0 ⟩ •
|q1 ⟩ •
|q2 ⟩
que actúa sobre 3 qubits de los cuáles dos son controles y el sobrante target, y la compuerta SWAP,

|q0 ⟩ × |q1 ⟩
|q1 ⟩ × |q0 ⟩
que únicamente intercambia los estados sobre los que se aplica la compuerta.

3. Fenómenos cuánticos
La computación cuántica permite ventajas sobre las computadoras clásicas a partir del uso de
fenómenos cuánticos. Entender estos fenómenos cuánticos es fundamental para el desarrollo de al-
goritmos cuánticos, a continuación se explicarán estos fenómenos por separado.

3.1. Inversibilidad
Las computadoras clásicas funcionan a base de compuertas que actúan sobre 1 o más bits. Las
compuertas de 1 bit que forman nuestras computadoras son, NOT, Identidad, Op. 0 y Op. 1. Y sus
acciones sobre los bits se pueden ver con la siguiente tabla de verdad: Y las compuertas que actúan

NOT IDENTIDAD OP. 0 OP. 1


0 1 0 0 1
1 0 1 0 1

sobre 2 bits son, AND, OR, XOR, NAND y NOR. Cuya acción se ve en la tabla de verdad,
Se dice que una compuerta es invertible si al tener la salida de la compuerta puedes saber cuál
fue la entrada.

17
AND OR XOR NAND NOR
00 0 0 0 1 1
01 0 1 1 1 0
10 0 1 1 1 0
11 1 1 0 0 0

¿Puedes determinar que compuertas de 1 y 2 bits son invertibles?

Cómo podemos observar, varias de las compuertas no son invertibles y esto se debe a la repetición de
salidas para distintas entradas, sin embargo, debido a que nosotros aplicamos operaciones unitarias
sobre nuestros qubits. Siempre existe un operador inverso con la forma,

U −1 = U † , (84)

que nos pueda invertir la compuerta que hayamos realizado. Si nuestros operadores además son
Hermitianos, es decir, autoadjuntos entonces,

U = U †, (85)
∴ U · U = I. (86)

Cuando nosotros realizamos múltiples operaciones en 1 o más qubits,

|0⟩ H •

|0⟩ X Ry(π/3)

el inverso son las operaciones adjuntas en el orden invertido con los correspondientes adjuntos,

|0⟩ • H

|0⟩ Ry(−π/3) X

Dibuja el inverso de los siguientes circuitos.

• |0⟩ H • Rx(π)

|0⟩ X Z Ry(π/3)

• |0⟩ H • •

|0⟩ H X •

|0⟩ X

• |0⟩ P (π/2) P (π) H

|0⟩ P (π) H •

|0⟩ H • •

18
Verifica esto realizando el circuito mostrado y el inverso en qiskit. (Hint: Si está
correcto deberı́amos medir únicamente |0⟩.)

3.2. Superposición y paralelismo


El fenómeno de superposición se ha explicado anteriormente, dónde sabemos que un sistema de
n qubits puede estar en el estado,
n
2X −1
|Ψ⟩ = αx |x⟩, (87)
x=0
n
2X −1
|αx |2 = 1, (88)
x=0

dónde aprovechamos la notación numérica (|5⟩ ≡ |101⟩) en lugar de la binaria. Sin embargo la ver-
dadera ventaja de este fenómeno viene con el paralelismo de la computación cuántica.

Si tenemos un sistema de 2 qubits, podemos tener un estado arbitrario |x, y⟩ dónde x y y pue-
den tomar valores {0, 1}, entonces podemos hacer una transformación con las compuertas correctas
dónde, |x, y⟩ → |x, y ⊕ f (x)⟩, dónde f (x) transforma un qubit {0, 1} en otro {0, 1}5 y la operación ⊕
es módulo 2. Si nosotros además establecemos y = 0, entonces |x, 0⟩ → |x, f (x)⟩.

|x⟩ |x⟩
f (x)
|0⟩ |f (x)⟩

Pongamos por ejemplo que f (0) = 0, f (1) = 1, entonces, para un estado en superposición inicial,

|0⟩ + |1⟩ |00⟩ + |11⟩


√ ⊗ |0⟩ → √ . (89)
2 2
Generalizando a un sistema de n qubits entonces, el paralelismo nos permite,
n n
2X −1 2X −1
αx |x, 0⟩ → αx |x, f (x)⟩. (90)
x=0 x=0

Esto es ampliamente utilizado para varios algoritmos que nos permiten realizar las operaciones sobre
todos los posibles valores que queramos.

3.3. Entrelazamiento cuántico


El entrelazamiento cuántico es un fenómeno que se presenta cuando el sistema de 2 o más qubits
no se puede representar cómo la multiplicación tensorial de estos. El ejemplo más conocido es el
estado de Bell,

|00⟩ + |11⟩
|Φ+ ⟩ = √ . (91)
2
Este estado se obtiene con el circuito,
5 La función f (x) no está definida por lo que f (0) y f (1) puede arrojar tanto 0 o 1, no necesariamente el contrario.

19
|0⟩ H •

|0⟩ X

Demuestra que el circuito mostrado genera el estado de Bell |Φ+ ⟩.

El hecho de que estén entrelazados, implica que la medición de un qubit afecta al otro. Supongamos
que medimos el primer qubit (recordemos que el orden de los qubits va de derecha a izquierda),
tenemos 2 opciones de medición podemos medir el estado |0⟩ o el estado |1⟩ con una probabilidad
del 50 %. Digamos que obtuvimos la medición |0⟩, entonces nosotros sabemos inmediatamente que
el segundo qubit se encuentra en el estado |0⟩ ya que no existe ninguna probabilidad de medir el
estado |10⟩. Lo mismo sucediera si midiéramos el estado |1⟩ en el primer qubit.

Formalmente para saber si un estado está entrelazado se utiliza la matriz de densidad. Dado un
estado |Ψ⟩ la matriz de densidad está dada por,
ρ = |Ψ⟩⟨Ψ|. (92)
Nosotros podemos obtener las propiedades del qubit 1, utilizando la traza parcial6 de modo que,
 
a b c d
a+f c+h
 
 e f g h
ρ= ρ = T r {ρ} =
(1) (2)
(93)
i+n k+p
 
i j k l
m n o p
Si un estado se encuentra entrelazado entonces,
1
≤ T r{(ρ(1) )2 } < 1 (94)
2
dónde la igualdad a 1/2 se le conoce cómo un estado con entrelazamiento máximo. El estado de bell
que observamos es un estado entrelazado máximo ya que,
|00⟩ + |11⟩
|Ψ⟩ = √ , (95)
2
1 0 0 1
 
1 0 0 0 0
ρ = |Ψ⟩⟨Ψ| =  , (96)
2 0 0 0 0
1 0 0 1
1/2 0
 
ρ(1) = Tr(2) {ρ} = , (97)
0 1/2
1/4 0
 
Tr{(ρ(1) )2 } = Tr{ } = 1/4 + 1/4 = 1/2 (98)
0 1/4
En realidad, existen otros 3 estados de Bell que también son estados con entrelazamiento máximo
|00⟩ − |11⟩
|Φ− ⟩ = √ , (99)
2
|01⟩ + |10⟩
|Ψ+ ⟩ = √ , (100)
2
|01⟩ − |10⟩
|Ψ− ⟩ = √ . (101)
2
Estos estados son utilizados principalmente para un método llamado “Super dense coding”.

6 La traza es la suma de todos los elementos en la diagonal de una matriz. La traza parcial genera esta suma sobre

lo que serı́a la matriz 1 o matriz 2 que genera el sistema compuesto.

20
Demuestra que los 4 estados de Bell están entrelazados y que los 4 estados forman
una base.
¿Cómo podemos generar los otros 3 estados de Bell? (Hint: Puedes empezar desde
el estado |Φ+ ⟩.)

Cuando medimos uno de los qubits, inmediatamente sabemos el valor del siguiente qubit sin
importar a la distancia que se encuentre. Sin embargo, esto no permite una comunicación más
rápida que la velocidad de la luz ya que no tenemos control sobre el qubit que se está mandando.

3.4. Phase Kickback


El phase kickback es un fenómeno que sucede cuando tenemos una compuerta controlada que
actúa sobre un eigen-estado. Sin embargo, es importante entender que es la fase y la fase global y
local.

3.4.1. Fase

Cuando nosotros tenemos una onda que se propaga en el espacio, se puede describir de manera
sencilla cómo,
 
cos ⃗k · ⃗x − ωt + ϕ , (102)

dónde ⃗k es el número de onda, x es la posición en el espacio, ω es la frecuencia angular de la onda,


t es el tiempo y ϕ es el término de desfase. Suponiendo que observamos una imagen de la onda en
un tiempo t = 0 y ϕ = 0, podemos observar la función de manera general cómo,

Si nosotros cambiamos el valor de ϕ, notamos que la función se desplaza hacia la izquierda cuando
ϕ > 0,

y
ϕ=1 ϕ=0

y a la derecha si ϕ < 0,
Además notamos que para ϕ = 2nπ, dónde n es un número entero, la función regresa al mismo lugar
de dónde empezó. La fase de una onda nos es de vital importancia cuando hay interacción entre dos

21
y
ϕ=0 ϕ=1

ondas. Si nosotros tenemos ondas idénticas (⃗k1 = ⃗k2 , etc..) con una misma fase tenemos el fenómeno
de interferencia constructiva,
     
cos ⃗k · ⃗x − ωt + ϕ1 + cos ⃗k · ⃗x − ωt + ϕ = 2 cos ⃗k · ⃗x − ωt + ϕ , (103)

sin embargo, cuando nosotros tenemos una diferencia de fases ∆ϕ = ϕ2 − ϕ1 = π, entonces,


   
cos ⃗k · ⃗x − ωt + ϕ1 + cos ⃗k · ⃗x − ωt + ϕ2 = 0. (104)

Este resultado es más sencillo de analizar utilizando notación compleja, la ecuación 102 se puede
reescribir cómo,
  h i

cos ⃗k · ⃗x − ωt + ϕ = Re ei(k·⃗x−ωt+ϕ) . (105)

Escribir la onda utilizando notación compleja nos permite factorizar nuestra fase del resto de la
expresión,
⃗ ⃗
ei(k·⃗x−ωt+ϕ) = eiϕ ei(k·⃗x−ωt) , (106)
haciendo más sencillo el análisis de fases de un sistema.

En un análisis clásico podemos realizar todo el análisis utilizando la notación compleja consi-
derando la parte real hasta el final. Sin embargo, en mecánica cuántica debe tomarse en cuenta la
parte real y compleja de las ondas por lo que no es necesario sacar la parte Real de nuestra ecuación.

Demuestra que cuando ϕ = π la ecuación 104 se cumple.


Observa cómo cambia la interacción de dos ondas idénticas con diferentes fases
utilizando una herramienta cómo Desmos o Geogebra.

3.4.2. Fase global y local

Cuando nosotros tenemos una fase actuando sobre todo el estado,


eiϕ |Ψ⟩,

decimos que esa fase es una fase global. Para nosotros observadores, el estado eiϕ |Ψ⟩ y el estado |Ψ⟩
son idénticos, es decir, no podemos diferenciar los estados ni medir la fase ϕ por ningún método. Es
por esto que podemos reescribir la ecuación 47 cómo la ecuación 48.

Demuestra que sin importar las compuertas que apliques sobre un estado de 1 o
más qubits con una fase global eiϕ , no podemos diferenciar dichos estados.

La fase local son todas aquellas fases αx que observamos cuando describimos un estado de n qubits
cómo,
n
2X −1
|Ψ⟩ = αx |x⟩, (107)
x=0

22
De tal manera que los estados,

|0⟩ + |1⟩ |0⟩ − |1⟩


|+⟩ = √ , |−⟩ = √ ,
2 2
son distintos aunque para ambos estados las probabilidades de medir los estados |0⟩ y |1⟩ son 50 %
y 50 % respectivamente.

¿Qué compuerta o compuertas utilizarı́as para diferenciar el estado |+⟩ del estado
|−⟩ al hacer una medición?

3.4.3. Phase kickback

Cómo mencionamos al inicio de la sección, el fenómeno de phase kickback se presenta cuando el


target de una compuerta controlada es un eigen-estado de la compuerta. Digamos que tenemos un
estado |ψ⟩ que es eigen-vector de una compuerta U ,

U |ψ⟩ = λ|ψ⟩ = eiϕ |ψ⟩, (108)

dónde λ = eiϕ debido a que nuestras compuertas son forzosamente unitarias por lo que un eigen-
valor debe tener norma 1. Cuando nosotros aplicamos la compuerta controlada con un qubit en
superposición cómo control,

|ψ⟩ U
|+⟩ •
entonces podemos observar que,

|0⟩ + |1⟩ |0⟩|ψ⟩ + λ|1⟩|ψ⟩


  
CU √ ⊗ |ψ⟩ = √ , (109)
2 2
Y que este estado sigue siendo separable de tal manera que,

|0⟩ + |1⟩ |0⟩ + λ|1⟩


    
CU √ ⊗ |ψ⟩ = √ ⊗ |ψ⟩. (110)
2 2
Podemos observar entonces que al aplicar una compuerta controlada sobre un eigen-estado de la
compuerta, afectamos al qubit controlado en lugar del qubit target cómo usualmente deberı́a de
suceder.

3.5. Teorema de la no clonación


El teorema de la no clonación nos dice que dado un estado |Ψ⟩ desconocido, no podemos generar
una copia del estado,

|Ψ⟩ |Ψ⟩
U
|0⟩ |Ψ⟩

Esto puede comprobarse fácilmente utilizando 1 qubits, si nosotros tenemos estados |0⟩ o |1⟩ puros,
entonces la copia debe de generar los mismos valores, es decir,

U |01⟩ = |11⟩, (111)


U |00⟩ = |00⟩ (112)

23
Cuando nosotros tenemos una superposición de estados, por linealidad,
|0⟩ + |1⟩ U |00⟩ + U |01⟩
  
U |0⟩ ⊗ √ = √ , (113)
2 2
utilizando los resultados anteriores,
|00⟩ + |01⟩ |00⟩ + |11⟩
 
U √ = √ (114)
2 2
Lo cuál es distinto de tener,
|0⟩ + |1⟩ |0⟩ + |1⟩
   
|Ψ⟩ ⊗ |Ψ⟩ = √ ⊗ √ . (115)
2 2
Si nosotros tuviésemos conocimiento del estado en cuestión una clonación puede llevarse a cabo, sin
embargo saber cuál es el estado actual en el punto de vista de un atacante cibernético requerirı́a
medir el qubit lo cuál cambia el estado. Esto permite muchas aplicaciones de criptografı́a para
mantener segura la información que mandamos.

4. Algoritmos Cuánticos

4.1. Teleportación Cuántica


Anteriormente observamos el teorema de la no clonación, el cuál nos dice que dado un estado
|Ψ⟩ desconocido, no podemos hacer una copia del estado. Sin embargo, si podemos teleportar un
qubit. Esta teleportación implica la destrucción de información del estado original ya que en caso
contrario vioları́amos el teorema de la no clonación.

Este algoritmo utiliza un estado entrelazado |Φ+ ⟩ y el qubit |Ψ⟩ a teleportar. Supongamos que
Alice va a teleportar el qubit hacia Bob, para ello Alice y Bob previamente se compartieron uno de
los qubits entrelazados. Es decir, inicializamos nuestro circuito cómo,

|Ψ⟩
Φ+ A
Φ+ B
dónde los primeros dos qubits pertenecen a Alice y el último a Bob. Además utilizamos la notación
|Φ⟩A para denotar el qubit entrelazado que tiene Alice y |Φ⟩B al que le pertenece a Bob. El algoritmo
hace interactuar el qubit que queremos teleportar |Ψ⟩ con el qubit entrelazado que tiene Alice |Φ+ ⟩A
de la siguiente manera,

|Ψ⟩ • H

Φ+ A X
Φ+ B
después de la interacción Alice mide ambos qubits. Dependiendo de los resultados que ella obtiene,
comunica clásicamente a Bob (Por teléfono o msj de whatsapp si queremos) las mediciones obtenidas.
Con esta información Bob realiza las siguientes operaciones,

|Ψ⟩ • H •

Φ+ A X •

Φ+ B X Z |Ψ⟩

24
Dónde Bob aplica las compuertas X o Z (En ese orden) si las mediciones correspondientes (según
el circuito mostrado) son 1.

Analicemos porqué este algoritmo funciona parte por parte. Inicialmente tenemos un estado
arbitrario |Ψ⟩ = α|0⟩ + β|1⟩, de tal manera que nuestro sistema de 3 qubits serı́a,

|00⟩ + |11⟩
 
(0) = |Ψ⟩ ⊗ |Φ+ ⟩ = (α|0⟩ + β|1⟩) ⊗ √ . (116)
2
Al pasar por el CNOT, nuestro sistema se transforma cómo,
α β
(1) = CN OT (|Ψ⟩ ⊗ |Φ+ ⟩) = √ (|000⟩ + |011⟩) + √ (|110⟩ + |101⟩) (117)
2 2
Después de la compuerta Hadamard que se aplica sobre el primer qubit,
α β
(2) = (|000⟩ + |100⟩ + |011⟩ + |111⟩) + (|010⟩ − |110⟩ + |001⟩ − |101⟩) (118)
2 2
Reacomodando términos,
|00⟩
(3) = (α|0⟩ + β|1⟩)
2
|01⟩
+ (α|1⟩ + β|0⟩)
2
|10⟩
+ (α|0⟩ − β|1⟩)
2
|11⟩
+ (α|1⟩ − β|0⟩)
2
Notemos que cuando Alice realizó las 2 mediciones sobre sus qubits, ya teleportó un estado al qubit de
Bob que necesita corrección que depende de las mediciones obtenidas. Con esas correcciones hechas
Bob tiene el estado |Ψ⟩ que tenı́a Alice. Es importante entender que Alice realizó la teleportación
en el instante que midió sus qubits con posibles errores de fase o bit-flips, Bob únicamente realizó
las correcciones necesarias para tener el estado correcto.

4.2. Deutsch-Josza
El algoritmo de Deutsch-Josza resuelve el siguiente problema:

“Supongamos que tenemos una función f que es una caja negra, es decir, no sabemos que sucede
dentro de esta función. La función recibe cómo entrada n bits y arroja un valor 0 o 1 para cada
entrada. La función f puede ser balanceada o constante, una función balanceada es aquella donde la
mitad de los resultados son 0 y la otra mitad 1, y una función constante es aquella dónde todos sus
valores son 0 o todos sus valores son 1. Nuestro trabajo es saber qué tipo de función es.”
En el caso clásico, si tenemos n bits de información en el peor de los casos necesitarı́amos de
2n /2 + 1 de mediciones para verificar si una función es balanceada o constante. Supongamos que
tenemos 100 posibles entradas de las cuáles las primeras 50 entradas dan en la salida el valor 0.
Podrı́amos pensar que la función es constante, es decir, que para las 100 entradas el resultado
siempre es 0. Sin embargo, al utilizar una entrada más existe la posibilidad (aunque pequeña) de
que tengamos de resultado un valor 1, indicando una función balanceada. Entonces en el peor de
los casos tendrı́amos que hacer 2n /2 + 1 mediciones para saber con seguridad que una función es
balanceada o constante.
Sin embargo el algoritmo de Deutsch-Josza propone que podemos solucionar este problema en 1 sola
medición.

25
El algoritmo de Deutsch-Josza aprovecha el paralelismo y phase-kickback. El circuito cuántico
del algoritmo se genera de la siguiente manera,

0⊗n H ⊗n H ⊗n
U
|1⟩ H

Dónde U es nuestra función f (x) que es balanceada o constante que actúa sobre un estado cómo,
U |x⟩|0⟩ = |x⟩|f (x)⟩. (119)
Analizando paso a paso el algoritmo, notemos que el circuito se divide en 2 registros, los primeros n
qubits corresponden a nuestras entradas x y en el último qubit tendremos nuestro resultado f (x).
Entonces nuestro estado inicial serı́a,
|0⊗n ⟩ ⊗ |1⟩ (120)
Y al aplicar H sobre todos los qubits sabemos que,
 n

2X −1
1
 
|0⟩ − |1⟩
H ⊗n ⊗ H |0⊗n ⟩ ⊗ |1⟩ =  √ (121)

|x⟩ ⊗ √
2n x=0 2

dónde x está en el sistema numérico (|5⟩ ≡ |101⟩). Después surge el operador U que nos representa
la función f (x), para ello lo analizaremos en 2 partes, la primera teniendo una función constante y
luego para una función balanceada.

En el caso de una función constante, se aplica la compuerta X en el último qubit para f (x) = 1
o no se hace nada para f (x) = 0. Aplicando la compuerta U tendrı́amos,
  √1 P2n −1
 n
    
|0⟩−|1⟩
1
2X −1 x ⊗ √ , f (x) = 0

|0⟩ − |1⟩ n x=0
U √ x ⊗ √ =  2 P2n −1   |1⟩−|0⟩ 2 
(122)
2 x=0
n 2  √ 1
n x=0 x ⊗
√ , f (x) = 1
2 2

Para cualquiera de los 2 casos, notemos que los estados son separables y que el primer registro se
mantuvo igual, esto quiere decir que al aplicar las últimas compuertas Hadamard tendrı́amos el
estado,
 
  |0⟩ − |1⟩
−1f (x) |0⊗n ⟩ ⊗ √ (123)
2

Entonces al medir el primer registro (los n qubits), tendremos un 100 % de probabilidad de medir el
estado |0⊗n ⟩.

Cuando nosotros nos encontramos con una función balanceada, notemos que la compuerta U debe
de estar controlada para aplicar f (x) para cada x. Debido a que el estado |−⟩ es un eigenestado del
operador x con eigenvalor −1, entonces después de la compuerta U ,
 n
  n

2X −1 2X −1
1 1
   
|0⟩ − |1⟩ |0⟩ − |1⟩
U √ x ⊗ √ = √ (−1)f (x) x ⊗ √ (124)
2n x=0 2 2n x=0 2

Cuando aplicamos las hadamard notemos que para cualquier x,


|0⟩ + |1⟩
     
|0⟩ − |1⟩ |0⟩ − |1⟩
H ⊗n |01 . . . 1⟩ = √ ⊗ √ ⊗...⊗ √ (125)
2 2 2
⊗n
= |0 ⟩ + . . . (126)

26
Pero notemos que la mitad de los estados tendrán |0⊗n ⟩ positivo para f (x) = 0 y la otra mitad será
negativa para f (x) = 1, esto quiere decir que en la superposición de los estados, nuestro estado final
tendrı́a una probabilidad del 0 % de medir el estado |0⊗n ⟩.
En conclusión al realizar el algoritmo de Deutsch-Josza en una sola medición podemos determinar
si la función f (x) es balanceada o constante. Si tenemos una medición |0⊗n ⟩ de nuestro primer
registro, sabemos con seguridad que f (x) es una función constante. Si nosotros medimos cualquier
estado distinto de |0⊗n ⟩, entonces la función f (x) es balanceada.

4.3. Bernstein-Vazirani
El problema que resuelve el algoritmo de Bernstein-Vazirani es un caso más restringido,

“Dada una función f con entrada de n bits y salida de 1 bit, con la promesa de que la función f
es el producto punto entre la entrada x (n bits) con una cadena de caracteres s (string) de tamaño
de n bits f (x) = x · s = x1 s1 ⊕ x2 s2 ⊕ . . . ⊕ xn sn tenemos que encontrar s.”

Clásicamente la solución más óptima a este problema requiere de n mediciones, o en otras palabras
aplicar la función n veces. Esto se logra a partir de la propiedad del módulo 2,

f (1000 . . . 0) = s1 (127)
f (0100 . . . 0) = S2 (128)
f (0010 . . . 0) = s3 (129)
f (0001 . . . 0) = s4 (130)
..
. (131)
f (0000 . . . 1) = sn (132)

Podemos ver que este problema escala linealmente con el tamaño de s, sin embargo, el algoritmo de
Bernstein-Vazirani asegura que esto puede obtenerse con 1 sola medición. El circuito cuántico que
representa el algoritmo de Bernstein-Vazirani es,

0⊗n H ⊗n H ⊗n
U
|1⟩ H H

Dónde U es la función f (x) que definimos anteriormente y actúa cómo,

U |x⟩|0⟩ = |x⟩|f (x)⟩, (133)

dónde f (x) toma los valores 0 o 1 únicamente. Analizando paso a paso el algoritmo, inicializamos
con un estado,

|ψ0 ⟩ = |0⊗n ⟩|1⟩ (134)

Después de aplicar todas las Haddamards,


 n

2X −1
1
 
|0⟩ − |1⟩
|ψ1 ⟩ =  √ |x⟩ ⊗ √ (135)
2n x=0 2

Una manera equivalente de representar este estado, es utilizando la base de |+⟩ y |−⟩,

|ψ1 ⟩ = | + + . . . +⟩|−⟩ (136)

27
Si aplicamos la compuerta U sobre el estado |ψ1 ⟩ (en base |0⟩ y |1⟩) podemos observar que debido
al eigenestado |−⟩ tendrı́amos un cambio de signo para los casos x · s = x1 s1 ⊕ x2 s2 ⊕ . . . ⊕ xn sn .

 n

2X −1
1
 
|0⟩ − |1⟩
|ψ2 ⟩ =  √ (−1)f (x) |x⟩ ⊗ √ (137)
2n x=0
2

Esto equivale en la base |+⟩, |−⟩ a,

|ψ2 ⟩ = Z ⊗s | + + . . . +⟩|−⟩ (138)

De tal manera que cuando aplicamos las compuertas H ⊗n sobre el estado |ψ2 ⟩, recuperamos el
estado,

|ψ3 ⟩ = |s⟩|1⟩ (139)

Cuando nosotros medimos los primeros n qubits, obtenemos directamente la cadena de carácteres
(string) s.

4.4. Ejemplo 2 qubits


Podemos ver de ejemplo el caso para 2 qubits. En este ejemplo utilizaremos s = 01 de tal manera
que,

|00⟩ + |01⟩ + |10⟩ + |11⟩


   
|0⟩ − |1⟩
|ψ1 ⟩ = ⊗ √ (140)
2 2

Al aplicar la compuerta U, dejando iguales los estados |00⟩, |10⟩ y cambiando el signo de los estados
|01⟩ y |11⟩,

x00 · s = 0 · 0 ⊕ 0 · 1 = 0 (141)
x01 · s = 0 · 0 ⊕ 1 · 1 = 1 (142)
x10 · s = 1 · 0 ⊕ 0 · 1 = 0 (143)
x11 · s = 1 · 0 ⊕ 1 · 1 = 1 (144)

Entonces el estado |ψ2 ⟩ serı́a,

|00⟩ − |01⟩ + |10⟩ − |11⟩


  
|0⟩ − |1⟩
|ψ2 ⟩ = √ (145)
2 2
Y notemos que este estado es lo mismo que el estado,

|ψ2 ⟩ = | + −⟩|−⟩ (146)

Y al aplicar las compuertas Hadamards sabemos que el efecto directo sobre la base |+⟩ y |−⟩ nos
lleva al estado,

|ψ3 ⟩ = |01⟩|1⟩ (147)

Y midiendo los primeros 2 qubits tenemos con seguridad que mediremos el estado |01⟩ lo que equivale
a la cadena de carácteres s.

28
4.5. Quantum Phase Estimation

4.6. Grover Search Algorithm

5. Quantum Fourier Transform


La transformada cuántica de Fourier es una herramienta bastante útil para algoritmos cuánticos
cómo la estimación cuántica de fase o el algoritmo de Shor. Sin embargo, es importante entender
primero qué es la transformada de Fourier.

5.1. ¿Qué es la transformada de Fourier?


En 1715, Brook Taylor descubrió que cualquier función continua puede descomponerse en térmi-
nos de un polinomio de grado infinito.

X
y(x) = αn xn (148)
n=0

Y a partir de derivar y evaluar la función en x = 0, se llega a,



X f (n) (0) n
y(x) = x , (149)
n!
n=0

dónde f (n) (0) denota la i-ésima derivada. Obviamente no podemos realizar una sumatoria hasta el
infinito pero podemos truncarla hasta una aproximación aceptable.

Realiza la expansión de sin(x) y ve agregando cada término sobre un graficador


cómo Desmos o Geogebra. Observa cómo se aproxima más conforme agregamos
términos.
¿Qué sucede si nuestra función ya es un polinomio?

En 1807 Joseph Fourier descubrió que la expansión de Taylor no tiene porqué ser necesariamente
con polinomios. Mientras tengamos una base ortonormal, podemos definir una expansión sobre esta
base, en este caso el propuso una base de senos y cosenos,
∞ 
2πnx 2πnx
X    
y(x) = A0 + An sin + Bn cos (150)
P P
n=0

Dónde en este caso podemos asumir que y(x) es una función periódica con periodo P (Si y(x) no
es periódico siempre podemos llevar P → ∞). Haciendo un par de trucos matemáticos, podemos
encontrar que los coeficientes son7 ,

1 P/2
Z
A0 = y(x)dx, (151)
P −P/2
2 P/2 2πnx
Z  
An = y(x) cos dx, (152)
P −P/2 P
2 P/2 2πnx
Z  
Bn = y(x) sin dx. (153)
P −P/2 P
7 Esto se conoce cómo el truco de Fourier. Debido a que las funciones son ortogonales, podemos multiplicar por
ambos lados de la función y al integrar por ambos lados (Equivalente a un producto punto) sólo sobrevive el término
que es el mismo.

29
al igual que en otros casos podemos utilizar la notación compleja para representar estas funciones
en forma compleja,

X 2πnx
y(x) = cn e i P (154)
n=−∞

dónde,
c0 = A0 , (155)
cn = (An − iBn )/2 para n > 0, (156)
c−n = (A−n + iB−n )/2 para n < 0, (157)
(158)
y,
1 P/2
Z
2πnx
cn = y(x)e−i P dx (159)
P −P/2

Podemos notar que la frecuencia de nuestra oscilación está dada por,



ω = nω0 = n , (160)
P
Si P es suficientemente largo (P → ∞) entonces el término ω0 se vuelve el diferencial de ω (ω0 = dω)y
la frecuencia ω se vuelve continua de tal manera que el coeficiente 159 se vuelve una función de ω,
Z ∞
C(ω) = cn P = y(x)e−iωx dx. (161)
−∞
Esta ecuación es la famosa transformada de Fourier. Esta transformada nos transforma una función
en el espacio de distancia al espacio de frecuencias. Normalmente para indicar dicha transformada
utilizamos,
Z ∞
F{y(x)} = C(ω) = y(x)e−iωx dx (162)
−∞

Si sustituimos el coeficiente cn = C(ω)/P en la ecuación 154, notamos que,


∞ ∞
P ) in 2π
C(n 2π C(ω) iωx
X X
y(x) = e Px= e , (163)
n=−∞
P n=−∞
P

Y utilizando P = 2π
ω0 de la ecuación 160
∞ ∞
X ω0 X 1
y(x) = C(ω)e iωx
= C(ω)eiωx dω (164)
n=−∞
2π n=−∞

Por lo que la sumatoria se convierte en integral,


Z ∞
1
y(x) = C(ω)eiωx dω (165)
2π −∞
Este resultado nos lleva a la transformada inversa de Fourier, de tal modo que,
Z ∞
1
F −1 {C(ω)} = y(x) = C(ω)eiωx dω. (166)
2π −∞
Y debido a que son inversas,
F{F −1 {C(ω)}} = C(ω), (167)
F −1 {F{y(x)}} = y(x) (168)
Es importante tener en cuenta que las representaciones de la transformada de Fourier puede variar
principalmente por los coeficientes. Para nuestro caso particular vamos a utilizar las representaciones
mostradas en las ecuaciones 162 y 166.

30
5.2. Interpretación fı́sica

5.3. QFT
Implementar la transformada de Fourier cuántica es equivalente a hacer una transformada de
Fourier discreta y para nuestra ventaja la implementación en una computadora cuántica es sencilla
de realizar.

Dada una base ortonormal estándar, entonces la transformada cuántica de Fourier nos genera
una base ortonormal en el espacio fase,
N −1
1 X i 2π j·k
|yk ⟩ = √ e N |j⟩. (169)
N j=0


Notemos que tenemos todos los posibles estados |j⟩ con el mismo peso 1/ N , pero con distinta
fase. Esto significa que todos los qubits se encuentran en el plano x − y de la esfera de Bloch8 .
De manera matricial podemos observar la transformada cuántica de Fourier cómo,
 0·0 1·0 (N −1)·0 
ωN ωN ... ωN
0·1 1·1 (N −1)·1
ωN ωN ... ωN
 
 
0·2 1·2 (N −1)·2
= (170)
 
FN ωN ωN ... ωN 
.. .. .. ..
 
. . . .
 
 
0·(N −1) 1·(N −1) (N −1)·(N −1)
ωN ωN ... ωN

, dónde N es el número de posibles estados y ωN = ei N . La implementación de la transformada
de Fourier Cuántica requiere únicamente de compuertas Hadamard y fases controladas. Para un
sistema de 3 qubits,

|q0 ⟩ P (π/4) P (π/2) H ×

|q1 ⟩ P (π/2) H •

|q2 ⟩ H • • ×

Dónde el último SWAP es para mantener las convenciones de qiskit. Para un sistema de n qubits
seguimos el mismo patrón para generar la transformada cuántica de Fourier.

Dibuja el circuito de una transformada cuántica de Fourier de 4 qubits.


Si tenemos un estado |j⟩, ¿Cómo podemos generar el estado |j + 1⟩ para cualquier
estado |j⟩ utilizando la transformada y la transformada inversa de Fourier?

8 Para tener una mejor visualización de esto se recomienda revisar la página QFT-qiskit-textbook

31

También podría gustarte