viernes, 27 de marzo de 2015

El algoritmo de Dios


Acabo de terminar de convertir este ejemplo de computación evolutiva que realicé hace años, pero de modo que no sea necesario utilizar ya un Applet de Java. Ahora el algoritmo se ejecuta exclusivamente mediante el intérprete de Javascript del navegador.

Además he mejorado el algoritmo original, de modo que ahora es posible interpolar funciones de dos variables (y no sólo de una como en el ejemplo original). Es decir; que el siguiente programa aproxima numéricamente la interpolación de funciones con dos variables mediante el uso de un algoritmo de computación evolutiva:



Para más detalles técnicos del funcionamiento del algoritmo podéis visitar el enlace con el ejemplo original. Y si necesitas el código fuente de esta revisión con Javascript nativo, déjame tu correo en un comentario en esta misma entrada y te lo mandaré.

El poder de la evolución

Puede parecer sorprendente, e incluso habrá quien no se lo crea, pero el Universo realmente sigue un sencillo algoritmo cuando tiende hacia la complejidad en ciertas circunstancias. Esta tendencia espontánea natural que, dadas las circunstancias, origina un proceso evolutivo, sigue el siguiente esquema:
t = t_inicial
Partimos de P(t)
hacer
    Q = cambioYvariacion[P(t)]
    Evaluación[Q]
    P(t+1) = selección[P(t) U Q]
    t = t + 1
repetir
La variable t representa el paso del tiempo físico a partir de cierto instante. En ese instante t_inicial empezaremos con una población P(t), que será el origen del proceso evolutivo. Esta población inicial debe poseer la cualidad necesaria para formar parte de este proceso evolutivo, que comenzará automáticamente en cuanto sea factible. El proceso, una vez iniciado, es el siguiente:

Primero, se produce un cambio natural siguiéndose las leyes físicas. Posteriormente, se evalúan implícitamente las posibles nuevas estructuras acontecidas durante el cambio anterior (Q) y se seleccionan aquellas estructuras que, siguiendo las mismas leyes naturales, sean las más estables en relación al mundo físico donde se encuentran.

Esta secuencia es la responsable de que exista complejidad en el mundo, puesto que es el único modo en que se puede buscar o conseguir, de un modo eficiente, orden dentro del inmenso caos que conforma el mundo. Consigue, por tanto, lo que el azar por sí sólo no tendría tiempo de conseguir. La posibilidad física de este modo de proceder es, sin duda, el responsable de que el mundo no sea por doquier un baile aleatorio de partículas: bien se podría decir (metafóricamente) que estamos ante el algoritmo de Dios.

En concreto, la propuesta de abiogénesis del profesor Jeremy England se basa precisamente en este mismo algoritmo. Su trabajo se limita, en realidad, a describir el paso P(t+1) = selección[P(t) U Q]:

Según el equipo del MIT liderado por Jeremy, la función de selección de aquellos individuos que evolucionan hacia la complejidad en sistemas lejos del equilibrio térmico (como el que conforma la Tierra), se basa en una búsqueda espontánea de las leyes del mundo hacia la disipación de calor. En el paso de seleccionar individuos, los más estables serán los que más energía consuman para generar trabajo y disipar calor, y serán sólo aquellas estructuras eficientes para generar calor las que persistan.


3 comentarios:

Jesús P. Zamora Bonilla dijo...

¿Para cuándo una prueba experimental, en la que surja un bicho de carne y hueso, y no una mera computación de ordenador?
Saludos

Samu dijo...

Ya existen ese tipo de pruebas: una de ellas es la propia evolución biológica. Y le ha llevado miles de millones de años conseguir un bicho de carne y hueso como el que pides. Sin embargo, si lo que buscas es una prueba experimental artificial, tienes, por ejemplo, el proceso de selección artificial que llevó del lobo al caniche mediante un simple proceso evolutivo del tipo que se comenta en esta entrada. Otro ejemplo es el proceso que llevó de una espiga casi incomestible al trigo moderno en unos pocos miles de años.

Todos esos ejemplos son pruebas vivientes de que todo proceso evolutivo (biológico, artificial, natural, computacional, etc.) sigue, y debe seguir, un algoritmo como el que comento en esta entrada. Esta simple secuencia de pasos parece ser el único modo en que una alta complejidad puede ser alcanzada, en un tiempo aceptable dentro de una inmensidad de posibilidades.

De todas formas, tengo la duda de si con tu comentario te referías a una prueba experimental para la teoría de Jeremy England en concreto. Si te referías a eso, pues entonces no tengo respuesta aún. Yo espero que algunas de las vías que tienen abierta en el MIT en ese sentido lleguen a buen fin. En cuanto haya alguna novedad al respecto no te quepa duda que seré el primero en divulgarlo por aquí ;). En principio, la teoría de Jeremy es refutable (la comunidad científica así se lo ha tomado al menos), por lo que, si se logra contrastar experimentalmente, sería ya un simple paso deductivo aceptarla como explicación de la abiogénesis.

Un saludo, Jesús. Gracias por comentar.

Jesús P. Zamora Bonilla dijo...

Hola, Samu
Por supuesto, me refiero a lo último.

Publicar un comentario