La falda. Un simposio entre amigos.

Durante los días 9, 10 y 11 de abril he participado en el primer Simposio (acá faltó la bebida y la discusión en mesa redonda) Regional de Mecánica Estadística, Teoría de la Información y Biofísica. Que fue hecho en el Hotel Residencia Serrana de la Falda ( http://www.iose.com.ar/2005/turismo/lafalda.asp). En el cual expuse sobre el tema de redes sociales, pero como vino la “crem de la crem” de la física estadística argentina. Pude escuchar charlas sobre los más variados tópicos de la ciencia actual. Bastante lindo el lugar y además a diferencia de otros congresos en este me pagaron todo!! Alojamiento y comida. Toda una experiencia interesante.

O(n*log(n)) versus O(n^2)

Este es un ejemplo de como perjudica al tiempo de cálculo la complejidad temporal. Supongamos tener dos algoritmos para ordenar una lista de objetos, uno simple con costo O(n^2) (1) y otro complejo con consto O(n*log(n)) (2). Supongamos tener una super computadora que ejecuta 10^8 operaciones por segundo, le programamos el algoritmo (1) para que ordene n datos. Y tenemos una computadora vieja que realiza 10^6 operaciones por segundo, le programamos el algoritmo (2) para que ordene también los n datos. Luego para ordenar 1 millón de datos la super computadora tardará

t=(10^6)^2/10^8=10000 segundos ó aproximadamente 2,7 horas.

en cambio la computadora vieja tardará

t=10^6*log(10^6)/10^6=13,81 segundos.

Saque usted sus propias conclusiones ….

La 3ra ley de Newton es una condicón necesaria y suficiente para garantizar el equilibrio?

Tanto en los cursos elementales de secundaria como en al ámbito de la enseñanza universitaria, siempre se pregona. “Si la resultante de un sistema de fuerzas es nula el cuerpo está en movimiento rectilíneo uniforme ó está en reposo”. Esto es una condición necesaria y suficiente para garantizar el equilibrio en muchos problemas de la vida cotidiana. Es decir (son vectores):

a=0 R=0.

Pero hay casos (mal llamados patológicos) en los cuales es tan solo una condición necesaria pero no suficiente para garantizar el equilibrio. Es decir (son vectores):
a=0 => R=0 pero no la recíproca.

Uno de esos casos es cuando R(t)=k*m*sqrt(v) (raíz cuadrada de la velocidad) y se mueve en una línea recta. En este caso cuando x(0)=v(0)=0 aparecen dos soluciones:

v(t)=0 y v(t)=1/2*k*t^2.

Es decir una solución es la esperada v(t)=0 pues R(0)=0, pero la otra también es cierta! Es decir el cuerpo espontáneamente se mueve a pesar que la resultante es nula inicialmente.

Otro caso es el resorte malo, es decir cuando R(t)=k*m*sqrt(x), en este caso cuando x(0)=v(0)=0 también admite dos soluciones:

x(t)=0 y x(t)=1/144*k^2*t^4.

Como en el caso anterior v(t)=0 pues R(0)=0, pero aparece un movimiento espontáneo otra vez. Santas bifurcaciones batman! Que camino escogerá la naturaleza en este caso? En los libros de mecánica racional en los cuales aparecen estos casos simplemente enuncian “Estas fuerzas son patológicas y no pueden aparecer en la naturaleza por los que la condición para las fuerzas naturales es siempre necesaria y suficiente”. Pero serán tan patológicas o lo patológico es la puerta a algo nuevo?

Que es R?

El lenguaje R es un sistema para análisis estadísticos y gráficos creado por Ross Ihaka y Robert Gentelman. R tiene una doble naturaleza, una es como lenguaje de programación y otra como intérprete de órdenes. R es considerado un dialecto del lenguaje S creado por los laboratorios Bell. S está disponible como el programa S-PLUS en su versión comercial. En cambio R se distribuye de forma gratuita bajo términos de la licencia GPL, su desarrollo y distribución son llevados a cabo por varios estadísticos conocidos como el Grupo Nuclear de Desarrollo de R. R está disponible en varias formas, pero el código fuente está escrito principalmente en C y algunas rutinas en Fortran, esencialemte para máquinas Unix y Linux o como articvos binarios para Windows y Linux, Macintosh y Alpha Unix.

Los archivos necesarios para instalar R, ya sea desde las fuentes o binarios, se distribuyen desde en sitio internet Comprehensive R Archive Network (CRAN) junto con las instrucciones para su instalación. Para las diferentes distribuciones de Linux, los binarios están disponibles para las versiones más actualizadas de éste.

R posee muchas funciones para análisis estadísticos y gráficos, esto últimos pueden ser visualizados de manera inmediata en su propia ventana y ser guardados en varios formatos (jpg, png, bmp, ps, pdf, emf, etc.). Los resultados de los análisis estadísticos se muestran en pantalla y algunos resultados intermedios (como valors P, coeficientes de regresión, etc.) se pueden guardar, exportar a un archivo, o ser usados en análisis posteriores.

El lenguaje R permite al usuario, por ejemplo, programar bucles para analizar conjunto sucesivos de datos. También se puede combinar en un solo código fuente diferentes funciones estadísticas para realizar análisis más complejos. Los usuarios de R tienen a su disposición un gran número de programas escritos para S y disponibles en la red. La gran mayoría pueden usarse directamente en R.

Al principio, R puede parecer demasiado complejo. Pero de hecho una de las características más sobresalientes de R es su enorme flexibilidad. Mientras que muchos programas de análisis guardan los resultados directamente, R guarda estos resultados como “Objetos”, de tal manera que se puede hacer una abstracción de resultados. De hecho el usuario puede extraer solo aquella parte de resultado que le interese. Por ejemplo, si uno corre una serie de 20 regresiones y quiere comparar los coeficientes de regresión, R le puede mostrar únicamente los coeficientes estimados, de esta manera los resultados se pueden resumir en una sola línea.

Cuanto cuesta borrar un número tan grande como un googol-plex!!

Ya que de googol-plex (px de ahora en más) hablamos hice unos interesantes cálculos de cuanto cuesta y que energía se necesitaría para borrar un número tan grande como un px. Para dar una cota mínima uso el primer principio de Landauer:
http://en.wikipedia.org/wiki/Rolf_Landauer
que dice: El borrado de un bit consume o genera un incremento de la energía interna de un sistema en un valor E=K*T*ln(2) donde K=1.38 Joule/kelvin es la constante de Boltzman y T es la temperatura absoluta en kelvin.

Asumamos que tengo un programa que genera un px cifra por cifra y lo mando al basurero como ./plex > /dev/null &

Como un 1px=10^googol este tiene 1+10^100 cifras que en formato ASCII insumen 7 bits por cifra, lo que da 1px=7*10^85 TeraBits. Si se asume que el micro trabaja a 50 grado (290 grados kelvin) la energía en borrar un px será de Epx=3.12018*10^79 joules mínimos.

Si tuviera que pagar ese consumo en a la EPE, sabiendo que 1Kwhora=3600 Joules, da una cifra de 8.66716*10^75 KwH. Si el costo del KwH es de 0.19$ (según la epe para consumos mayores a los 250 kwh) suponiendo una cotización de 3.1$ por dolar daría 5.3121*10^74 u$. Como el producto bruto mundial anual es de 1.25*10^14 u$ por año… todo los 600 mil millones de habitantes tardarían 4.2497*10^60 años en pargarle a la EPE. Tengase en cuenta que la edad del universo es de 15 mil millones de años o 1.5*10^10 años. (Maa sii me cuelgo y ya está….)

Ahora bien todo ese calor generado por nuestro micro iría al aire que nos rodea… el volumen total de aire del planeta es de 214*10^12 metros cúbicos, la densidad media del aire es de 1kg/m^3, y su calor a presión constante es de Cp=1.0073*10^(-3) joule/(kg*grado kelving). Lo que daría un incremento de temperatura aplicado el primer principio de la termodinámica de 1.44*10^68 grados kelving… Flor de efecto invernadero…

Moraleja… déjense de joder con las computadoras que van a causar la extinción de la raza humana. 😉

El Muestreo Apareado

El Muestreo Apareado, MA (ó Matched Sampling en inglés) es usado con frecuencia para calcular el efecto casual de algunas intervenciones, generalmente cuando no es posible efectuar un muestreo aleatorio simple. Donald B. Rubin fue uno de los que dio el mayor aporte a esta disciplina desde al década de los 70 del siglo pasado (1970 por si no se entiende…).
El MA tiene como finalidad eliminar los potenciales efectos de “confusores”. El poner en práctica un diseño de apareado involucra el uso de muestreos adicionales para poder obtener una cuota apropiada de personas que deben satisfacer el criterio de apareo. Este trabajo adicional es sustancialmente importante, y puede proporcionar un diseño de apareo menos atractivo que usando técnicas no apareadas con análisis de covariansa.
(dentro de poco lo completo más…)

Sobre lenguajes artificiales

Casualmente hoy leyendo sobre los lenguajes artificiales, como ser el klingon o el lojban o el fith,,, me puse a pensar si no será conveniente redactar las leyes en argentina en algún lenguaje artificial para evitar las clásicas malas interpretaciones. Porque no se conoce el espíritu de la ley o se perdió o quien sabe que favorable interpretación exista para los abogados. Creo que el lojban es el ideal para este tipo de asuntos, ya que es un lenguaje diseñado para evitar las ambivalencias.

Algoritmo Mundo Pequeño

Este es el pseudocódigo de un algoritmo para jugar con sociedades artificiales, por supuesto usando teorí­a de grafos y matriz de adyacencia no ponderada. Cuando dice generar matriz se refiere a generar una matriz regular con 2*k enlaces por vértice

Acá se puede experimentar con los famosos seis grados de separación.

La piedra en el zapato de la física Argentina. "Nullius addictus iurare in verba magistri"