Está en la página 1de 14

UNIVERSIDAD DE CASTILLA-LA MANCHA

ESCUELA SUPERIOR DE INGENIER IA INFORMATICA

INGENIER IA EN INFORMATICA

TRABAJO DE BIOINFORMATICA

EL JUEGO DE LA VIDA DE CONWAY Juan Ignacio Del Castillo Waters y Gonzalo Rubio Torrente

Diciembre, 2008

INDICE GENERAL
1. INTRODUCCION - VIDA ARTIFICIAL Y AUTOMATAS CELULARES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.1. DEFINICION DE AUTOMATA 1.2. DEFINICION CELULAR . . . . . . . . . . . . . . . 2. EL JUEGO DE LA VIDA DE CONWAY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1. DESCRIPCION 2.2. REGLAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3. PATRONES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. DESARROLLO DE LA APLICACION . . . . . . . . . . . . . . . . . . 3.1. DESCRIPCION . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2. IMPLEMENTACION 3.3. EJEMPLOS DE FUNCIONAMIENTO . . . . . . . . . . . . . . . . . . 4. VARIANTES DEL JUEGO 4.1. VARIANTES EN LAS REGLAS . . . . . . . . . . . . . . . . . . . . . 4.2. VARIANTES EN EL TABLERO . . . . . . . . . . . . . . . . . . . . . 4.3. UNA MAQUINA DE TURING EN EL JUEGO DE LA VIDA . . . . . 5. BIBLIOGRAFIA 1 1 1 3 3 3 4 6 6 7 9 10 10 10 11 12

- VIDA ARTIFICIAL Y 1. INTRODUCCION AUTOMATAS CELULARES


1.1. DEFINICION

La vida articial es el campo de la ciencia que se dedica al estudio de la vida y de los mecanismos esenciales de la misma a trav es de la creaci on de sistemas articiales que tratan de imitar o exhibir propiedades similares a la de los seres vivos mediante modelos de simulaci on. El t ermino fue acu nado por el cient co Christopher Langton a nales de los ochenta en la ((International Conference on the Synthesis and Simulation of Living System)). Los investigadores de la vida articial se han dividido habitualmente en dos grupos de opini on:

Vertiente de vida articial dura/fuerte: consideran que la vida es un proceso que se puede conseguir fuera de cualquier medio particular. Vertiente de vida articial d ebil: niega la posibilidad de generar un ((proceso de vida)) fuera de una soluci on qu mica basada en el carbono.

Dentro de este campo, atendiendo a la primera vertiente, se utilizan muy diversas t ecnicas de la inteligencia articial, como son los algoritmos evolutivos, programaci on gen etica, inteligencia de enjambre, qu mica articial...

1.2.

DE AUTOMATA DEFINICION CELULAR

Los aut omatas celulares son redes de aut omatas simples conectados localmente. Cada aut omata simple produce una salida a partir de varias entradas, modicando en el proceso su estado seg un una funci on de transici on. Por lo general, en un aut omata 1

- VIDA ARTIFICIAL Y AUTOMATAS 1. INTRODUCCION CELULARES

celular, el estado de una c elula en una generaci on determinada depende u nica y exclusivamente de los estados de las c elulas vecinas y de su propio estado en la generaci on anterior. Los aut omatas celulares son herramientas u tiles para modelar cualquier sistema en el universo. Pueden considerarse como una buena alternativa a las ecuaciones diferenciales y han sido utilizados para modelar sistemas f sicos, como interacciones entre part culas, formaci on de galaxias, cin etica de sistemas moleculares y crecimiento de cristales, as como diversos sistemas biol ogicos a nivel celular, multicelular y poblacional.

2. EL JUEGO DE LA VIDA DE CONWAY


2.1. DESCRIPCION

El juego de la vida de Conway es el aut omata celular m as conocido y m as estudiado, dise nado por el matem atico John Horton Conway en 1970. El juego es un aut omata celular bidimensional en el cual cada celda (c elula) puede estar en uno de los dos estados posibles, viva o muerta. Partiendo de un estado inicial, la simulaci on va haciendo evolucionar al aut omata en base a unas sencillas funciones de transici on. Una c elula va a estar en un estado concreto, el cual ser a determinado u nicamente del estado inmediatamente anterior de las c elulas vecinas y el de la propia c elula, tal y como se describi o en la secci on de aut omatas celulares.

2.2.

REGLAS

El conjunto b asico inicial que propuso Conway se compone de tres reglas muy sencillas:

Cada c elula viva con dos o tres c elulas vecinas vivas sobrevive a la siguiente generaci on. Cada c elula viva con ninguna, una, o m as de tres c elulas vivas a su alrededor pasa a estar muerta (soledad y superpoblaci on). Cada c elula muerta con tres c elulas vecinas vivas resucita en la siguiente generaci on.

Sin embargo se pueden realizar variaciones en estas reglas para obtener comportamientos distintos a los habituales. La manera de representar las reglas es X/Y, donde X e Y son n umeros enteros. Cada uno de los d gitos que forman estos n umeros representa un n umero de vecinos v alido para nacer o continuar viviendo respectivamente. 3

2. EL JUEGO DE LA VIDA DE CONWAY

Por ejemplo, las reglas que propuso Conway se representarian como 3/23. Esto signica que una c elula muerta volver a a vivir si tiene 3 c elulas vecinas vivas, y que una c elula viva sobrevive si tiene 2 o 3 c elulas vecinas vivas. En el resto de los casos la c elula continua sin vida o muere.

2.3.

PATRONES

Un patr on es una conguraci on de c elulas vivas que permanece estable. Existen b asicamente tres clases de patrones en el juego de la vida de Conway.

Patrones est aticos (still lifes): Un conjunto de c elulas vivas que se mantiene est atico, sin que se produzcan nuevos nacimientos o muertes.

Figura 2.1: Patr on bloque (block)

Figura 2.2: Patr on barco (boat) Patrones recurrentes (oscilators): Un conjunto de c elulas vivas que no se mueve por el mundo, pero que no es est atico, ya que se producen nacimientos y muertes, produciendo transiciones que se repiten continuamente. Patrones que se trasladan (spaceships): Un conjunto de c elulas vivas que permanece con la misma forma, pero que se desplaza por el tablero.

2. EL JUEGO DE LA VIDA DE CONWAY

Figura 2.3: Patr on parpadeador (blinker)

Figura 2.4: Patr on sapo (toad)

Figura 2.5: Patr on planeador (glider)

Figura 2.6: Patr on nave ligera (LWSS)

3. DESARROLLO
3.1. DE LA APLICACION DESCRIPCION

Se ha realizado una versi on del Juego de la Vida de Conway utilizando el lenguaje de programaci on C Sharp. En esta versi on se ha incluido la funcionalidad b asica del juego junto con algunas opciones a nadidas.

Posibilidad de ejecuci on paso a paso, de cara a poder ver el resultado de una aplicaci on de las reglas a una conguraci on dada, y ejecuci on continuada, para ver el desarrollo de una conguraci on inicial en el tiempo. Control de velocidad en la ejecuci on continuada. Posibilidad de congurar las reglas del juego. Posibilidad de guardar y cargar el estado del juego, mantieniendo tanto las reglas como la disposici on de las c elulas.

La aplicaci on muestra un tablero con una matriz de c elulas (80x80), en principio todas en color blanco (muertas). Bajo el tablero aparecen los botones ((Simular)) (comienza la ejecuci on continuada, cambiando el texto del bot on a ((Parar))), ((Simular Paso)) (ejecuta una vez las reglas sobre la disposici on del tablero), ((Reset)) (reinicia el tablero dejando todas las c elulas muertas), ((Salir)) (se cierra la aplicaci on) y ((Reglas)) (que abre un cuadro de di alogo donde congurar las reglas). Al la derecha de los botones aparece un ((Slider)) que permite ajustar la velocidad de ejecuci on. Adem as, en la parte superior de la aplicaci on aparece un men u con las opciones ((Archivo)) y ((Acerca de)). En ((Archivo)) aparecen las opciones de ((Cargar)) y ((Guardar)) que permiten almacenar y cargar el estado del juego. En ((Acerca de)) se pueden ver los cr editos de la aplicaci on. Para modicar el estado de una c elula, para darle vida o matarla, tan solo hay que picar sobre ella con el rat on.

3. DESARROLLO

3.2.

IMPLEMENTACION

Para la creaci on de la versi on del Juego de la vida se han implementaso de 3 clases.

La clase Juego. Contiene la l ogica del juego. La clase Tablero. Contiene el c odigo correspondiente a la interfaz gr aca del juego. La clase Reglas. Contiene el c odigo correspondiente a la interfaz gr aca de la selecci on de las reglas.

El c odigo se concentra principalmente en la primera de las 3 clases, ya que las otras dos tan solo implementan m etodos de respuesta a eventos del sistema que realizaran llamadas a los m etodos de la clase Juego. La clase Juego dene el estado del juego de la vida haciendo uso de los siguientes atributos:

tablero. Una matriz de valores booleanos que representan las c elulas del juego. Si el valor de una c elula X,Y es true, la c elula est a viva. En caso contrario est a muerta. alto. Un valor entero que representa el alto del tablero del juego. ancho. Un valor entero que representa el ancho del tableo del juego. reglaVida. Una matriz que representa las condiciones que tiene que cumplir una c elula para seguir viva. reglaNacer. Una matriz que representa las condiciones que tiene que cumplir una c elula para nacer. nPasos. Un entero que contabiliza el n umero de pasos que se han dado en el juego.

A continuaci on se describen los m etodos principales.

3. DESARROLLO

getAncho(). Devuelve un entero cuyo valor se corresponde con el tama no del ancho del tablero. getReglasVida(). Devuelve una matriz con las reglas que permiten seguir viviendo a una c elula. Dicha matriz es tan larga como posibilidades de vivir tiene la c elula y cada entero contenido en ella es una de dichas posibilidades. Por ejemplo, si la matriz es [2,3] una c elula puede seguir viviendo si tiene 2 o 3 vecinos vecinos. En caso contrario muere. getReglasNacer(). Devuelve una matriz con las reglas que permiten nacer una c elula. Dicha matriz es tan larga como posibilidades de vivir tiene la c elula y cada entero contenido en ella es una de dichas posibilidades. Por ejemplo, si la matriz es [2,3] una c elula puede nacer si tiene 2 o 3 vecinos vivos. En caso contrario permanece muerta. getAlto(). Devuelve un entero cuyo valor se corresponde con el tama no del alto del tablero. estaViva(int x, int y). Devuelve un valor booleano. Ser a cierto si la c elula en la posici on x,y est a viva y falso en caso contrario. resetTablero(). Vuelve el tablero a la posici on inicial, con todas las c elulas muertas. setReglaVida(int[] regla). Fija las reglas para que una c elula siga viva. El formato de la matriz que se le pasa por par ametro es el mismo que el de la matriz devuelta por getReglasVida. setReglaNacer(int[] regla). Fija las reglas para que una c elula nazca. El formato de la matriz que se le pasa por par ametro es el mismo que el de la matriz devuelta por getReglasNacer. invierteCelula(int x, int y). Si la c elula que est a en la posici on x, y est a muerta, nace. En caso contrario, muere. simularPaso(). El sistema recorre todas las c elulas y en funci on del n umero de vecinos vivos que tenga cada una, modicar a su estado o permanecer a estable.

3. DESARROLLO

calculaVecinosVivos(int x, int y). El sistema comprueba el n umero de c elulas vecinas vivas que tiene la c elula localizada en x,y y lo devuelve en forma de entero. Juego(int ancho, int alto, int[] reglaVida, int[] reglaNacer). Es el constructor de la clase. Genera un tablero de c elulas de tama no ALTOxANCHO, con las reglas reglaVida y reglaNacer que se han pasado como par ametros.

3.3.

EJEMPLOS DE FUNCIONAMIENTO

Para ver varios ejemplos en funcionamiento, cargar el archivo ((loop.vid)) en la aplicaci on.

4. VARIANTES DEL JUEGO


4.1. VARIANTES EN LAS REGLAS

Desde la creaci on del juego se han desarrollado nuevas reglas. Algunos ejemplos de variantes en las reglas son los siguientes.

/3 (estable) casi todo es una chispa 5678/35678 (ca otico) diamantes, cat astrofes 1357/1357 (crece) todo son replicantes 1358/357 (ca otico) un reino equilibrado de amebas 23/3 (ca otico) Juego de la Vida de Conway 23/36 (ca otico) HighLife(tiene replicante) 235678/3678 (estable) mancha de tinta que se seca r apidamente 245/368 (estable) muerte, locomotoras y naves 34/34 (crece) Vida 34 51/346 (estable) Larga vida casi todo son osciladores

4.2.

VARIANTES EN EL TABLERO

Se han desarrollado variantes adicionales mediante la modicaci on de otros elementos del universo. Las variantes anteriores son para un universo bidimensional formado por cuadrados, pero tambi en se han desarrollado variantes unidimensionales y tridimensionales, as como variantes 2-D donde la malla es hexagonal o triangular en lugar de cuadrada. Tambi en existen variantes en el que se modica el n umero de estados en los que puede estar una c elula, represent andose el estado con el color que se le asigna a la misma. 10

4. VARIANTES DEL JUEGO

11

4.3.

UNA MAQUINA DE TURING EN EL JUEGO DE LA VIDA

Nos ha llamado la atenci on la implementaci on de una m aquina de turing en el juego de la vida de Conway, mediante la construcci on de las diferentes partes de la m aquina de turing creando subsistemas con patrones controlados que van reproduciendo el comportamiento esperado. A continuaci on podemos ver una captura de la m aquina en funcionamiento.

Figura 4.1: M aquina de turing en el juego de la vida

5. BIBLIOGRAFIA
Wikipedia (www.wikipedia.org) A turing machine in Conways game of life (rendell-attic.org/gol/tm.htm) GAIA: Inteligencia articial (www.redcientica.com/gaia/index.html Video demostrativo del juego de la vida (www.youtube.com/watch?v=s92EW7jVeq0)

12

También podría gustarte