domingo, 10 de marzo de 2013

Paralelismo Cuántico


La falta de velocidad para el procesamiento de datos no es un problema nuevo. Para solucionarlo se intenta, desde mediados de los años 1960, diseñar arquitecturas de hardware compuestas por procesadores paralelos, que ejecuten instrucciones de forma independiente, y que analicen datos de forma simultánea: sería como poner a todos a trabajar al mismo tiempo, desde distintos ángulos, sobre el mismo tema. Sin embargo, dichas computadoras paralelas son muy costosas y tienen usos muy específicos: procesamiento de imágenes, cálculos científicos, sistemas de control, etc. Como en muchos otros casos, la naturaleza se encarga de burlar al hombre poniendo en sus narices el botín inalcanzable, como en el caso de uno de los sistemas más antiguos y que mejor funciona: el sistema nervioso. Los neurólogos creen que gran parte del poder expresivo del cerebro humano se debe al procesamiento simultáneo, en paralelo, que permite la evaluación de miles de combinaciones al mismo tiempo y que permite resultados nuevos e imprevisibles.

Frente a este cúmulo de dificultades los especialistas están buscando múltiples salidas. Una de ellas surge de la física cuántica. Esta teoría que explica el curioso comportamiento de las partículas a nivel subatómico no parece coincidir con lo que el sentido común dice acerca del mundo rutinario de cada día. La física cuántica teoriza acerca de fenómenos que sólo pueden explicarse abstrayendo cosas como: “Una partícula es capaz de estar en dos lugares al mismo tiempo”. En los años 1980 tres físicos llamados Feynman, Benioff y Deutsch fueron aún más lejos y concibieron una máquina que aprovechara los fenómenos cuánticos para aumentar la capacidad de procesamiento de una computadora. Si una partícula puede estar en dos estados al mismo tiempo, se la puede utilizar para codificar, a su vez, dos datos al mismo tiempo; en el caso de una computadora binaria, sobre cero y uno. Hace sólo algunos años atrás, un científico de la Bell Labs, Peter Shor, demostró que las computadoras cuánticas podrían ser utilizadas de manera eficiente para resolver un problema de gran interés práctico: factorizar números enteros, una de las necesidades básicas de las empresas de seguridad informática que utilizan estos complejos cálculos matemáticos para crear claves de seguridad. Apareció una utilidad práctica y detrás de ella los que podían llegar a obtener un beneficio: la poderosa industria de la seguridad abrió los ojos y las billeteras, y el dinero comenzó a llegar a los laboratorios que se dedicaron a estudiarlas.

La computación cuántica nace con el objetivo de combinar las propiedades de la física y las ciencias computacionales para solucionar problemas de computación. La base teórica de la computación tradicional está basada en saber utilizar el lenguaje binario de unos y ceros para resolver problemas. Se utilizan los transistores como elemento principal, de forma que las diferencias de energía que existan en él son unos y ceros lógicos. Sin embargo, en la computación cuántica, se reduce la escala del elemento primario, lo que conlleva una serie de efectos cada vez más obvios. Una parte básica de la computación cuántica es estudiar las consecuencias de dichos efectos en la computación tradicional. Dichos estudios fueron los que llevaron a los científicos a emplearlos para sacar provecho, de tal manera que físicos e informáticos teóricos, comenzaron a crear diversas hipótesis basadas en la afirmación de que a partir de las leyes de la mecánica cuántica se podrían desarrollar nuevos planteamientos en la teoría y procesamiento de la información. Resulta obvio pensar que, para aplicar estas teorías cuánticas, se necesita obtener una computadora cuántica. Hasta estos primeros años del presente siglo, los componentes de hardware han evolucionado para ser miniaturizados hasta llegar a conseguirse nanocircuitos. Sin embargo, se alcanzará un punto en el que esta miniaturización sea tal que no se pueda avanzar más. En ese momento tendrá que entrar en juego la mecánica cuántica.

El modelo cuántico de computación se introdujo en la década de 1980. Es una extensión del modelo clásico en el que los bits cuánticos o qubits, pueden tomar el valor cero o uno, como los bits clásicos, y además combinaciones de cero y uno, por ejemplo un medio de cero más un medio de uno. En el mundo cuántico estas combinaciones existen debido al denominado principio de superposición que, desde un punto de vista computacional, es el responsable del paralelismo cuántico y del entrelazamiento de los qubits. Un qubit es la unidad mínima de información cuántica. Sus dos estados básicos se llaman, convencionalmente ket cero y ket uno. Un estado qubital puro es una superposición cuántica de esos dos estados. Esto es significativamente distinto al estado de un bit clásico, que puede asumir solamente un valor cero ó uno. Sin embargo, la diferencia más importante entre un qubit y un bit clásico no es la naturaleza continua de este estado, que se puede replicar con cualquier cantidad análoga), sino que múltiples qubits pueden experimentar un entrelazamiento. El enredo es una interacción no local que permite a un conjunto de qubits expresar superposiciones de diferentes cadenas binarias simultáneamente. En este “paralelismo cuántico” está la posible potencia del cómputo cuántico.

Formalmente, la unidad básica de información de la computación cuántica, el qubit, o bit cuántico, se define como un sistema cuántico bidimensional con un espacio de Hilbert, isomórfico al conjunto de números complejos. Este sistema puede estar en uno de sus dos estados básicos, cero o uno, o bien en una superposición lineal de ambos. El qubit, es la clave del paralelismo cuántico. Mediante la superposición de estados un registro de qubits podría guardar la información de varios registros clásicos. Haciendo esto con el registro de estados de la máquina cuántica, se consigue que la máquina tenga en él una superposición coherente de varios registros clásicos, cada uno representante de un estado, logrando que la máquina cuántica “se encuentre en varios estados a la vez”. Sin embargo, las máquinas cuánticas son máquinas lineales. En términos de programación, el paralelismo se consigue al aplicar una transformación a un registro de qubits que contenga información superpuesta de varias variables. El resultado de esta transformación sería igual a aplicarla a todas las variables al mismo tiempo y luego superponer todos los resultados en el registro cuántico. Por tanto, actuando de esta manera se consigue operar emulando un número indeterminado de registro y procesadores haciendo uso de un solo registro y un solo procesador.

El paralelismo cuántico, por tanto, supera al clásico en que en una computadora cuántica es posible tener un número exponencialmente alto de estados en un espacio reducido. Esto, en una computadora clásica, no sería viable debido al costo computacional del número de procesadores y del espacio de memoria. A pesar de ello, el paralelismo cuántico por sí no es suficiente para lograr una computación satisfactoria. Tras la fase de cálculo, se tiene que medir el registro de salida para obtener el resultado. Sin embargo, al ser un registro cuántico, éste se colapsará con la medida y tan sólo se podrá obtener el resultado de una de las ramas de la computación, de forma aleatoria. Se tiene, por tanto, que el resultado de una computación cuántica es probabilista; No se puede saber con una seguridad completa que el resultado que se obtenga sea el que se está buscando. Para asegurar esto se podría realizar un número determinado de medidas hasta tener la seguridad de obtener la información deseada. Pero si no se realiza el diseño del programa con cuidado, el número de medidas necesarias puede ser exponencial, perdiendo así las ventajas de la computación cuántica. Para evitar este efecto, se deben diseñar los programas de manera que el máximo de la distribución de probabilidad en el dato de salida corresponda al resultado deseado. De esta manera se consigue reducir el número de medidas a unas pocas. Las técnicas para lograr esto se basan en el principio de superposición de ondas, con el que se consigue una interferencia constructiva en los casos de resultados deseados. De esta manera se consigue que la probabilidad de que al hacer una medida correcta ésta sea alta.

De manera hipotética, una computadora cuántica, capaz de realizar muchas operaciones lógicas sobre muchos qubits, comienza por inicializar todos los bits de entrada en una superposición en la cual los ceros y unos se encuentran en proporciones iguales. La computadora está entonces en una superposición de todas las posibles formulaciones del problema. Se utiliza estos datos para alimentar los circuitos lógicos que llevan a cabo una determinada computación. El resultado es una superposición de todos los posibles resultados de dicha computación. De manera paradójica, la computadora realiza de una sola vez todas las computaciones posibles. Este fenómeno ha sido llamado “paralelismo cuántico” por David Deutsch del Instituto Matemático de la Universidad de Oxford.

No hay comentarios: