Capítulo 05 · Puertas y circuitos
Programar con matrices unitarias
Una puerta cuántica es una matriz unitaria y un circuito es un producto de ellas. Unas pocas puertas bastan para aproximar cualquier cálculo, y algunos circuitos de aspecto muy potente se pueden simular de forma clásica. La frontera entre unos y otros es la teoría de la complejidad cuántica.
En este capítulo
En 1985 David Deutsch, en Oxford, definió el ordenador cuántico universal: una máquina de Turing cuyos estados pueden estar en superposición. El modelo que se impuso, sin embargo, fue el que él mismo desarrolló en 1989: los circuitos cuánticos, cables que transportan qubits y puertas que los transforman. Es el lenguaje en el que hoy se escriben todos los algoritmos cuánticos.
Las puertas son matrices unitarias
Para una matriz son equivalentes: (1) ; (2) conserva los productos interiores, ; (3) conserva las normas, ; (4) las columnas de forman una base ortonormal.
Demostración
(1)⇒(2): . (2)⇒(3) es el caso . (3)⇒(2) usa la identidad de polarización, que recupera el producto interior a partir de normas: . (2)⇔(4): las entradas de son los productos interiores de las columnas. (4)⇒(1) por el mismo motivo.
Las puertas de un qubit más habituales son las matrices de Pauli, la puerta de Hadamard y las puertas de fase:
En la esfera de Bloch, toda puerta de un qubit es una rotación. , y son medias vueltas alrededor de cada eje; es media vuelta alrededor del eje situado entre y ; y son un cuarto y un octavo de vuelta alrededor de .
Todo unitario se puede escribir como
para ciertos reales : cualquier rotación de la esfera es una composición de rotaciones alrededor de , y .
Dos qubits: CNOT
La puerta NOT controlada invierte el segundo qubit (el objetivo) solo si el primero (el control) vale 1. En la base :
Una Hadamard seguida de una CNOT crea entrelazamiento desde cero. Pruébalo en el simulador.
Universalidad
En el mundo clásico, NAND basta para construirlo todo. ¿Hay un conjunto cuántico finito que también baste? La respuesta llega en dos pasos.
Todo unitario sobre qubits se puede escribir exactamente como producto de puertas CNOT y puertas de un qubit.
Pero hay infinitas puertas de un qubit, y un dispositivo real solo puede implementar unas pocas con alta precisión. Por suerte, aproximar basta, y sale barato:
Sea un conjunto finito de puertas de un qubit, cerrado por inversos, que genera un subgrupo denso de (por ejemplo ). Entonces toda puerta de un qubit se puede aproximar con precisión mediante un producto de puertas de , con (versiones mejoradas llegan a ).
Juntas, forman un conjunto universal: cualquier cálculo cuántico se puede aproximar con un sobrecoste polilogarítmico.
No todo circuito cuántico es potente
La superposición y el entrelazamiento son necesarios para una ventaja cuántica, pero no suficientes. Los circuitos construidos con , y CNOT (el grupo de Clifford) pueden generar estados muy entrelazados y, aun así:
Un circuito que parte de , usa solo puertas de Clifford y mide en la base computacional se puede simular con un ordenador clásico en tiempo polinómico en el número de qubits y de puertas.
El truco es describir el estado no por sus amplitudes, sino por los operadores de Pauli que lo dejan invariante (sus estabilizadores), que las puertas de Clifford transforman unos en otros. La potencia de un ordenador cuántico viene de añadir puertas no Clifford como , que además son las más caras de proteger frente a errores.
Deutsch-Jozsa: la primera separación exponencial
Supongamos que nos prometen que una función es constante o equilibrada (vale 0 en exactamente la mitad de las entradas). Un algoritmo clásico determinista puede necesitar consultas para estar seguro. El algoritmo de Deutsch y Jozsa (1992) necesita una sola:
La amplitud de al final es : vale si es constante y exactamente 0 si es equilibrada. Medir todo ceros o no responde la pregunta con certeza. Un algoritmo clásico aleatorio puede responder con alta probabilidad usando unas pocas consultas, así que la separación es frente a algoritmos deterministas; pero la idea (poner la información en las fases y hacerla interferir) es la plantilla de todo lo que sigue.
Complejidad cuántica
En 1993 Ethan Bernstein y Umesh Vazirani definieron BQP, la clase de problemas que un ordenador cuántico resuelve en tiempo polinómico con probabilidad de error como mucho . También demostraron que
La primera inclusión dice que los ordenadores cuánticos pueden hacer todo lo que hacen los clásicos aleatorios (gracias a Toffoli); la segunda, que se pueden simular con memoria polinómica, sumando sobre caminos. No se sabe si alguna de las inclusiones es estricta: demostrar implicaría , un gran problema abierto. La evidencia del poder cuántico son, por ahora, algoritmos como el de Shor para problemas que creemos difíciles para los ordenadores clásicos.
Referencias
- D. Deutsch (1985). «Quantum theory, the Church–Turing principle and the universal quantum computer». Proceedings of the Royal Society A, 400.
- D. Deutsch y R. Jozsa (1992). «Rapid solution of problems by quantum computation». Proceedings of the Royal Society A, 439.
- E. Bernstein y U. Vazirani (1993). «Quantum complexity theory». STOC (versión de revista: SIAM J. Computing, 1997).
- A. Barenco et al. (1995). «Elementary gates for quantum computation». Physical Review A, 52(5).
- D. Gottesman (1998). «The Heisenberg Representation of Quantum Computers». arXiv:quant-ph/9807006.
- C. M. Dawson y M. A. Nielsen (2006). «The Solovay-Kitaev algorithm». Quantum Information and Computation, 6(1).