viernes, 4 de julio de 2008

La simpleza de las computadoras cuanticas

Las computadoras cuánticas prometen ser fantásticamente rápidas y resolver problemas como el desciframiento de códigos y la búsqueda en grandes bases de datos, lo cual provee el incentivo necesario para superar los tremendos obstáculos involucrados en construirlas.
El componente básico de estas computadoras, el qubit, está formado a partir de un átomo o partícula subatómica, y las computadoras cuánticas cuánticas requieren que los qubits intercambien información, lo que significa que la interación entre estos objetos absurdamente pequeños debe ser controlada con precisión.
Los investigadores de la Universidad de Oxford y el Colegio de la Universidad de Londres, en Inglaterra propusieron un clase de computadora cuántica que puede simplificar la manera en que interactúan los qubits.
Este esquema permite a los qubits estar conectados contínuamente entre sí, en lugar de ser conectados y desconectados, y esto permite que los qubits de las computadoras sean controlados todos a la vez de forma de no tener que ser cableados separadamente.
Esta simplificación es posible gracias al uso de qubits que contienen tres electrones interactuando constantemente en lugar de dos electrones y un electrodo. Cuando el estado energético del electrón del medio coincide con los otros, los otros dos pueden intercambiar energía, produciéndose una señal de "on" (encendido).
Los investigadores generalmente concuerdan en que las computadoras cuánticas están aún a dos décadas de distancia. Sin embargo es posible que las primeras computadoras cuánticas, capaces de operaciones que las computadoras tradicionales no podrían, sean construidas en los próximos diez años, según los investigadores.

martes, 24 de junio de 2008

Algoritmos cuanticos

Un algoritmo es una sucesión de instrucciones para resolver un problema específico. Un algoritmo cuántico es como un algoritmo clásico con la diferencia que podemos aplicar y utilizar propiedad de la mecánica cuántica.
Como ya he mencionado antes, existen varios algoritmos que son relevantes en el campo, estos son el algoritmo de factorización de Shor y el de busqueda de Grover. El primero da una ganancia muy por encima de su contraparte clásica, mientras que el segundo da una ganancia cuadrática. Estos hacen creer que la computación cuántica tiene muchas posibilidades y mucho más poder de computo que su hermana la computación clásica.
Podemos clasificar los algoritmos cuánticos en tres clases principales y que son de gran interes:
Algoritmos basados en la Transformada de Fourier: estos se basan en que podemos formar la serie de Fourier en una superposición de estados, y poder operar con ella para obtener los resultados que deseamos. Es muy importante ya que muchos problemas actuales se resuelven a través de la Transformada de Fourier, y un algoritmo que provee de un cálculo aún más rápido emociona a muchos investigadores. Sin embargo existe un pero en el uso del algoritmo, por la naturaleza de la superposición no podemos obtener todos los valores de la transformada sino solo uno de sus terminos si la medimos; en cambio en los algoritmos nos enfocaremos en generar la transformada y utilizarla a nivel cuántico para luego extraer los resultados que nos interesen.
Algoritmos de búsqueda: estos algoritmos se basan en el algoritmo de Grover, el cual permite encontrar un ciertos valores que satisfacen una función en un conjunto de datos que no presentan una estructura definida. Se considera este tipo de algoritmos ya que muchos problemas pueden reducirse a una busqueda en un conjunto de datos. Además promete una eficiencia cuadrática en las busquedas. Uno de los beneficios de utilizar este tipo de algoritmos es que no destruye el conjunto de busqueda, sino que simplemente marca los valores que satisfacen la condición de busqueda. Lo cuál es muy bueno, ya que al no poder copiar cualquier qubit podría ser un trabajo tedioso el cuidar estos qubits.
Algoritmos de simulación: la computación cuántica es una gran candidata para realizar simulaciones en sistemas cuánticos y por consiguiente clásicos. En una computadora clásica se necesitan una cantidad exponencial de recursos para poder simular un sistema, sin embargo en una computadora cuántica la cantidad de recursos es lineal. Sin embargo, la eficiencia que se obtiene al simular el sistema no garantiza que se obtenga la información que se desea de la simulación ya que al medir obtenemos una cantidad lineal de datos y no toda la información del sistema. Entonces el reto esta en encontrar la manera de encontrar como extraer la información necesaria del sistema.
Otro de los retos con los que nos encontramos al desarrollar algoritmos cuánticos es que estamos acostumbrados a vivir un día a día en un mundo clásico, por lo que tenemos que forzarnos a pensar de manera cuántica y explotar de esa manera todos los beneficios que nos pueden brindar este tipo de algoritmos. Y es que aún falta mucho por explorar en ellos.

¿Una solucion milagrosa?


A pesar de lo que muchas personas creen la computación cuántica promete grandes soluciones, pero solo es eso -promesas- por ahora. La única manera de poder ver realmente lo que QC ofrece es estudiar las clase de complejidad en la que se encuentra.
La teoría de la complejidad computacional se encarga de estudiar los recursos (tiempo y espacio) necesarios para la solución de los problemas, tanto en el modelo clásico como en el cuántico, y como clasificarlos. Una clase de complejidad es el conjunto de problemas con características similares en cuanto al consumo de recursos para su resolución.
A pesar que se tienen sospechas que la computación cuántica es mucho más poderosa que la computación clásica por algunos ejemplos, como el algoritmo de factorización de Shor, estas aún son suposiciones. Ya que es posible que las computadoras cuánticas no sean más poderosas que las clásicas, de manera que cualquier problema que se pueda resolver en una computadora clásica se puede resolver en una computadora cuántica (esto también se ve por la implicación de la máquina de Turing cuántica, ya que puede emular una máquina Universal de Turing por lo que puede resolver cualquier problema que una computadora clásica pueda resolver).
Las clases más importantes son las denominadas P y NP. La clase P es el conjunto de problemas que se pueden resolver en tiempo polinomial en una computadora clásica (Máquina universal de Turing). Y la clase NP es el conjunto de problemas que se pueden revisar en una computadora clásica, pero no encontrar las soluciones. Existen subclases de la clase NP, por ejemplo esta el NP-completo que son aquellos problemas que no tienen solución en una computadora clásica.
Se puede ver que P esta contenido en NP, ya que cualquier problema que se pueda resolver puede también verificar las soluciones para el problema. Uno de los grandes problemas que han tenido los científicos es identificar si P y NP son distintos, es decir, si existen problemas en NP que no puedan estar en P. Si existe un algoritmo para resolver problemas NP-completos entonces podriamos utilizar alguna variante de este para resolver cualquier otro problema de la misma naturaleza. Por consiguiente, si en realidad P es un subconjunto de NP, entonces no existiría solución alguna en P para los problemas que sean NP-completos.
Es por esto que se cree que la computación cuántica puede ser más poderosa que la computación clásica. Como existe una solución eficiente a un problema que se cree es NP-completo, el algoritmo de factorización de Shor, entonces se tendrían soluciones a cualquier otro problema. Sin embargo, nadie a demostrado que la factorización de algún número sea un problema NP, pero nadie tampoco a demostrado lo contrario, por lo que existen personas que creen que es posible que la computación cuántica tiene esperanzas.

Origen de la computacion cuantica


A medida que evoluciona la tecnología, aumenta la escala de integración y caben más transistores en un espacio, así se fabrican microchips cada vez más pequeños, y es que, cuanto más pequeño es, mayor velocidad de proceso alcanza el chip. Sin embargo, no podemos hacer los chips infinitamente pequeños. Hay un límite en el cual dejan de funcionar correctamente. Cuando se llega a la escala de nanómetros, los electrones se escapan de los canales por donde deben circular. A esto se le llama efecto tunel.Una partícula, si se encuentra con un obstáculo, no puede atravesarlo y rebota. Pero los electrones, que son partículas cuánticas y se comportan como ondas, existe la posibilidad de que una parte de ellos pueda atravesar las paredes si es que estas son demasiado finas, de esta manera la señal pasaria por canales donde no debería circular. Por ello, el chip deja de funcionar correctamente. En consecuencia, la computación digital tradicional, no tardaría en llegar a su límite, puesto que ya se han llegado a escalas de cientos de nanómetros. Surge entonces la necesidad de descubrir nuevas tecnologías y es ahí donde entra la computación cuántica.
La idea de computación cuántica surge en 1981 cuando Paul Benioff expuso su teoría para aprovechar las leyes cuánticas en el entorno de la computación. En vez de trabajar a nivel de voltajes eléctricos, se trabaja a nivel de cuanto. En la computación digital, un bit sólo puede tomar dos valores: 0 ó 1. En cambio, en la computación cuántica, intervienen las leyes de la mecánica cuántica, y la partícula puede estar en superposición coherente: puede ser 0, 1 y puede ser un 0 y un 1 a la vez (dos estados ortogonales de una partícula subatómica). Eso permite que se puedan realizar varias operaciones a la vez, según el número de qubits.
El número de qubits indica la cantidad de bits que pueden estar en superposición. Con los bits convencionales, si teníamos un registro de tres bits, había ocho valores posibles y el registro sólo podía tomar uno de esos valores. En cambio, si tenemos un vector de tres qubits, la partícula puede tomar ocho valores distintos a la vez gracias a la superposición cuántica. Así un vector de tres qubits permitiría un total de ocho operaciones paralelas. Como cabe esperar, el número de operaciones es exponencial con respecto al número de qubits. Para hacerse una idea del gran avance, un computador cuántico de 30 qubits equivaldría a un procesador convencional de 10 teraflops (billones de operaciones en punto flotante por segundo) cuando actualmente las computadoras trabajan en el orden de gigaflops (miles de millones de operaciones).

Historia de las computadoras

Esfera de Bloch


La esfera de Bloch es una representación de un qubit,el bloque de construcción fundamental de los computadores cuánticos.

viernes, 20 de junio de 2008

Tecnología Siglo XXI: computación cuántica


Hans Mooij, de la Universidad Tecnológica de Delft en los Países Bajos y Raymond Simmons del Instituto Nacional de Estándares y Tecnología en Boulder, Colorado, EE.UU., figuran entre los científicos que están abriendo un nuevo camino hacia el desarrollo de los ordenadores del futuro. Su enfoque se basa en asumir que los superconductores, materiales que conducen la electricidad sin ninguna resistencia eléctrica, pueden aprovechar las capacidades ofrecidas por la física cuántica para incrementar de manera espectacular la potencia de los ordenadores.Las denominadas computadoras cuánticas
se han convertido en uno de los temas de mayor interés general de la física en los últimos diez años. Con la computación cuántica no se pretende mejorar el potencial del silicio haciendo los componentes más pequeños, sino aprovecharse de los exóticos principios de la mecánica cuántica, la teoría generalmente utilizada para comprender cómo se comportan los objetos en la escala de los átomos y de las partículas subatómicas.Los objetos gobernados por la teoría cuántica pueden estar en varios estados diferentes simultáneamente, como si un interruptor de la luz estuviera abierto y cerrado al mismo tiempo. Esta "superposición" de estados no se corresponde con nada familiar de nuestro mundo cotidiano, pero innumerables experimentos han demostrado que esas superposiciones pueden existir siempre que los objetos cuánticos no se perturben, por ejemplo, al hacer una medida sobre ellos.
En una computadora cuántica los equivalentes de los bits que contienen la información binaria como el 0 y el 1 en los ordenadores de hoy, serán bits cuánticos o qubits, en los cuales también pueden existir superposiciones de 0 y 1. Esto incrementa masivamente la cantidad de información que puede ponerse codificada en la memoria de una computadora cuántica. El problema es que esas superposiciones son sumamente delicadas y difíciles de mantener, sobre todo en memorias que contengan grandes cantidades de qubits interactuando entre ellos.Están siendo explorados varios candidatos para formar los qubits, como átomos magnéticamente atrapados o burbujas semiconductoras de escala nanométrica. Pero se sabe desde mucho tiempo atrás que también es posible colocar aros de material superconductor en estados de superposición cuántica y hacer así que actúen como qubits. Aquí los estados cuánticos pueden corresponder con una corriente eléctrica que circula en el anillo en una dirección o en la otra. (En los superconductores esta circulación puede continuar más o menos indefinidamente sin agotarse, porque no hay ninguna resistencia eléctrica.)La primera demostración de transmisión de información entre dos de tales qubits superconductores ha revelado que los elementos de este tipo pueden actuar como una memoria para computación cuántica y como un "bus" para la comunicación entre los qubits, un requisito esencial de cualquier ordenador en funcionamiento.