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