Según los comentarios que se escuchan en clase, la práctica a realizar en ensamblador mips esta causando revuelos a algunos alumnos que no comprenden muy bien como realizarla.

Desde estas páginas voy a intentar dar una serie de guias para realizar una buena práctica y por supuesto aspirar a la máxima nota.

Un autómata celular es un modelo matemático para un sistema dinámico que evoluciona en pasos discretos. ¿Que quiere esto? Pues imáginaos por ejemplo la población de una determinada ciudad o el desarrollo y crecimiento de un hongo o bacteria. Existen una serie de modelos matemáticos que nos van a permitir simular de una forma mas o menos precisa esta evolución.

En los autómatas celulares podemos encontrar los siguientes componentes:

  1. La red o el espacio celular. Que es la malla (en este caso el tablero) donde se desarrolla el juego y está compuesto de n celdas idénticas (máquina de estados finitos) que pueden tomar valores finitos y darnos un resultado determinado. Si t es el estado actual, t+1 vendrá definido por los estados t de las celulas vecinas de una determinada celula. Para definir los vecinos de una determinada celula tenemos varias opciones:
    • El modelo de von Neumann que tiene en cuenta únicamente las celdas situadas en las posiciones superior, inferior y laterales.
    • El modelo de Moore que considera los del modelo de von Neumann más las celdas situadas en las diagonales.
  2. El conjunto de reglas o algoritmos que definen el desarrollo del autómata.

El juego de la vida es un ejemplo de estos autómatas celulares diseñado por el matemático británico John Horton Conway en 1970. Es muy estudiado en Teoría de Autómatas y Lenguajes Formales (asignatura de 2º) puesto que es equivalente a una máquina de Turing (pero eso es otra historia).

Existen diversas variaciones de este algoritmo, pero la que se nos presenta como estudio tiene las siguientes características:

El estado de las células es binario, (viva o muerta), no hay estados intermedios.

Una célula muerta con 3 y solo 3 células vecinas vivas nace en el siguiente turno. Una célula viva con 2 ó 3 células vecinas vivas sigue viva, en todos los demás casos muere o permanece muerta por soledad o por superpoblación.

El desarrollo del juego se produce sobre una rejilla ortogonal infinita. Puesto que nuestra memoria es finita, para definir la rejilla, uniremos la parte superior del tablero con la inferior y la parte derecha con la izquierda, formando (virtualmente) un espacio infinito donde desarrollar el juego puesto que nunca habría limites de desplazamiento al no existir fronteras.

En la siguiente entrada, explicaré como crear el tablero y como transformar cualquier posición de este definida por un par de vectores ortogonales en una posición de memoria, definida por un solo vector. (Recordemos que el acceso a la memoria viene definido por una sola coordenada, puesto que son direcciones lineales).

Categories:

One response

  1. Desde la creación del juego se han desarrollado nuevas reglas. El juego estándar, en que nace una célula si tiene 3 células vecinas vivas, sigue viva si tiene 2 o 3 células vecinas vivas y muere en otro caso, se simboliza como «23/3». El primer número o lista de números es lo que requiere una célula para que siga viva, y el segundo es el requisito para su nacimiento.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Time limit is exhausted. Please reload CAPTCHA.