Los computadores cuánticos son lentos
Puede parecer una provocación afirmar lo que decimos en el título de esta entrada del GMVBlog, pero veremos a continuación en qué sentido lo digo. Los computadores cuánticos serán lentos por dos razones:
- Debido a la definición de su funcionamiento
- La manera en que, en un futuro cercano, se va a acceder a ellos (en cloud)
Como vimos en una entrada anterior del GMVBlog (Google y la supremacía cuántica ), los principios en los que se basa un computador cuántico (CC) que merezca tal nombre son, por un lado, el Principio de Superposición bajo el cual una partícula puede estar en varios estados a la vez y por el otro la Propiedad de Entrelazamiento, mediante la que podemos matar dos pájaros de un tiro; lo que le hagamos a un qbit, determina automática e instantáneamente lo que le pasa a otro qbit que se encuentre entrelazado con el primero. Las fantasmales acciones a distancia, que decía Einstein[1]. Pero para describir matemáticamente estos dos principios y entender lo que vamos a hablar después, debemos entender primero cómo se describe un qbit, que es la unidad fundamental de procesamiento de la información de un CC:
⟨qbit ┤|= √(probabilidad 0) ⟨estado 0|┤+ √(probabilidad 1) ⟨estado 1|┤
(¡Ups! ¡Espero que no hayáis dejado de leer!)
En un computador cuántico solo tenemos 2 opciones o , pero en un experimento en general podemos llegar a tener infinitas posibilidades. Si en lugar de 1 qbit tenemos dos o más entrelazados, las cosas se complican un poco, pero la esencia es la misma. ¿Cómo se hacen experimentos en Mecánica Cuántica? Se parte de una fuente de cuantos (muchos), se les prepara para tener sólo los estados que queremos medir, se les deja evolucionar según las leyes de la física, y se mide. Y los resultados de las medidas solo pueden estar entre las opciones especificadas. Pero fijaros que delante de cada opción hay un factor que dice ‘probabilidad de 0|1 ‘. Por la misma definición de probabilidad, para que ese número tenga sentido, debe medirse muchas veces. Esta es la clave de la lentitud de los computadores cuánticos. ¿Qué es lo que hace un algoritmo cuántico? Obliga a que una de las dos probabilidades sea muy alta y la otra muy baja. Pero no sabemos cuál de las dos opciones posibles es la más probable. Por algo es un algoritmo, queremos calcular cosas que no sabíamos de antemano.
¿Cómo sería la ejecución de un algoritmo cuántico? Exactamente igual que en cualquier otro experimento: 1) Preparamos los qbits, lo que sirve también para introducir los datos de entrada. Fijamos sus valores iniciales a o , y decidimos también si entrelazamos un qbit con otro u otros qbits. 2) Los dejamos evolucionar, evolución que se define mediante el algoritmo cuántico. Mientras está evolucionando, se describe en la forma que hemos descrito arriba, sin saber de antemano en cuál de las dos opciones está. Parte de esa evolución también es la evolución del entrelazamiento. 3) Medimos. Y al medir, y sólo al medir, el qbit elegirá entre 0 o 1 y pasará a ser un bit. Mientras tanto habrá permanecido en un estado superpuesto, el limbo del gato muerto – gato vivo de Schrödinger, o la peonza girando de “Origen”.
Pero claro, ¿medimos una sola vez? ¡No!. Con un solo resultado no basta, porque entonces no sabríamos si ha ocurrido la selección del estado de alta probabilidad o en una carambola cuántica del destino, el de baja probabilidad. Tenemos que medir muchas veces. Y entonces tenemos que repetir TODOS los pasos hasta que estemos seguros que el resultado que nos ofrece la máquina es el más probable. Y en todo esto no tenemos en cuenta la ejecución de los Quantum Error Codes, el caballo de batalla actual en computación cuántica, para que los CC dejen de dar pantallazos azules cada dos por tres, en este caso por decoherencia. El computador es tan lento que los qbits pueden interactuar con su entorno y se pierde toda la preparación del experimento. Los qbits son muy frágiles.
Pues bien, cada uno de los pasos ocupa entre microsegundos (I/O) y milisegundos (mediciones). A un Computador Cuántico le lleva entonces varios milisegundos ejecutar un algoritmo cuántico. A esto le tenemos que añadir que a los carísimos primeros CC sólo podremos acceder en Cloud, con compañías que alquilaran su tiempo de uso. Le tenemos que añadir el retraso de la red y el tiempo de ejecución de los servicios web correspondientes. En un computador clásico, ejecutar un conjunto de acciones básicas le ocupa unos pocos nanosegundos. ¿Cuál es más rápido?
Entonces, ¿Por qué nos asombramos tanto con la promesa de rapidez de los computadores cuánticos? Porque el número de acciones básicas a ejecutar es mucho menor. Gracias al principio de superposición y la propiedad de entrelazamiento, podemos resumir varios pasos de un algoritmo en uno o ejecutar en paralelo muchos de esos pasos. Y el número de repeticiones equivalentes de un algoritmo clásico se reduce drásticamente. Gracias a la magia cuántica, el resultado aparece ante nosotros como la opción más probable que permiten las leyes de la física. Es decir, la ejecución de un algoritmo cuántico (problema NP) implica muchas menos acciones que la de un algoritmo clásico (problema P o EXP). Entre esperar 10.000 millones de años para que un computador clásico quiebre una clave suficientemente larga, y unos pocos milisegundos para un computador cuántico, ¿a quién le importa que sea lento?
[1] Einstein’s ‘spooky action at a distance’ spotted in objects almost big enough to see. www.sciencemag.org Apr 25,2018.
Autor: Fernando Labarga Ávalos