A partir de la generalización de una máquina de Turing clásica, una MTC consiste en un proce- sador finito de N cubits n=
{ }(
n1 i=0, ,… N−1)
y una cinta infinita consistente de una secuenciade cubits m=
{ }(
m1 i=…, 1,0,1,− …)
, en donde sólo una porción finita de la cinta es usada. Elcómputo es realizado en pasos fijos con duración T y durante cada paso solo el procesador y una parte finita de la memoria interactúan, el resto de la memoria se mantiene estática. La dirección actual de la cinta, es decir la posición de la cabeza esta descrita por el observable x, la cual contiene a todo Z como su espectro. Se define el estado de una MTC como un vector unitario en el espacio de Hilbert desarrollada sobre los estados base
,
x n m
donde n ≡ n n0, , ,1 … nN−1 , m ≡ …,m−1,m m0, ,1 … .
Si U es el operador unitario que describe una aplicación de la regla de transición de la máquina, los elementos no ceros de la matriz están determinados por
' '
1; ; x, y x ; ; x, y x , x± n m m ≠ U x n m m ≠
donde cada elección de U se define una MTC diferente. La evolución de la máquina durante s pasos se encuentra descrita por
( )
* (0)sT U
donde Ψ(0) es el estado inicial y T es el tiempo de duración de cada paso. Si la medición ocu- rre después de n1 pasos, y la medición es descrita por un operador J1 entonces la evolución de la
máquina para los primeros n1 +j pasos se encuentra descrita por 1 1
n j
U J U , la cual ha dejado de ser unitaria dado que el operador J1 es una medición sobre la base computacional.
La salida de la máquina se encuentra en la cinta como una superposición de los estados base y deberá ser leída después de haber realizado la medición del contenido del cubit de detención y haberla encontrado en el estado uno. El operador podrá medir en cualquier momento el bit de detención en orden para decidir cuándo leer el contenido de la cinta (y colapsar el estado de la máquina). La intención del bit de detención es dar al operador de la máquina una indicación de cuándo la salida deberá de ser leída de la cinta sin interferir excesivamente en el cómputo. La salida de una máquina de Turing cuántica para alguna entrada x, que puede ser una superposición de los estados clásicos de entrada, es una distribución de probabilidad Px sobre todos los posibles
contenidos de la cinta en el momento de observar el bit de detención que ha sido activado. Dada la unitariedad, la dinámica de la MTC, así como la de cualquier sistema cuántico cerrado, es necesariamente reversible.
2.10.2 Máquina Universal de Turing Cuántica
Deutsch afirmó que existe una MUTC (basada en la MTC y la MUT con 8 operaciones adiciona- les [12]) para la cual existe un programa que realiza una transformación unitaria, arbitrariamente cercana a cualquier transformación unitaria sobre un número finito de cubits.
Para la MUTC escribimos su estado como
, ,
x h
Q n n D P Σ
donde Q nx, es el estado del procesador, incluyendo la posición de la cabeza, nh es el cubit de
detención, D es el estado de los datos de registro y P es el estado del programa. D y P
son ambos parte de la cinta y Σ es el resto de la cinta, no afectada durante el cómputo.
Deutsch afirmó que para una U, con alguna transformación arbitrariaϒy una precisión arbitraria
ε
, existe siempre un estado de programa P D( , , )ϒε
y un número entero ( , , )s D ϒε
tal que(
)
(
)
( , , ) , , , ', ' ' , , , s D x x U ϒε Q n D P D ϒε
Σ = Q n D P D ϒε
Σ donde ' 2D −U D <
ε
, P´ es el estado de programa después de s pasos, Q y Q´ son los estados del procesador en el tiempo inicial y después de s pasos respectivamente.Deutsch realiza la demostración de la MUTC mediante un esquema de concatenación. La conca- tenación de dos programas es un programa cuyo efecto es el seguimiento del segundo programa inmediatamente después del primero. Se dio por sentado que si estos dos programas eran válidos entonces su concatenación existe pero la validez de esta no fue probada [15] por Deutsch. Enton- ces la MUTC de Deutsch fue definida más no realmente probada. Por otro lado el concepto de
universalidad en las MTC no es la misma que tenemos para las máquinas de Turing clásicas don- de las simulaciones son exactas, la simulación es claramente solo una aproximación [16].
La MUT nos ha dado los instrumentos necesarios para encontrar en un número finito de pasos soluciones a problemas en distintas áreas de las ciencias, pudiendo ejecutar todo tipo de cálculo que sea realizable. No podríamos entender el concepto de la computadora digital sin la MUT. Grandes avances en la ciencia se han dado gracias al desarrollo y las capacidades logradas por las computadoras, una MUT es el modelo abstracto de nuestras computadoras hoy en día.
De la misma manera el lograr la construcción de una MUTC ampliaría las capacidades ya logra- das por los algoritmos cuánticos, pudiendo calcular cualquier función cuánticamente computable que le sea introducida.
2.11 Conclusiones del capítulo
En este capítulo presentamos los conceptos fundamentales de la Computación Cuántica, desde la noción de cubit hasta la Máquina de Turing Cuántica pasando por la noción de medición, com- puertas y algoritmos cuánticos.
C
apítulo 3: Arquitectura de computadora cuántica tolerante a fallos3.1 Introducción
La Computación Cuántica como una disciplina de la Ingeniería está todavía en su infancia [17]. Aunque la Física se comprende bien, el desarrollo de dispositivos que calculan a partir de la Mecánica Cuántica es tecnológicamente desalentador. Mientras que los experimentos hasta la fecha manipulan solo un puñado de bits cuánticos (cubits) [18], consideramos aquí el esfuerzo requerido para construir una computadora cuántica a gran escala. Este esfuerzo exige más que una estimación somera de la cantidad de cubits y compuertas requeridas para un algoritmo dado. Uno debe considerar las fallas del hardware cuántico, con errores causados tanto por el ambien- tes y el error deliberado de las operaciones, el procesamiento clásico requerido cuando la correc- ción de errores es invocada, el tratamiento especial necesario para la construcción de secuencias de compuertas arbitrarias de un conjunto tolerante a fallos limitado, y así sucesivamente. Este capítulo provee un marco para afrontar el reto completo de diseñar una computadora cuántica. Muchos investigadores han presentado y examinado componentes de computación cuántica de gran escala. En este capítulo se estudia como estos componentes pueden ser combinados en un diceño eficiente, e introducimos nuevos métodos que mejoran la computadora cuántica que se propone. Esta búsqueda de Ingeniería es la arquitectura de computadora cuántica, la cual se desa- rrolla aquí en capas. Una arquitectura descompone los comportamientos de un sistema complejo en un conjunto manejable de operaciones. Una arquitectura multicapa lo hace a través de capas de abstracción donde cada capa encarna un conjunto crítico de funciones relacionadas. Para los propósitos de este trabajo, cada capa ascendente trae al sistema más cercano a un entorno ideal de computación cuántica.
Este capítulo está organizado como sigue. El resto de la Sección 3.1 provee una visión global de una arquitectura de computadora cuántica multicapa, indicando cómo los tópicos que se exami- nan están vinculados unos con otros. La Sección 3.2 enumera los componentes esenciales de una computadora cuántica para examinar una nueva plataforma de hardware basado en el control óptico de los puntos cuánticos. En la Sección 3.3 se discuten las técnicas de control para la supre- sión de errores de hardware antes de utilizar la corrección de errores activa. En la Sección 3.4 se demuestra cómo implementar y explicar los recursos de corrección de error cuántico, con parti- cular énfasis sobre el código de superficie [19]. En la Sección 3.5 se analizan las técnicas necesa- rias para construir compuertas cuánticas universales de un conjunto limitado de operaciones previstas por la corrección del error. La Sección 3.6 calcula los recursos computacionales necesa- rios para implementar dos algoritmos cuánticos prominentes: la factorización de enteros y la simulación cuántica. En la Sección 3.7 se discuten los problemas de tiempo que afectan a la forma en que las capas en la arquitectura interactúan con otra. Finalmente, en la Sección 3.8 se discute la arquitectura de computadora cuántica tolerante a fallos, así como el diseño multicapa.