Autómata celular
ELO 329 Diseño y Programación Orientados a Objetos






Automata celular
Que es un Autómata celular?

Un autómata celular (A.C.) es un modelo matemático para un sistema dinámico que evoluciona en pasos discretos. Es adecuado para modelar sistemas naturales que puedan ser descritos como una colección masiva de objetos simples que interactúen localmente unos con otros.

Son sistemas descubiertos dentro del campo de la física computacional por John von Neumann en la década de 1950. La teoría de los autómatas celulares se inicia con su precursor John von Neumann a finales de los década de 1940 con su libro Theory of Self-reproducing Automata (editado y completado por A. W. Burks).


Extraido de Wikipedia





Un ejemplo de Autómanta celular es el juego de la vida


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.

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.

juego de la vida



El problema:


Distribucion inteligente de camas en hospitales con alto grado de hacinamiento,  para poder minimizar el contagio entre pacientes.

hospital


Implementación:


Tomando la idea del juego de la vida, pensamos que podría usarse para el modelado de la propagación del contagio de enfermedades dentro de una habitacion. Luego de un estudio es posible pensar en ciertas reglas basicas de contagio y contando con una distribucion de las personas (camas) en una habitacion es posible identificar la evolución del contagio y  posibles patrones que se generen. Con esto se puede prevenir el contagio o también hacer una disposición de las camas de forma inteligente.

Para esto se creo una aplicación en lenguage Java que permite usar el juego de la vida con una modificación para establecer las reglas básicas del juego según uno estime conveniente. Las reglas para nuestro problema deben ser entregadas tras un analisis de las enfermedades y su forma de contagio para que el modelo sea lo mas real posible.  A continuacion se muetran las tarjetas CRC y el "caso de uso" que se usaron para desarrollar la aplicación.

Tarjetas CRC

EspacioInfinito

Glider
  • Dibujar las celdas
  • Dibujar las células
  • Crea las celdas
  • Revisa las reglas
  • Actualiza la imagen de las celdas
  • Vecinos
  • Espacio

  • Construcción del menú
  • Maneja eventos del mouse
  • Crea el frame de juego
  • EspacioInfinito
  • EventoMouse


Diagrama UML

diagrama uml

Aplicación

Requerimientos:
Actualmente el software esta en su face alpha. Su ultima actualizacion fue hecha el 18 de julio.

Si quieres probar el software, puedes obtener facilmente una copia, y luego sigue las siguientes instrucciones.

  1. Ejecución : $ jar -cp  ./automata.jar Glider

Presentación

presentacion


Proyecto modificado por los alumnos:
Sebastián Sáez, Arturo Veras