Sie sind auf Seite 1von 13

Universidad de Guanajuato

Divisin de Ciencias e Ingenieras


Mariana Escobedo Torres, Yahira Gallardo Texas, Sofia Villanueva Gaona
Reporte: Autmata celular
Modelado de Sistemas Biolgicos

Reporte 1. Autmata Celular, una celula en un espacio con barreras


Resumen
Un autmata celular es un modelo matemtico para un sistema dinmico compuesto por un conjunto de
celdas o clulas que adquieren distintos estados o valores. En ste proyecto se llev a cabo la
generacin de un autmata cuyo movimiento es regido por funciones dentro del programa y dicho
movimiento est limitado por barreras.

Introduccin
Los autmatas celulares (AC) surgieron en la dcada de 1940 por el cinetfico John Von Neumann, que
intentaba modelar una maquina que fuera capaz de autoreplicarse, y fue as que lleg a un modelo
matemtico de dicha maquina con reglas complicadas sobre una red rectangular. Inicialmente fueron
interpretados como conjunto de clulas que crecan, se reproducan y moran a medida que pasaba el
tiempo. Su nombre se debe a esta similitud con el crecimiento de las clulas.
Un autmata celular adquiere distintos estados o valores los cuales son alterados de un instante a otro
en unidades de tiempo discreto, es decir, que se puede cuantificar con valores enteros a intervalos
regulares.
El aspecto que mas caracteriza a los AC es su capacidad de lograr una serie de propiedades que surgen
de la propia dinmica local a travs del paso del tiempo y no desde un inicio, aplicndose a todo el
sistema en general. Por lo tanto no es fcil analizar las propiedades globales de un AC desde su
comienzo, complejo por naturaleza, a no ser por va de la simulacin, partiendo de un estado o
configuracin inicial de clulas y cambiando en cada instante los estados de todas ellas de forma
sncrona. El aspecto que mas caracteriza a los AC es su capacidad de lograr una serie de propiedades
que surgen de la propia dinmica local a travs del paso del tiempo y no desde un inicio, aplicndose a
todo el sistema en general. Por lo tanto no es fcil analizar las propiedades globales de un AC desde
su comienzo, complejo por naturaleza, a no ser por va de la simulacin, partiendo de un estado o
configuracin inicial de clulas y cambiando en cada instante los estados de todas ellas de forma
sncrona.

Metodologa
El programa realizado se program en Matlab de la siguiente manera:
%limpia todo nuestro espacio de trabajo
clear all
close all
clc
%Aqui creamos la matriz principal con valores de 1
M=ones(100,100); %filas, columnas, se crea una matriz de color blanco de
100 x 100 pixeles
M(1:49,50:60)=0; %aqui colocamos las barreras con valores de 0
M(61:100,50:60)=0;
% Aqui realizamos los bordes en nuestro espacio donde se movera el automata
M(1,1:100)=0;
M(100,1:100)=0;
M(1:100,1)=0;
M(1:100,100)=0;
M(52,2)=0.5; %coloca el automata en la columna 2 y en el renglon 52
figure
imshow(M);
[rows, cols]=size(M);
col=2;
while col<90 %condicn inicial en donde miesntras no est en la columna 90
haga lo siguiente
%Aqui generamos el numero aleatorio
r=randi(9); %Genera un numero aleatorio entero entre 1 y 9

if (r<=3)

%si mi numero aleatorio es menor igual a 3 hace lo siquiente

[row,col]=find(M==0.5);%encuentra la posicin del automata


M(row,col)=1;
if (M(row-1,col)==0) %se mueve para abajo
M(row,col)=0.5;
else
M(row-1,col)=0.5;
end

else if (r<=6) %Si genera el numero alatorio entre 4 y 6


[row,col]=find(M==0.5);

M(row,col)=1;
if (M(row,col+1)==0) %se mueve para adelante
M(row,col)=0.5;
else
M(row,col+1)=0.5;
end

else

%si genera el numero aleatorio entre 7 y 9


[row,col]=find(M==0.5);
M(row,col)=1;
if (M(row+1,col)==0) %se mueve para arriba
M(row,col)=0.5;
else
M(row+1,col)=0.5;
end

end
end
imshow(M)
%muestra la matriz
pause(0.1) %con una pausa de 0.1 seg
end

Resultados
Corriendo el programa, nuestro autmata (pixel gris) inicia en la fila 52 y la columna 2 como muestra
la figura 1.

Figura 1. Autmata celular movindose en la matriz

Cuando el autmata toca uno de los borde negros regresa a su posicin anterior y vuelve a generar un
nmero aleatorio y as sucesivamente hasta que llegue a su destino final (figura 2).

Figura 2. Autmata tocando un borde

El autmata deja de moverse cuando ste llega a la columna 90 como lo muestra la figura 3.

Figura 3. Autmata parado al llegar a la columna 90

Conclusin
Con este trabajo nos percatamos que el modelado de sistemas biolgicos, al hacer el modelado de un
autmata celular, tiene un infinidad de aplicaciones. Tambin es muy importante el uso de Matlab ya
que gracias a sus diversas herramientas es posible realizar ste tipo de modelos.

Reporte 2. Autmata Celular con dos especies , sin interaccin.


Metodologa
Para este parte, la programacin de automata se hizo generando el espacio, colocando presas y
depredadores, y un ciclo while en el que se condiciono para cada uno.
El cdigo en matlab se muestra a continuacin.
closeall
clearvariables
clc

M=ones(100,100);%filas,columnas,secreaunamatrizdeclolorblancode100x
100pixeles

%barreras
M(1,1:100)=0;
M(100,1:100)=0;
M(1:100,1)=0;
M(1:100,100)=0;


dr=55;
pr=100;
pausa=0.01;
figure

%Aquigeneramoslaspresas
while(pr>0)
rx=randi(99);
ry=randi(99);

if(M(rx,ry)==1)
pr=pr1;%decremento
M(rx,ry)=0.3;
else
end
imagesc(M);%imagenescalada
colormaphot%colores
pause(pausa);
end

%losdepredadores
while(dr>0)
rx=randi(99);
ry=randi(99);

if(M(rx,ry)==1)
dr=dr1;
M(rx,ry)=0.5;
else
end
imagesc(M);
colormaphot
pause(pausa);
end

fori=1:1:10000000000%iteracionesdelmov
rx=randi(99);
ry=randi(99);
mov=randi(4);%generasunnumeroaleatparaelmov
if(M(rx,ry)==0.3)%silaposisciones0.3
ifmov==1
if(M(rx,ry+1)==0.3)||(M(rx,ry+1)==0.5)||(M(rx,ry+1)==0)
else
M(rx,ry)=1;
M(rx,ry+1)=0.3;
imagesc(M);
colormaphot
pause(pausa);
end
elseifmov==2
if(M(rx,ry1)==0.3)||(M(rx,ry1)==0.5)||(M(rx,ry1)==0)
else
M(rx,ry)=1;
M(rx,ry1)=0.3;

imagesc(M);
colormaphot
pause(pausa);
end
elseifmov==3
if(M(rx+1,ry)==0.3)||(M(rx+1,ry)==0.5)||(M(rx+1,ry)==0)
else
M(rx,ry)=1;
M(rx+1,ry)=0.3;
imagesc(M);
colormaphot
pause(pausa);
end
else%mov==4
if(M(rx1,ry)==0.3)||(M(rx1,ry)==0.5)||(M(rx1,ry)==0)
else
M(rx,ry)=1;
M(rx1,ry)=0.3;
imagesc(M);
colormaphot
pause(pausa);
end
end
elseif(M(rx,ry)==0.5)%siesdepredador
ifmov==1
if(M(rx,ry+1)==0.3)||(M(rx,ry+1)==0.5)||(M(rx,ry+1)==0)
else
M(rx,ry)=1;
M(rx,ry+1)=0.5;
imagesc(M);
colormaphot
pause(pausa);
end
elseifmov==2
if(M(rx,ry1)==0.3)||(M(rx,ry1)==0.5)||(M(rx,ry1)==0)
else
M(rx,ry)=1;
M(rx,ry1)=0.5;
imagesc(M);
colormaphot
pause(pausa);
end
elseifmov==3
if(M(rx+1,ry)==0.3)||(M(rx+1,ry)==0.5)||(M(rx+1,ry)==0)
else
M(rx,ry)=1;
M(rx+1,ry)=0.5;
imagesc(M);
colormaphot
pause(pausa);
end
else%mov==4
if(M(rx1,ry)==0.3)||(M(rx1,ry)==0.5)||(M(rx1,ry)==0)
else
M(rx,ry)=1;
M(rx1,ry)=0.5;

imagesc(M);
colormaphot
pause(pausa);
end
end
end
end

Resultados
En la figura 4 se muestra el autmata celular donde los puntos en rojo corresponden a las
presas y los anaranjados son los depredadores, al correr el programa las especies no
interactan entre s.

Figura 4. Autmata celular sin interaccin

Conclusiones
Para esta parte cabe mencionar que se tuvieron que realizar modificaciones respecto al modelo 1 del
autmata celular. El autmata celular sin interacin puede ser til si se desea observar la reproduccin,
las de natalidad o mortalidad de una especie, parametros que caben dentro del estudio y llevan relacin
con los modelos biolgicos.

Reporte 3. Autmata Celular con dos especies , hay interaccin.


Metodologa
Tambin se agregaron algunas lineas en las que se guardan los datos en un archivo con extensin .xls.
El cdigo es el siguiente.
closeall
clearvariables
clc


M=ones(100,100);%filas,columnas,secreaunamatrizdeclolorblancode100x
100pixeles
%barreras
M(1,1:100)=0;
M(100,1:100)=0;
M(1:100,1)=0;
M(1:100,100)=0;
dr=1500;
pr=100;
prc=pr;
pausa=0.01;
figure

%Aquigeneramoslaspresas
while(pr>0)
rx=randi(99);
ry=randi(99);

if(M(rx,ry)==1)
pr=pr1;
M(rx,ry)=0.3;
else
end
imagesc(M);
colormapspring
pause(pausa);
end
%losdepredadores
while(dr>0)
rx=randi(99);
ry=randi(99);

if(M(rx,ry)==1)
dr=dr1;
M(rx,ry)=0.5;
else
end
imagesc(M);
colormaphsv
pause(pausa);
end

iter=0;
g=zeros(1,prc);
while(prc>0)
rx=randi(99);
ry=randi(99);
mov=randi(4);
iter=iter+1;
if(M(rx,ry)==0.3)
ifmov==1
if((M(rx,ry+1)==0.3)||(M(rx,ry+1)==0))
g(iter)=prc;
elseif(M(rx,ry+1)==0.5)

M(rx,ry)=1;
prc=prc1;
g(iter)=prc;
imagesc(M);
colormaphot
pause(pausa);
else
M(rx,ry)=1;
M(rx,ry+1)=0.3;
g(iter)=prc;
imagesc(M);
colormaphot
pause(pausa);
end
elseifmov==2
if((M(rx,ry1)==0.3)||(M(rx,ry1)==0))
g(iter)=prc;
elseif(M(rx,ry1)==0.5)
M(rx,ry)=1;
prc=prc1;
g(iter)=prc;
imagesc(M);
colormaphot
pause(pausa);
else
M(rx,ry)=1;
M(rx,ry1)=0.3;
g(iter)=prc;
imagesc(M);
colormaphot
pause(pausa);
end
elseifmov==3
if((M(rx+1,ry)==0.3)||(M(rx+1,ry)==0))
g(iter)=prc;
elseif(M(rx+1,ry)==0.5)
M(rx,ry)=1;
prc=prc1;
g(iter)=prc;
imagesc(M);
colormaphot
pause(pausa);
else
M(rx,ry)=1;
M(rx+1,ry)=0.3;
g(iter)=prc;
imagesc(M);
colormaphot
pause(pausa);
end
else%mov==4
if((M(rx1,ry)==0.3)||(M(rx1,ry)==0))
g(iter)=prc;
elseif(M(rx1,ry)==0.5)
M(rx,ry)=1;
prc=prc1;

g(iter)=prc;
imagesc(M);
colormaphot
pause(pausa);
else
M(rx,ry)=1;
M(rx1,ry)=0.3;
g(iter)=prc;
imagesc(M);
colormaphot
pause(pausa);
end
end
elseif(M(rx,ry)==0.5)
ifmov==1
if((M(rx,ry+1)==0.5)||(M(rx,ry+1)==0))
g(iter)=prc;
elseif(M(rx,ry+1)==0.3)
M(rx,ry)=1;
M(rx,ry+1)=0.5;
prc=prc1;
g(iter)=prc;
imagesc(M);
colormaphot
pause(pausa);
else
M(rx,ry)=1;
M(rx,ry+1)=0.5;
g(iter)=prc;
imagesc(M);
colormaphot
pause(pausa);
end
elseifmov==2
if((M(rx,ry1)==0.5)||(M(rx,ry1)==0))
g(iter)=prc;
elseif(M(rx,ry1)==0.3)
M(rx,ry)=1;
M(rx,ry1)=0.5;
prc=prc1;
g(iter)=prc;
imagesc(M);
colormaphot
pause(pausa);
else
M(rx,ry)=1;
M(rx,ry1)=0.5;
g(iter)=prc;
imagesc(M);
colormaphot
pause(pausa);
end
elseifmov==3
if((M(rx+1,ry)==0.5)||(M(rx+1,ry)==0))
g(iter)=prc;
elseif(M(rx+1,ry)==0.3)

M(rx,ry)=1;
M(rx+1,ry)=0.5;
prc=prc1;
g(iter)=prc;
imagesc(M);
colormaphot
pause(pausa);
else
M(rx,ry)=1;
M(rx+1,ry)=0.5;
g(iter)=prc;
imagesc(M);
colormaphot
pause(pausa);
end
else%mov==4
if((M(rx1,ry)==0.5)||(M(rx1,ry)==0))
g(iter)=prc;
elseif(M(rx1,ry)==0.3)
M(rx,ry)=1;
M(rx1,ry)=0.5;
prc=prc1;
g(iter)=prc;
imagesc(M);
colormaphot
pause(pausa);
else
M(rx,ry)=1;
M(rx1,ry)=0.5;
g(iter)=prc;
imagesc(M);
colormaphot
pause(pausa);
end
end
else
g(iter)=prc;
end
end

figure
stem(g);
p=zeros(1,iter);
fori=1:1:iter
p(i)=i;
end

filename='depypre.xlsx';
sheet=1;
xlRange='B1';
xlRange2='A1';
xlswrite(filename,g',sheet,xlRange)
xlswrite(filename,p',sheet,xlRange2)

Resultados
Conclusin
Bibliografa