lunes, 27 de julio de 2009

Computación Cuántica

Nada caracteriza mejor la era en que vivimos que su intensivo uso de la tecnología, y como esta avanza a una velocidad que muchas veces nos sorprende, pero como en muchas cosas que nos suceden nos estamos acercando a limites difíciles de sobrepasar. Me refiero particularmente a la computación, tecnología que ha proliferado como ninguna en estas últimas décadas, cada vez los computadores son más rápidos y más potentes y de hecho nos basta con recordar la famosa Ley de Moore la cual dice; "cada 18 meses se duplica el número de transistores en un circuito integrado" que aplicado en nuestros computadores implica que cada 18 meses duplican su potencia, en 1 año costaran la mitad del precio que pagamos y en 2 años serán obsoletos (como dato podemos decir que en los últimos 26 años el numero de transistores en un chip a aumentado 3200 veces).

A pesar de la impresión que pueden significar estos números, no parecen nada malo (solo para nuestro bolsillo), pero como muchas cosas en la vida, nada bueno dura para siempre, y esto sucede exactamente en este caso, ya que lógicamente la ley de Moore no puede llegar al infinito, debido a que las mismas leyes de la física impiden que construyamos chips indefinidamente pequeños, por una curiosa propiedad cuántica, llamada "efecto túnel".

El efecto túnel es un fenómeno nanoscópico por el que una partícula viola los principios de la mecánica clásica penetrando una barrera potencial o impedancia mayor que la energía cinética de la propia partícula, es decir, la partícula o parte de ella, pueden atravesar cierta barrera si se dan las condiciones necesarias. Y eso es justo lo que pasara con los microchips al llegar a la escala de los nanómetros, se corre el riesgo de que los electrones que recorren los canales, atraviesen algunos y produzcan un mal funcionamiento, por lo que cada vez nos acercamos más a este límite en donde no podremos construir ordenadores más rápidos y poderosos.

Si esto llega a pasar y nos estancamos para siempre en cierta eficiencia de nuestros ordenadores, sería realmente triste ya que todavía quedan muchos problemas que computadores cada vez más poderosos solamente podrían resolver (como por ejemplo tratar los sistemas caóticos), dada este problema es que nace la "Computación Cuántica", rama de la informática (y nueva paradoja) que ocupa (y aprovecha) las "extrañas" leyes de la Mecánica Cuántica para lograr resultados notables (aun teóricos).

Una de las mayores diferencias entre la computación común con la cuántica, es que la primera trabaja de forma lineal y la segunda no, como es esto?, simple, la computadoras ordinarias trabajan con algoritmos (conjunto lineal de instrucciones) por lo que funcionan de manera lineal (realizan un proceso a la vez), ya que los bits (acrónimo de "Binary Digit") con que trabajan solo admiten 2 estados, 0 o 1 (encendido o apagado, o como gusten), mientras que las computadoras cuánticas no trabajan de esta forma, ya que pueden trabajar en varias operaciones al mismo tiempo, esto claro por qué no trabajan con bits. Las computadoras cuánticas usan los llamados qubits (unidad mínima de la computación cuántica que debe su nombre a "bit cuántico"), que a diferencia de los bits ordinarios, admiten estados que pueden ser 0, 1 y puede ser 0 y 1 a la vez (esto por la superposición coherente de la mecánica cuántica).

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, lo que claramente es una mejora notable, a nivel de eficiencia, en comparación con los bits.

Para hacerse una idea del gran avance, un computador cuántico de 30 qubits equivaldría a un procesador convencional de 10 teraflops (millones de millones de operaciones en punto flotante por segundo) cuando actualmente las computadoras trabajan en el orden de gigaflops (miles de millones de operaciones).

Las posibilidades se ven infinitas (o al menos crecen exponencialmente), pero lamentablemente, como ocurre con casi todo lo relaciona a la mecánica cuántica, existen grandes problemas que han dificultado mucho el trabajo de quienes tratan mejorar esta incipiente tecnología. Uno de los mayores problemas es la "decoherencia cuántica" (en donde las partículas cuánticas forman cuerpos más grandes que se comportan de manera clásica, lo que provoca que se deshagan los estados se superposición de los qubits), lo que causa la pérdida del carácter unitario (y, más específicamente, la reversibilidad) de los pasos del algoritmo cuántico. Esto implica que las operaciones tienen que ser completadas antes del tiempo de decoherencia. Para esto se podría recurrir a la corrección de errores cuánticos, que, teóricamente, podría generar cálculos arbitrariamente largos (independientes de la decoherencia).

Pero esto trae otro problema, la escalabilidad, especialmente teniendo en cuenta el considerable incremento en qubits necesarios para cualquier cálculo que implica la corrección de errores.

Obviando estos (y algunos otros) problemas de carácter cuántico (que podrían llegar a ser fatales), podríamos preguntarnos, que problemas, a ciencia cierta, valdría la pena resolver con computación cuántica?, al menos hoy en día existen 3 algoritmos cuánticos, que supuestamente resuelven 3 importantísimos problemas que nuestros computadores lineales no pueden resolver (al menos eficientemente).

El primer algoritmo logra acotar el periodo de una función en tiempo polinomial, el segundo es el llamado algoritmo de acotación de Grover. Este algoritmo de acotación consigue hallar un elemento en una colección desordenada en un tiempo del orden de la raíz de N (mientras que en un computador clásico está demostrado que como máximo se puede hacer en un tiempo del orden de N), lo que implica un mejora sustancial en el manejo de bases de datos.

El tercer algoritmo, el famoso algoritmo de Shor, que loga factorizar grandes números en un tiempo considerablemente menor, que los computadores comunes. Este es un resultado notable para la criptografía pues con este algoritmo funcionando todos los sistemas de comunicación segura que hay hoy día serán completamente inútiles ya que al factorizar grandes números en sus factores primos, se pueden desencriptar todo tipo de claves o informaciones.

Como hemos visto si la computación cuántica logra llevarse a cabo podrá ser un gran avance para nuestra civilización, pero en ningún caso reemplazara nuestros computadores ordinarios, ya que probablemente serán más caros y complejos, y así como la relatividad es más exacta que la mecánica newtoniana, esta se sigue usando en muchos casos, ya que es más simple y tiene resultado bastante satisfactorios. No tengo muy claro si es posible, pero conociendo la capacidad que caracteriza a los computadores cuánticos, de realizar operaciones en forma paralela, se me ocurre, que podría tener una magnifica performance en otra tecnológica que promete mucho y sigue en pañales… la Inteligencia Artificial.

1 comentario:

Unknown dijo...

primera *O*!
aer, opinaré solo basandome en lo que pusiste, porque mi conocimiento respecto a esta tecnología es bastante mínimo ;_;!! cuando hablaste del código binario recorde pk es más fácil borrar... simplemente pk todo se cambia a 0, en cambio cuando se va ocupando es 011101 y así D:!!
me intereso el avance que está haciendo la cuántica en la mejora de los computadores, pero claro serían carísimos =__=! además me recordo a mi linda pantalla de celular que esta medio muerta y muy pronto muerta...

Gonzita, yo sé q te interesa mucho la cuántica y veo que este sería un buen lugar para que te desarrolles en la investigación ^^U!!! sería super bueno que lo siguieras y más que el hobby q siempre te ha llamado la atención, ahora con la U, te puedes desarrollar mucho más.

cuidate mucho, te quiero y por fin, nos veremos :3!
bye!