Computación Cuántica – La Desconcertante Guerra de las Álgebras

La física cuántica ( o mecánica cuántica ) no deja de ser un tema fascinante y a la vez desconcertante. Esto porque las cosas en el mundo subatómico se rigen por reglas completamente diferentes a las que estamos acostumbrados; y nuestro entendimiento de los fenómenos físicos se ha limitado históricamente a la física clásica donde cada cosa tiene un estado deterministico que se puede observar, medir y controlar de manera más o menos estable.

A este desconocimiento masivo debemos agregar la gran cantidad de esoterismo que encuentra uno en la “literatura” común sobre mecánica cuántica y sobre cómo esta explicaría la forma de realizar cosas como viajar en el tiempo, la tele-transportación de materia, la telepatía y otras tonterías de ese corte.

Sobre este “andamiaje” teórico es que el ser humano se encuentra de frente con un tema todavía más profundo: la computación cuántica. Es decir, la computación que se basa en los fenómenos o leyes de la mecánica cuántica.

Tengo mis reservas sobre el tema. Por momentos me resulta fascinante, y por momentos irritante. Pero bueno, nada que no haya enfrentado antes con muchos otros temas de esta experiencia humana.

Un dato que me resulta importante de aclarar es que en realidad el ser humano ha estado manipulando las cosas a nivel sub-atómico desde hace rato. Cada vez que un microprocesador procesa unos y ceros en realidad está procesando flujos de electrones (partículas sub-atómicas); haciendo que fluyan en mayor o menor intensidad por diferentes materiales y dispositivos (transistores, resistencias, diodos, etc.)

El punto medular de la computación cuántica radica en una álgebra distinta. Mientras la computación moderna está basada en el álgebra booleana 2 que podríamos definir como una simplificación determinística de las matemáticas que permite representar prácticamente cualquier cosa por medio de unos y ceros; la computación cuántica necesita una álgebra distinta porque se basa en modelos probabilísticos y no determinísticos. Es decir, mientras el estado de un bit es definitivamente uno o cero, el estado de un qubit se considera superpuesto (uno y cero a la vez) y hasta que es medido y adquiere uno de los dos estados, “abandonando” el anterior. Estamos hablando de la Lógica cuántica 3.

Entonces en gran medida la computación cuántica se centra en el debate entre modelos deterministicos y probabilísticos 4 y de cómo sacar mejor provecho de cada uno.

En mi próximo aporte quiero abordar otro aspecto de este tema: La coherencia y decoherencia.

Finalizo con esta frase que probablemente escribiría Edwin Shrödinger en su lecho de muerte:

“cada vez que alguien usa el Gato de Schrödinger
para afirmar cualquier cosa metafísica,
espiritual, o sobre universos paralelos,
el pobre gato se revuelca en su tumba.”

______

1: https://web.archive.org/web/20161104151733/http://computadoras.about.com/od/tipos-de-pc/fl/iquestQueacute-es-la-computacioacuten-cuaacutentica.htm
2: https://es.wikipedia.org/wiki/%C3%81lgebra_de_Boole
3: https://es.wikipedia.org/wiki/Lógica_cuántica
4: http://tornado.sfsu.edu/geosciences/classes/m698/Determinism/determinism.html
5: https://es.wikipedia.org/wiki/Gato_de_Schr%C3%B6dinger

Prototipos de Software con Computadoras Virtuales c9.io

Este es un post realmente corto.

Cuando uno está experimentando o desarrollando con tecnologías de software para cosas como desarrollo web y de aplicaciones móviles, sistemas como NodeJS o Python, visión computarizada, etc… usualmente requerimos instalar en nuestros computadores una cantidad importante de bibliotecas y paquetes para realizar pruebas con dichas tecnologías.

C9.io es un servicio comercial de máquinas virtuales en la web.

La verdad me ha parecido muy sencillo y completo.

https://c9.io

Todo es cuestión de crear una cuenta de usuario, ojalá enlazada con nuestra cuenta de usuario de github.com (si la tuvieramos) y vualá, podemos crear nuevas máquinas virtuales, clonar las existentes, y operarlas para instalar y desinstalar cosas a nuestro antojo casi ilimitado.

Una cuenta gratuita nos permitirá generar nuevas máquinas virtuales con ciertas limitaciones de capacidad de procesador, memoria RAM (512MB) y almacenamiento (2GB) que por lo general son suficientes para realizar pruebas de concepto o experimentación.

En próximas entregas estaré discutiendo un poco cómo realizar pruebas en C9.io para desarrollo de apps en ionic, nodejs, python-opencv entre otros.

El Tiny Tile con tecnología Intel

Hoy quiero presentarles nuestra primera impresión del TinyTILE de Element14. Se trata de una versión miniatura de la famosa placa Arduino/Genuino 101 (https://costaricamakers.com/?p=580), mide aproximadamente 35x26mm y de igual manera está basada en Intel Curie y es compatible con el software de Arduino. El TinyTILE tiene un costo de $39.00 al momento de escribir este tutorial y lo pueden conseguir en: la tienda de Element14

El tinyTILE posee 32bits, con una SRAM de 80kB y una memoria flash de 384kB, tiene instalado un sensor DSP (Procesador Digital de Señales ) de baja potencia, además de la opción BLE para el bluetooth, tiene los sensores del acelerómetro y giroscopio con 6 grados de libertad, posee un botón de “master reset” y un led que indica el estado de la alimentación (on\off), con una salida de voltaje de 3.3V.

Acá les dejo una guía muy sencilla de como iniciar y aprender más acerca del TinyTILE:

  1. Es importante tener instalado el software con el cual queremos empezar a experimentar con el tinyTILE, puede ser el muy conocido ARDUINO IDE (https://www.arduino.cc/en/Main/Software) o Intel Curie Open Developer Kit (https://software.intel.com/en-us/node/674972#). En este caso para el tutorial usaremos el software de Arduino.
  2. Hay que instalar las bibliotecas de Intel Curie y seleccionar la placa que es de tipo Arduino/Genuino 101

101

Nota: Es importante revisar que en el Administrador de Dispositivos, tenga el puerto correcto y haya detectado la placa utilizada.

101 error

 

devicemanager

EJERCICIOS:

En este caso se pueden utilizar los mismos ejercicios de práctica realizados por Jose Núñez en el blog de aprendizaje Arduino 101 (https://costaricamakers.com/?p=580 ) los ejercicios funcionan a la perfección con el TinyTILE de Intel.

En el caso que ya hayan realizado los ejercicios y quieran probar con algo diferente, pueden intentar con estos recursos adicionales:

TinyTILE – Getting Started Guide: https://www.element14.com/community/servlet/JiveServlet/previewBody/84364-102-1-362023/tinytile-GettingStartedGuide.pdf

TinyTILE – Pin Mapping: https://www.element14.com/community/servlet/JiveServlet/previewBody/84365-102-1-362024/tinytile-Pin-Mapping.pdf