Automatas Celulares en DLV

Copyright © 2002 Oscar Medina Duarte
Bajo licencia BSD
http://www.medina-web.com

Notas sobre la Implementación

Celular, genera una lista de hechos que mapean la configuración de la matriz, mismos que son concatenados con las reglas que se estan desplegando en el ambiente y se envian como parametro a dlv a través de un archivo llamado progrmalife.dlv.
El modelo estable, es pasado como entrada al archivo a.out, que es un lexer (generado con lex) que genera a partir del modelo una matriz de ceros y unos con la configuracion actualizada que es leida por Celular.java para ajustar el gráfico.

How to

Para ejecutar celular, es necesario bajar y descomprimir el archivo cells.tar.gz y ejecutar el archivo llamado celular que se encuentra en el directorio raiz del mismo paquete :
$ gunzip cells.tar.gz
$ tar xvf cells.tar
$ ./cells/celular

Hechos y modelos

Para modelar nuestras propias reglas, hay que tener en cuenta algunos estandares, el primero es la forma en la que se representan las celulas en dlv, lo cual hago generando un hecho por cada celula de la forma:

cell(C,B) , donde C es la coordenada y B es un valor de 0 o 1 que indica si la celula esta encendida o apagada.
C es de la forma LxLy donde Lx o y son coordenadas que dan nombre a cada celula.
Y generando un par de hechos por adyacencia reciprocos :
ne(Y,X) y ne(X,Y), donde X y Y son de la forma LxLy donde Lx o y son coordenadas o nombres de celulas que son adyacentes entre si.


Para poder leer la salida de DLV, es necesario que los modelos estables que generen nuevas configuraciones, sean de la forma :

cell2(C,B) , donde C es la coordenada y B es un valor de 0 o 1 que indica si la celula esta encendida o apagada.
El sistema se comporta de manera inestable cuando en el modelo generado existen hechos repetidos con diferente valor como la existencia de un modelo similar al siguiente :
{cell2(ba,0),cell2(ba,1)}

Misc

A continuacion un listado comentado del contenido del paquete : ls -R cells
cells:
bin		- Clases y archivos compilados y ejecutables de Celular
celular		- Script para ejecutar Celular
manual.html	- Este documento
rules		- Algunas reglas para Celular en dlv
srcs		- Codigo fuente del sistema

Referencias