miércoles, 12 de octubre de 2005

Criticalidad Auto-organizada en el Juego de la Vida (parte 2)

Un autómata celular (AC) consiste de una lattice (un enrejado, un arreglo, ...) en donde cada celda tiene cierto valor, o estado. Lo importante en un AC es que a cada lapso de tiempo los estados de cada celda van cambiando de una manera particular: toman en cuenta los valores de las celdas próximas (la vecindad de la celda) y en base a estos, se da el nuevo valor de la celda en cuestión. Esto se hace así para TODAS las celdas de la lattice (al menos así sucede en una versión de AC sencilla). En realidad, un AC ideal tiene una lattice infinita, pero como implementar esto en una computadora es imposible, se asume por lo general una lattice finita, y para subsanar esto de alguna manera, se implementan también condiciones de frontera, que simplemente indican qué sucedera con las celdas de la lattice que se encuentren en los bordes de la misma.

Aunque todo esto en sí no representa gran complejidad, ni un trabajo arduo para programar, lo curioso es que, a nivel global, el AC irá generando por sí mismo comportamientos que el programador (o el matemático) tal vez no se había imaginado que surgirían, no a partir del código programado por lo menos.

Pues bien, el Juego de la Vida es un tipo particular de AC. Consiste de una lattice de 2 dimensiones, donde a cada celda se le conoce como célula. Una célula puede estar viva o muerta. A cada paso de tiempo, para todas las células, se debe considerar cuántos vecinos vivos tiene (en una vecindad conocida como de Moore, que considera solamente los 8 vecinos más próximos a la célula: los 2 de los lados, arriba y abajo y los 4 en las diagonales):
  • Si la célula está viva, y la cantidad de vecinos vivos es 2 o 3, entonces la célula permanecerá viva al siguiente paso de tiempo. En cualquier otro caso, morirá (por 'aislamiento' si tenía menos de 2 vecinos vivos, o por 'sobrepoblación' si tenía mas de 3 vecinos vivos).
  • Si por otra parte la célula está muerta, y la cantidad de vecinos vivos es de exactamente 3, entonces al siguiente paso de tiempo, una nueva célula viva nacerá ahí.
Así de sencillo... ¿o no? Cuando John Horton Conway ideó el Juego de la Vida en 1970, planeaba solamente hacer un juego o reto matemático en el cual los lectores (el Juego de la Vida apareció por primera vez en una revista) no pudieran fácilmente predecir qué sucedería en la rejilla a partir de cualquier configuración inicial dada. Pero a partir de ello, mucha gente comenzó a interesarse en este Juego, y cada vez más cosas nuevas eran publicadas como curiosidades, propiedades y descubrimientos que el juego de Conway tenía. Así, se comenzó por clasificar a los 'seres vivos' que podían residir en el juego: siguiendo sus reglas, suceden ocasiones en que las células quedan agrupadas de tal forma que juntas forman organismos más complejos, con distintas propiedades: algunos solamente permanecen estáticos sin importar cuanto tiempo pase; otros tienen formas que ciclan con un período dado, pasando por otras formas hasta regresar a la original (pero quedándose quietos en un lugar de la rejilla); otros incluso se mueven, diagonal u ortogonalmente; y hay los que también generan y se 'comen' a otros tipos de organismos. El Juego de la Vida parecería tener 'vida' en sí mismo.

Desde entonces muchas cosas se han dicho ya sobre el tema. Luego de descubrir y clasificar a los organismos más comunes que suelen aparecer en un Juego de la Vida cualquiera, se comenzaron a descubrir más propiedades, por ejemplo aquella que dice que, a partir de una configuración inicial aleatoria, si se deja correr el Juego de la Vida por mucho tiempo, la población de células vivas con respecto a la cantidad total de células, tiende al 3%. O aquella en donde se demuestra que el Juego de la Vida tiene la capacidad de simular una máquina de Turing, dándole entonces propiedades de cómputo universal.

Todo esto, aunque aparentemente ajeno al fenómeno de CAO previamente mencionado, es en realidad muy importante para unificar conceptos. Resulta que podemos decir que una configuración dada de Juego de la Vida se encuentra o no en un estado de reposo (recordemos que un sistema con CAO tiende de manera natural a un estado crítico donde hay un aparente reposo). ¿Cómo saber cuándo el Juego de la Vida llega a un estado de reposo? Primero que nada, el Juego de la Vida no está en estado de reposo si las células están cambiando constantemente de posición y número, sino que hay ciera repetición en los patrones del juego, pero como esto es bastante ambiguo, aprovechemos lo que hasta ahora hemos observado sobre el Juego de la Vida.

Una forma 'obvia' de intentar definir un estado de reposo en el Juego de la Vida podría ser esperar hasta que todos los organismos que residan en un momento en la rejilla se conviertan en organismos estáticos, que no se muevan ni cambien no importa cuanto tiempo transcurra. Sin embargo, esta respuesta 'obvia', está equivocada: muchas veces sucederá que nunca se pueda llegar a un estado así. (Otra respuesta trivial sería esperar a que todas las células mueran, situación en la que se cae de nuevo en una rejilla estática, pero una rejilla completamente vacía es improbable (y más improbable entre más grande sea la rejilla), y es poco interesante también...). Tomemos pues, un camino alternativo:

Si tomáramos una fotografía a una configuración de la rejilla del juego en un momento dado, y continuáramos tomando fotos y las fuéramos comparando conforme las sacamos con las previamente realizadas, nos podríamos ir dando una idea de cómo evoluciona el juego. Pues bien, si en un caso particular resultara que una fotografía es idéntica a otra previamente tomada, podremos saber entonces que el juego ha entrado en un estado tal que volverá a repetirse después de cierto período de tiempo, el Juego de la Vida se ha estabilizado. ¿Es posible que esto suceda? ¡Por supuesto! es lo que más comúnmente sucederá: como dijimos ya, el juego de la vida tiende a tener un 3% de población viva luego de mucho tiempo. Este 3% de población viva consistirá de células agrupadas de tal forma que, o se caiga en el caso 'obvio' mencionado anteriormente (en el que todas las células no cambian su estado nunca más), o se llegue a un estado en el que los organismos estén ciclando constantemente su forma y repitiendo los patrones hasta repetir de nuevo toda la configuración de la rejilla (si no sucediera así, y constantemente se estuviera generando nueva vida, o se estuviera muriendo la existente, no podríamos hablar ni siquiera de que el Juego llega a 3% de células vivas, pues seguiría habiendo cambios que evitarían llegar a esto). De esta forma, el Juego de la Vida, habrá llegado a un estado de reposo.

Pudiera ser que también se considerara estado de reposo cuando además de los organismos mencionados, también vivieran por ahí organismos móviles que no afectaran al resto, pero esto depende sobre todo de las condiciones de frontera que tenga nuestra rejilla, y no fue considerado por nosotros de todas formas.

Ahora bien, ¿cuántas fotografías hay que tomar para comparar entre sí y determinar que el Juego de la Vida se encuentra en estado de reposo? Por lógica, podría parecer que hay que estar tomando y comparando fotografías constantemente, desde que inicia el Juego y hasta siempre: uno nunca sabe con el comportamiento complejo cuándo sucederá que una configuración cíclica será alcanzada, aunque su período fuera extremadamente largo. Es cierto, pero para fines prácticos, diremos que SEIS fotografías bastan. ¿Porqué? Pues debido a que los organismos que surgirán en un Juego de la Vida estable (con 3% de células vivas) serán por lo general, u organismos estáticos, u organismos cíclicos con 2 o 3 períodos. Es sólo cuestión de matemáticas darse cuenta que si existe por ahí un organismo cíclico de período 2, y otro por allá de periódo 3, la configuración global del Juego de la Vida tendrá un ciclo igual a 6, combinando todas las posibles configuraciones de cada organismo particular. Por supuesto que organismos cíclicos de mayor período pueden aparecer, pero que esto suceda en un Juego estable, con sólo 3% de células vivas, es verdaderamente muy improbable. (Al menos así lo constatamos nosotros, luego de muchísimos experimentos jamás nos topamos con un caso así. Si hubiera sucedido, nos hubiéramos dado cuenta porque nuestro programa habría entrado en un ciclo infinito y nunca hubiera arrojado un resultado en ese caso).

En la historia del Juego de la Vida, todas estas propiedades se fueron descubriendo poco a poco. Es así como llegamos al momento en que Bak y otros plantearon la posibilidad de que el Juego de la Vida presentara CAO a finales de la década de los ochentas. Muchas discusiones siguieron al tema, por ejemplo: siendo el Juego de la Vida un ente puramente artificial, sin 'fuentes externas de energía', ¿podía en realidad presentar CAO? ¿o no sería que en realidad para que un sistema presente CAO no requiere de esas 'fuentes externas' y el concepto actual de CAO está mal definido? (recuérdese que al ser auto-organizado, un sistema con CAO no requiere de agentes externos que lo hagan caer en el estado crítico, sin embargo, hasta antes de plantear la cuestión de si el Juego de la Vida presenta CAO o no se pensaba solamente que aún así, un sistema con CAO tiene una fuente de energía externa, que aunque no influyera en el proceso auto-organizativo para llegar al estado crítico, si sería importante para que el sistema continuara 'funcionando') o incluso hubo quienes se atrevieron a postular que el fenómeno de CAO no requiere necesariamente ser exclusivo de fenómenos naturales, y que podría tratarse de un fenómeno mucho más general, propio simplemente de sistemas que presenten algún tipo de características complejas.

Pues bien, siendo así, llegamos al núcleo del asunto: ¿presenta el Juego de la Vida CAO?, que expondré en el siguiente post...

¡Hasta la próxima!

Javier



--
Eru kaluva tielyanna (Dios iluminará tu camino)
¡Visita la página de la Casa de la Juventud!
http://www.torcasajuv.com
"Ama y haz lo que quieras. Si callas, callarás con amor; si gritas, gritarás con amor; si corriges, corregirás con amor; si perdonas, perdonarás con amor. Si tienes el amor arraigado en ti, ninguna otra cosa sino amor serán tus frutos." Claro está, asegúrate que en realidad es AMOR...

No hay comentarios.: