En los últimos años, algunas grandes empresas de tecnología como IBM, Microsoft, Intel o Google están trabajando en relativo silencio sobre algo que suena muy bien: la computación cuántica.
Se están invirtiendo mucho tiempo y recursos en esta innovadora tecnología, pero existe un problema respecto a ella, al menos para nosotros. Es complicado saber qué es exactamente y para qué puede ser útil. Para sentar algunas bases, por ejemplo, la computación cuántica no va a servir de momento para que tengas más FPS en tu tarjeta gráfica. Tampoco será todo tan fácil como cambiar la CPU de tu ordenador por una cuántica para que se vuelva hiperrápido. La computación cuántica es fundamentalmente distinta a la computación a la que estamos acostumbrados, y en este artículo vamos a tratar de arrojar algo de luz sobre el asunto.
Origen
A principios del siglo XX, Planck y Einstein proponen que la luz no es una onda continua (como las ondas de un estanque) sino que está dividida en pequeños paquetes o cuantos. Esta idea, en apariencia simple, servía para resolver un problema llamado la “catástrofe ultravioleta”. Pero a lo largo de los años otros físicos fueron desarrollándola y llegando a conclusiones sorprendentes sobre la materia, de las cuales a nosotros nos interesarán dos: la superposición de estados y el entrelazamiento.
Para entender por qué nos interesan, hagamos un pequeño receso y pensemos en cómo funciona un ordenador clásico. La unidad básica de información es el bit, que puede tener dos estados posibles (1 ó 0) y con los que podemos realizar varias operaciones lógicas (AND, NOT, OR). Juntando _n_ bits podemos representar números y operar sobre esos números, pero con limitaciones: sólo podemos representar hasta _2^n_ estados distintos, y si queremos cambiar _x_ bits tenemos que realizar al menos _x_ operaciones sobre ellos: no hay forma de cambiarlos mágicamente sin tocarlos.
Pues bien, la superposición y el entrelazamiento nos permiten reducir esas limitaciones: con la superposición podemos almacenar muchos más que sólo _2^n_ estados con _n_ bits cuánticos (qubits), y el entrelazamiento mantiene fijas ciertas relaciones entre qubits de tal forma que las operaciones en un qubit afectan forzostamente al resto.
La superposición, si bien parece una bendición a primera vista, también es un problema. Tal y como demostraba Alexander Holevo en 1973, aunque tengamos muchos más estados que podemos guardar en _n_ qubits, en la práctica sólo podemos leer _2^n_ distintos: un qubit no vale sólo 1 ó 0 como un bit normal, sino que puede ser un 1 en un 80% y un 0 en un 20%. El problema es que cuando lo leemos sólo podemos obtener o 1 ó 0, y las probabilidades que tenía cada valor de salir se pierden porque al medirlo lo hemos modificado.
Esa discrepancia entre la información que guardan los qubits y la que podemos leer nosotros llevaba a Benioff y a Feynman a demostrar que un ordenador clásico no sería capaz de simular un sistema cuántico sin una cantidad desproporcionada de recursos, y a proponer modelos para un ordenador cuántico que sí fuese capaz de hacer esa simulación.
Esos ordenadores cuánticos probablemente no serían más que una curiosidad científica sin el segundo concepto, el entrelazamiento, que permite desarrollar dos algoritmos bastante relevantes: el temple cuántico en 1989 y el algoritmo de Shor en 1994. El primero permite encontrar valores mínimos de funciones, que así dicho no suena muy interesante pero tiene aplicaciones en inteligencia artificial y aprendizaje automático, tal y como comentamos en otro artículo. Por ejemplo, si conseguimos codificar la tasa de error de una red neuronal como una función a la que podamos aplicar temple cuántico, ese valor mínimo nos dirá cómo configurar la red neuronal para que sea lo más eficiente posible.
El segundo algoritmo, el algoritmo de Shor, nos sirve para descomponer un número en sus factores primos de manera mucho más eficiente que lo que podamos lograr en un ordenador normal. Así dicho, de nuevo, no suena para nada interesante. Pero si os digo que RSA, uno de los algoritmos más usados para proteger y cifrar datos en Internet, se basa en que factorizar números es exponencialmente lento (añadir un bit a la clave implica doblar el tiempo que se tarda en hacer un ataque por fuerza bruta), entonces la cosa cambia. Un ordenador cuántico con suficientes qubits dejaría completamente obsoletos muchos sistemas de cifrado.
¿Hasta dónde ha llegado la computación cuántica?
Es un campo que no se ha aplicado mucho en el mundo real (todavía). Para que nos hagamos una idea, con los veinte qubits del ordenador cuántico comercial que anunciaba IBM, podríamos aplicar el algoritmo de factorización de Shor sólo a números menores que 1048576 que, como os podéis imaginar, no es muy impresionante. Puedes echar un vistazo a nuestro artículo hablando de los mismos.
Aun así, el campo tiene una evolución prometedora. En 1998 se presentó el primer ordenador cuántico (sólo dos qubits, y necesitaba una máquina de resonancia magnética nuclear para resolver un problema “de juguete” (el llamado problema de Deutsch-Jozsa). En 2001 se ejecutó por primera vez el algorimo de Shor. Sólo 6 años más tarde, en 2007, D-Wave presentaba su primer ordenador capaz de ejecutar el temple cuántico con 16 qubits. Este año, la misma compañía anunciaba un ordenador de temple cuántico de 2000 qubits. Por otra parte, los nuevos computadores de IBM, aunque con menos qubits, son capaces de implementar algoritmos genéricos y no sólo el del temple cuántico. En resumidas cuentas, parece que el empuje es fuerte y que la computación cuántica cada vez será más aplicable a problemas reales.
¿Cuáles pueden ser esas aplicaciones? Como comentábamos antes, el algoritmo del temple cuántico es muy apropiado para problemas de aprendizaje automático, lo cual hace de los ordenadores que lo implementen sean extremadamente útiles, aunque lo único que puedan hacer sea ejecutar ese único algoritmo. Si se pueden desarrollar sistemas que, por ejemplo, sean capaces de transcribir conversaciones o identificar objetos en imágenes y se puedan “traducir” para entrenarlos en ordenadores cuánticos, los resultados podrían ser órdenes de magnitud mejores que los ya existentes. El mismo algoritmo también se podría usar para encontrar soluciones a problemas en medicina o química, como encontrar los métodos óptimos de tratamiento para un paciente o estudiar las posibles estructuras de moléculas complejas.