Computação Natural: Autômatos Celulares Autômatos Celulares Como comportamentos globais altamente complexos podem emergir a partir de regras de interação local extremamente simples? Prof. Dr. Rafael Stubs Parpinelli E-mail: [email protected] Autômatos celulares são um grande exemplo disto! Programa de Pós-Graduação em Computação Aplicada - UDESC Inspiração da Natureza O que é um autômato celular? Uma matriz de células onde cada célula atualiza seu valor com base nos valores de suas células vizinhas. Tipicamente os estados das células são on ou off (1 ou 0). Definição de Autômato Celular Suponha a existência de um sistema infinito reticulado capaz de se configurar em diferentes estados S 1 , . . . , Sk Cada ponto neste reticulado tem um sistema bem definido de m vizinhos O estado de cada ponto no tempo t+1 é unicamente determinado pelo seu próprio estado e o de todos os seus vizinhos no tempo t Autômato Celular Um CA bem simples deve funcionar da seguinte maneira: Considere uma linha de células onde cada célula pode assumir dois estados possíveis (0 ou 1) O processo se inicia ativando-se uma das células Assumindo que no tempo t somente um conjunto finito de pontos estão ativos, deseja-se saber como a ativação vai se espalhar pelo sistema Sendo que o estado de uma célula no reticulado depende somente do seu estado e das células vizinhas, todas as interações são locais Um conjunto de regras determinam como computar o estado de uma célula no tempo t+1, dado o estado de seus vizinhos no tempo t O estado de uma célula influencia o estado de seus vizinhos e vice-versa Em um CA, a influência (regras) pode ser bastante intuitiva. Suponha: Se um célula está ativada, então no próximo passo (t+1) ela se mantém ativada Se um célula está ativada, ela também ativa seus vizinhos A consequência desta definição é... Autômato Celular Neste autômato celular unidimensional, a vizinhança é definida pelas duas células adjacentes. Autômato Celular Autômato Celular Autômato Celular Autômato Celular Exemplo 1 Tem-se aqui outro conjunto de regras: Pode-se usar a seguinte convenção para representar as regras que evoluem o sistema: Uma célula se torna ativa se algum vizinho for ativo e se torna inativa se ambos vizinhos forem inativos. Faça o desenvolvimento de quatro passos do seguinte cenário inicial: Exemplo 1 Algumas observações Regras simples originam um padrão quadriculado Uma célula ativada dispara seus vizinhos e inibe a si mesma Nós realmente não esperávamos surgir nada complexo de algo tão simples... certo? Exemplo 2 Exemplo 2 Teste o seguinte conjunto de regras: Uma célula é ativada quando algum (mas não ambos) de seus vizinhos é ativo, caso contrário se torna desativada. Faça o desenvolvimento de quatro passos do seguinte cenário inicial: Algo mais complexo está acontecendo aqui! Algumas observações Assim que todas as outras células se tornam ativadas, a região central fica completamente desativada, deixando apenas os pontos finais A longo prazo, isto tem um efeito interessante: Triângulo de Sierpinski diferentes escalas de tamanho Auto-Similaridade Um objeto é dito ser auto-semelhante, se este se assemelha (igualmente ou aproximadamente) a sua forma em qualquer escala. Samambaias Encostas Corais Raios, ... Os triângulos menores mostram a mesma estrutura do triângulo principal Este é um exemplo de emergência: este padrão complexo emerge de algumas regras extremamente simples O triângulo de Sierpinski é um exemplo clássico de estrutura fractal Comportamento Complexo O padrão é auto-similar em Vimos um exemplo de emergência de um padrão interessante a partir de regras extremamente simples! A pesar disto, o padrão era regular e previsível, mesmo que surpreendente de certa maneira. É natural esperar que um conjunto regular de regras origine padrões regulares (possivelmente complexos). Entretanto, seria possível este conjunto regular de regras simples originarem saídas complexas e irregulares? O que sua intuição lhe diz? Comportamento Complexo Comportamento Complexo Considere o seguinte conjunto de regras: Se a célula e seu vizinho da direita são ambos inativos, então a célula assume o estado do seu vizinho da esquerda. Caso contrário a célula assume o estado inverso do seu vizinho da esquerda. Faça o desenvolvimento de quatro passos do seguinte cenário inicial: Comportamento Complexo Após 100 iterações tem-se: Deste desenvolvimento fica claro que o padrão final será não-simétrico. Nenhuma surpresa, dado que as regras também são não-simétricas! Porém, ainda se espera que o padrão seja regular, uma vez que as regras sejam extremamente simples? Comportamento Complexo Após 500 iterações tem-se: Jogo da Vida de John Conway Comportamento Complexo Mesmo após 500 iterações não existe padrão distinguível! Existem experimentos executando milhares de iterações e nenhum padrão é encontrado. O ponto chave é que mesmo utilizando regras extremamente simples, um sistema pode se desenvolver para algo incrivelmente complexo e detalhado. É um autômato celular bi-dimensional, inventado em 1970 pelo matemático John Conway. Cada célula pode estar populada (ativada) ou não-populada (desativada). Regras para as células populadas: Wolfram, S. A New Kind of Science. Wolfram Media; 2002. Disponível em: Modelagem e simulação: Propagação de incêndio florestal Conclusões Desenvolvimento urbano Comportamento gasoso Turbulência em fluidos Imunologia e envelhecimento biológico Fluxo de eletricidade Cristalização Vida artificial Arte, ... Cada célula com três vizinhos se torna populada (se ativa). http://www.bitstorm.org/gameoflife/ Aplicações Geração de números aleatórios Cada célula com dois ou três vizinhos vive (se mantém ativa). Game of Life: http://archetyp.al/other_pages/care.html Cada célula com quatro ou mais vizinhos também morre (se desativa), como se fosse por super-população. Regras para células não-populadas: http://www.wolframscience.com/nksonline/toc.html Cellular Automata Wolfram's Rule Explorer: Cada célula com um ou nenhum vizinho morre (se desativa), como se fosse por solidão. CAs são governados por regras simples Embora fáceis de descrever, eles podem gerar alguns comportamentos extremamente complexos e imprevisíveis Quando tendo inspiração nos sistemas naturais para projetar sistemas computacionais, comportamentos complexos podem ser alcançados através de interações bastante simples Encontrar as regras locais não é uma tarefa trivial CAs possuem um uso prático, especialmente para modelagem e simulação Entretanto, seu poder ainda não foi completamente explorado para aplicações do mundo real