miércoles, 29 de julio de 2009

Potencias de Diez



No soy mucho de publicar videos pero este es una excepción, por su belleza, simpleza y por su gran mensaje de fondo. Este video me lo mostraron en mi primera clase de astronomía, solo para que tuviéramos claro las "distancias" en nuestro universo, en cierto modo no es algo nuevo, pero uno siempre se asombra de que a pesar de nuestro enorme "ego" como especie, no somos más que una molécula de agua en el océano.

Este video se llama "Potencias de diez" (en ingles: "Powers of Ten"), ya que recorre tanto el macro como el microcosmos avanzando en longitudes en un factor de 10, en un principio se aleja de la tierra mostrándonos la inmensidad del universo, dejando al descubierto que la posibilidad de que seamos los únicos seres inteligentes es prácticamente nula y como he escuchado por ahí; ante la vastedad del universo hasta Dios queda pequeño (curiosa frase, no la comentare aquí :P). El video continua con un viaje inverso hasta adentrarse en el increíble mundo de las partículas subatómicas, en donde las leyes de la relatividad de Einstein ya no se aplican, y todo los comportamientos estarán dictados por las "peculiares" leyes de la mecánica cuántica, un lugar en que las partículas tienen comportamientos de onda (comportamiento dual), siguen muchas trayectorias simultáneamente, y medir su velocidad y posición al mismo tiempo es imposible (Principio de incertidumbre).

Yo encontré extremadamente didáctico este video por lo que quise compartirlo, lamentablemente no lo encontré en español, pero está en un ingles bastante simple, además basta solo con ver las imágenes. Lo único que se puede criticar al video es que en el final habla sobre los quarks solo como una suposición, siendo que ya es de conocimiento popular su existencia y como (por ahora) son los ladrillos fundamentales de todas las partículas y por ende del universo mismo (*eso si el video es del 1977, así que tampoco es su culpa, pero hay que aclararlo).

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.