logo móvil
Contáctanos
Portada

Créditos: Foto: Graham Carlow/IBM

2022-01-26

Un nuevo lenguaje para la computación cuántica


Cristales de tiempo. Microondas. Diamantes. ¿Qué tienen en común estas tres cosas dispares? 

Computación cuántica. A diferencia de las computadoras tradicionales que usan bits, las computadoras cuánticas usan qubits para codificar información como ceros o unos, o ambos al mismo tiempo. Junto con un cóctel de fuerzas de la física cuántica, estas máquinas del tamaño de un refrigerador pueden procesar una gran cantidad de información, pero están lejos de ser perfectas. Al igual que nuestras computadoras normales, necesitamos tener los lenguajes de programación correctos para calcular correctamente en las computadoras cuánticas. 

La programación de computadoras cuánticas requiere la conciencia de algo llamado "entrelazamiento", un multiplicador computacional para tipos de qubits, lo que se traduce en una gran cantidad de poder. Cuando dos qubits están entrelazados, las acciones en un qubit pueden cambiar el valor del otro, incluso cuando están separados físicamente, lo que da lugar a la caracterización de Einstein de "acción espeluznante a distancia". Pero esa potencia es a partes iguales una fuente de debilidad. Al programar, descartar un qubit sin tener en cuenta su enredo con otro qubit puede destruir los datos almacenados en el otro, poniendo en peligro la corrección del programa. 

Los científicos de Ciencias de la Computación e Inteligencia Artificial (CSAIL) del MIT intentaron desentrañar un poco creando su propio lenguaje de programación para la computación cuántica llamado Twist. Twist puede describir y verificar qué piezas de datos están entrelazadas en un programa cuántico, a través de un lenguaje que un programador clásico puede entender. El lenguaje utiliza un concepto llamado pureza, que impone la ausencia de enredos y da como resultado programas más intuitivos, idealmente con menos errores. Por ejemplo, un programador puede usar Twist para decir que los datos temporales generados como basura por un programa no están entrelazados con la respuesta del programa, por lo que es seguro desecharlos.

Si bien el campo naciente puede parecer un poco llamativo y futurista, con imágenes de gigantescas máquinas de oro fibrosas que vienen a la mente, las computadoras cuánticas tienen potencial para avances computacionales en tareas clásicamente irresolubles, como protocolos criptográficos y de comunicación, búsqueda y física y química computacional. Uno de los desafíos clave en las ciencias computacionales es lidiar con la complejidad del problema y la cantidad de computación necesaria. Mientras que una computadora digital clásica necesitaría una gran cantidad exponencial de bits para poder procesar una simulación de este tipo, una computadora cuántica podría hacerlo, potencialmente, utilizando una cantidad muy pequeña de qubits, si se cuenta con los programas adecuados. 

"Nuestro lenguaje Twist permite a un desarrollador escribir programas cuánticos más seguros al indicar explícitamente cuándo un qubit no debe entrelazarse con otro", dice Charles Yuan, estudiante de doctorado en ingeniería eléctrica e informática del MIT y autor principal de un nuevo artículo sobre Twist. . “Debido a que comprender los programas cuánticos requiere comprender el entrelazamiento, esperamos que Twist allane el camino hacia lenguajes que hagan que los desafíos únicos de la computación cuántica sean más accesibles para los programadores”. 

Yuan escribió el artículo junto con Chris McNally, un estudiante de doctorado en ingeniería eléctrica y ciencias de la computación afiliado al Laboratorio de Investigación de Electrónica del MIT, así como al Profesor Asistente del MIT Michael Carbin. Presentaron la investigación en la conferencia Simposio sobre Principios de Programación 2022 de la semana pasada en Filadelfia.

Desenredando el entrelazamiento cuántico 

Imagina una caja de madera de la que sobresalen mil cables por un lado. Puede sacar cualquier cable de la caja o empujarlo hasta el fondo.

Después de hacer esto por un tiempo, los cables forman un patrón de bits (ceros y unos) dependiendo de si están dentro o fuera. Esta caja representa la memoria de una computadora clásica. Un programa para esta computadora es una secuencia de instrucciones sobre cuándo y cómo tirar de los cables.

Ahora imagine una segunda caja de aspecto idéntico. Esta vez, tiras de un cable y ves que, a medida que emerge, un par de cables más vuelven a entrar. Claramente, dentro de la caja, estos cables están de alguna manera enredados entre sí. 

El segundo cuadro es una analogía para una computadora cuántica, y comprender el significado de un programa cuántico requiere comprender el entrelazamiento presente en sus datos. Pero detectar el enredo no es sencillo. No puedes ver dentro de la caja de madera, así que lo mejor que puedes hacer es intentar tirar de los cables y razonar con cuidado sobre cuáles están enredados. De la misma manera, los programadores cuánticos de hoy tienen que razonar a mano sobre el entrelazamiento. Aquí es donde el diseño de Twist ayuda a masajear algunas de esas piezas entrelazadas. 

Los científicos diseñaron Twist para que fuera lo suficientemente expresivo como para escribir programas para algoritmos cuánticos conocidos e identificar errores en sus implementaciones. Para evaluar el diseño de Twist, modificaron los programas para introducir algún tipo de error que sería relativamente sutil para que un programador humano lo detectara, y demostraron que Twist podía identificar automáticamente los errores y rechazar los programas.

También midieron qué tan bien funcionaban los programas en la práctica en términos de tiempo de ejecución, que tenía menos del 4 por ciento de sobrecarga sobre las técnicas de programación cuántica existentes.

Para aquellos que desconfían de la reputación "sórdida" de la cuántica en su potencial para romper los sistemas de encriptación, Yuan dice que todavía no se sabe muy bien hasta qué punto las computadoras cuánticas realmente podrán alcanzar sus promesas de rendimiento en la práctica. “Hay mucha investigación en curso en criptografía poscuántica, que existe porque incluso la computación cuántica no es todopoderosa. Hasta ahora, hay un conjunto muy específico de aplicaciones en las que las personas han desarrollado algoritmos y técnicas en las que una computadora cuántica puede superar a las computadoras clásicas”. 

Un siguiente paso importante es usar Twist para crear lenguajes de programación cuánticos de alto nivel. La mayoría de los lenguajes de programación cuánticos de hoy todavía se parecen al lenguaje ensamblador, encadenando operaciones de bajo nivel, sin tener en cuenta cosas como tipos de datos y funciones, y lo que es típico en la ingeniería de software clásica.

“Las computadoras cuánticas son propensas a errores y difíciles de programar. Al presentar y razonar sobre la pureza del código del programa, Twist da un gran paso para facilitar la programación cuántica al garantizar que los bits cuánticos en un código puro no puedan ser alterados por bits que no estén en ese código”, dice Fred Chong, Profesor Seymour Goodman de Ciencias de la Computación en la Universidad de Chicago y científico jefe de Super.tech. 

El trabajo fue apoyado, en parte, por el MIT-IBM Watson AI Lab, la Fundación Nacional de Ciencias y la Oficina de Investigación Naval.

Autor
Imagen MIT

MIT

Promover la investigación, las innovaciones, la enseñanza y los eventos y las personas de interés periodístico del MIT a la comunidad del campus, los medios de comunicación y el público en general, Comunicar anuncios del Instituto, Publicar noticias de la comunidad para profesores, estudiantes, personal y ex alumnos del MIT. Proporcionar servicios de medios a los miembros de la comunidad, incluido el asesoramiento sobre cómo trabajar con periodistas, Responder a consultas de los medios y solicitudes de entrevistas...

Noticias más leídas

Temas Virtualpro