Aprendiendo a programar ordenadores cuánticos

Ayer comencé a aprender y experimentar con programación de ordenadores cuánticos. No me es fácil expresar lo bien que me lo pasé y lo que me emocionó, pero lo intentaré:

quantum computing simulator

Programar un ordenador cuántico es diferente de programar un ordenador “digital” binario (0 y 1). Para programar un sistema cuántico tienes que mapear un problema a la búsqueda del “punto más bajo” de una gran cantidad de opciones, que corresponde con el mejor resultado posible. El procesador considera todas las posibilidades simultáneamente para determinar la menor energía requerida para formar esas relaciones. Un ordenador cuántico es probabilístico, no determinístico, así que el ordenador produce las mejores respuestas de una forma muy rápida. Esto resulta no sólo en la solución óptima de una sola respuesta, sino en otras alternativas entre las que elegir.

Por supuesto (todavía) no tengo acceso a un ordenador cuántico, así que he usado un simulador de ordenador cuántico con aceleración GPU y un interfaz de IDE simple, con su propio lenguaje de programación y debugging, y un visualizador de estado cuántico en 3D que permite simular eficientemente registros cuánticos de hasta 22 bits cuánticos (qubits), ejecutar algoritmos de Grover y Shor, y con una serie de puertas  lógicas cuánticas incorporadas.

Para usar un ordenador cuántico trasladas el problema a una ecuación cuyo objetivo es devolver los valores mínimos (soluciones óptimas). Se deben proveer dos valores – los “pesos” de los qubits (que existen en una superposición de estados 0 y 1, y son representados por números complejos) y las “fuerzas” de la interacción entre ellos. Cuando N qubits se superponen, se crea una combinación de 2^N estados.

Las puertas lógicas cuánticas son similares a las puertas lógicas empleadas en ordenadores digitales binarios. Con puertas cuánticas (que definen las operaciones más básicas que se pueden realizar con qubits) puedes construir algoritmos complejos, que por lo general culminan en una operación de medida que obtiene un valor clásico de qubits (bien 0 o 1, pero no una superposición).

Un grupo de  qubits llamado registro cuántico puede ser visualizado de varias formas, generalmente en un gráfico 2D o 3D, en el cual los puntos o barras representan el “peso” de superposición de qubits, mientras que el color o altura de la barra representa la “fuerza” (amplitud o fase) de una superposición dada.

Una propiedad interesante de las puertas cuánticas es su reversibilidad, permitiendo la ejecución de los programas tanto hacia delante como a la inversa sin efectos secundarios.

El problema ya no es obtener la respuesta, sino hacer la pregunta correcta.

Procesado de Lenguaje Natural, Computación Cognitiva, Computación Cuántica… si no quieres temer a los nuevos amos que rápidamente se acercan, más te vale comenzar a aprender y a programarlos YA.

La IA se acerca (AI is coming)

 

2 thoughts on “Aprendiendo a programar ordenadores cuánticos

  • April 23, 2015 at 10:29 am
    Permalink

    Muy buena la info, me encanto el post !!

    Reply
  • February 19, 2017 at 2:45 pm
    Permalink

    Parece que todo se reduce a el planteamiento de un problema de programación lineal ¿No es así?. Trasladar todos lo planteamientos matemáticos a un sistema de inecuaciones y búsqueda de mínimos, tal y como nos enseñan en cálculo, requerirán técnicas que aún no se han planteado, ¿o sí?, ¿o se está trabajando en ello?.

    Reply

Leave a Reply