Joo Paulo Schwarz Schler MC038/2000 Karla Fedrizzi Machado MC043/2000 Autmato Finito
Um autmato finito determinstico, ou simplesmente autmato finito, pode ser visto como como uma mquina composta, basicamente, de trs partes: 1. Fita. Dispositivo de entrada que contm a informao a ser processada; 2. Unidade de Controle. Reflete o estado corrente da mquina. Possui uma unidade de leitura (cabea da fita) a qual acessa uma clula da fita de cada vez e movimenta-se exclusivamente para a direita; 3. Programa ou Funo de Transio. Funo que comanda as leituras e define o estado da mquina.
Autmato Celular
Um autmato celular um conjunto de autmatos identicamente programados que interagem entre si. No autmato celular, cada autmato uma clula. Podemos construir autmatos celulares com uma ou mais dimenses. Um autmato celular 1D um autmato celular que possui uma seqncia infinita de autmatos justapostos em linha. Um autmato celular 2D composto por autmatos postos lado a lado formando um plano. A mesma abordagem pode ser usada para autmatos celulares de maior dimensionalidade.[GRE93]
Autmato Celular a partir de Autmatos Finitos
Um autmato celular, pensado a partir de um autmato finito, considera como fita (neste caso finita) o valor individual da vizinhana de cada clula, ou seja, o peso agregado de cada vizinho. A unidade de controle (cabea da fita) um ente de apontamento, muito provavelmente um ndice ou ponteiro, que individualiza os vizinhos de uma clula. O programa ou funo de transio de uma clula pode ser visto como uma frmula que considera os pesos da vizinhana, juntamente com o prprio peso, e atribui um novo valor a esta clula.
Autmato Celular Unidimensional
Normalmente, no autmato celular, o prximo estado de uma clula depende do seu estado atual e do estado das clulas vizinhas. Em um autmato celular 1D, o prximo estado de uma clula depende do estado dela prpria e de suas duas vizinhas. Normalmente, s existem dois estados possveis para cada clula: 0 ou 1 ou verdadeiro ou falso.[GRE93] Nesse caso, o estado de uma clula definido com 1 bit. Sendo assim, se o prximo estado de cada clula funo do seu prprio estado e o estado de suas duas clulas vizinhas, teremos uma entrada de 3 bits para cada clula.
Autmato Celular Bidimensional
Um autmato de duas dimenses implica numa vizinhana celular com oito elementos, ficando a clula de transio no centro destes elementos. Assim, o clculo do novo estado de uma clula considera nove bits no processo.
Autmato Celular e o seu Estado Inicial
O estado inicial de um autmato celular est intrinsecamente relacionado ao contedo inicial das clula. Qualquer valor (normalmente entre zero e um) pode ser atribudo a cada clula, e a partir desta atribuio desencadeado o processo de evoluo do autmato.
Verifica-se, decorrente de vrias experimentaes, que a evoluo do autmato, normalmente, flui para estados bem diversos conforme o estado inicial. De maneira mais especfica, com pequenas variaes no estado inicial se tem grandes variaes nos estados remotamente conseqentes, ou seja, os autmatos celulares so muito sensveis s variaes no seu estado inicial.
Os autmatos celulares so muito teis para resolver alguns problemas de forma distribuda.[WIL96] Por exemplo, uma maneira muito simples de desenhar o tringulo de Sierpinski simplesmente construir um autmato celular 1D em que cada clula segue a seguinte regra de transio: ou exclusivo dos estados das clulas vizinhas. Cada linha horizontal do tringulo de Sierpinski um momento durante a evoluo do autmato celular.
FIGURA - Vista de uma regio do Tringulo de Sierpinski. Cada parte do tringulo revela estrutura semelhante ao seu todo.
Outra maneira de gerar o tringulo de Sierpinski simplesmente construir um autmato celular em que cada clula programada da seguinte frmula: o prximo estado de cada clula ser o resto da diviso por 2 da soma dos estados das clulas vizinhas. Segue em anexo autmatos celulares 1D e 2D implementados em Pascal baseados em resto da diviso por nmeros naturais inferiores a 255.
Game of Life Game of Life um autmato celular criado em 1970 por um jovem matemtico chamado John Horton Conway. Sua meta era criar um simulador de clulas com trs objetivos: nenhum desenho ( colnia ) simples iria obviamente crescer para sempre, algumas colnias simples deveriam crescer selvagemente, garantir que colnias simples poderiam levar muito tempo para desaparecer ou estabilizar. O prximo estado de cada posio ocupvel por clula funo dos estados anteriores de suas vizinhas e dela prpria. O simulador Life segue a uma regra de produo bidimensional que obedece s seguintes regras gerais de produo: todas as clulas que tiverem duas ou trs clulas vizinhas permanecem vivas, e em todos os espaos ocupveis por clulas que tiverem trs vizinhas, nascer uma clula na prxima gerao e em qualquer outro caso a clula perecer. Vale observar que cada posio ocupvel por clulas possui um estado "viva" ou "no viva". [DEW85]
FIGURA 5.5 - Algumas Colnias Estveis
Autmatos Celulares Implementados
Foram implementados diversos autmatos celulares em Turbo Pascal V. 5.5. Considerando que muitos autmatos implementados so muito semelhantes entre si, apresentaremos aqui somente os mais importantes. Em anexo, segue um disquete com todos os autmatos celulares implementados na forma de cdigo executvel e cdigo fonte. Para efeito de notao, entenderemos por c[x,y] o autmato de ndices x e y pertencente a um autmato celular 3D. Ainda para efeito de notao, entendemos o operador mod como o operador de resto da diviso. Na tabela que segue, podemos ver as frmulas usadas para implementao dos autmatos.
FIGURA 1 DANTE1.PAS
FIGURA 2 DANTE2.PAS
FIGURA 3 DANTE3.PAS
FIGURA 4 DANTE4.PAS
FIGURAS 5 e 6 DANTE7.PAS
Nome N. Dimenses C[x,y]= DANTE1.PAS 2 C[x-1] xor C[x+1] DANTE2.PAS 2 (C[x-1] + C[x+1]) mod 10 DANTE3.PAS 3 (C[x-1,y] + C[x+1,y] + C[x,y-1] + C[x,y+1] ) mod 119 DANTE4.PAS 3 (C[x-1,y] + C[x+1,y] + C[x,y-1] + C[x,y+1] + C[x-1,y-1] + C[x+1,y-1] + C[x+1,y-1] + C[x+1,y+1] ) mod 4 DANTE5.PAS 3 (C[x-1,y] + C[x+1,y] + C[x,y-1] + C[x,y+1] + C[x-1,y-1] + C[x+1,y-1] + C[x+1,y-1] + C[x+1,y+1] ) mod 2 DANTE7.PAS 3 (C[x-1,y] + C[x+1,y] + C[x,y-1] + C[x,y+1] ) mod 200 DANTE8.PAS 3 (C[x-1,y] + C[x+1,y] + C[x,y-1] + C[x,y+1] ) mod 100 DANTE9.PAS 3 (C[x-1,y] + C[x+1,y] + C[x,y-1] + C[x,y+1] ) mod 20 DANTE10.PAS 3 (C[x-1,y] + C[x+1,y] + C[x,y-1] + C[x,y+1] + C[x-1,y-1]*2 + C[x+1,y-1]*2 + C[x+1,y-1]*2 + C[x+1,y+1]*2 ) mod 2 As frmulas de gerao dos programas DANTE2.PAS e DANTE3.PAS so semelhantes s frmulas encontradas no livro Chaos and Fractals[PEIT] . Impementao de Autmato 2D Observe no cdigo que segue a simplicidade de se construir um autmato celular 2D. type TVIDEO = array[0..199,0..319] of byte; procedure Automato2D(var R:TVIDEO); // DANTE4.PAS var I,J:integer; D:TVIDEO; begin D:=R; for I:=1 to 318 do for J:=1 to 198 do D[J,I]:=(R[J,I-1] + R[J,I+1] + R[J-1,I] + R[J+1,I] + R[J-1,I-1] + R[J+1,I+1] + R[J-1,I+1] + R[J+1,I-1] ) mod 4; R:=D; end;
Concluso Podemos observar que os autmatos celulares apresentam computao distribuda e paralela. interessante verificar que modelos muito simples para as clulas resultam em comportamentos globais muito complexos. Os autmatos celulares podem ser relacionados com a teoria do CAOS. Vale lembrar que podemos construir fractais como o tringulo de Sierpinski. Outro aspecto que se ressalta nos autmatos celulares a sua imensa dependncia de seus estados iniciais. Uma pequena modificao no estado inicial de um autmato celular pode provocar uma grande modificao em sua evoluo.
Bibliografia
[GRE93] GREEN, David G. Cellular Automata , 1993. Disponvel por WWW em http://life.csu.edu.au/complex/tutorials/tutorial1.html [PEIT] PEITGEN, Heinz-Otto; JRGENS, Harmut; SAUPE, Dietmar. Chaos and Fractals. Chapter 8. Springer-Verlag.
[WIL96] WILBERGER, A. Martim. Introduction to Cellular Automata for Modeling and Simulation. SCS, Istanbul, Turkey.