Introduccion A La Computacion Cuantica
Introduccion A La Computacion Cuantica
Introduccion A La Computacion Cuantica
1
1 Introducción
La mecánica cuántica es la rama de la fı́sica que describe el comportamiento de la naturaleza a es-
calas muy pequeñas (por ejemplo, el comportamiento de los átomos). La teorı́a de la computación
se encarga de estudiar si un problema es susceptible de ser resuelto utilizando una computadoa, ası́
como la cantidad de recursos (tiempo, energı́a) que se debe invertir en caso de existir solución. En
consecuencia, la computación cuántica hace uso de la mecánica cuántica con el objetivo de incremen-
tar nuestra capacidad computacional para el procesamiento de información y solución de problemas.
Por otra parte, la teorı́a de la información cuántica estudia los métodos, capacidades y lı́mites que las
leyes de la fı́sica imponen en la transmisión y recuperación de información.
El estudio formal de la computación cuántica comenzó con las preguntas que Richard Feynman
planteó sobre dos temas: 1) la posibilidad de simular sistemas cuánticos, y 2) las leyes de la fı́sica
que caracterizan al proceso de calcular [92, 93]. A partir de ese trabajo, la computación cuántica ha
avanzado a paso firme; por ejemplo, se ha definido formalmente la estructura de una computadora
cuántica [3], se han encontrado resultados espectaculares como el algoritmo de Shor [4] (capaz de
factorizar un número entero muy largo en tiempo razonable utilizando una computadora cuántica
[4, 7]) y el algoritmo de Grover [5] (este algoritmo encuentra elementos en conjuntos desordenados
de forma más eficiente que cualquier algoritmo posible ejecutado en computadoras convencionales
[5, 7]), y se ha diseñado una teorı́a y práctica de la criptografı́a usando las propiedades de la fı́sica
cuántica [6]. En el futuro mediato, la computación cuántica tendrá gran impacto en la industria de la
computación y el desarrollo de protocolos de criptografı́a y seguridad computacional [12–14].
La computación y la información cuánticas representan un reto teórico y experimental por la
cantidad y complejidad de problemas a resolver. A pesar de dichos retos, los avances realizados hasta
ahora permiten ya pensar en aplicaciones de esta disciplina en áreas del conocimiento tales como la
Inteligencia Artificial, el Reconocimiento de Patrones [16–23, 91] y la Bioinformática [24–26]. De
hecho, la computación cuántica ha dado ya sus primeros frutos en la industria pues desde 2003 hay
un sistema de criptografı́a cuántica disponible en el mercado [27, 30], y los experimentos realizados
en diversos laboratorios (por ejemplo [28, 29]) ofrecen resultados muy prometedores.
Universidades de prestigio internacional como Oxford [31], Cambridge [32], Harvard [33], Viena
[34], Caltech [35] y MIT [36] llevan a cabo investigación en estas disciplinas con financiamiento
público (Estados Unidos, Reino Unido, Alemania, Francia, Australia y Brasil, entre otros gobier-
nos) y privado (Lucent Technologies [37], Hewlett Packard [38], IBM [39] y Fujitsu [40], entre otras
empresas). La computación cuántica es importante para los gobiernos debido a que la creación de
computadoras cuánticas implicará la existencia de escenarios de alta vulnerabilidad (las computado-
ras cuánticas serán capaces de descifrar, en horas o minutos, los códigos de encriptación que hoy
tomarı́a mucho tiempo resolver. En consecuencia, la confidencialidad de mensajes electrónicos se
verá afectada). Por su parte, la industria del cómputo ha invertido recursos sustanciales en esta es-
pecialidad debido a las ventajas en rapidez y seguridad de datos que la tecnologı́a cuántica traerá
consigo, además de que la miniaturización de componentes electrónicos implica la aparición de efec-
tos cuánticos.
De lo anterior se deduce que las oportunidades de desarrollo profesional para cientı́ficos e inge-
nieros en estas disciplinas son amplias y prometedoras. Además, es importante subrayar que, dado
el alto impacto que la computación e información cuánticas tendrán en el quehacer cientı́fico y en la
2
vida diaria del ser humano, el trabajo desarrollado por algunos cientı́ficos en estas disciplinas ha sido
ya merecedor de premios internacionales como el Prı́ncipe de Asturias 2006 [41, 42].
En el ámbito nacional, la computación y la información cuánticas ha despertado el interés de
varios miembros de la vida cientı́fica e intelectual mexicana. Tanto en publicaciones académicas
[43, 44] como en medios de comunicación masivos [45–54], estos campos del conocimiento y su
posible impacto en nuestra sociedad han sido tratados desde distintas ópticas.
A pesar de contar con recursos humanos calificados en distintas universidades y centros de inves-
tigación (UNAM, INAOE y CINVESTAV, entre otras), y de que algunas instituciones han trabajado
en la formación de recursos humanos (por ejemplo, la primer escuela mexicana de verano en com-
putación cuántica, llevada a cabo en la UADY y el CINVESTAV-Mérida, organizada por los doctores
Luis Alberto Muñoz Ubando, Salvador Venegas Andraca, Romeo de Coss y Juan Luis Dı́az de León
[55, 56]), México no tiene grupos sólidos de investigación en computación e información cuánticas.
Como parte de la estrategia para integrar a México en este campo del conocimiento, el Tec-
nológico de Monterrey Campus Estado de México y la universidad de Leeds (Reino Unido) han
unido esfuerzos para organizar la Segunda Escuela Mexicana de Verano en Computación e Infor-
mación Cuánticas. El presente documento es un texto disenãdo para impartir un curso introductorio
a la computación cuántica durante la primera semana de nuestra escuela.
2 Álgebra lineal
El álgebra lineal es ampliamente utilizada en fı́sica. En particular, este campo de las matemáticas se
usa en la formulación de la mecánica cuántica y, en consecuencia, en la computación y la información
cuánticas.
En esta sección estudiaremos varios elementos del álgebra lineal necesarios para una introducción
seria a la computación cuántica. Para profundizar en los conceptos aquı́ revisados se recomienda
consultar las obras [7], [8], [9], [10] y [11].
3
√
Ejercicio 2.1. Sea C = {a + bi | a, b ∈ R e i = −1} el conjunto de los números complejos.
Sean z1 = a + bi y z2 = c + di números complejos. Definimos entonces:
1) z1 + z2 = (a + bi) + (c + di) = (a + c) + (b + d)i
2) z1 z2 = (a + bi)(c + di) = (ac − bd) + (bc + ad)i
3) z1 ∗ = a − bi
Use 1) y 2) para demostrar que C es un campo.
Definición 2.2. Espacio vectorial. Sea V un conjunto cualquiera, asociado con un campo F (los
elementos de F son llamados escalares). En las siguientes lı́neas daremos las condiciones que debe
cumplir V para recibir el nombre de espacio vectorial, pero antes haremos del conocimiento del lector
algunas aclaraciones:
a) Denotaremos a los elementos de V con la nomenclatura |i, donde el punto es sustituido por
una letra del alfabeto griego o castellano. Además, denotaremos a los elementos de F con simples
letras del alfabeto castellano.
b) La notación generalmente utilizada para describir elementos de V es ~x. Sin embargo, en com-
putación cuántica se acostumbra escribir |xi en lugar de ~x por motivos que expondremos a lo largo
de las siguientes páginas. Baste decir por el momento que el sı́mbolo |xi forma parte de la notación
de Dirac.
Entremos entonces a la definición de un espacio vectorial. Definimos sobre V dos operaciones, la
adición y la multiplicación escalar.
- Por adición se entiende una regla que asocia a cada par de elementos |ui, |vi ∈ V con un objeto
|ui + |vi ∈ V, denominado suma de |ui y |vi.
- Por multiplicación escalar se entiende una regla que asocia a cada k ∈ F y cada objeto |ui ∈ V con
un objeto k|ui ∈ V, denominado múltiplo escalar de |ui por k.
4
Ejercicio 2.2. Demuestre que:
a) Cn = {|ui = (u1 , u2, . . . , un )t | u1 , u2 , . . . , un ∈ C} es un espacio vectorial complejo.
b) Mn (C), el conjunto de las matrices de orden n y con entradas complejas, es un espacio vectorial
complejo.
Definición 2.3. Espacio vectorial complejo con producto interno. En la geometrı́a euclı́dea, las
propiedades que cuentan con la posibilidad de medir longitudes de segmentos rectilı́neos y ángulos
formados por rectas se llaman propiedades métricas. Además, en el estudio elemental de Rn se utiliza
el concepto de producto escalar para calcular longitudes y ángulos. Ahora extenderemos estas ideas
a espacios vectoriales generales a través de la definición del producto interno.
Sea V un espacio vectorial complejo. El espacio V se conoce como espacio vectorial complejo
con producto interno si es posible definir la función producto interno (·, ·) : V × V → C, la cual
obedece los axiomas plasmados en las siguientes lı́neas:
∀ |ui, |vi, |wi, |xi ∈ V, α, β ∈ C ⇒
1) (|ui, |ui) ≥ 0 y (|ui, |ui) = 0 ⇔ |ui = 0
2) (|ui, |vi) = (|vi, |ui)∗
3) (|ui, α|vi + β|wi) = α(|ui, |vi) + β(|ui, |wi) 1
Ejercicio 2.3. Sean |xi = (x1 , x2 , . . . , xn )t , |yi = (y1 , y2 , . . . , yn )t ∈ Cn ⇒ definimos el producto
interior en Cn de la siguiente manera:
(|xi, |yi) = (x∗1 y1 + x∗2 y2 + . . . + x∗n yn )1/2 = ( ni=1 x∗i yi )1/2 , donde x∗i es el conjugado de xi .
P
Demuestre que, con esta definición de producto interno, Cn es un espacio vectorial complejo con
producto interno. El espacio vectorial Cn , con el producto interno definido en este ejercicio, recibe el
nombre de espacio vectorial n-dimensional complejo con producto interno.
Definición 2.4. Espacio vectorial normado. Sea V un espacio vectorial complejo
p con producto
interno. Definimos la norma || |xi || de un elemento |xi ∈ V como || |xi || = (|xi, |xi), la cual
debe satisfacer las siguientes propiedades:
1) ∀|xi ∈ V ⇒ || |xi || ≥ 0, y || |xi || = 0 ⇔ |xi = 0
2) ∀|xi ∈ V y ∀α ∈ C ⇒ || α|xi || = |α| || |xi ||
3) || |xi + |yi || ≤ || |xi || + || |yi ||
Si para cada |xi ∈ V es posible calcular la norma correspondiente || |xi || ⇒ V recibe el nombre
de espacio vectorial normado.
Ejercicio 2.4. Demuestre que Cn es un espacio vectorial normado.
Definición 2.5. Normalidad, ortogonalidad y ortonormalidad. Sea V un espacio vectorial ⇒
- Dos elementos |xi, |yi ∈ V se llaman ortogonales si su producto interior es cero.
- Un subconjunto S ⊂ V es un conjunto ortogonal ⇔ ∀ |xi, |yi ∈ S, |xi = 6 |yi ⇒ (|xi, |yi) = 0.
- Un conjunto ortogonal se llama ortonormal si cada uno de sus elementos tiene norma igual a 1.
5
2.2 Subespacios, combinación lineal, generación de espacios, independencia
lineal y bases
Dado el carácter elemental de los temas revisados en esta sección, se invita al lector interesado en
estudiar las demostraciones correspondientes, a consultar las obras [8], [9], [10] y [11].
Notación. En las siguientes lı́neas, el sı́mbolo V denotará a un espacio vectorial sobre un campo
F , i.e. V = V(F ).
Teorema 1. Sea W un conjunto formado por uno o más vectores de un espacio vectorial V. W es un
subespacio de V ⇔ se cumplen las siguientes condiciones:
Ejercicio 2.5. Sean el espacio vectorial Mn (C) y S ={ A ∈ Mn (C)|A = At , i.e. A es igual a su transpuesta}.
Demuestre que S, el conjunto de las matrices simétricas, es un subespacio de Mn (C).
Definición 2.7. Combinación lineal. Sean V un espacio vectorial, S = {|vi i ∈ V, i ∈ {1, 2, . . . , n}}
un subconjunto de V y E = {ci , i ∈ {1, 2, . . . , n}} un subconjunto del campo F . Entonces, todo |xi
que se exprese en la forma
Xn
|xi = ci |vi i
i=1
Teorema 2. Sea V un espacio vectorial. Definimos a los conjuntos S = {|vii ∈ V|i ∈ {1, 2, . . . , n}} y
T = {|xi ∈ V | |xi = ni=1 ci |vi i, ci ∈ F, i ∈ {1, 2, . . . , n}}. Entonces, T es un subespacio de V.
P
Definición 2.8. Generación de espacios. Sean P V un espacio vectorial y los conjuntos S = {|vi i ∈
V|i ∈ {1, 2, . . . , n}} y T = {|xi ∈ V | |xi = ni=1 ci |vi i, ci ∈ F, i ∈ {1, 2, . . . , n}}. Entonces, T es
el conjunto generado por S.
Nota: Se acostumbra escribir a T de la siguiente forma: T = gen{|v1 i, |v2i, . . . , |vn i}.
Ejercicio 2.6. Los vectores ı̂ = (1, 0, 0)t, ̂ = (0, 1, 0)t y k̂ = (0, 0, 1)t , generan a R3 y a C3 .
6
Ejercicio 2.7. Espacios generadores.
k1 = k2 = . . . = kn = 0 (2)
Pn4. Sea {|v1 i, . . . , |vn i} una base de V y |vi ∈ V ⇒ ∃! conjunto {c1 , . . . , cn } ⊂ F tal que
Teorema
|vi = i=1 ci |vi i
Teorema 5. Si {|u1i, |u2i, . . . , |un i} y {|v1 i, |v2 i, . . . , |vm i} son bases de V ⇒ m = n, i.e. cua-
lesquiera dos bases en un espacio vectorial V poseen el mismo número de vectores.
7
Teorema 6. Sea B1 = {|u1i, . . . , |un i} una base de V. Supongamos además la existencia de n vec-
tores |x1 i, . . . , |xn i ∈ V expresados en la base B1 :
|x1 iB1 = (a11 , . . . , an1 )t , |x2 iB1 = (a12 , . . . , an2 )t , . . . , |xn iB1 = (a1n , . . . , ann )t
A partir de estos vectores |xi iB1 construyamos una matriz A:
a11 a12 . . . a1n
a21 a2n . . . a2n
A = ..
.. .. ..
. . . .
an1 an2 . . . ann
8
Observación. De acuerdo a lo establecido en la Def. (2.15), el espacio de Hilbert con el que
trabajaremos en computación cuántica es Cn (C), donde n es generalmente un múltiplo de 2.
Definición 2.16. Funcional. Sea V(F) un espacio vectorial. Un funcional lineal (también llamado
simplemente funcional) es una función lineal f : V → F.
Lema 1. Sea H un espacio de Hilbert. Definimos, para cada |ai ∈ H, la función f|ai : H → C con la
operación f|ai (|bi) = (|ai, |bi). Entonces, la función f|ai es una función lineal y, en consecuencia, es
un funcional.
Demostración. La definición del producto interno hace de f|ai una función. Sean ahora |bi, |ci ∈
Hyα∈C⇒
f|ai (|bi + |ci) = (|ai, |bi + |ci) = (|ai, |bi) + (|ai, |ci) = f|ai (|bi) + f|ai (|ci). Además,
f|ai (α|bi) = (|ai, α|bi) = α(|ai, |bi) = αf|ai (|bi), ambas deducciones de acuerdo a Def. (2.3).
Q.E.D.
Es posible demostrar que el conjunto de todos los funcionales de un espacio de Hilbert H forma,
a su vez, otro espacio de Hilbert, llamado espacio dual de Hilbert H∗ sobre C [8]. Más aún, es
también posible demostrar que existe una biyección entre H y H∗ ([8]) y, en consecuencia, H y H∗
son isomórficos. Este isomorfismo es la base de la muy famosa notación de Dirac.
Definición 2.18. Representación de kets y bras en vectores columna y renglón. Sea H un espacio
de Hilbert, dimH = n y B una base de H ⇒
- Cualquier |ψi ∈ H se puede representar, usando la base B, como un vector columna con n compo-
nentes, i.e. |ψi = (ψ1 , ψ2 , . . . , ψn )t , donde ψi ∈ C, i ∈ {1, 2, . . . , n}.
-Más aún, el bra hψ| ∈ H∗ se puede representar como un vector renglón también de n componentes,
i.e. hψ| = (ψ1∗ , ψ2∗ , . . . , ψn∗ ), donde los ψ ∗ son los conjugados de ψi , i ∈ {1, 2, . . . , n}
- En consecuencia, si deseamos calcular el producto interno hψ|φi, donde |ψi, |φi ∈ H, y para ello
queremos usar las representaciones hψ| = (ψ1∗ , ψ2∗ , . . . , ψn∗ ) y |φi = (φ1 , φ2 , . . . , φn )t obtenidas me-
diante el uso de una base B de H ⇒
Xn
hψ|φi = (ψ1∗ φ1 + ψ2∗ φ2 + ...+ ψn∗ φn )1/2 =( ψi∗ φi )1/2
i=1
9
2.4 Operadores lineales
Uno de los objetivos del Análisis Matemático es estudiar ampliamente funciones cuyos dominios
y contradominios son subconjuntos de espacios vectoriales. Estas funciones reciben el nombre de
transformaciones u operadores. En particular, los resultados de la teorı́a de operadores lineales son de
mucho interés en la fı́sica cuántica y, por lo tanto, son un tema de estudio en la computación cuántica.
Definición 2.19. Operador lineal. Sean V y W espacios vectoriales. Un operador lineal
T̂ : V → W
es una función que asigna a cada vector |ψi ∈ V un único vector T̂ |ψi ∈ W tal que ∀ |ψi, |φi ∈ V y
∀ α ∈ F (el campo usado en la definición de V y W), se cumple que:
T̂ (|ψi + |φi) = T̂ |ψi + T̂ |φi
T̂ (α|ψi) = αT̂ |ui
Para cada |ψi ∈ V, T̂ |ψi se llama imagen de |ψi. La imagen del dominio V, T̂ (V), es el recorrido
de T̂ .
Ejercicio 2.10. Ejemplos de operadores lineales.
1) Sea T̂ : R2 → R3 definida por T̂ (x, y) = (x + y, x − y, 3y). Demuestre que T̂ es un operador
lineal.
2) Sea A ∈ Mm×n (R). Definamos a T̂ : Rn → Rm por T̂ |ψi = A|ψi. Demuestre que T̂ es un
operador lineal.
Observación 1. Si T̂ : V → V es un operador lineal y V es un espacio vectorial complejo de
dimensión n ⇒ T̂ tiene un conjunto infinito de representaciones matriciales, i.e. la acción de T̂ sobre
los elementos |ψi ∈ V se puede llevar a cabo de la siguiente manera: escoja una representación de
|ψi en una base dada, para después crear una matriz de orden n que permita calcular T |ψi en la base
vectorial correspondiente.
Este resultado no se extiende a espacios vectoriales infinito-dimensionales (por ejemplo, en estos
casos se requerirán representaciones de operadores integrales o diferenciales).
Observación 2. Sea T̂ : V → W un operador lineal. Deseamos subrayar que la acción de T̂ sobre
V y W es independiente de las bases que uno escoja para representar a los elementos de V y W. Un
operador lineal puede ser pensado como un procedimiento para transformar una entidad geométrica
en otra.
Teorema 7. El conjunto T̂ (V), el recorrido del T̂ , es un subespacio de W.
Demostración
Sean |ψi, |φi ∈ V tales que T̂ |ψi, T̂ |φi ∈ T̂ (V) ⊂ W. Como W es un espacio vectorial ⇒ T̂ |ψi +
T̂ |φi ∈ W. Dado que T̂ es un operador lineal ⇒ T̂ |ψi + T̂ |φi = T̂ (|ψi + |φi), i.e. T̂ (|ψi + |φi) =
T̂ |ψi + T̂ |φi es la imagen de |ψi + |φi. Por lo tanto, T̂ |ψi + T̂ |φi ∈ T̂ (V).
Ahora, sean |ψi ∈ V, α un escalar y T̂ |ψi ∈ T̂ (V) ⊂ W. Como W es un espacio vectorial
entonces αT̂ |ψi ∈ W y, dado que T̂ es un operador lineal, αT̂ |ψi = T̂ (α|ψi), esto es, existe un
elemento T̂ (α|ψi) ∈ W que es, por definición, la imagen de α|ψi, i.e. T̂ (α|ψi) ∈ T̂ (V).
Luego, de acuerdo al teorema (1), T̂ (V) es un subespacio de V.
Q.E.D.
10
Teorema 8. Sean V y W espacios vectoriales definidos sobre R y T̂ : V → W un operador lineal.
Entonces, ∀ |ψi, |φi, |ψii ∈ V y ∀ αi ∈ R se encuentra que:
1) T̂ (0V ) = 0W
1) Sea T̂ (0V ) = T̂ (0V + 0V ) = T̂ (0V ) + T̂ (0V ), de acuerdo a la Def. (2.19). Tenemos entonces
que T̂ (0V ) = T̂ (0V ) + T̂ (0V ), siendo T̂ (0V ) un elemento de W.
Esta suma nos obliga a concluir que T̂ (0V ) = 0W , pues 0W es el único elemento de W que, al ser
sumado al elemento T̂ (0V ), puede producir como resultado el mismo elemento T̂ (0V ).
2) Sean |ψi, |φi ∈ V. Sabemos que (−1)×|φi = −|φi ∈ V, ası́ que T̂ (|ψi−|φi) = T̂ |ψi+ T̂ (−|φi),
de acuerdo a la Def. (2.19).
Más aún, usando otra vez la Def. (2.19), encontramos que T̂ (−|φi) = T̂ ((−1) × |φi) = (−1)T̂ |φi =
−T̂ |φi. Luego, T̂ (|ψi − |φi) = T̂ |ψi − T̂ |φi.
3) La demostración se hace por inducción sobre el número de vectores y se deja al lector como ejer-
cicio (consejo: use la Def. (2.19) para formular el caso base).
Q.E.D.
Demostración
1) Sean |ψi, |φi ∈ N(T̂ ) ⇒ T̂ |ψi = 0 y T̂ |φi = 0. Por una parte, tenemos que T̂ |ψi + T̂ |φi =
0+ 0 = 0. Además, dado que T̂ es un operador lineal, encontramos que T̂ |ψi + T̂ |φi = T̂ (|ψi + |φi),
lo que nos lleva a concluir que T̂ (|ψi + |φi) = 0, i.e. (|ψi + |φi) ∈ N(T̂ ).
2) Sean |ψi ∈ N(T̂ ) y α un escala ⇒ T̂ |ψi = 0 ⇒ αT̂ = α0 = 0. Dado que T̂ es lineal en-
tonces αT̂ |ψi = T̂ (α|ψi). En consecuencia, T̂ (α|ψi) = 0, i.e. α|ψi ∈ N(T̂ ).
Q.E.D.
11
2.4.1 Acción de un operador lineal sobre una base
Sea T̂ : V → W un operador lineal, con V y W espacios vectoriales y B = {|e1 i, |e2 i, . . . , |en i} una
base de V. Por definición, para cada |ψi ∈ V ∃! |wi ∈ W tal que T̂ |ψi = |wi. En particular, vemos
que para cada |ei i ∈ B existe un único |uii ∈ W tal que T |ei i = |uii.
P bien, sea |xi un elemento arbitrario de V ⇒ podemos expresar a |xi como la sumatoria
Ahora
|xi = ni=1 αi |ei i (recuerde que el conjunto de escalares {αa , α2 , . . . , αn } es único).
Luego, si conocemos losP elementos |uii P ∈ W tales que T̂P|ei i = |ui i y usamos el Teorema (8),
encontramos que T̂ |xi = T̂ ( ni=1 αi |ei i) = ni=1 αi T̂ |ei i = ni=1 αi |ui i.
Veremos ahora un teorema que vincula la acción de un operador lineal inyectivo sobre las bases
de su dominio y contradominio. La demostración de este teorema es directa y se deja como ejercicio
al lector (en caso de necesitar guı́a, se recomienda consultar [9]).
Teorema 10. Sea T̂ : V → W un operador lineal con dimV = n entonces las siguientes proposiciones
son equivalentes:
1) T̂ es invertible y su inversa T̂ −1 : T̂ (V) → V es también un operador lineal.
2) si |e1 i, |e2 i, . . . , |en i ∈ V son vectores linealmente independientes ⇒ T̂ |e1 i, T̂ |e2 i, . . . , T̂ |en i ∈
T̂ (V) son también vectores linealmente independientes.
3) dimT̂ (V) = n
4) Si |e1 i, |e2i, . . . , |en i es una base de V ⇒ T̂ |e1 i, T̂ |e2 i, . . . , T̂ |en i es una base de T̂ (V).
12
O, en su forma más general,
m
X
T̂ |ei i = αki |wk i
k=1
Escribamos ahora una matriz cuyas columnas sean los coeficientes de los vectores T̂ |ei i en
términos de la base {|wii}, i.e.
α11 α12 . . . α1n
21 α22
α . . . α2n
T̂ |e1 i{|wi i} T̂ |e2 i{|wi i} . . . T̂ |en i{|wii} =
..
.
αm1 αm2 . . . αmn
Los coeficientes αij dependen de la base {|wii} que escojamos para W. Puesto que para un
espacio vectorial de dimensión m existe un conjunto infinito de distintas bases, entonces hay un
conjunto infinito de representaciones matriciales distintas para un mismo operador lineal T̂ .
Formalicemos ahora cómo una representación matricial de un operador lineal T̂ actúa sobre los
elementos del dominio de dicho operador.
Teorema 11. Sea T̂ : V → W un operador lineal con dimV = n y dimW = m. Además, suponga
la existencia de {|eii} y {|wii}, bases de V y W respectivamente, a partir de las cuales se calcula la
matriz T = (αij ) cuyos elementos están determinados por las ecuaciones
m
X
T̂ |ei i = αki |wk i (3)
k=1
Tomemos ahora un elemento cualquiera
n
X
|ψi = βp |ep i (4)
p=1
y apliquemos el operador
n
X m
X
T̂ |ψi = βp T̂ |ep i = γq |wq i (5)
p=1 q=1
Pm
Entonces los coeficientes γi tienen la forma γi = k=1 βk αik .
Demostración.
13
Agrupando los sumandos en términos de los coeficientes de |wii, observamos lo siguiente
Esto es,
Q.E.D.
Dado que hay muchas representaciones matriciales para un operador lineal, es de interés del
investigador encontrar y caracterizar representaciones simples, esto es, matrices cuya manipulación
sea fácil de realizar.
Entre las representaciones matriciales que se usan comúnmente en computación cuántica, encon-
tramos las matrices diagonales. El siguiente teorema demuestra la existencia de este tipo de matrices,
y su demostración puede encontrarse en [9].
Teorema 12. Sean V y W espacios vectoriales de dimensión finita, con dimV = n y dimW = m.
Supongamos que T̂ : V → W y que r = dimT̂ (V) representa el rango de T̂ . Existe entonces una
base {|e1 i, |e2 i, . . . , |en i} de V y otra base {|w1 i, |w2i, . . . , |wn i} de W tales que
14
2.4.3 Operadores lineales usando notación de Dirac
Definición 2.21. Producto externo: representación de un operador lineal en notación de Dirac.
Sean |ψi, |ai ∈ H1 y |φi ∈ H2 . Definimos entonces al producto externo (también conocido como
producto exterior) |φihψ| como el operador lineal con dominio H1 y contradominio H2 , el cual opera
de la siguiente manera:
(|φihψ|)(|ai) ≡ |φihψ|ai ≡ hψ|ai|φi
donde hψ|ai es el producto interno de |ψi y |ai.
σ̂x = |0ih1| + |1ih0| ; σ̂y = i|0ih1| − i|1ih0| ; σ̂z = |0ih0| − |1ih1| (6)
1 0
Si además definimos |0i = , |1i = , h0| = (1, 0) y h1| = (0, 1).
0 1
entonces podemos calcular representaciones matriciales de los operadores de Pauli:
0 1 0 −i 1 0
σx = ; σy = ; σz = . (7)
1 0 i 0 0 −1
El operador de Hadamard es otro operador lineal ampliamente usado en computación cuántica:
1
Ĥ = √ (|0ih0| = |0ih1| + |1ih0| − |1ih1|) (8)
2
1 1 1
H=√ (9)
2 1 −1
Los operadores de Pauli y Hadamard son ejemplos de dos tipos de operadores utilizados fre-
cuentemente en mecánica cuántica: operadores hermitianos y unitarios.
Â|ψ 0 i = |ψ 0 i ⇔ hψ 0 | = hψ|†
Ahora bien, suponga que  es un operador lineal y A una de sus representaciones matriciales.
Entonces, la representación matricial de † , basada en la matriz A, es la matriz (A∗ )t , esto es, la
matriz que representa a † es la transpuesta de la matriz conjugada de A.
15
Damos en el siguiente teorema algunas propiedades fundamentales de la operación †, cuya de-
mostración puede consultarse en varias fuentes, en particular en [57].
Teorema 13. Sean Â, B̂ operadores con dominio V, |uihv| un operador en notación de Dirac y α ∈ C.
Entonces
1) († )† = Â
2) (αÂ)† = α∗ †
3) ( + B̂)† = † + B̂ †
4) (ÂB̂)† = B̂ † †
5) (|uihv|)† = |vihu|
Usando el Teorema (13), podemos demostrar fácilmente el siguiente resultado
Teorema 14. Sean Âi : V → V, i ∈ {1, . . . , n} n operadores lineales y αi ∈ C n escalares ⇒
n n
X
†
X †
( αi Âi ) = αi∗ Âi
i=1 i=1
Una clase de operadores hermitianos fundamentales em mecánica cuántica son los proyectores.
Definición 2.23. Proyectores. Sea V un espacio vectorial y W un subespacio de V, con dimV = n
y dimW = m. Usando el procedimiento de Gram-Schmidt (ortonormalización de un conjunto de
vectores, consultar [9–11]), es posible construir una base ortonormal |u1i, |u2i, . . . , |un i para V tal
que |u1 i, |u2i, . . . , |uk i sea, a su vez, una base ortonormal para W. Definimos
k
X
P̂ = |uiihui | (10)
i=1
como el operador de proyección al subespacio W.
16
Ejemplo 2.1. El conjunto {|0i, |1i} es una base ortonormal de H2 . Luego,
Los operadores unitarios son muy importantes en mecánica cuántica porque preservan el valor del
ˆ = ha|bi.
producto interno: sean |αi = Û |ai y |βi = Û|bi ⇒ hα|βi = ha|Û † |Û|bi = ha|I|bi
Los operadores hermitianos y unitarios son ejemplos de operadores normales, los cuales se de-
finen a continuación.
1) Los operadores de Pauli (Ec. (6)) y Hadamard (Ec. (8)) son unitarios.
2) Las matrices de Pauli (Ec. (7)) y Hadamard (Ec. (9) )son unitarias.
Los operadores normales tienen una propiedad matemática, la descomposición espectral, que
juega un papel fundamental en la formulación de la mecánica cuántica. Para poder revisar el teorema
de la descomposición espectral, antes es necesario recordar un tema: eigenvectores y eigenvalores.
17
2.6 Eigenvectores y eigenvalores
Definición 2.26. Eigenvectores y eigenvalores. Sea T̂ : V → V un operador lineal. Un escalar λ
recibe el nombre de eigenvalor de T̂ si existe un elemento no nulo |ψi ∈ V tal que
ˆ
T̂ |ψi = λ|ψi ⇒ λ|ψi = T̂ |ψi ⇒ λI|ψi ˆ − T̂ |ψi = 0
= T̂ |ψi ⇒ λI|ψi (12)
Por definición, (f1 + f2 )(x) = f1 (x) + f2 (x), por ello es que
Sabemos de estudios elementales de álgebra lineal que la ecuación matricial A|xi = 0 sólo tiene
la solución trivial ⇔ det(A) = 0. Por otra parte, dado que la Def. (2.26) excluye al vector nulo, i.e.
|ψi =
6 0 entonces sólo nos queda concluir que, para que la Ec. (15) se cumpla, forzosamente se debe
cumplir la siguiente ecuación:
det(λI − T ) = 0 (16)
18
Definición 2.28. Sea T̂ : V → V un operador lineal y T una representación lineal de T̂ . Definimos
entonces la ecuación caracterı́stica
c(λ) = det(λI − T ) = 0
Un teorema más, cuya demostración es directa y se deja como ejercicio para el lector,
En resumen, un camino para conocer los eigenvalores de un operador lineal T̂ es calcular una
representación matricial T de dicho operador. Acto seguido, sobre esta matriz T se calcula la función
caracterı́stica c(λ) y, a partir de esto último, el polinomio caracterı́stico correspondiente. Las raı́ces
son los eigenvalores del la matriz T y, por lo tanto, los eigenvalores del operador T̂ .
En el razonamiento anterior pareciera que existe un paso falso. Si un operador T̂ tiene muchas
representaciones matriciales, ¿cómo saber que los eigenvalores de una representación matricial deter-
minada son también los del operador T̂ ?
La respuesta a esta interrogante la dan los siguientes teoremas, cuyas demostraciones se re-
comienda consultar en [9]
Definición 2.30. Dos matrices A, B ∈ Mn (C) se llaman semejantes si existe una matriz no singular
C ∈ Mn (C), i.e. C −1 existe, tal que
B = C −1 AC
Teorema 17. Si dos matrices A, B ∈ Mn (C) representan el mismo operador lineal T̂ ⇒ ∃ una matriz
no singular C ∈ Mn (C) tal que B = C −1 AC. En otras palabras, si A, B representan al mismo
operador lineal si dichas matrices son semejantes.
Teorema 18. Sean A, B, C ∈ Mn (C) dos matrices relacionadas por una ecuación de la forma B =
C −1 AC ⇒ A y B representan el mismo operador lineal.
Teorema 19. Dos matrices son semejantes si y sólo si representan al mismo operador lineal.
19
El teorema (19), unido a la siguiente propiedad de la función determinante: det(C −1 AC) =
det(C −1 )det(A)det(C), son el fundamento del siguiente teorema, el cual establece que, si cua-
lesquiera dos representaciones matriciales de un operador lineal tienen los mismos autovalores.
Teorema 20. Las matrices semejantes tienen el mismo polinomio caracterı́stico y por tanto los mis-
mos eigenvalores.
Para terminar, enunciamos un teorema que relaciona la diagonalización de una matriz con sus
eigenvalores. Este resultado es fundamental en la estructura matemática de la mecánica cuántica.
Teorema 21. Sea T̂ : V → V un operador lineal, F el campo de definición del espacio vectorial
V y dimV = n. Además, supongamos que el polinomio caracterı́stico de T̂ tiene n raı́ces distintas
λ1 , λ2 , . . . , λn ⇒
a) Existe un conjunto de eigenvalores U = {|u1 i, |u2i, . . . , |un i}, que corresponden a λ1 , λ2 , . . . , λn
y que conforman una base para V.
b) la matriz T relativa a la base U es la matriz diagonal Λ que tiene a los eigenvalores λ1 , λ2 , . . . , λn
como elementos de la diagonal, i.e. T = diag(λ1 , λ2 , . . . , λn ).
c) Si A es la matriz de T̂ relativa a otra base {|e1 i, |e2 i, . . . , |en i} entonces la matriz diagonal Λ se
calcula de acuerdo a la fórmula
Λ = C −1 AC,
donde C es la matriz no singular que relaciona las dos bases {|ui i}, {|ei i} mediante la ecuación
U = EC.
Definición 2.31. Producto tensorial. Sean V(F) y W(F) espacios vectoriales de dimension m y n
respectivamente. Definimos a X como el producto tensorial de V y W, i.e. X = V ⊗ W.
- Los elementos de X son combinaciones lineales de vectores |ai ⊗ |bi, donde |ai ∈ V and |bi ∈ W.
- En particular, si {|ii} y {|ji} son bases ortonormales de V y W entonces {|ii ⊗ |ji} es una base 2
para X.
2
Un ejemplo concreto: sea {|0i, |1i} una base ortonormal de un espacio de Hilbert bidimensional H2 . Entonces, una
base para H4 = H2 ⊗ H2 es {|0i ⊗ |0i, |0i ⊗ |1i, |1i ⊗ |0i, |1i ⊗ |1i}.
20
Sean ahora Â, B̂ operadores lineales en V y W respectivamente ⇒ ∀ |ai1 , |ai2 ∈ V, |bi1 , |bi2 ∈ W,
α ∈ F se cumple que
El producto tensorial |ai ⊗ |bitambién se puede escribir |abi o |a, bi. Por otra parte, el producto
tensorial de |ai consigo mismo n veces |ai ⊗ |ai ⊗ . . . ⊗ |ai se puede escribir como |ai⊗n .
El producto de Kronecker es una representación matricial del producto tensorial. Sean A =
(aij ), B = (bij ) dos matrices de orden m × n y p × q respectively. Entonces A ⊗ B se calcula de la
siguiente manera:
A11 B A12 B . . . A1n B
A21 B A22 B . . . A2n B
A ⊗ B = .. .. .
.. ..
. . . .
Am1 B Am2 B . . . Amn B
A ⊗ B es de orden mp × nq.
21
3 Probabilidad elemental para computación cuántica
3.1 Discrete Random variables and distributions
Definición 3.1. Discrete Random Variable. An experiment is a situation with a set of possible
outcomes. Let us suppose we have an experiment with outcome space E.
A random variable (rv) is a real mapping X : E → R that is defined for all possible outcomes in S.
A discrete random variable (drv) takes only a finite or countable infinite number of distinct values,
i.e. X : E → A ⊂ R is a drv iff #(A) ≤ ℵ0 . The expression X = xi is shorthand for X(ei ) = xi , ∀
ei ∈ E, xi ∈ A.
Definición 3.2. Probability distribution for a drv. Let X : E → A be a drv. Since the outcomes of
an experiment are uncertain in general, we associate with each outcome xi ∈ A a probability p(xi ),
where p(xi ) = Pr(XP = xi ). The numbers p(xi ) are called a probability distribution of X iff i)
p(xi ) ≥ 0, and ii) xi ∈A p(xi ) = 1.
If X, Y are two drv and a, b ∈ R, the following propositions can be proved ([58])
Definición 3.4. Bernoulli distribution. The Bernoulli distribution, denoted B(θ), is used as a model
for experiments which have only two outcomes: success with probability θ, and failure with proba-
bility 1 − θ. If X is B(θ) then X = 1 if success and X = 0 if failure. It is a well known fact that if
X is B(θ) then µX = θ and σ 2 = θ(1 − θ).
Definición 3.5. Binomial distribution. The binomial distribution, denoted Bin(n, p), describes ex-
periments that consist of a number of independent identical trials with two possible outcomes: success
with probability p and failure with probability q = 1 − p. So, the random variable X =‘number of
successes’ can take any value from {1, 2, . . . , n} and its distribution is described by the binomial dis-
tribution. If X is Bin(n, p) then the probability p(r) of obtaining r successes from n trials is given by
p(r) = nr pr q n−r .
22
4 Postulados de la mecánica cuántica (versión computación cuántica)
La mecánica cuántica es una teorı́a sobre el comportamiento de la masa y la luz, en particular a escala
atómica [57, 59]. La historia de la mecánica cuántica (1900- circa 1930) incluye un conjunto de
resultados experimentales que pusieron en tela de juicio las ideas que sobre la Naturaleza se tuvieron
hasta el principio del siglo XX ([60], [61] and [62]). Gracias al trabajo de W. Heisenberg y E.
Schrödinger, el cual fue continuado por otros cientı́ficos como R. Feynman and M. Born, la mecánica
cuántica es hoy una teorı́a cientı́fica robusta, utilizada diariamente en la labor teórica y experimental.
En mecánica cuántica existen dos formalismos usados para describir un sistema fı́sico: vectores
de estado y operadores de densidad. Ambos formalismos son equivalentes [7] y, en consecuencia, el
uso de uno u otro depende los requerimientos del investigador. En este texto expresaremos los cuatro
postulados de nuestro interés usando el primer formalismo, el que corresponde a vectores de estado.
En esta capı́tulo nos concentraremos en el estudio de los postulados de la mecánica cuántica,
siguiendo la formulación que de los mismos se hace en [7]. Además, revisaremos varios resultados
presentados en las obras [57], [63], [59], [8] y [7]. Entre muchas obras y artı́culos, se recomienda al
lector interesado en profundizar en los temas aquı́ expuestos que consulte [64].
Postulado 1. A cada sistema fı́sico aislado asociaremos un espacio de Hilbert H, el cual recibe
el nombre de espacio de estados.
La descripción total y absoluta de las caracterı́sticas que nos interesan del sistema fı́sico en
cuestión se encuentra contenida en su vector de estado, el cual es un vector unitario |ψi ∈ H. La
dimensión del espacio de estados H depende del número de grados de libertad de la propiedad fı́sica
en consideración.
Este primer postulado tiene una implicación muy importante: una combinación lineal de vectores
de estado es también un vector de estado [57]. Este es el principio de superposición y es una car-
acterı́stica fundamental de la descripción cuántica de sistemas fı́sicos. En particular, observe que
cualquier vector de estado |ψi se puede expresar
P como una superposición de vectores de estado
pertenecientes a una base de H, i.e. |ψi = i ci |ei i, ci ∈ C.
4.1.1 El qubit
En la teorı́a de la computación clásica la unidad fundamental de almacenamiento y manipulación
de información es el bit, cuya estructura matemática es bastante simple: basta con definir dos val-
ores tradicionalmente etiquetados como {0, 1} y con relacionar dichas etiquetas con dos resultados
posibles generados a través de una medición clásica. Un ejemplo de este procedimiento es tomar un
transistor TTL como el sistema fı́sico a medir y hacer la siguiente asignación:
- Si la diferencia de potencial entre colector y emisor se encuentra en el conjunto [0, 0.5]V entonces
hemos leı́do un ’0’ lógico.
23
- Si la diferencia de potencial entre colector y emisor se encuentra en el conjunto [4.5, 5]V entonces
hemos leı́do un ’1’ lógico.
Ası́ pues, es evidente que la descripción matemática de un bit clásico es un elemento de un espacio
escalar.
En computación cuántica, la unidad básica de almacenamiento, manipulación y medición de in-
formación es el qubit. Un qubit es un sistema fı́sico cuyo comportamiento se describe a través de las
leyes de la mecánica cuántica y que se puede representar matemáticamente como un vector unitario
en un espacio de Hilbert bidimensional, esto es
y
N
x
,1,
Figure 1: Un qubit como elemento de la esfera de Bloch |ψi = cos θ2 |0i + eiφ sin 2θ |1i.
24
4.2 Evolución de un sistema cuántico aislado
En este apartado estudiaremos la de la evolución de un sistema cuántico, esto es, el formalismo
matemático que describe el comportamiento temporal de un sistema fı́sico aislado, de acuerdo a las
leyes de la mecánica cuántica.
Postulado 2 (versión operador unitario).
Sea |Ψi el vector de estado de un sistema cuántico aislado. La evolución de |Ψi se describe me-
diante un operador unitario Û (Def. (2.24)), también conocido como operador de evolución. Luego,
el estado del sistema en el tiempo t2 dado el vector de estado del mismo sistema en el tiempo t1 es:
d|ψi
i~ = Ĥ|ψi (24)
dt
donde ~ es la constante de Planck y Ĥ es un operador hermitiano (Eq. (2.22)) conocido como el
Hamiltoniano del sistema.
The Hamiltonian of particular physical systems must be determined and calculated for each case.
In general, figuring out the Hamiltonian of a particular physical system is a difficult task.
Nota aclaratoria. Tenga en mente que, a pesar de lo similar de la notación, Ĥ y Ĥ representan dos
cosas distintas: el primero es el hamiltoniano al que se hace referencia en el postulado 2, en tanto que
el último es el operador hadamard.
Veamos el efecto del operador Hadamard (Eq. (8)), usado como operador de evolución, sobre un
qubit.
1 1
Ĥ|0i = √ [|0ih0| + |0ih1| + |1ih0| − |1ih1|]|0i = √ (|0i + |1i)
2 2
1 1
Ĥ|1i = √ [|0ih0| + |0ih1| + |1ih0| − |1ih1|]|1i = √ (|0i − |1i)
2 2
Ejercicio 4.1. Sean los siguientes operadores unitarios:
1
σ̂x = |0ih1|+|1ih0|, σ̂y = i|0ih1|−i|1ih0|, σ̂z = |0ih0|−|1ih1|, y Ĥ = √ (|0ih0|+|0ih1|+|1ih0|−|1ih1|)
2
25
y los qubits con los siguientes estados cuánticos:
1
|ψi1 = |0i, |ψi2 = |1i, y |ψi3 = √ (|0i + |1i)
2
Aplique dos veces cada operador unitario a cada qubit.
donde P̂ri es el proyector al eigenespacio E(ri ) definido por el eigenvalor ri . Los resultados posi-
bles de la medición corresponden a los eigenvalores ri del observable.
Este postulado provee de medios para cuantificar la función de distribución que determina las
frecuencias relativas correspondientes a las funciones de distribución de resultados.
Sea |ψi el vector de estado de un sistema cuántico inmediatamente antes de la medición. En-
tonces, la probabilidad de obtener el resultado ri se calcula usando la siguiente expresión:
P̂r |ψi
|ψipm = p i (26)
p(ri )
26
Veamos un ejemplo. Suponga que tiene en su poder un fotón polarizado con orientaciones de
polarización vertical y horizontal. Simbolizamos a la polarización horizontal con el vector |0i y a la
polarización vertical con |1i. Luego, la polarización inicial de nuestro fotón se puede describir con la
expresión
|ψi = α|0i + β|1i
donde α, β ∈ C, |α|2 + |β|2 = 1 y {|0i, |1i} conforman la base computacional de H2 .
Ahora construyamos dos operadores de proyección P̂a0 = |0ih0| y P̂a1 = |1ih1|, los cuales
corresponden a los resultados a0 , a1 . Entonces, el observable utilizado en este experimento es
M̂ = a0 |0ih0| + a1 |1ih1|
Con esta información y de acuerdo al postulado 3, podemos decir lo siguiente:
27
4.4 Sistemas cuánticos multipartitas
We now focus on the mathematical description of a composite quantum system, i.e. a system made
up of several different physical systems.
Postulate 4. The state space of a composite quantum system is the tensor product of the component
system state spaces.
- If we have n quantum systems expressed as state vectors, labeled |ψi1, |ψi2 , . . . , |ψin then the joint
state of the total system is given by |ψiT = |ψi1 ⊗ |ψi2 ⊗ . . . ⊗ |ψin .
- Similarly, if we have n quantum systems expressed as density operators ρ1 , ρ2 , . . . , ρn then the joint
state of the total system is given by ρT = ρ1 ⊗ ρ2 ⊗ . . . ⊗ ρn (in the absence of any knowledge of
correlations).
As an advance of the operations we shall perform on the following chapters let us show the details
of applying an evolution operator to a composite quantum system. Let Ĥ ⊗2 be the tensor product of
the Hadamard operator (Eq. (8)) with itself and let |ψi = |00i. Then
1
Ĥ ⊗2 |ψi = (|00ih00| + |01ih00| + |10ih00| + |11ih00| + |00ih01| − |01ih01| + |10ih01| − |11ih01|
2
+ |00ih10| + |01ih10| − |10ih10| − |11ih10| + |00ih11| − |01ih11| − |10ih11| + |11ih11|)|00i
1
= (|00i + |01i + |10i + |11i) (27)
2
28
5 Theory of Computation
The purpose of this chapter is to present a concise introduction to the Theory of Computation, in
order to provide the necessary background and to motivate our further discussion on the importance
of classical random walks and quantum walks in computer science.
We begin by providing an overview of the theory of computation and deliver a succint historical
background of those ideas that led to its creation and development. We then formulate the essential
concepts of a basic and yet powerful model of computation: Finite Automata. We use these concepts
to introduce a formal definition of a model of computation that has played a most important role in
the development of Computer Science: Turing Machines. We extend our discussion by introducing
a third model of computation: Quantum Turing Machines. The previous concepts are followed by
key definitions and theorems from Complexity Theory and the definitions of P, NP and NP-complete
problem categories. This chapter is based on [65], [66], [67], [68] and [70].
3
Short for ignoramus et ignorabimus: we do not know and will not know.
29
The second step towards a rigorous formulation of mathematics was taken in 1920-1921, when
Hilbert’s program was proposed [72]. Hilbert thought that, in order to formulate mathematics on
a solid and complete logical foundation, it would suffice to prove that “all of mathematics follows
from a correctly-chosen finite system of axioms, as well as that some such axiom system is provably
consistent.” Finally, Hilbert and Ackerman posed a challenge known as the Entscheidungsproblem
(Decision Problem) [73]. The Decision Problem is formulated in terms of first-order logic4 and can
be stated as follows
Definition 5.1. Entscheidungsproblem. Does there exist a procedure which can be followed for a
finite number of steps in order to determine the validity of a given first-order statement?
The idea of ‘finite procedure’ was deeply rooted in Hilbert’s proposals. A contemporary computer
scientist would immediately think of an ‘algorithm’ as an equivalent definition of ‘finite procedure’.
However, in Hilbert’s time the concept of algorithm did not exist yet.
Alan Turing published a most influential paper in 1936 [69] in which he pionereed the theory of
computation, introducing the famous abstract computing machines now known as Turing Machines.
In [69], Turing explained the fundamental principle of the modern computer, the idea of controlling
the machine’s operation by means of a program of coded instructions stored in the computer’s mem-
ory, i.e. Turing showed that it was possible to build a “Universal Turing Machine”, that is, a Turing
machine capable of simulating any other Turing machine (the Universal Turing Machine being the
actual digital computer and the simulated Turing machine the program that has been encoded in the
digital computer’s memory). In addition, Turing proved that not all precisely stated mathematical
problems can be solved by computing machines, in particular the Entscheidungsproblem.
In the following section we deliver a brief summary of ideas and main results from [69].
5.3 On Computability
When Turing wrote [69], a computer was not a machine at all, but a human being. A computer
was a mathematical assistant who calculated by rote, in accordance with a systematic method. The
method was supplied by an overseer prior to the calculation. It is in that sense that Turing uses the
word ‘computer’ in [69] and a Turing machine is an idealized version of this human computer. What
Turing did in [69] was to propose a mathematical formalism for the idealization of a human computer
as well as to study the calculation capabilites and limitations of that mathematical model.
Turing meant by a systematic method (sometimes called an effective method and a mechanical
method) any mathematical method for which all the following are true:
1. The method can, in practice or in principle, be carried out by a human computer working with
paper and pencil.
2. The method can be given to a human computer in the form of a finite number of instructions.
3. The method demands neither insight nor ingenuity on the part of the human being carrying it out.
4. The method will definitely work if carried out without error.
4
First-order logic or First Order Predicate Calculus (FOPC) is a formalisation of deductive logical reasoning. A
concise tutorial on FOPC can be found in [65].
30
Turing’s definition of a systematic method is the definition of an algorithm. Also, Turing proved
that it was possible to build a particularly powerful machine called Universal Turing Machine
(UTM) that could simulate any other Turing machine in reasonable time. Furthermore, Turing stated
a conjecture now known as the Church-Turing Thesis, in which he established an equivalence corre-
spondence between the existence of Turing machines and that of systematic methods. If the Church-
Turing thesis is correct, then the existence or non-existence of systematic methods can be replaced
throughout mathematics by the existence or non-existence of Turing machines. For instance, one
could establish that there is no systematic method for doing a certain task by proving that no Turing
machine can do the task in question.
5.1. The Church-Turing Thesis. Three ways to express the thesis are:
1. The UTM can perform any calculation that any human computer can carry out.
2. Any systematic method can be carried out by the UTM.
3. Every function which would be naturally regarded as computable can be computed by the Universal
Turing Machine.
Turing proved that it was not possible to build a Turing machine capable of solving problem from
Def. (5.1), i.e. the Entscheidungsproblem is undecidable. If the Church-Turing thesis is true that
means that the problem posed in Def. (5.1) cannot be solved by any algorithm, i.e. any finite method,
as required by Hilbert. In this thesis we shall focus only on decidable problems, that is, problems for
which it is possible to build Turing machines to solve them.
In the following section we deliver some general properties of problems suitable to be solved by
Turing machines, along with two relevant problems in Computer Science.
31
Definition 5.3. The Traveling Salesman Problem
INSTANCE: A finite set C = {c1 , c2 , . . . cm } of “cities” and a “distance” d(ci, cj ) ∈ N, the set of
natural numbers.
QUESTION: Which is the shortest “tour” of all the cities in C, that is, an ordering [cΠ(1) , cΠ(2) , . . . , cΠ(m) ]
of C such that [ m−1
P
i=1 d(cΠ(i) , cΠ(i+1) )] + d(cΠ(m) , cΠ(1) ) is minimum?
In the theory of computation we usually work with decision problems, the reason being the need
to build operational definitions of relevant problems. It is a matter of ingenuity to design a decision-
problem version of a problem and it is not always the case that totally equivalent versions are obtained.
Let us provide a decision-version of problem 5.3 as an example (note that the SAT problem (5.4) is
already a decision problem).
We restrict ourselves to work with decision problems because languages, as defined in Def. (5.2),
are their natural counterpart, suitable to study in a mathematical fashion. The correspondence between
decision problems and languages is brought about by the encoding schemes used to specify problem
instances. An encoding scheme used describe each instance of a problem ζ partitions language Σ∗
into three classes of strings: strings that are not encoding of instances of ζ, those that encode instances
of ζ for which the answer is ‘no’ and those that encode instances of ζ for which the answer is ‘yes’.
Since we work with decidable problems, we are interested in the third class of strings.
In the following section we present definitions and main results of three models of computation:
Finite Automata, Turing Machines and Quantum Turing Machines.
32
5.5 Models of Computation and Algorithmic Complexity
Finite Automata, Turing Machines and Quantum Turing Machines are three models of computation.
In this chapter, Finite Automata are presented and its results are used to introduce Turing machines;
both models of computation are presented in their deterministic and nondeterministic versions. Quan-
tum Turing machines are introduced along with a physics-oriented version of the Church-Turing the-
sis. Before introducing the above mentioned models, we will provide some concepts to quantify the
amount of resources required to find an algorithmic solution to a problem.
f (n) ≤ αg(n)
So, g(n) is an asymptotic upper bound for f (n) (“f is of the order of g”). Bounds of the form nβ ,
γ
β > 0 are called polynomial bounds, and bounds of the form 2n , γ ∈ R+ are called exponential
bounds. f (n) = O(g(n)) means informally that f grows as g or slower.
Big O notation says that one function is asymptotically no more than another. To state that one
function is asymptotically no less than another we use the Ω notation.
g(n) ≤ αf (n)
Finally, to say that two functions grow at the same rate we use the Θ notation.
Definition 5.8. Θ Notation. Let f, g : N → R+ . We say that f (n) = Θ(g(n)) if f (n) = O(g(n))
and f (n) = Ω(g(n)). Thus, f (n) = Θ(g(n)) means that f and g have the same rate of growth.
33
Suppose that R is at one of the ends of a wireless communication system. R can receive as valid
input the characters ‘0’ and ‘1’, and, since any communication system is subject to errors, R can
receive a third character ‘#’ which is used to state that an error has occurred in the transmission of
the data stream. So, the input for R is an arbitrarily long set of characters (also known as a string)
taken from the alphabet Σ = {0, 1, #}. The parity of a sequence of 0s and 1s is defined as follows: a
sequence of 0s and 1s is odd if its number of 1s is odd, and it is even if its number of 1s is even.
Let us now elaborate on the properties R must have. First, we state that only strings with no errors
will be suitable for parity computation. Thus, only sequences of 0s and 1s will be accepted and any
string has at least one error character must be rejected. Second, an empty set of characters has no 1s,
thus we set the initial parity of a string as even.
Let us show the behaviour of R with an example. Suppose that R receives as input the string
100110001 (read from left to right). The first input character is ‘1’ thus R goes from state ‘Even’ to
state ‘Odd’. We then read ‘0’ and therefore we stay in state ‘Odd’. The third input character is again a
‘0’ and we remain in state ‘Odd’. As fourth input we receive a ‘1’ and then we move from state ‘Odd’
to state ‘Even’ as now we have an even number of ‘1’s in our account. The fifth input is a ‘1’ and
consequently we move from state ‘Even’ to state ‘Odd’ as the total number of ‘1’s we have received
so far is odd. The 6th , 7th and 8th characters are ‘0’ thus the current state of machine R remains being
‘Odd’. Finally, the last input character is ‘1’ and therefore R goes from state ‘Odd’ to state ‘Even’.
The final outcome of the computation is the accept state ‘Even’.
1
0 0
# #
Error
0,1,#
Figure 2: A finite automaton R for parity computation. Double-circled states are accept states and single-
circled state is a reject state. Input strings for R are taken from the set of any combination of characters taken
from the alphabet Σ = {0, 1, #}.
Formally speaking, a DFA is a list of five objects: set of states, input alphabet, rules for moving,
start state, and accept states. We use a transition function to define the rules for moving. If the
DFA has an arrow from state x to a state y labeled with the input symbol 1, that means that, if the
automaton is in state x when it reads a 1, it then moves to state y. We can indicate the same thing
with the transition function by saying that δ(x, 1) = y.
34
Definition 5.9. Deterministic Finite Automaton. A DFA R is a 5-tuple (Q, Σ, δ, qo , F ), where
1. Q is a finite set called the states,
2. Σ is a finite set called the alphabet,
3. δ : Q × Σ → Q is the transition function,
4. q0 ∈ Q is the start date, and
5. F ⊂ Q is the set of accept states.
The formal description of the DFA R depicted in Fig. (2) is as follows: Q = {Even, Odd, Error},
Σ = {0, 1, #}, q0 = Even, F = {Even, Odd} and L(R) = {x ∈ {0, 1}n }. The transition function is
given in Table 1.
Table 1. Transition Function δ
δ(Even, 0) = Even δ(Even, 1) = Odd δ(Even, #) = Error
δ(Odd, 0) = Odd δ(Odd, 1) = Even δ(Odd, #) = Error
δ(Error, 0) = Error δ(Error, 1) = Error δ(Error, #) = Error
Condition 1 means that the machine starts in the start state. Condition 2 states that the machine
goes from state to state according to the transition function. Condition 3 says that the machine accepts
its input if it ends up in an accept state. We say that R accepts language A if A = {w|R accepts w},
i.e. A is the set of all strings accepted by R.
35
Deterministic Computation Non−deterministic Computation
111
000
000
111 00
11
Start 000
111 00
11
00000000
11111111
000
111 111111111
000000000
0
1 0000000 11111111
1111111 00000000
0
1
0
1 0000000 11111111
1111111
0000000
1111111
00000000
0
1
00000000
11111111
0
1
1
0 0000000
1111111 00000000
11111111
0
1
0
1 000
111 000
111
0000000
1111111 0
1 000
111
00000000
11111111
0
1 000
111
00
1100
11 000
111 000
11100000000
11111111
0011
1100
0
1 000
111
00
1100
11 000
111 000
11100000
11111
00000000
11111111
0011
1100
0
1 0011
1100 0
1 00
11 00000
11111
00000000
11111111
00
11
0
1
0
1 0011
1100 0
1 11 00000
11111
00000000
11111111
0011
00
00
11 0
1 00000
11111
00000000
11111111
0
1
00
11 0011
1100 0
1
000
111 0011
11
000
111 00
00000
1111100
11
00000000
11111111
0
1
00
11
00
11 0011
11
00
11 00
00
11 0
1
000
111
000
111
000
111 11
0011
1100
00000
11111
111
00
000 111
111 00
11
00000000
11111111
000 00
11
00
11
00
11 Reject 00
11 00
11 000
111 000
000 111
111 0
1 00
11 00
11
0
1
0
1 00
11 00
11 000
0
1 00
11 00
11
0
1
0
1 0
1 0
1
0
1
0
1 . 0
1 0
1
0
1 . 0
1 0
1
0
1
0
1
. .. 0
1
00
11
00
11
0
1
0
1
0
1
0
1
. 00 Reject
11
00
11
0
1
00
11
00
11 1
0
00
11
0
1 0
1
0
1 0
1
0
1
0
1 000
111
0
1
0
1 .
0
1
0
1 000
111
000
111
0
1 .
.. 000
111
00 11
11
00
11
00 .
00 11
11 00
00
11
. 00 111
11
000
111
000
111
00
11
00 000
11 00
11
000
111 111
000
00
11
00
11
0000
1111
1
0 000
111
Accept 111 000
111 000
11100
11
0000
1111
0
1 000 000
111 0001111
1110000
0
1 0001111
1110000
1111
0
1 000
1110000
0
1
00
11 0001111
1110000
00
11
0
1 000
111
00
11 0000
1111
000
111 000
111
00
11
0
1 Accept 00 111
11 000 111
000
0
1 00 111
11 000 111
000
1
0
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
00
11
Accept 00
11
00
11
or
Reject
Figure 3: In a DFA, every single step is fully determined by the previous step. In an NFA, a step may be
followed by n new steps or, equivalently, an NFA makes n copies of itself, one for each possibility.
36
Condition 1 states that the machine starts out in the start state. Condition 2 means that state ri+1
is one of the allowable next states when N is in state ri and reading yi+1 . Observe that δ(ri , yi+1 )
is the set of allowable next states and so we say that ri+1 is a member of that set. Finally, condition
3 establishes that the machine accepts its input if the last state is an accept state. We say that RN
accepts language A if A = {w|RN accepts w}, i.e. A is the set of all strings accepted by RN .
It can be proved that DFAs and NFAs recognize the same class of languages [68]. However,
the number of states of a deterministic counterpart of an NFA can be exponential in the number
of branches of such an NFA and this is a very important difference between these two models of
computation.
Read−Write Head
00000000000000000000000000000000000000
11111111111111111111111111111111111111
0
1 0
1 0
1 0
1 0
1 0
1 11111
00000
0
1
0
1 0
1 0
1 0
1 0
1 0
1 0
1
0
1 0
1 0
1 0
1 0
1 0
1 0
1
0
1 0
1 0
1 0
1 0
1 0
1 0
1
0
1 0
1 0
1 0
1 0
1 0
1 0
1
... 0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
...
0
1 0
1 0
1 0
1 0
1 0
1 0
1
0
1 0
1 0
1 0
1 0
1 0
1 0
1
0
1 0
1 0
1 0
1 0
1 0
1 0
1
11111111111111111111111111111111111111
00000000000000000000000000000000000000
11111
00000
−3 −2 −1 0 1 2 3
Figure 4: The ‘hardware’ elements of a Deterministic Turing Machine (DTM) are a limitless memory-type
(the tape is divided into squares or cells), and a scanner which consists of read-write head plus a finite state
control system. The scanner has two purposes: to read and write information on the cells of the tape as well as
to control the state of the DTM.
A DTM consists of a scanner and a limitless memory-tape that moves back and forth past the
scanner. The scanner is composed of a read-write head as well as a finite state control system. The
scanner does two tasks: it controls the state of the DTM through the finite state control system, and
reads and writes information on the memory cells through the read-write head. The tape is divided
into squares. Each square may be blank (t) or may bear a single symbol (0 or 1, for example). The
scanner is able to examine only one square of tape at a time (the ‘scanned square’). The scanner has
mechanisms that enable it to write and erase the symbol on the scanned square, and to move the tape
to the left or right, one square at a time. Also, the scanner is able to alter the state of the machine:
a device within the scanner is capable of adopting a number of different states, and the scanner is
able to alter the state of this device whenever necessary. The operations just described - erase, print,
move, and change state - are the basic operations of a DTM. Complexity of operation is achieved by
chaining together large numbers of these simple basic operations.
37
Note that according to the definitions of effective procedure and Turing machines, and under the
assumption that the Church-Turing thesis holds, the concepts of Turing machine and algorithm are
interchangeable.
We say that M accepts language A if A = {w|M accepts w}, i.e. A is the set of all strings
accepted by M. We now show how to use a DTM to recognize all numbers divisible by 4.
Example 5.1. Running a program in a Deterministic Turing Machine. The program specified by
Γ = {0, 1, t} (t is the blank symbol), Q = {q0 , q1 , q2 , q3 , qaccept , qreject } and δ, provided in Table 1,
is used in a deterministic Turing machine M to determine whether a number can be divided by 4
or, equivalently, whether the last two digits of a binary number, reading from left to right, are two
consecutive zeros.
38
Table 1. Example of a deterministic Turing machine.
Q/Γ 0 1 t
q0 (q0 , 0, R) (q0 , 1, R) (q1 , t, L)
q1 (q2 , t, L) (q3 , t, L) (qreject , t, L)
q2 (qaccept , t, L) (qreject , t, L) (qreject , t, L)
q3 (qreject , t, L) (qreject , t, L) (qreject , t, L)
The program works as follows. For a state qi ∈ {q0 , q1 , q2 , q3 } specified in the LHS column and
a given alphabet symbol sj ∈ {0, 1, t} specified in the top row, the box that corresponds to row qi
and column sj and contains three symbols: the first symbol is the new state of M, the second symbol
is the new alphabet symbol that will be written in the current cell (substituting symbol si ) and the
third symbol specifies the motion direction of the read-write head. So, row qi and column sj are the
current configuration of M and the symbols contained in the box corresponding to row qi and column
sj are the next configuration of M.
For example, let X = 10100 be an input binary string (we shall read the input string from left to
right). The initial state of M is q0 and M’s tape reads as t 1 0 1 0 0 t where our first
input symbol (in bold face) is the leftmost 1. So,the initial configuration of M is q0 , 1.
The transition function specifies that for a state q0 and input symbol 1, M must take q0 as new
state, write the value 1 in the cell where its read-write head is now located (1) and take its read-write
head one cell forward, i.e. to the right. So, M is now in the configuration q0 , 0 and its tape reads as
t 1 0 1 0 0 t .
39
5.5.5 Algorithmic Complexity for DTMs
A DTM can be used to find a solution to a problem, so how efficiently can such a solution be found?
As stated previously, we shall be interested in finding the fastest algorithms. Let us now introduce a
few concepts needed to quantify the efficiency of an algorithm.
The time complexity of an algorithm A expresses its time requirements by giving, for each input
length, the largest amount of time needed by A to solve a problem instance of that size.
Definition 5.16. Time Complexity Function for a DTM. Let M be a DTM. We define f : N → N
as the time complexity function of M, where f (n) is the maximum number of steps that M uses on
any input of length n.
Definition 5.17. Time Complexity Class for DTMs. Let t : N → R+ be a function. We define the
time complexity class TIME(t(n)), as the collection of all languages that are decidable by an O(t(n))
time DTM.
Definition 5.18. Class P. The class of languages that are decidable in polynomial time on a deter-
ministic single-tape Turing machine is denoted by P and is defined as
[
P= TIME(nk )
k
A polynomial time or tractable algorithm is defined to be one whose time complexity function is
O(p(n)) for some polynomial function p, where n is used to denote the input length. Any algorithm
whose time complexity function cannot be so bounded is called an exponential time or intractable
algorithm. Tractable algorithms are considered as acceptable, as a sign that a satisfactory solution
for a problem has been found. Finding a tractable algorithm is usually the result of obtaining a deep
mathematical insight into a problem. In contrast, intractable algorithms are usually solutions obtained
by exhaustion, the so called brute-force method, and are not considered satisfactory solutions.
For example, no tractable algorithm for the Travelling Salesman Problem (5.3) is known so far
([67] and [74]). All solutions proposed so far are based on enumerating all possible solutions. Why is
the Travelling Salesman problem intractable? Nobody knows for sure. It could be either that we need
a deeper knowledge of the characteristics of this problem or, simply, that the Travelling Salesman
problem is inherently intractable. However, no proof for neither of these two alternatives has been
supplied so far.
DTMs are powerful machines. However, there are many decidable problems that require an un-
reasonable amount of resources from a DTM to be solved. In the following lines we introduce another
model of computation used to tackle some of those problems.
We shall study two of those problems in detail in the last part of this chapter, but before doing
so we must introduce some formal definitions in order to have the tools required to define and attack
those problems.
40
5.5.6 Nondeterministic Turing Machines
The definition of a Nondeterministic Turing Machine (NTM) is similar to that of an NFA. The com-
putation of an NTM is a tree whose branches correspond to different possibilities for the machine (see
Fig. (3)). If some branch of the computation leads to the accept state qaccept then the machine accepts
its input.
Definition 5.19. Nondeterministic Turing Machine. A Nondeterministic Turing Machine is a 7-
tuple MN = (Q, Σ, Γ, ∆, q0 , qaccept , qreject ), where Q, Σ, Γ are all finite sets, P(Q × Γ × {L, R}) is the
power set of Q × Γ × {L, R}, and
1. Q is the set of states
2. Σ is the input alphabet not containing the blank symbol t,
3. Γ is the tape alphabet, where t ∈ Γ and Σ ⊂ Γ,
4. ∆ : Q × Γ → P(Q × Γ × {L, R}) is the transition relation,
5. q0 ∈ Q is the start state,
6. qaccept ∈ Q is the accept state, and
7. qreject ∈ Q is the reject state, where qaccept 6= qreject
Notice that ∆ is not a function anymore but a relation, reflecting the fact that an NTM does not
have a single, uniquely defined next action but a choice between several next actions. In other words,
for each state and symbol combination, there may be more than one appropriate next step, or none at
all.
Definition 5.20. Computation with an NTM. An NTM MN accepts input w ∈ Σ∗ if at least one
branch of its computation tree is a sequence of configurations C1 , C2 , . . . Ck such that
1. C1 is the start configuration of MN on input w,
2. each Ci yields Ci+1 , and
3. Ck is an accepting configuration.
MN accepts language A if A = {w|MN accepts w}, i.e. A is the set of all strings accepted by MN .
NTMs are powerful because of the assymetrical input-output relation found in the way these
machines compute. In order to have an NTM MN accept one string w it suffices to find just one
branch b in the computation tree that accepts w.
It can be shown that an NTM can be simulated by a DTM, i.e. that every NTM has an equivalent
DTM ([68] and next section). However, simulating an NTM by a DTM may be at the cost of an
exponential loss of efficiency [67]. Whether this loss is inherent to this ‘translation’ between models
?
or is just a consequence of our limited understanding of nondeterminism is the famous P = NP
problem [67].
41
Definition 5.22. Time Complexity Class for NTMs. Let t : N → R+ be a function. We define
the time complexity class NTIME(t(n)), as the collection of all languages that are decidable by an
O(t(n)) time nondeterministic Turing machine.
For an NTM to accept string w it is enough to find just one branch b in its computation tree that
accepts w. However, a practical problem with this definition is to find b as an NTM can have an infinite
(or exponentially big) number of different branches. Therefore, a more operational method for doing
nondeterministic computation is needed. An important discovery in the theory of computation is the
fact that the complexities of many problems are linked by means of a concept called verifiability.
For example, let us suppose we have a proposed solution for the Travelling Salesman problem
(5.5) and another solution for the SAT problem (5.4). In both cases, we could easily check whether
each proposal is indeed a solution, all we need is a DTM that verifies whether proposed solutions are
right or not. Let us formalize these concepts.
Note that a fundamental difference between an NTM (Def. (5.19)) and a verifier is that an NTM
finds solutions, while a verifier only checks whether a proposal is a solution or not.
We now proceed to define a most important class of languages in Computer Science:
Definition 5.24. Class NP. The class of languages that have polynomial time verifiers is known as
NP.
What is the relation between the abstract model of an NTM and the concepts of verifiers and NP
languages class? The answer is given in Theorem (1) and its proof can be found in [68].
?
5.5.8 P = NP and NP-complete problems
?
The problem P = NP is a fundamental topic in the theory of computation. It is known that P ⊂ NP
as any polynomial language can be checked with a polynomial verifier. Also, it can be proved [66]
that
42
Due to theorem (2) there is a widespread belief that P 6= NP although no proof has been delivered
?
and therefore P = NP remains an open problem.
There is a particular set of problems in NP that plays a key role in the theory of computation:
NP-complete problems. In order to characterise this important set of problems we shall introduce the
notion of polynomial transformations.
Therefore, studying the properties of SAT is an important and active area of research, not only
because a polynomial-time solution to SAT would imply P = NP, but also because SAT is used to
model problems and procedures in several areas of applied computer science and engineering like
Artificial Intelligence (e.g. [76]) and hardware verification (e.g. [77] and [78]), using the following
approach ([79]):
Surveys of algorithms for solving several variations and instances of SAT can be found in [76], [80]
and [79] . Also, good introductions to the vast field of computational complexity can be found in [81],
[82], [74], [83], and [68].
43
6 Physics and the Theory of Computation
Considerations about the physical properties of systems used to do computation and/or transmission
of information have been studied for several decades. Consequently, physics and computer science
have cross-fertilised each other for long time. As early as in the 1940s, in the beginning of the digital
computer era, scientists wondered about the existence and quantification of the minimum amount of
energy required to perform a computation. J. von Neumann, in a set of lectures delivered in 1949 [?],
showed that “a minimum amount of energy required per elementary decision of a two-way alternative
and the elementary transmittal of one unit of information” was close to kT , where k is Boltzmann’s
constant and T is the temperature of the system. Later on, R. Landauer studied the relationship be-
tween energy comsumption and reversible computation (a computational step is reversible iff given
the output of that step, its input is uniquely determined5 .) Among those results published by Landauer
in [?] we have the following principle.
Landauer’s principle. Suppose a computer erases a single bit of information. The amount of energy
dissipated into the environment is at least kT ln 2, where k is Boltzmann’s constant, and T is the
temperature of the environment of the computer.
The Church-Turing principle [3]. Every finitely realizable physical system can be perfectly simu-
lated by a universal model computing machine operating by finite means.
In Deutsch’s words, the rationale behind the Church-Turing priciple was “to reinterpret Turing’s
‘functions which would be naturally regarded as computable’ as the functions which may in principle
be computed by a real physical system. For it would surely be hard to regard a function ‘naturally’ as
computable if it could not be computed in Nature, and conversely”. The Universal Quantum Turing
machine proposed in [3] was further developed and improved by Yao [95] and Bernstein and Vazirani
[96].
5
For example, the logical operation OR is not reversible, while the operation NOT is indeed reversible.
44
We now define a Probabilistic Turing Machine and a Quantum Turing Machine.
Definition 6.1. [8] Probabilistic Turing Machine. A Probabilistic Turing Machine (PTM) is a
Nondeterministic Turing Machine which randomly chooses between the available transitions at each
point according to a probability distribution. Thus, a PTM MN = (Q, Σ, Γ, ∆, q0 , qaccept , qreject ), is a
7-tuple where Q, Σ, Γ are all finite sets, P(Q × Γ × {L, R}) is the power set of Q × Γ × {L, R}, and
1. Q is the set of states
2. Σ is the input alphabet not containing the blank symbol t,
3. Γ is the tape alphabet, where t ∈ Γ and Σ ⊂ Γ,
4. q0 ∈ Q is the start state,
5. qaccept ∈ Q is the accept state, and
6. qreject ∈ Q is the reject state, where qaccept 6= qreject
7. The transition relation is given by ∆ : Q × Γ → P(Q × Γ × {L, R} × [0, 1]), so that for a
given configuration C0 , each of its successor configurations C1 , C2 , . . . , Cn isPassigned a probability
p1 , p2 , . . . , pn , where n is the cardinality of P(Q × Γ × {L, R} × [0, 1]) and ni=1 pi = 1.
Definition 6.2. [8] Quantum Turing Machine. A Quantum Turing Machine is defined analogously
to a PTM but with a different transition relation. The transition relation includes the use of complex
numbers which are the corresponding amplitudes of quantum states used for computation. A QTM is
a 7-tuple MN = (Q, Σ, Γ, ∆, q0 , qaccept , qreject ), where Q, Σ, Γ are all finite sets, P(Q × Γ × {L, R})
is the power set of Q × Γ × {L, R}, and
1. Q is the set of states
2. Σ is the input alphabet not containing the blank symbol t,
3. Γ is the tape alphabet, where t ∈ Γ and Σ ⊂ Γ,
4. q0 ∈ Q is the start state,
5. qaccept ∈ Q is the accept state, and
6. qreject ∈ Q is the reject state, where qaccept 6= qreject
7. The transition relation is given by ∆ : Q × Γ → P(Q × Γ × {L, R} × C[0,1] ), where C[0,1] ) = {z ∈
C| |z|2 ≤ 1}. So, for a given configuration C0 , each of its successor configurations C1 , C2 , . . . , Cn is
assigned an amplitude z1 , z2 , . . . , zn , where n is the cardinality of P(Q × Γ × {L, R} × C[0,1] ) and
P n 2
i=1 |zi | = 1.
Quantum computation can be regarded as the study and development of methods that, by using
quantum mechanical properties, solve problems in finite time (from a different computational point of
view, quantum computation is a sub-field of unconventional models of computation [94]). Quantum
information can be defined as the field devoted to understanding how information is represented
and communicated using quantum states. Due to the advances made over the last few years, both
disciplines are now huge areas of research where diverse interests of several scientific communities
can be found. Quantum walks is one of those interests, mainly contained in the sub-field of quantum
algorithms.
45
7 Algoritmos cuánticos
Con el objetivo de adquirir práctica en el uso de sı́mbolos y operaciones propios del cómputo cuántico,
los trabajos de esta sección se harán en el pizarrón. Los temas que se estudiarán son:
46
References
[1] Richard P. Feynman. Simulating Physics with Computers. International Journal of Theoretical
Physics 21(6/7), pp. 467-488, 1982.
[10] K.F. Riley, M.P. Hobson y S.J. Bence. Mathematical Methods for Physics and Engineering.
Cambridge University Press, 1998.
[11] H. Ted Davis y Kendall T. Thomson. Linear Algebra and Linear Operators in Engineering.
Academic Press, 2000.
[12] Head and Tails. Quantum Computers are another step closer. Technology Quarterly, The
Economist, 2 de enero de 2003.
[13] Dream code. Programming languages for quantum computers are now being written. Technol-
ogy Quarterly, The Economist, 3 de abril de 2003.
[14] Quantum computing. Computing is driving the philosophical understanding of quantum theory.
Technology Quarterly, The Economist, 1 de abril de 2004.
[15] Paul A. Benioff, Space searches with a quantum robot. En Quantum Computation and Quantum
Information: A millenium volume. S. Lomonaco y H.E. Brandt (Comps.), AMS Contemporary
Mathematics (305), 2002.
[16] Carlo Trugenberger. Probabilistic Quantum Memories. Physical Review Letters, 87:067901,
2001.
47
[17] Carlo Trugenberger. Phase Transitions in Quantum Pattern Recognition. Physical Review Let-
ters, 89:277903, 2002.
[18] Carlo Trugenberger. Quantum Pattern Recognition. Quantum Information Processing, 1(6), pp.
471-493, 2002.
[19] M. Cristina Diamantini y Carlo Trugenberger. Quantum Pattern Retrieval by Qubit Networks
with Hebb Interactions. quant-ph/0609117
[20] Salvador E. Venegas-Andraca y Sougato Bose. Quantum Computation and Image Processing:
New Trends in Artificial Intelligence. En Proceedings of the International Conference on Artificial
Intelligence IJCAI-03, pp. 1563-1564, 2003.
[21] Salvador E. Venegas-Andraca y Sougato Bose. Storing, processing and retrieving an image
using Quantum Mechanics. En Proceedings of the SPIE Conference Quantum Information and
Computation, pp. 137-147, 2003.
[22] Salvador E. Venegas-Andraca y Jonathan L. Ball. Storing Images in Entangled Systems. Enviado
a la revista Journal of Electronic Imaging, SPIE, 2006.
[23] Sanjay Gupta. Quantum Neural Networks. Journal of Computer and System Sciences, 63, pp.
355-383, 2001.
[24] Chun-Yang Zhang, Hsin-Chih Yeh, Marcos T. Kuroki y Tza-Huei Wang. Single Quantum-Dot-
Based DNA nanosensor. Nature materials (4) pp. 826-831, 2005.
[25] Yaakov S. Weinstein, C. Stephen Hellberg y Jeremy Levy. Quantum-Dot Cluster-State Comput-
ing with Encoded Qubits. Physical Review A 72(2): 020304, 2004.
[26] Lloyd C.L. Hollenberg. Fast Quantum Search Algorithm in Protein Sequence Comparison-
Quantum Biocomputing. Physical Review E 62, pp. 7532-7535 (2000).
[27] Uncrackable beams of light. Quantum Cryptography is finally going commercial. Technology
Quarterly, The Economist, 4 de septiembre de 2003.
[28] http://www.quantum.univie.ac.at/zeilinger/
[29] http://ultrafast.physics.ox.ac.uk/
[30] http://www.magiqtech.com/
[31] http://www.qubit.org
[32] http://cam.qubit.org
[33] http://aspuru.chem.harvard.edu/
[34] http://www.quantum.univie.ac.at/
48
[35] http://www.iqi.caltech.edu/
[37] http://www.bell-labs.com/org/physicalsciences/
[38] http://www.hpl.hp.com/research/qsr/
[39] http://www.research.ibm.com/quantuminfo/
[41] Gana fı́sico español Asturias de ciencia. Periódico Reforma, 24 de mayo de 2006.
[42] El fı́sico español Cirac Sasturain, Premio Prı́ncipe de Asturias de investigación. Periódico El
Paı́s, 24 de mayo de 2006.
[43] Oscar Rosas-Ortiz. Manipulando el mundo cuántico: ingenierı́a cuántica. Avance y Perspectiva
(CINVESTAV), octubre-diciembre 2004.
[44] Isaac Hernández Calderón. Los semiconductores: de los transistores a las nanoestructuras y la
computación cuántica. Avance y Perspectiva (CINVESTAV), abril-junio 2005.
[45] Carlos Fuentes. Tecnologı́a mexicana: noticias desde Londres. Periódico Reforma, 27 de oc-
tubre de 2003.
[46] José Galán. Explora mexicano los alcances de la computación cuántica. Entrevista con Salvador
Venegas Andraca. Periódico La Jornada, 20 de mayo de 2005.
[47] Salvador Elı́as Venegas Andraca. Un vistazo a la tecnologı́a del futuro I: ¿qué es la computación
cuántica? Periódico Milenio, 3 de enero de 2006.
[48] Salvador Elı́as Venegas Andraca. Un vistazo a la tecnologı́a del futuro II: caminatas cuánticas
Periódico Milenio, 10 de enero de 2006.
[49] Ariadne Gallardo. La mecánica cuántica al servicio de la computación. Entrevista con Salvador
Venegas Andraca. Periódico en lı́nea Casanchi. Enero de 2005.
[54] Cómo construir una computadora cuántica. Periódico La Jornada (The Economist Intelligence
Unit), 18 de mayo de 2006.
49
[55] Computation Summer School in Yucatán. Mexico Update, revista de comunicación oficial de la
embajada de México en el Reino Unido. octubre de 2004.
[57] C. Cohen-Tannoudji and B. Diu and F. Laloe. Quantum Mechanics, Vols. 1 & 2. Wiley-
Interscience, 1977.
[58] R. Coleman. Stochastic Processes. George Allen & Unwin, Ltd., 1974.
[59] R.P. Feynman and R.B. Leighton and M. Sands. The Feynman Lectures on Physics, vol. III.
Addision-Wesley Publishing Co., 1965.
[62] D. Preston. Before the Fall-out: From Marie Curie to Hiroshima. Doubleday, 2005.
[63] P.A.M. Dirac. The Principles of Quantum Mechanics. Oxford University Press, 1930.
[64] E. Rieffel y W. Polak. An introduction to quantum computing for non-physicists. ACM Comput-
ing Surveys, vol. 32(3)”, pp. 300–335, 2000.
[65] B.J. Copeland. The essential Turing. Oxford University Press, 2004.
[66] M.R. Garey y D.S. Johnson. Computers and Intractability. A Guide to the Theory of NP-
Completeness. W.H. Freeman and Co., NY, 1979.
[67] C.H. Papadimitriou. Computational Complexity. Addison Wesley Publishing Co., 1995.
[68] Michael Sipser. Introduction to the Theory of Computation. PWS Publishing Co., 2005.
[69] Alan M. Turing. On Computable Numbers, with an application to the Entscheidung problem.
Proceedings of the London Mathematical Society, vol. 42, pp. 230-265, 1936-37.
[70] . Richard Zach. Hilbert’s Program. The Stanford Encyclopedia of Philosophy, Edward N. Zalta,
http://plato.stanford.edu/archives/fall2003/entries/hilbert-program/, Fall 2003.
[71] David Hilbert. Mathematische Probleme. Archiv der Mathematik und Physik 1 (1901) 4463,
213237. English translation by M.W. Newson in Bulletin of the American Mathematical Society 8
(1902), 437-479, url = ”http://aleph0.clarku.edu/ djoyce/hilbert/problems.html
[72] David Hilbert. Neubegrundung der Mathematik: ErsteMitteilung. Series of talks given at the
University of Hamburg. English translations given by Mancosu, Paolo (ed.), 1998a, From Brouwer
to Hilbert. The Debate on the Foundations of Mathematics in the 1920s, Oxford. Oxford University
Press, 1922.
50
[73] D. Hilbert y W. Ackerman. Grundzuge der theoretischen Logik. Springer-Verlag, 1928. English
translation of the second edition Principles of Mathematical Logic, by L. M. Hammond et al.,
Chelsea, New York, 1950.
[74] Stephan Mertens. Computational Complexity for Physicists. Computing in Science and Engi-
neering, IEEE, pp. 31-47, May-June 2002.
[75] Stephen A. Cook. The Complexity of Theorem-Proving Procedures. Proc. 3rd Ann. ACM Sym-
posium on the Theory of Computing, pp. 151-158, 1971.
[76] I. Gent y T. Walsh. The search for Satisfaction. Internal report, department of computer science,
University of Strathclyde, 1999.
[77] P. Bjesse, T. Leonard y A. Mokkedem. Finding bugs in an alpha microprocessor using satisfia-
bility solvers. Proc. 13th International Conference on Computer Aided Verification, 2001.
[78] M.N. Velev y R.E. Bryant. Effective use of Boolean satisfiability procedures in the formal verifi-
cation of superscalar and vliw microprocessors. Proc. 38th Design Automation Conference (DAC
’01), pp. 226-231, 2001.
[79] H. Rantanen. Analyzing the random-walk algorithm for SAT. Master’s thesis, Helsinki Univer-
sity of Technology, 2004.
[80] H. Kautz y B. Selman. The state of SAT. Preliminary version in Proc. of CP-2003. To appear in
Discrete and Applied Mathematics, 2005.
[81] Stephen A. Cook. An overview of computational complexity. Turing award lecture 1983, Asso-
ciation for Computing Machinery, 1983.
[82] L. Fortnow y S. Homer. A Short History of Computational Complexity. D. van Dalen, J. Dawson,
y A. Kanamori (Eds.), The History of Mathematical Logic. North-Holland, Amsterdam, 2003.
[83] C.H. Papadimitriou. On selecting a satisfying truth assignment. Proceedings 32nd IEEE Sym-
posium on the Foundations of Computer Science, pp. 163 - 169, 1991.
[84] C.H. Bennett. Logical Reversibility of Computation. IBM Journal of Research and Development,
vol. 17, pp. 525-532, 1973.
[85] Y. Lecerf. Logique Mathématique : Machines de Turing réversibles. Comptes rendus des
séances de l’académie des sciences, vol. 257, pp. 2597-2600, 1963.
[86] E. Fredkin y T. Toffoli. Conservative Logic. International Journal of Theoretical Physics, vol.
21, pp. 219-253, 1982.
[87] P.A. Benioff. The computer as a physical system: a microscopic quantum mechanical Hamil-
tonian model of computers as represented by Turing Machines. Journal of Statistical Physics, vol.
22(5), p. 563, 1980.
51
[88] P.A. Benioff. Quantum Mechanical models of Turing Machines that Dissipate no energy. Phys.
Rev. Lett., vol. 48, pp. 1581–1585, 1982.
[89] P.A. Benioff. Quantum mechanical Hamiltonian models of Turing machines. Journal of Statisti-
cal Physics, vol. 3(29), pp. 515–546, 1982.
[90] P.A. Benioff. Quantum Mechanical Hamiltonian Models of Discrete Processes That Erase Their
Own Histories: Application to Turing Machines. International Journal of Theoretical Physics, vol.
21, pp. 177-201, 1982.
[91] P.A. Benioff. Space searches with a quantum robot. In Quantum Computation and Quantum
Information: A millenium volume. S. Lomonaco and H.E. Brandt (Eds.), AMS Contemporary
Mathematics (305), 2002.
[92] R.P. Feynman. Simulating Physics with Computers. International Journal of Theoretical Physics,
vol. 21(6/7), pp. 467-488, 1982.
[94] C.S. Calude, J. Casti y M.J. Dineen (Eds.). Unconventional Models of Computation. Springer-
Verlag, 1998.
[96] E. Bernstein y U. Vazirani. Quantum complexity theory. SIAM Journal of Computing, vol. 5(26),
pp. 1411–1473, 1997.
52