martes, 8 de mayo de 2007

The Game of Life

Cualquiera pudiera pensar a partir del titulo de este post, que este va a discutir un tema acerca de la vida, y de como vivirla, o algo así... pero no! No tiene nada que ver con eso...

Hace aproximadamente 3 años, mientras me encontraba trabajando para Cisco, me puse a "surfear" en Internet en busca de algo que hacer mientras me llegaba un poco de trabajo. Decidí buscar páginas cuyo contenido fuera, de menos, algo constructivo y no perdida de tiempo total. Busque cosas relacionadas con matemáticas y problemas que pusieran a trabajar lo que todos tenemos y pocos usamos... el cerebro.

Despues de visitar unas cuantas decenas de páginas, leí algo que me llamó muchisimo la atencion "Maravillas de la Matemática: El juego de la vida".

Fué un titulo que me interesó de inmediato, supuse que era una forma de explicar la vida, desde un punto de vista matematico. Pero para mi sorpresa no fué asi; mas bien era algo totalmente diferente, era algo con lo que podías interactuar por horas... era un juego!!

El "juego de la vida", o "game of life" como se conoce mundialmente, hizo su primera aparición pública en el número de octubre de 1970 de la revista "Scientific American", en la columna de juegos matemáticos de Martin Gardner. Desde un punto de vista teórico, es interesante porque es equivalente a una máquina universal de Turing, es decir, todo lo que se puede computar algorítmicamente se puede computar en el juego de la vida.

El juego de la vida es el mejor ejemplo de un autómata celular, diseñado por el matemático británico John Horton Conway en 1970.

Desde su publicación, ha atraído mucho interés debido a la gran variabilidad de la evolución de los patrones. Se considera que la vida es un buen ejemplo de emergencia y autoorganización. Es interesante para los científicos, matemáticos, economistas y otros observar cómo patrones complejos pueden provenir de la implementación de reglas muy sencillas.

La vida tiene una variedad de patrones reconocidos que provienen de determinadas posiciones iniciales. Poco después de la publicación, se descubrieron el pentaminó R, el planeador o caminador (en inglés glider, conjunto de células que se desplazan) y el explosionador (células que parecen formar la onda expansiva de una explosión), lo que atrajo un mayor interés hacia el juego. Contribuyó a su popularidad el hecho de que se publicó justo cuando se estaba lanzando al mercado una nueva generación de miniordenadores baratos, lo que significaba que se podía jugar durante horas en máquinas que, por otro lado, no se utilizarían por la noche.



Para muchos aficionados, el juego de la vida sólo era un desafío de programación y una manera divertida de usar ciclos de la CPU. Para otros, sin embargo, el juego adquirió más connotaciones filosóficas. Desarrolló un seguimiento casi fanático a lo largo de los años 1970 hasta mediados de los 80.

COMO SE JUEGA:

El juego de la vida es en realidad un juego de cero jugadores, lo que quiere decir que su evolución está determinada por el estado inicial y no necesita ninguna entrada de datos posterior. El "tablero de juego" es una malla formada por cuadrados ("células") que se extiende por el infinito en todas las direcciones. Cada célula tiene 8 células vecinas, que son las que están próximas a ella, incluso en las diagonales. Las células tienen dos estados: están "vivas" o "muertas" (o "encendidas" y "apagadas"). El estado de la malla evoluciona a lo largo de unidades de tiempo discretas (se podría decir que por turnos). El estado de todas las células se tiene en cuenta para calcular el estado de las mismas al turno siguiente. Todas las células se actualizan simultáneamente.

Las transiciones dependen del número de células vecinas vivas:

* Una célula muerta con exactamente 3 células vecinas vivas "nace" (al turno siguiente estará viva).
* Una célula viva con 2 o 3 células vecinas vivas sigue viva, en otro caso muere o permanece muerta(por "soledad" o "superpoblación")

Durante la evolución del juego, se llegan a formar patrones finitos o infinitos. Asi como figuras que ya han sido bautisadas por las personas mas fanaticas del juego.

Existen numerosos tipos de patrones que pueden tener lugar en el juego de la vida, como patrones estáticos ("vidas estáticas", en inglés still lifes), patrones recurrentes ("osciladores", oscillators, un conjunto de vidas estáticas) y patrones que se trasladan por el tablero ("naves espaciales", spaceships). Los ejemplos más simples de estas tres clases de patrones se muestran abajo. Las células vivas se muestran en negro y las muertas en blanco. Los nombres son más conocidos en inglés, por lo que también se muestra el nombre de estas estructuras en dicho idioma.

Me encantaría poder darte un resumen o algo mas digerible, pero la verdad es algo tan loco y elevado que necesitarás probarlo para entenerlo.

Despues de leer esto, puede que te hayas quedado con miles de preguntas... pero no te preocupes, aqui te dejo algunos links que te van a dar una mejor idea acerca de que es esto.

http://www.math.com/students/wonders/life/life.html
En este link podrán utilizar una simulación en JAVA del juego. Desde mi punto de vista es el mejor por la cantidad de celdas que puedes ver al mismo tiempo.

http://www.bitstorm.org/gameoflife/
Otro link con una consola Java para jugar

Creeme, puedes llegar a estar horas jugando con esto y tratando de descubrir patrones.

Mentadas de madre, criticas o aplausos son bienvenidos.

No hay comentarios.: