11 Ordenadores cuánticos
Sección en construcción.
Hemos visto como ciertas propiedades de la mecánica cuántica, tales como el colapso de la función de onda o el entrelazamiento, permiten el desarrollo de sistemas de comunicaciones sin un análogo clásico. Del mismo modo, uno se puede plantear si es posible aprovechar las propiedades de la mecánica cuántica para crear un nuevo tipo de ordenadores con capacidades muy diferentes a los sistemas de computación existentes.
La estructura de los sistemas clásicos de computación sigue todavía en gran medida en el diseño propuesto por Alan Turing en 1936, denominado como máquina de Turing. En 1981, Paul Benioff teorizó sobre un sistema de computación que utilizaría las leyes de la mecánica cuántica en algunos puntos de la ejecución del programa. Sin embargo, su propuesta implicaba realizar una medida del estado cuántico interno tras la ejecución de cada instrucción, por lo que se perdían muchas de las propiedades cuánticas del sistema y no ofrecía una gran ventaja sobre los sistemas existentes.
En 1982, el físico Richard Feynman planteó que una computadora cuántica –que se basara exclusivamente en reglas cuánticas– podría hacer ciertos cálculos imposibles para un ordenador clásico (Feynman 1982). Este concepto de ordenador sí abrió la puerta al desarrollo de nuevos algoritmos que revolucionarían varios campos de estudio. Entre los avances en esta dirección cabe resaltar el algoritmo de Deutsch-Jozsa publicado en 1992, el primer ejemplo que mostraba una ventaja exponencial de la computación cuántica sobre sistemas clásicos; el algoritmo de Shor en 1994, que permite factorizar números grandes en tiempo polinómico, y el algoritmo de búsqueda de Grover en 1996, que se podría decir que permite encontrar una aguja en un pajar (sin rebuscar demasiado). Veremos estos algoritmos en detalle en las siguientes secciones.
Todos estos avances fueron en gran medida de carácter teórico, abstrayéndose de la tecnología de los ordenadores o cómo se ejecutarían los algoritmos cuánticos en la práctica. Al mismo tiempo, muchas compañías y centros de investigación ya estaban trabajando en desarrollar la tecnología necesaria para construir un ordenador cuántico funcional. Hoy en día ya existen estos ordenadores y es un área con una rápida evolución.
Del mismo modo que existen muchos sistemas físicos con propiedades cuánticas, existen múltiples tecnologías que coducen al diseño de un ordenador cuántico de propósito general. Quizás las tecnologías más prometedoras hoy en día son las basadas en lazos superconductores, en la que se basan por ejemplo los ordenadores cuánticos de IBM o Google, y la basada en iones atrapados, empleada en los ordenadores de Honeywell o IonQ. Aún así, hay otras tecnologías en desarrollo como los procesadores cuánticos fotónicos, o las basadas en puntos cuánticos. En este curso nos abstraeremos de la implementación particular del ordenador cuántico y nos centraremos en sus capacidades desde un punto de vista teórico.
11.1 Circuitos cuánticos
Para entender el funcionamiento y capacidades de un sistema de computación cuántica es necesario definir una serie de conceptos:
- Líneas de cúbits: Se corresponde con el estado cuántico interno del procesador.
- Puerta cuántica: Son las operaciones que se aplican a las líneas de cúbits. Las puertas cuánticas pueden ser de , o incluso de más cúbits.
- Bloque de medida: Aplica una operación de medida a un cúbit determinado, transladando el resultado a una línea clásica, que sólo puede tomar los valores ‘’ y ‘’.
- Circuito cuántico: Es una combinación de puertas cuánticas y operaciones de medida aplicadas sobre las líneas de cúbits.
A menudo representaremos los circuitos cuánticos como un diagrama de bloques que incluye las líneas cuánticas de cúbits, las puertas cuánticas que componen en circuito, las operaciones de medida, y las líneas clásicas donde se almacena el resultado de estas medidas.
La siguiente figura muestra un ejemplo de un diagrama de bloques de un circuito cuántico:
Se puede ver que este circuito presenta dos líneas de cúbits, y . A la línea superior se le aplica una puerta cuántica seguida de una puerta CNOT que afecta también a la segunda línea de cúbits (veremos en detalle estas puertas cuánticas en los siguientes apartados). Finalmente, en cada una de las líneas se aplica una operación de medida que traslada su resultado a las líneas clásicas etiquetadas como .
Aunque la representación de un circuito cuántico es muy similar a la de un circuito digital clásico, que también está formado por una serie de líneas que conectan puertas lógicas, tanto su implementación física como su interpretación conceptual son muy diferentes:
Circuito digital clásico: Un circuito digital clásico es una representación de su implementación física. Las líneas de este circuito realmente son pistas conductoras que transportan señales eléctricas que se corresponden con los bits ‘0’ y ‘1’. Estas pistas conductoras conectan una serie de puertas lógicas implementadas físicamente con transistores, que transforman las señales eléctricas a su salida.
Circuito cuántico: Un procesador cuántico solamente “almacena” el estado cuántico del sistema. Por su parte, las puertas cuánticas son operaciones que se realizan sobre ese estado. Así, los cúbits del sistema no viajan por las líneas del circuito a través de las puertas cuánticas, sino que son las puertas las que se “lanzan” al estado, modificándolo en el proceso. Un ejemplo sería la tecnología de iones atrapados, donde el procesador cuántico es una cámara de vacío donde se encuentran varios iones en suspensión (los cúbits) a los que se les aplican pulsos láser para controlarlos (las puertas cuánticas). De esta forma, en la figura anterior debemos pensar en las líneas de cúbits de un circuito cuántico como un eje temporal que muestra las operaciones que se aplican sobre los estados iniciales.
El resultado de la ejecución de un programa en un ordenador clásico, para unas ciertas condiciones iniciales, está perfectamente definido. Sin embargo, la salida de un circuito cuántico es aleatoria por naturaleza, ya que es el resultado de un proceso de medida de un estado cuántico. La siguiente figura muestra el resultado de ejecutar el circuito anterior en un ordenador cuántico 1024 veces:
Este gráfico muestra que el de las ejecuciones del circuito el resultado de la medida fue ‘’, el la salida del cirucito fue ‘’, el fue ‘’, y el fue ‘’. Por tanto, un circuito o un algoritmo cuántico para resolver un problema no tiene por qué ofrecer una solución determinista, sino que ésta en general resultará en un resultado aleatorio representado como un histograma.
11.2 Base computacional
La máxima ventaja de un ordenador cuántico sobre uno clásico se obtiene utilizando estados cuánticos puros. Por ello, en este tema consideraremos que el estado interno del ordenador se representa con un estado puro. Para simplificar todavía más la exposición, siempre utilizaremos la base para representar el estado interno del sistema. Denominaremos a ésta como la base computacional.
La unidad de información, o estado cuántico mínimo que puede manejar un procesador cuántico, es el cúbit. La representación de un cúbit en la base computacional se corresponde a la superposición: donde y son números complejos tales que . La matriz de densidad de probabilidad para este estado puro es , pero en esta parte de la asignatura nos referiremos al estado cuántico simplemente como .
Representación de estados conjuntos
Un estado conjunto se describe por el producto tensorial (o producto de Kronecker) de los cúbits que lo conforman. A menudo utilizaremos la notación abreviada: Resaltar que el estado se corresponde a un estado puro que comprende cúbits.
Ejemplo 11.1 Consideremos un ordenador cuántico de cúbits con un estado interno inicial . Utilizando el producto tensorial, tenemos que este estado se corresponde con el vector: Se puede ver que para representar el estado interno de un ordenador de cúbits es necesario utilizar un vector de longitud . Esta propiedad se hará más relevante a medida que aumente la dimensión del sistema.
Por ejemplo, para representar el estado interno de un ordenador de cúbits ya será necesario un vector de longitud . Para el ordenador de cúbits empleado por Google en el hito de la supremacía cuántica se tiene que .
Si consideramos un sistema de cúbits, la base computacional se corresponde a los vectores:
Utilizando las propiedades del producto tensorial es posible representar cualquier estado interno del sistema en la base computacional. Por ejemplo, consideremos el estado . Utilizando que obtenemos Vemos que es una supersposición de los vectores y de la base computacional.
Ejercicio 11.1 Represente el estado en la base computacional .
Proceso de medida
El proceso de medida en un circuito cuántico se realiza siempre con respecto a la base computacional, es decir, por medio del POVM donde y . Así, para el estado la probabilidad de medir cada uno de los dos posibles observables está dada por:
Para un sistema compuesto, la medida también se realiza con respecto al POVM correspondiente a la base computacional, que está dado por donde .
Ejercicio 11.2 Determine las probabilidades de los distintos resultados de una medida con respecto a la base computacional para un sistema de dimensión con estado interno
11.3 Puertas cuánticas
La evolución del estado interno de un ordenador cuántico es unitaria. Para un estado puro (posiblemente compuesto por cúbits) y una matriz unitaria (de dimensión ) se tiene que el nuevo estado del sistema tras aplicar la operación está dado por
Estas transformaciones, que se aplican sobre un subconjunto de los cúbits del sistema, se denominan puertas cuánticas, de una forma análoga a las puertas lógicas de los circuitos electrónicos clásicos. En el caso clásico, cualquier función booleana se puede implementar mediante una combinación de puertas NAND, que para las entradas binarias y presenta una salida . De forma análoga, es posible demostrar que en el caso cuántico cualquier transformación unitaria se puede aproximar mediante la combinación de puertas cuánticas de 1 y 2 cúbits. Aunque la teoría de aproximación que permite construir una general está fuera del ámbito de este curso, veremos a continuación algunas de las puertas cuánticas más habituales utilizadas en los algoritmos de computación cuántica.
A menudo, las puertas cuánticas se aplican sobre un subconjunto de todos los cúbits que componen el sistema. Esto se puede modelar mediante la operación del producto tensorial (de Kronecker), utilizando el operador identidad sobre los cúbits donde no se aplica ninguna operación.
Ejemplo 11.2 Consideremos un sistema de dimensión con estado inicial . Si aplicamos una operación binaria al primer cúbit del sistema, obtenemos un nuevo estado dado por donde hemos utilizado que
Puertas de Pauli
Estas puertas de un único cúbit se corresponden a ciertas rotaciones del estado de entrada:
Ejemplo 11.3 Aplicamos las puertas , y sobre la base computacional y .
La puerta es la tranformación unidad, y no afecta al estado:
La puerta se corresponde con una negación lógica e intercambia los estados y :
La puerta cambia la fase del estado , pero no la del :
Puerta de Hadamard
La puerta de Hadamard es también una puerta de cúbit, y está dada por:
Ejemplo 11.4 Aplicamos la puerta sobre la base computacional y . Teniendo en cuenta que los estados y , concluimos que la puerta de Hadamard realiza una transformación del estado desde la base a la base .
Puerta SWAP
La puerta SWAP es una transformación unitaria que se aplica a cúbits, y está dada por:
La puerta SWAP intercambia los 2 cúbits presentes a su entrada. Para ver esto se debe tener en cuenta que, de acuerdo a la notación tensorial, la primera fila/columna de la puerta SWAP se corresponde con el estado de la base , la segunda con , la tercera con , y la última con . Así, la puerta SWAP deja inalterados los estados y , e intercambia los estados y .
Puerta -controlada (controlled-)
Para una puerta cuántica (de cúbit) dada por la puerta -controlada (que se aplica sobre cúbits) se define como Esta puerta utiliza el primer cúbit como “control”. Así, si el primer cúbit es igual a (está activo) se aplica la transformación al segundo cúbit. Si el primer cúbit es igual a (no está activo), entonces la puerta no hace ninguna operación sobre el segundo.
Puerta CNOT (puerta NOT controlada)
La puerta CNOT es una transformación sobre cúbits, y está dada por:
La puerta CNOT es un caso particular de la puerta -controlada, en la que la operación unitaria es ; . La puerta CNOT aplica una operación NOT en el segundo cúbit, si el primero está activo.
Ejemplo 11.5 Aplicamos la puerta CNOT a la base computacional , , y : Se observa que si el primer cúbit es , el segundo permanece inalterado. En cambio, si el primer cúbit es se aplica una negación al segundo. Para representar esto, a menudo se utiliza la notación: donde , y hace referencia a la operación binaria XOR (OR exclusivo).