“La mecánica cuántica describe la naturaleza como algo absurdo al sentido común. Pero concuerda plenamente con las pruebas experimentales. Por lo tanto espero que ustedes puedan aceptar a la naturaleza tal y como es: absurda.” Richard Feynman
Después de la maravillosa serie de Pedro sobre Cuántica sin Fórmulas, y la no menos maravillosa de J sobre Computador Mágico, que mientras escribo esto todavía sigue publicándose, se me ocurrió que podría escribir aquí sobre un tema que me encanta y del que, aunque no soy un experto, soy capaz de hablar hasta que las paredes se aburran – que las pobres no pueden huir, como el resto de mis oyentes -, un tema, digo, que sería el hijo de las dos series que nombré al principio de esta enorme frase: la computación cuántica (CC para abreviar).
Seguro que muchos habéis oido hablar de ordenadores cuánticos, de qubits, de criptografía cuántica e incluso, si sois muy friquis, del algoritmo de Shor; pero es posible que penséis que son cosas muy abstractas y difíciles de entender. Y en realidad estáis equivocados; la CC es bastante simple (al menos, si conoces los conceptos de la cuántica, ¡lee Cuántica sin Fórmulas, hombre ya!), siempre y cuando no te metas en berenjenales de los que no sepas salir. Yo voy a comenzar por lo básico, intentando no repetirme en lo que Pedro y J nos han desasnado ya, aunque a veces será necesario; por ejemplo, el teletransporte cuántico es de los algoritmos más básicos de la CC, y aunque Pedro ya lo explicó volveré a ello, porque usando puertas cuánticas se le da un enfoque muy diferente. ¿Y qué voy a contar en la serie? Pues pretendo contar por qué y para qué necesitamos ordenadores cuánticos si los que tenemos funcionan tan bien; qué es un qubit y, más importante, qué son muchos qubits; qué puertas lógicas cuánticas hay y cómo funcionan (al menos, algunas); qué algoritmos se han creado y qué podríamos hacer con ellos; y de qué formas estamos intentando crear ordenadores cuánticos. Porque no, todavía no existen ordenadores cuánticos grandes, por mucho que de vez en cuando alguna empresa con algo de picaresca diga que le ha vendido a la NASA o a Google un ordenador cuántico. Si tengo ganas también intentaré explicar qué son en realidad esas máquinas que esa empresa vende como ordenadores cuánticos. Algo de cuántica tienen, pero no adelantemos acontecimientos.
Y sin más, empiezo con el primer punto: ¿para qué vamos a complicarnos la vida con ordenadores cuánticos si puedo meterme a las redes sociales y jugar a los Sims en mi ordenador clásico? Pues lo primero, porque los científicos y los ingenieros somos así: nos encanta complicarnos la vida. Lo segundo, porque después de empezar a complicarnos la vida con esto, nos dimos cuenta de que los ordenadores cuánticos pueden ser útiles para hacer algunas cosas mucho más rápido de lo que podríamos hacerlo en un ordenador clásico. Y marco esto último porque es lo principal de esta entrega. Algunas tareas, como buscar un número de teléfono en particular en una guía telefónica que no esté ordenada por dicho número, o factorizar un número compuesto muy grande son muy difíciles en un ordenador clásico – y con muy difícil me refiero a muy lento, O(N) y O(2^N) para los entendidos -, pero muy simples en un ordenador cuántico – O(√N) y O((log N)³). Y estos problemas que parecen inútiles sirven para crear bases de datos más rápidas y útiles, para romper los algoritmos de criptografía más avanzados que hay hoy en día, y para muchas más cosas.[1]
Por cierto que, en contra de lo que muchas veces se dice en las noticias y demás, un ordenador cuántico no es más rápido que un ordenador clásico. “Espera, espera, un momento… ¿no has dicho en el párrafo anterior que sí que es más rápido?”. No, yo no he dicho que sea más rápido, he dicho que podemos hacer algunas cosas mucho más rápido. ¿Y no es lo mismo? Pues no: la “velocidad” del ordenador depende de la frecuencia del reloj interno, es decir, del número de “cálculos” por segundo que puede hacer ese ordenador. Y un ordenador cuántico podría hacer los mismos cálculos por segundo que uno clásico. La cuestión es que hay cosas (y esto es lo que significa que pueda hacer algo en O(√N) en lugar de O(N)) que un ordenador cuántico puede hacer utilizando muchos menos cálculos que un ordenador clásico. Por ejemplo, si intentamos buscar a qué nombre corresponde un teléfono en particular de una guía de teléfonos con un millón de abonados,[2] con los mejores algoritmos clásicos tendríamos que hacer – de media – medio millón de pasos: ir mirando uno por uno hasta encontrarlo. Esto es O(N). En cambio, con computación cuántica podemos usar el algoritmo de Grover, que es O(√N); esto significa que necesitará aproximadamente mil (la raíz cuadrada de un millón) pasos para encontrarlo. Y si en vez de un millón de teléfonos tenemos diez mil millones, el algoritmo clásico necesitaría cinco mil millones de pasos, pero el cuántico ¡solamente cien mil! Esto es como comparar la población de la Tierra entera con la de una pequeña ciudad. Aunque el ordenador clásico fuera más rápido que el cuántico, al necesitar el cuántico muchos menos pasos para hallar la respuesta tardará mucho menos tiempo en terminar de calcular.
La idea de la computación cuántica es dejar de trabajar en binario y usar, en lugar de unos y ceros, estados cuánticos. Es decir, ya no tenemos un bit que es o o 1, sino que ahora será algo como 0.8|0>+0.6|1> (y si no recuerdas qué significa esto, corre a mirar en la serie de Pedro). Esto nos lleva a tener que tratar con todo lo que sabemos sobre cuántica: principio de indeterminación, probabilidades, superposiciones… y siendo inteligentes podemos encontrar formas de aprovecharnos de la situación. ¿Qué formas en particular? Bien, para eso tendremos que esperar a que hayamos visto lo que es un qubit y lo que son muchos qubits.
De momento, resumiendo: un ordenador cuántico nos permite (permitirá) hacer algunos cálculos más rápido que un ordenador clásico, y para hacer esto aprovecha las propiedades cuánticas de los qubits, que es lo que veremos en la próxima entrega.
¡Ah!, y por cierto; yo soy físico y sólo he estudiado un par de asignaturas sobre el tema, así que no soy un experto mundialmente reconocido. Si te parece que lo que explico es muy poco profundo, que me salto pasos y razonamientos y que hago simplificaciones que harían llorar a un cthulhucito, es porque eso es lo que pretendo. No hacer llorar a los cthulhucitos, sino explicar todo, como dice el lema de El Tamiz, de forma antes simplista que incomprensible. Si quieres hacer un curso serio sobre CC al final veremos referencias a material en el que profundizar, pero aquí no verás esto.
Y dicho esto, me despido hasta el primer capítulo.
- En Teoría de la Complejidad Computacional, con O(N) se define, dicho mal y pronto, cómo crece el el número de pasos computacionales necesarios para resolver un cierto problema de tamaño N. Un problema que requiera, por ejemplo, O(N^2) pasos, es decir, donde los pasos necesarios crecen con el cuadrado del tamaño original del problema, será siempre más lento que uno que requiere O(2N), es decir, que crezca con el doble del tamaño, etc. [↩]
- Guía que no está ordenada por número de teléfono, sino, por ejemplo, por nombre. [↩]
The Computación Cuántica I – Introducción by , unless otherwise expressly stated, is licensed under a Creative Commons Attribution-Noncommercial-No Derivative Works 2.5 Spain License.
{ 4 } Comentarios
Animo y gracias por escribir sobre un tema tan interesante, sobre todo visto que Pedro no está por la labor.
Pues esta serie suena la mar de interesante. ¡¡A esperar esos capítulos!!
Gracias a vosotros por leer A ver si puede quedarnos una serie interesante
Muy interesante la serie. No me la perderé
Escribe un comentario