viernes, 23 de octubre de 2009

Software cuántico

La computación cuántica es un paradigma de computación distinto al de la computación clásica. Se basa en el uso de qubits en lugar de bits, y da lugar a nuevas puertas lógicas que hacen posibles nuevos algoritmos. Una misma tarea puede tener diferente complejidad en computación clásica y en computación cuántica, lo que ha dado lugar a una gran expectación, ya que algunos problemas intratables pasan a ser tratables. Mientras que, una computadora clásica equivale a una máquina de Turing, una computadora cuántica equivale a una máquina de Turing indeterminista.

A lo largo de la historia el ser humano ha usado diversos materiales y utilizado múltiples mecanismos en el diseño, construcción y operación de máquinas que agilicen y automaticen la realización de cálculos y el procesamiento de información, desde el ábaco hasta las actuales computadoras personales. En los últimos años la densidad de los circuitos electrónicos ha aumentado sin cesar, gracias a la disminución en el tamaño de los componentes. Pero supuestamente llegará un momento en que no sea posible reducir más los circuitos. Debido a que muy pronto la miniaturización será tal que las leyes de la física clásica ya no sean válidas, entonces se entrará en los dominios del mundo subatómico, y aquí es donde entra la mecánica cuántica. Dado que el tratamiento de la información cuántica es notablemente distinto al que se hace con la información clásica, se necesitaran algunas herramientas para construir el denominado software o programa cuántico.

El software es un elemento lógico de un sistema computacional, a diferencia del hardware que es un elemento físico, y presenta las siguientes características: (1) Se desarrolla no se fabrica en un sentido clásico. (2) No se estropea, se deteriora hasta la obsolescencia. (3) Se construye a medida, en lugar de ensamblarse a partir de componentes existentes. Existen tres cosas básicas que distinguen de manera inicial al software cuántico: (1) Un conjunto apropiado de puertas. Una forma de obtener puertas cuánticas es la cuantización de las puertas clásicas, que pasa por reinterpretar los bits como qubits. Se puede demostrar que el conjunto de puertas cuánticas que afectan a un sólo qubit, conjuntamente con las puertas llamadas control-not, que son aquellas que afectan a dos qubits, forman un conjunto universal con las que se puede construir cualquier programa cuántico. (2) Algoritmos que aprovechen el comportamiento cuántico. A pesar del esfuerzo que se ha dedicado a la obtención de algoritmos que aprovechen el comportamiento cuántico, en la actualidad, su número es bastante reducido. Aunque mediante superposiciones apropiadas, es posible manejar un número exponencial de estados, eso no supone que esta información esté disponible. Para acceder a esa información se debe medir sobre el estado colapsándolo, y la información se pierde casi en su totalidad. Para aprovechar los aspectos cuánticos, es necesario combinar la posibilidad del paralelismo cuántico con la interferencia. (3) Métodos apropiados para controlar los posibles errores. Quizás es éste uno de los mayores problemas a la hora de construir una computadora. Estos errores provienen de la inexorable interacción de la computadora con su entorno, proceso denominado decoherencia. Se pensó que no podían existir métodos para el control de errores cuánticos, pero se ha mostrado cómo es posible contener los errores mediante códigos cuánticos correctores de errores. Estos códigos, detectan y corrigen estos errores, usando sofisticadas técnicas cuánticas.

En resumen, la ventaja en la potencia de estas máquinas proviene del paralelismo masivo y exponencial, debido a la superposición de estados en los qubit. Si estas computadoras fueran factibles en la práctica, permitirían atacar aquellos problemas que en las computadoras clásicas implicarían tiempos astronómicos. Aparte de las aplicaciones encaminadas a la ciencia básica, estas computadoras podrían usarse en la criptografía, criptoanálisis, búsquedas en inmensas bases de datos, simulaciones meteorológicas, etc. Queda por saber si el aislamiento de los sistemas permitirá escapar al límite impuesto por el decaimiento y la decoherencia que destruyen la mezcla cuántica de estados. Otro de los problemas principales es la escalabilidad, especialmente teniendo en cuenta el considerable incremento en qubits necesarios para cualquier cálculo que implica la corrección de errores. Para ninguno de los sistemas actualmente propuestos es trivial un diseño capaz de manejar un número lo bastante alto de qubits para resolver problemas computacionalmente interesantes hoy en día.

A diferencia de los bloques binarios de una computadora convencional con interruptores de apagado-encendido, ó cero-uno, los bloques básicos de las computadoras cuánticas, conocidos como bits cuánticos, o qubits, tienen la capacidad, difícil de entender para la mente humana, de existir en ambos estados “encendido” y “apagado” simultáneamente, como consecuencia del principio de superposición de la física cuántica. Una vez dominado el principio de superposición, éste debería permitir a las computadoras cuánticas extraer patrones de los resultados de un gran número de cómputos sin realizarlos todos realmente, otro fenómeno que constituye un desafío para la lógica humana. Un problema, sin embargo, es que los prototipos de los procesadores cuánticos son propensos a los errores causados, por ejemplo, por el "ruido" de los campos eléctricos o magnéticos. Las computadoras convencionales pueden protegerse contra los errores usando técnicas como la repetición, en la cual, como su nombre sugiere, la información de cada bit es copiada varias veces y las copias se verifican entre sí a medida que avanza el cálculo. Pero esta clase de redundancia es imposible en una computadora cuántica, ya que en ella las leyes del mundo cuántico prohíben duplicar tal información.

Para mejorar la eficacia de la corrección de errores, los investigadores están diseñando arquitecturas de computadoras cuánticas que limiten la propagación de los errores. Una de las formas más simples y eficaces de asegurar esto es el citado método mediante software, un equipo de investigadores ha demostrado matemáticamente como inadecuado para ser usado como sistema único en esa tarea de protección contra los errores. Por consiguiente es necesario emplear soluciones más complejas para manejar y corregir los errores.

Intuitivamente es posible concluir que en una computadora cuántica el poder de proceso es exponencialmente mayor. Un problema bastante álgido es el relacionado con el manejo de operadores lógicos. Los operadores lógicos tradicionales que sustentan a las computadoras actuales tienen un valor bastante bajo en un dominio cuántico. Hasta ahora el problema de la computación cuántica no ha sido tanto de nanoingeniería, aislar y manipular la orientación de un grupo de átomos, sino de implementar en esos sistemas de laboratorio, aún bastante primitivos, algoritmos y sistemas lógicos funcionales que permitan realizar cálculos y operaciones útiles que posibiliten un ulterior desarrollo de software para los sistemas. La verdadera frontera está en la algoritmia y la lógica. Por ejemplo, en las computadoras actuales, los procesadores fallan continuamente aunque el usuario no siempre está enterado, cada operación se repite un cierto número de veces, se compara el resultado y el más repetido se da por bueno. Algo que no se puede hacer en un mundo cuántico, donde la observación modifica el resultado.

El año 1999 el matemático Peter W. Shor y el físico Andrew M. Steane idearon un algoritmo que permitía resolver este problema. El año 1994 Shor fue aún más lejos desarrollando un algoritmo que permitía factorizar números con sistemas cuánticos: la clave para romper sistemas criptográficos. En diciembre del año 2001, la empresa IBM declaró haber implementado el sistema en una computadora de siete átomos, factorizando con éxito el número 15, es decir obteniendo como resultado 3×5.

Sin embargo, un equipo japonés ha saltado a la actualidad al publicar sus resultados en la revista “Nature” capitaneado por el profesor Tsai Jaw-Shen, de la empresa NEC, llevando hasta el momento una gran ventaja respecto a estudios precedentes. El grupo japonés ha implementado con relativo éxito el año 1999 el equivalente cuántico de uno de los dos operadores lógicos que se necesitan para construir una computadora cuántica funcional. Al año 2008 ha realizado la implementación de un segundo operador. Su objetivo ahora es combinar ambos en lo que llama una puerta única, la base de las futuras computadoras cuánticas. El objetivo de este grupo de investigadores es construir algunos algoritmos cuánticos basados en estos operadores. Y es que aunque las computadoras cuánticas puedan tardar en llegar a ser plenamente operativas más de una década, nadie duda de que una serie de aplicaciones, como la factorización de grandes números, puedan estar desarrolladas experimentalmente mucho antes.

Guillermo Choque Aspiazu
http://www.eldiario.net/
Julio 27 de 2009