Es dificilísimo programar un computador cuántico para ejecutar un algoritmo cuántico.
A diferencia de los prototipos de computadores cuánticos que tenemos actualmente, los computadores cuánticos plenamente funcionales tendrán la capacidad, si llegan finalmente a buen puerto, de enmendar sus propios errores y de enfrentarse a un abanico muy amplio de problemas.
Peter Shor, profesor de matemáticas en el MIT (Instituto Tecnológico de Massachusetts) y miembro del Laboratorio de Informática e Inteligencia Artificial de esta universidad, demostró matemáticamente en 1994 que un computador cuántico podría resolver algunos problemas en particular con más rapidez que un computador clásico.
Aquella demostración animó a otros investigadores a coquetear con las enormes posibilidades que tenían aquellas máquinas, aunque en 1994 los computadores cuánticos no eran más que una posibilidad teórica.
De hecho, los físicos Ignacio Cirac y Peter Zoller publicaron el artículo que es unánimemente considerado la piedra angular que soporta el nacimiento de la computación cuántica tal y como la contemplamos en 1995.
Lo que posiblemente Peter Shor, Ignacio Cirac o Peter Zoller no se plantearon a mediados de los años 90 del siglo pasado es lo extremadamente difícil que iba a ser programar algoritmos cuánticos cuando los primeros prototipos de computadores cuánticos estuviesen disponibles. Ahora lo están, y este es un problema muy real.
De hecho, aunque a menudo se le pasa por alto, el diseño de nuevos algoritmos que sean capaces de sacar partido a las capacidades de los computadores cuánticos es uno de los grandes desafíos que plantea esta disciplina.
Actualmente hay muchos grupos de investigación intentando diseñar estrategias que simplifiquen la programación de los computadores cuánticos, y uno de los más aventajados es, precisamente: el Laboratorio de Informática e Inteligencia Artificial del MIT, conocido como CSAIL por su denominación en inglés (Computer Science and Artificial Intelligence Laboratory).
En realidad el mayor desafío con el que se encuentran los investigadores deriva de lo complejo que es trasladar un algoritmo cuántico descrito inicialmente como un conjunto de conceptos matemáticos abstractos a un código que pueda ser ejecutado en un computador cuántico.
Afortunadamente, el grupo CSAIL tiene una idea muy interesante que aspira a simplificar drásticamente la programación de los computadores cuánticos, y la ha descrito en un artículo titulado “Los límites del control del flujo en la programación cuántica“.
Lo que han elaborado estos investigadores es un nuevo modelo conceptual que aspira a conseguir que programar para un computador cuántico sea tan sencillo como hacerlo para un computador clásico. Ni más ni menos.
El problema es que los diseños existentes de computadoras cuánticas no incluyen un equivalente del contador de programa o un salto condicional.
En la práctica, eso significa que los programadores normalmente implementan el flujo de control organizando manualmente puertas lógicas que describen el hardware de la computadora, lo cual es un procedimiento tedioso y propenso a errores.
Para proporcionar estas características y cerrar la brecha con las computadoras clásicas, Yuan y sus coautores crearon la máquina de control cuántico:
Un conjunto de instrucciones para una computadora cuántica que funciona como la idea clásica de una máquina virtual.
En su artículo, los investigadores imaginan cómo los programadores podrían utilizar este conjunto de instrucciones para implementar algoritmos cuánticos para problemas como factorizar números y simular interacciones químicas.
Como punto técnico de este trabajo, los investigadores demuestran que una computadora cuántica no puede soportar la misma instrucción de salto condicional que una computadora clásica, y muestran cómo modificarla para que funcione correctamente en una computadora cuántica.
Específicamente, la máquina de control cuántico presenta instrucciones que son todas reversibles: pueden avanzar y retroceder en el tiempo.
Un algoritmo cuántico necesita que todas las instrucciones, incluidas las de control del flujo, sean reversibles para poder procesar información cuántica sin destruir accidentalmente su superposición y producir una respuesta incorrecta.
Charles Yuan, uno de los investigadores de este grupo, defiende lo siguiente:
“Nuestro trabajo describe los principios que dirimen cómo puedes programar correctamente un computador cuántico […]
Uno de estos principios implica que si intentas programar un sistema cuántico utilizando las mismas instrucciones básicas que empleas en un computador clásico conseguirás que el computador cuántico pierda su ventaja sobre el clásico“. Este es el leitmotiv de este asunto.
Fuente: MIT News