sábado, 21 de febrero de 2009

Visión y Movimiento

La visión es un parámetro que adquiere el individuo por herencia de sus progenitores. Exiten cuatro niveles de visión relativas al número de casillas que puede discernir más allá de su posición:

- Nivel 0: sin visión, el individuo es ciego y se mueve erráticamente con la esperanza que el azar lo lleve hasta la comida.

- Nivel 1: capacidad de ver las casillas de su contorno con la ventaja de realizar un movimiento dirigido según intereses.

- Nivel 2: visión de dos casillas más allá rspecto de su posición. La ventaja respecto a percibir depredadores es significativa.

- Nivel 3: máximo nivel de visión posible con hasta 3 posiciones desde su ubicación.


Esta particularidad de niveles, con una clara ventaja evolutiva a medida que se tiene mayor distancia de visión, tiene en contrapartida un consumo energético. Esto es, a mayor nivel de visión, las decisiones de movimiento son más acertadas y efectivas, pero supone un gasto en la energía del individuo. En cierto modo podría ser un equivalente al cerebro humano ya que la única decisión que toma el Blable, el movimiento, está razonado según sus necesidades y esto debe suponer en consecuencia una inversión en energía. Recordemos que el cerebro humano es el órgano que más consumo calórico tiene con un peso relativo de entre el 1,5 y el 2 por ciento y un consumo del 20% de la energía.



La visión del Blable viene fijada matemáticamente (a la hora de programar) por una serie de fórmulas matemáticas que le permitirán "saber" qué hay a su alrededor. La imagen de arriba, representa un hipotético mundo de 7x7 casillas donde un Blable ciego desconocería dónde está la comida y, aunque no tendría consumo energético derivado de dicha funcionalidad, tendría un movimiento errático y poco efectivo en busca de alimento con el consiguiente gasto energético en movimientos. En cambio, un Blable con visión de nivel 3 (y situado en el centro de la cuadrícula) tendría una visión completa del mundo y sabría exactamente dónde está la comida, haría los movimientos precisos para alcanzarla a costa de cierto consumo de su energía derivado de su capacidad de proceso y análisis de su entorno.

¿Cual es la explicación matemática del movimiento? (adelanto que hay un error, a ver si te das cuenta):
Existen dos valores que vienen dados; el primero es la altura del mundo Blable. En el caso del ejemplo es una matriz bidimensional de 7x7 y, por lo tanto, la altura es 7 (en adelante ALT) El otro valor que también conocemos es la posición del Blable en adelante POS) que, recordemos, es uno de los datos que conjuntamente con su información genética, guarda el Blable en su "interior". Pues bien, fíjate en la imagen de abajo:



El Blable 6 (femenino, por cierto) se encuentra en la celda número 25 y, para él, digo, para ella!, las fórmulas matemáticas funcionan perfectamente.
Ejemplo: si el Blable 6 tuviese una visión de 2º nivel conocería de la existencia del Blable 1 (femenino también) Si en su genética tuviese el carácter gregario buscaría su proximidad al no tener alimento a la vista. Su movimiento natural sería moverse a la celda 17 ó 18. Pongamos que se mueve a la casilla 17, la fórmula matemática para ese movimiento sería:

x=pos-alt-1

Siendo POS=25 y ALT=7 la cosa quedaría así:

x=25-7-1

Resultado:

x=17

Por lo tanto x (o la posición de destino del Blable 6) sería igual a 17 y el movimiento sería correcto. ¿Dónde está el error del que hablaba antes? Fácil, ¿qué ocurriría en el caso del resto de Blables que vemos en la imagen y que están al límite del mundo Blable? Pongamos el ejemplo del Blable 2, sí, el de la esquinita. Imaginemos que tiene una visión de nivel 1 y en consecuencia, no tendría comida cercana. Tampoco tiene un depredador que condicione su movimiento y todo parece indicar que haría un movimiento "al azar". Pues bien, al estar en los límites de su mundo, sería imposible hacer el mismo movimiento que el Blable 6 ya que se iría a la celda número -1 lo cual es imposible:

x=pos-alt-1
x=7-7-1
x=-1

Salirse fuera de los límites no parece aceptable pero vayamos un poco más allá; ¿qué ocurriría con el Blable 5? Lo indicaré con la misma fórmula anterior:

x=pos-alt-1
x=15-7-1
x=7

Fíjate que en este caso el Blable 5 que está en la casilla 15, ha decido hacer un movimiento de 1 casilla arriba y a la izquierda y se ha "teletransportado" a la 7 que le queda muy alejada. Este movimiento sería inaceptable y se saldría de las normas establecidas haciendo que las fórmulas matemáticas no funcionen tampoco en este caso.

¿Como solucionar que los Blables (no sólo los femeninos jeje) salgan del mundo Blable? ¿Qué correcciones se deberían hacer a las fórmulas para impedir salir fuera o saltar a casillas que no correspondan? Fácil, haciendo uso del valor restante (en adelante MOD) de la división de toda la vida.

Mañana indico la solución pero te invito a que me ofrezcas una alternativa al análisis del resto de las divisiones.

LA SOLUCIÓN
Me he cogido una cerveza de la nevera para poder explicar mi solución matemática al problema de cómo evitar que los Blables se salgan de su mundo o hagan movimientos extraños. Aceptaré sugerencias, ideas y cualquier cosa que me ayude a mejorar el proceso; HELP!

Basándonos en un diagrama de flujo, el proceso de visión/decisión/movimiento del Blable sería el siguiente.

Nivel 1 de Visión:


Nivel 2 de Visión:



Nivel 3 de Visión:



Y finalmente todo el proceso completo (alguien me echa una mano con el código?; se acepta pseudocódigo):



Teniendo en cuenta que esta entrada está dedicada a la Visión y Movimiento, invierte unos segundos a ver este video que ha preparado la gente de Microsoft acerca de cómo ven el futuro cercano:

<a href="http://video.msn.com/?playlist=videoByUuids:uuids:a517b260-bb6b-48b9-87ac-8e2743a28ec5&showPlaylist=true&from=msnvideo=es-ES" target="_new" title="Future Vision Montage">Video: Future Vision Montage</a>

¿Te has fijado bien? No hay ni un sólo ratón.

miércoles, 18 de febrero de 2009

Game of Life - El juego de la Vida

¿Alguien tuvo la misma idea antes que yo?

El matemático inglés John Conway publicó en octubre de 1970 en la revista Scientific American, en la columna de juegos matemáticos, su "Game of Life" o Juego de la Vida. Con un concepto igual de "mundo en rejilla", John Conway pensó en aplicar dos simples reglas:





Primera Regla: Una casilla vacía con exactamente 3 células vecinas vivas al turno siguiente estará viva

Segunda Regla: Una casilla viva con 2 ó 3 vecinas vivas sigue viva, en otro caso muere o permanece muerta (por "soledad" o "superpoblación")

Con estas dos simples reglas consiguió todo un fenómeno social de seguidores que buscaban tener su propio diseño. Entre ellos destacan los Block, Boat, Blinker, Toad, Glider como estructuras conocidas pero existen algunas ciertamente curiosas y es que, recordemos que únicamente intervienen estas dos reglas, las hay con una esperanza de vida definida como el DieHard que "muere" después de exactamente 130 turnos o el Acorn que desaparece en 5206 turnos.

¿Quieres ver un video de la simulación que diseñó Conway en 1970? Aquí hay un video:



La cosa se "desmadró" de tal manera que el propio Conway ofreció 50 dólares a quien descubriese patrones que crecieran indefinidamente. Dicho y hecho, el primero fue descubierto a los dos meses por Bill Gosper. No deja de ser curioso que el primero en descubrir un patrón que cumpliera la premisa que Conway lanzó como reto, fuese el mismísimo fundador de la comunidad hacker. ¿Qué creó semejante pájaro? ¿Cómo consiguió los 50 dólares? ¿Qué inventó? Pues nada más y nada menos que el Gliders Gun (disparador de Gliders):

(ejemplo de Gliders Gun)


No te pierdas la oportunidad de ver esta espectacular estructura que algún "enfermo" se entretuvo en programarla para una Sony PSP: el Disparador de Gliders (Gliders Gun)



Se pueden encontrar un gran número de webs que te permiten descargar el Juego de la Vida de Conway pero, si quieres "echar una partidita" rápida, vé a esta página web (http://www.math.com/students/wonders/life/life.html) y haz click en Play Life.

Teniendo en cuenta que la belleza del modelo de Conway con sus dos únicas reglas es infinita, las diferencias fundamentales que yo veo entre Game of Life y Blables son:

1.- Cada individuo tiene su información genética propia.
2.- Capacidad de movimiento individual.
3.- Mundo compartido por tres especies diferentes.
4.- Capacidad evolutiva del entorno.

Espero que disfrutéis a Conway tanto como lo he hecho yo.






Enlaces, copiones y similares

Juego de la Vida de Conwal:
Existe una empresa española llamada VAXA SOFTWARE que ha creado una versión comercial del juego de la vida. Apararéntemente es gratuito así que si te apetece tener tal reliquia en tu pc haz click AQUÍ


Proyecto Genoma:
Por casualidad me informan que existe un proyecto "demasiado" parecido al que estoy desarrollando realizado en C++ (yo escogí una plataforma Visual .NET) El programa es realmente sencillo en cuanto a los valores y datos que maneja pero no deja de ser curioso las múltiples similitudes que guarda con el Proyecto Blables. Puedes descargarlo desde la web www.biologia.org (leer artículo)

Depredarores - iTERS

¡Los depredadores ya tienen nombre! La palabra escogida es ITERS que suena parecido a "eaters" en inglés y porque además es el nombre del proyecto de colaboración mundial encargado de demostrar la viabilidad científica y tecnológica de la energía proviniente de la fusión para la producción de energía que, dicho cripticamente, tengo cierta relación.

Por cierto, la palabra ITER como proyecto de búsqueda de energía mediante la fusión, viene del latín y significa "camino". Los miembros son la Unión Europea, Canadá, Japón, la Federación Rusa y, desde 2003, los Estados unidos, China y Corea. La oficina doméstica de la EU está en Barcelona.





(ITER: International Thermonuclear Experimental Reactor)



Características de los ITERS

Reproducción: Los ITERS se preproducen asexualmente ya que no existe un individuo macho o un individuo hembra. Al llegar a un máximo de energía, el ITER se divide en dos, dando lugar a un segundo depredador que hereda directamente las características del "padre" y la mitad de su energía.

Edad: los ITERS no tienen edad. La muerte del depredador se produce únicamente por falta de alimento, es decir, cuando el individuo llega a nivel "cero" de energía.

Visión: los ITERS tienen un nivel de visión 2 fijo sin posibilidades de evolución.

Comportamiento: no presentan características especiales que condicionen su movimiento como el gregarismo. El movimiento se produce únicamente condicionado por su visión que le indica dónde está la comida (Blables) o, en caso de no existir alimento, su movimiento es aleatorio en busca de la misma.

lunes, 16 de febrero de 2009

EL MUNDO BLABLE

El Mundo Blable es representado por una rejilla (de 50x50 celdas en el ejemplo) por donde los individuos se mueven libremente en base a su información genética que les condiciona a ser gregarios, líderes solitarios, activos, "vagos", aventureros, etc...

En este mundo existen unos límites (arriba, abajo, izquierda y derecha) que no pueden ser sobrepasados y donde, como se ve en la imagen de ejemplo, convivirán las tres especies:

- En verde: Las plantas o comida como recurso energético
- En negro: los depredadores
- En azul y rosa: el Blable macho o hembra



El Mundo Blable presenta un ciclo de estaciones que influyen, como elementos externos, al desarrollo de la "vida" contenida en él. Estas dos estaciones están definidas como lluvia y sequía. En la estación de lluvias el crecimiento de plantas es elevado con lo que la inyección de energía en el sistema es alto favoreciendo así la supervivencia y reproducción de los Blables. En la estación de sequía la producción de plantas disminuye drásticamente, el alimento escasea y, en consecuencia, se produce una reducción de las posibilidades de supervivencia que propicía un descenso poblacional favoreciendo a los individuos mejor preparados para afrontar esa temporada de sequía.

Genética


Uno de los puntales del proyecto. Los Blables tendrán una reproducción sexual en la que la información genética de uno y de otro se unirán a partes iguales mediante las leyes de Mendel incluyendo los dictámenes dominantes y recesivos.

Por herencia:

VISION
SEXO
ESPERANZA DE VIDA
METABOLISMO
PESO
CARÁCTER


Variables del individuo:

VIVO
ENERGÍA
EDAD
POSICIÓN


Las variables que definen la genética del individuo, en el momento de su nacimiento, tendrán cierta aleatoriedad de mutación. Dicho de otra manera, pongamos que la esperanza de vida de la Blable Madre es de 90 años y que la esperanza del padre es de 85; con estos valores el Blable Hijo sólo podría esperar vivir entre 85 y 90 años salvo que, con probabilidades bajas, se produzca una mutación que le de un valor diferente dándole la posibilidad potencial (podría ser devorado antes, claro) de vivir más o tal vez menos.

Proyecto Blables

Aproximadamente en el 2006 tuve la inquietud de averiguar cómo funcionaba exactamente esto de la evolución de las especies. Quien más y quien menos ha leído, oído o escuchado las peripecias de un tal Mendel y sus guisantes o las andanzas de un "cazador de ratas" llamado Darwin. No mucho más sabía yo cuando me puse a leer "Una Breve Historia de Casi Todo" (ganador del Aventis Science Book Prize de 2004) y empezó en mí el gusanillo llamado curiosidad por confeccionar un modelo informatizado del proceso evolutivo.


¿Ambicioso? No me lo pareció en su momento pero a medida que iba avanzando en el desarrollo del bendito software que iría a ser las delicias de mi sentido científico, más barreras, muros y complicaciones me encontraba por el camino. Tanto fue así que, en un alarde de capacidades que no tenía, comencé a programar "al estilo occidental"; sin haber planificado el problema en su totalidad y, por cuatro veces (tres en entorno wintel y una para WinCE) tuve que dejar el proyecto a medio mitad porque solucionar un problema imprevisto suponía rediseñar el modelo completo del programa.

Dos años dándole vueltas a cómo abarcar el problema fue tiempo suficiente para arañar la supercífie de lo complicado de la biología y sus procesos, de la relación entre especies y su entorno. Tan compleja es mi visión a día de hoy que no puedo sino admirar el complejo entramado llamado vida que cubre la superfície de la tierra, flota por el aire y se encuentra oculto en la profunidad de la tierra o el mar.

En esos dos años, hasta hoy, he ido dándole vueltas a la idea, intentando recortar aquí y allá elementos que son "prescindibles". Evidentemente no podía recrear el concierto celestial con el ciclo de vida de las estrellas aunque, sí, las estrellas, contribuyen con su muerte al proceso evolutivo de manera crucial. Llegué a simplificar tanto que llegué a la conclusión que una sola especie era suficiente aunque rápidamente pensé en añadir dos más: los Blables, su alimento (o plantas) y sus depredadores (aún sin nombre)

Hace aproximadamente cuatro meses decidí ponerme manos a la obra. El proyecto Blables verá la luz, no sé cuándo, pero este 2009 tendré a mis "bichitos" correteando por la pantalla en busca de comida y evitando a sus depredadores, reproduciéndose según las leyes de Mendel y sobreviviendo según marque Darwin y sus implacables leyes del mejor adaptado.

Alea jacta est.

Proceso Evolutivo


La evolución de las especies es un tema realmente interesante como ejercicio intelectual. Siempre que intento pensar sobre este divino mecanismo (me autopermito lo de divino) llego a la conclusión que la vida en la Tierra es un complejo equilibrio donde todos los huecos se acaban completanto con un organismo que saca provecho de ello; es decir, que si dejas caer al suelo una miga de pan de tu mesa, con toda seguridad que otro organismo (tal vez más simple que tú) extraiga energía de ese trocito de pan. Ese "bichejo" obtendrá una posibilidad de vivir y empujar a su especie hacia adelante dando así la oportunidad a sus depredadores de obtener más alimentos si sus presas consiguen alimento "extra" y así todo el proceso.

Al contrario, si un organismo no encuentra alimento, su población se ve mermada y en consecuencia sus depredadores afrontarán una escasez de alimentos y, por lo tanto, una reducción en su número como es lógico. Este equilibrio no es delicado en mi opinión, más bien lo definiría como preciso y casi matemático; si hay un gran número de cebras en la sabana africana, habrá una mayor posibilidad de que la población de leones aumente gracias a esta abundancia de alimento.

Y la cosa no acaba aquí, sino que de alguna manera u otra todos estamos conectados en una super-cadena alimenticia que nos hace imprescindibles en mayor o menor grado ya que el escarabajo tal aprovecha los excrementos, el buitre cual aprovechará los restos que el león no quiera o no pueda digerir, las moscas, bacterias y finalmente las plantas absorberán del suelo todos los sobrantes para, en un ciclo muy simplificado, dar de comer de nuevo a la cebra que dará comienzo al ciclo descrito.

En este punto se añade un factor que le da emoción a este círculo, enorme, recordemos, alimenticio que, aunque apasionante e intrincado, llegaría sin remisión a un equilibro estable y sin más misterios que ver cómo la energía se transforma y pasa a formar parte de uno u otro organismo. Este factor es la evolución.

La evolución de las especies se basa en cambios aleatorios (la grandísima mayoría de veces imperceptibles) en los mecanismos que rigen los metabolismos de las especies, su funcionamiento, apariencia, carácter, etc. El primer tigre que tuvo rallas fue mucho más efectivo a la hora de cazar dado que se camuflaba más efectivamente y, al obtener más alimento (más cebras por seguir con el ejemplo), obtenía más posibilidades de trasmitir su diferencia evolutiva. ¿Había más cebras? No, consiguió más cebras en detrimento de sus compañeros de especie y por lo tanto, como individuo, pudo aumentó su población con su información genética. ¿Evolucionó el tigre para tener rallas? Existe controversia con esta afirmación; yo creo que el tigre obtiene cambios substanciales cada cierto número de generaciones, unas rallas, un pelo más largo, tal vez más corto, una mejora en el transporte del oxígeno por parte de los glóbulos rojos, una vista más efectiva por el día (o por la noche) El entorno decide si esa mutación o cambio es más efectiva que la del resto y, por lo tanto, alzarlo como "triunfador genético" respecto a sus congéneres. Al estar en ventaja, sus posibilidades supervivencia aumentan, sus posibilidades de procreación aumentan también y, en cierto tiempo, podremos observar como todos los tigres tienen rallas.

Lo que da el toque mágico es que este proceso se da en todas los organismos vivos por lo que, lamentablemente para el tigre, la cebra de turno también está en el mismo juego que él y el azar le ofrece cambios que, en algunos casos, le permitirá ser más veloz, o necesitar menos agua o aprovechar más energía del alimento que ingiere. Imagina que la cebra desarrolla una visión más agua, tal vez las rallas del león ya no sea suficiente estrategia para cazarlas. Tal vez una visión nocturna sea la clave para hacerse de nuevo con el preciado bocado de cebra. ¿Y si la cebra desarrollase una excelente visión nocturna? Pues el depredador se vería obligado a una extinción salvo que uno de sus congéneres obtenga por azar una ventaja que, de nuevo, le hará estar por delante de sus compañeros a la hora de cazar. Y no olvidemos los elementos externos como el clima! Una sequía dará como resultado menos vegetal alimento para las cebras que, descenderá su número y, consecuentemente, los leones verán su despensa más vacía ¡o no! ya que una población mal alimentada dará como resultado unas presas fáciles aunque ello dé como resultado una superpoblación de leones que se verá reducida al quedarse sin alimento rápidamente si esquilman la población de sus presas.

Todas estas ideas (simplificadas) me parecieron interesantes y tuve la idea de plasmarlas en un programa informático. ¿Un juego? ¿Una simulación? Ni idea, el objetivo es crear unos organismos con sus características (rallas, visión, alimento, etc.) que, mediante mutación aleatoria, un proceso de procreación y unos insidiosos depredadores, sean capaz de evolucionar y dar como resultado una especie diferente, un paso adelante con respecto a generaciones anteriores.

¿Te apuntas?