Autômato Celular O primeiro a cunhar a palavra auto-maton Aristóteles (a.C.) ficou fascinado por “Autômato” e teria dito: “Evidentemente, se abri-los, descobrirei apenas um mecanismo ridículo; mas se conservar a “caixa preta” fechada, então lhe atribuirei “livre-arbítrio”, uma vez que ignoro a causa e o efeito da mudança”. E o denominou de auto-maton, isto é, “que agem por sua própria vontade”. Segundo a interpretação aristotélica , o “livre-arbítrio” seria aquilo do qual ignoramos o funcionamento, ao passo que, se o conhecêssemos, então seria puro determinismo. Autômato Celular Prof. Dr.Marco Aurélio Amaral Henriques Aluna: Sílvia R.L.Magossi Data: 27/04/2015 Agenda • Áreas de Aplicação • Precursores dos trabalhos sobre: Autômato Celular • Autômato Celular Unidimensional • Autômato Celular Bidimensional • Game 0f Life • Trabalhos futuros • Trabalhos de Wolfran • Autômato Celular e Criptografia Áreas de Aplicação Áreas de aplicação Autômato Celular tem sido estudados extensivamente nas áreas: • Ciências natural, • Matemática, • Ciência da computação. São usados como modelo de fenômenos físicos e biológicos tais como: • Fluxo de fluido, • Formação de galáxias, • Terremotos, • Formação de padrão biológico. Também são considerados objetos matemáticos sobre propriedades formais as quais elas podem ser provadas. Usados como dispositivos de computação paralela tanto para simulação de alta velocidade de modelos científicos e para tarefas computacionais como processamento de imagem. Estão sendo estudados como modelos abstratos emergentes com comportamentos cooperativos ou coletivo em sistemas complexos. Desde a sua publicação, Jogo da Vida de Conway tem atraído muito interesse, devido as maneiras surpreendentes em que os padrões podem evoluir. “Life” é um exemplo de crescimento e auto-organização. Vários campos da ciência tem utilizado Autômato Celular para encontrar padrões complexos, que podem vir da implementação das regras simples de jogos, tais como : • • • • • • • • computer science, physics, biology, biochemistry, economics, mathematics, philosophy, e generative sciences. Precursores dos trabalhos na área Autômato Celular John von Neumann Qualquer um que tentar gerar números aleatórios por meios determinísticos, é claro, está vivendo em estado de pecado Born Neumann János Lajos December 28, 1903 Budapest, Austria-Hungary Died February 8, 1957 (aged 53) Walter Reed General Hospital Washington, D.C. Alan Mathison Turing Nacionalidade Nascimento Morte Reino Unido Britânico 23 de Junho de 1912 7 de Junho de 1954 (41 anos) Stanislaw Marcin Ulam Left to right— John von Neumann, Richard Feynman, Stanislaw Ulam Nascimento Local Morte Local 13 de abril de 1909 Lviv - Ucrânia 13 de maio de 1984 (75 anos) Santa Fé Quais as ideias que estavam sendo discutidas naquele momento? Computers were being built and used at Los Alamos. While the analogy between the computer and the brain seems obvious to us today, that was not so in the early days of computing. Ulam , Alan Turing, and John von Neumann shared an interest in this analogy. Also, the birth of the new biology with the Crick and Watson discovery of the structure of DNA in 1953 stimulated more applications of mathematics to biology and Ulam participated in these applications. Final 1940: von Neumann inicia teoria geral sobre autômato. Haviam discussões frequentes com Ulam , o qual fez sugestões e suas próprias contribuições. 1949: von Neumann foi o primeiro a apresentar na University de Illinois em Dezembro de 1949. 1964: Aluno de Burks - J.W. Tatcher publica um relatório técnico: Universality in the von Neumann Cellular Model . 1966: Esse trabalho foi revisado, editado e publicado por Arthur W. Burks, após a morte de von Neumann. Von Neumann, J., Theory of Self-Reproducing Automata, Univ. of Illinois Press, Urbana, 1966. Arthur Walter Burks (Duluth, Minnesota, 13 de outubro de 1915 — Ann Arbor, Michigan, 14 de maio de 2008) Foi um matemático americano. E na década de 1940 que trabalhou como engenheiro sênior no projeto que contribuiu para a construção do ENIAC, o primeiro computador digital eletrônico de grande escala. John von Neumann. The general and logical theory of automata. In Taub [Tau63b], pages 288–328. LCCN ???? See also volumes I–IV, VI [Tau61a, Tau61b, Tau63a, Tau62, Tau63c]. Dichotomy o f the Problem: Nature o f the Elements, Axiomatic Discussion of Their Synthesis. The Axiomatic Procedure. DISCUSSION OF CERTAIN RELEVANT TRAITS OF COMPUTING MACHINES • • • • • Computing Machines-Typical Operations. Precision and Reliability Requirements The Analogy Principle. The Digital Principle. The Role o f the Digital Procedure in Reducing the Noise Level. COMPARISONS BETWEEN COMPUTING MACHINES AND LIVING ORGANISMS • • • • • • • Mixed Character of Living Organisms. Affixed Character of Each Element. The Concept of a Switching Comparison of the Sizes of Large Computing Machines and Living Organisms. Determination of the Significant Ratio of Sizes fur the Elements. Analysis of the Reasons for the Extreme Ratio of Sizes Technological Interpretation of These Reasons THE FUTURE LOGICAL THEORY OF AUTOMATA • • • • • • Further Discussion of the Factors That Limit the Present Size of Artificial Automata. The Limitation Which Is Due to the Lack of a Logical Theory ofAutomata. Probable Characteristics of Such a Theory. Effects of the Lack of a Logical Theory of Automata on the Procedures in Dealing with Errors. The Single-Error Principle. . PRINCIPLES OF DIGITALIZATION • Digitalization of Continuous Quantities • Comparison of the Two Methods The Preference of Living Organisms for the Counting Method FORMAL NEURAL NETWORKS • The McCulloch-Pitts Theory of Formal Neural Networks. • The Main Result of the McCulloch-Pitts Theory. • Interpretations of This Result. THE CONCEPT OF COMPLICATION SELF-REPRODUCTION • • • • • • Turing's Theory of Computing Automata. The Main Result of the Turing Theory. Broadening o f the Program to Deal with Automata That Produce Automata. The Basic Definitions. Outline of the Derivation o f the Theorem Regarding Self-reproduction. Interpretations of This Result and of Its Immediate Extensions. DISCUSSION com DR. VON NEUMANN • • • • • • DR MC CULLOCH DR. GERARD DR. WEISS DR. LASHLEY DR. HALSTEAD DR. LORENTE DE NÓ No livro Stanislaw M. Ulam’s Contributions to Theoretical Theory WILLIAM A. BEYER PETER H. SELLERS MICHAEL S. WATERMAN os autores apresentam 5 modelos de self-reproducing automata: 1. 2. 3. 4. 5. Kinematic model; Cellular Model; Excitation-threshold-fatigue model; Continuous Model , and Probabilistic Model. O modelo celular (Cellular Model) foi sugerido em conversa com Ulam, onde o mesmo sugere que esse modelo pudesse ser mais amigável para tratamento matemático e lógico. Autômato Celular Unidimensional A Brief History of Cellular Automata PALASH SARKAR Indian Statistical Institute ACM Computing Surveys, Vol. 32, No. 1, March 2000 A mais simples descrição de um autômato celular é uma array de células de uma dimensão (possivelmente infinito nas duas direções). O tempo é discreto, marcado a cada tick do relógio, cada célula tem em um conjunto finito de possibilidade de estados. O estado da célula muda a cada tick do relógio, e o novo estado é completamente determinado pelo presente estado da célula e seus vizinhos da esquerda e da direita. Computation in Cellular Automata: A Selected Review Melanie Mitchell Santa Fe Institute 1399 Hyde Park Road Santa Fe, NM 87501 U.S.A. email: [email protected] In T. Gramss, S. Bornholdt, M. Gross, M. Mitchell, and T. Pellizzari, Nonstandard Computation, pp. 95–140. Weinheim: VCH Verlagsgesellschaft, 1998. Para Melanie Mitchell autômato celular (CAs) são sistemas estendidos espacialmente descentralizados, contendo um grande número de componentes idênticos com conectividade local. Tais sistemas tem potencial para desempenharem complexas computações com alto grau de eficiência e robustez, tão bom como o comportamento de um modelo do Sistema complexo da natureza Palash tenta mostrar as pesquisas realizadas nos últimos 40 anos, e divide o trabalho de autômato celular em 3 grandes áreas: Clássica: Os temas os quais foram influenciado pelo trabalho inicial de von Neumann. Moderna: Os temas que foram influenciado por um lado pelo trabalho de Wolfram , e por outro, pelos desenvolvimentos de outros ramos da ciência da computação. Games: Além do Game of Life e s-game , Palash também incluiu o Firing Squad problem (um problema de sincronização) Regra local é a função que determina esta mudança de estado e é a mesma para todas as células. O autômato não tem nenhuma entrada e dessa forma é autônomo. Configuração ou estado global de CA: é a coleção de estados das células em algum ponto no tempo o qual descreve o estágio da evolução do CA. Mapa Global ou regra global do autômato: A aplicação da regra local em cada célula do CA resulta em uma transformação do conjunto de todas as configurações em si mesmo. Evolução de um elementar Autômato Celular (unidimensional) regra 30 O autômato-celular é dividido em oito células, cada célula pode carregar 0 ou 1 e os valores decimais que as células representam em binário variam de 0 a 7 da esquerda para direita. Representação 1: 7 6 5 4 3 6 110 0 5 101 0 4 100 1 3 011 1 2 1 0 Representação 2: 7 111 0 2 010 1 1 001 1 0 000 0 A terceira linha na representação 1 e 2 indica o número da regra que se está utilizando, exemplo: 00011110 = 30 , e como se dará o comportamento da evolução desse autômato utilizando essa regra. A evolução de um autômato-celular de uma dimensão pode ser ilustrado com o estado inicial (geração zero) na primeira linha, a primeira geração na segunda linha e assim por diante. A figura abaixo ilustra as primeiras 15 gerações da elementar regra 30 de um autômato-celular iniciando com uma simples célula preta. (Wolfram 2002, p. 871), Se observarmos a coluna central , ela é dada por 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, ... (OEIS A051023). Exemplos de regras: As ilustrações ao lado mostram alguns números de autômatos que dão padrão particularmente interessante propagada por 15 gerações começando com uma única célula preta na iteração inicial. A regra 30 é de especial interesse porque é caótica (Wolfran 2002, p.871). Na verdade , esta regra é usada como gerador de números aleatórios utilizado para grandes inteiros em Mathematica (Wolfram 2002). Padrão de propagação das regras anteriores. Temos 8 possíveis padrões de vizinhança 23 = 8 e 28 = 256 regras possíveis. Formalização dos ECAs Autômato Celular Elementar No trabalho de Melanie Mitchell um autômato celular é composto por dois componentes: 1. Espaço Celular 2. Regra de Transição. Espaço Celular: uma malha (reticulado) com N máquinas de estado finito idênticas (células). Seja: ∑ o conjunto de estados dentro das células de uma máquina de estado finito. K = |∑| o número de estado por célula. Є ∑ ). Cada célula é indicada por um índice i e o estado no tempo t é indicado por 𝑥𝑖𝑡 (onde 𝑥𝑖𝑡 Os estados 𝑥𝑖𝑡 da célula i junto com os estados das células a qual a célula está conectada é chamada de vizinhos η𝑡𝑖 da célula i. Regra de Transição: é o segundo componente (ou “CA rule”) Φ (η𝑡𝑖 ) a qual fornece a atualização do estado 𝑥𝑖𝑡+1 para cada célula i como uma função η𝑡𝑖 . A cada tick do relógio num CA é fornecido um sinal de atualização para todas as células , a cada passo do tempo todos os estados das células são atualizados de forma síncrona de acordo com Φ (η𝑡𝑖 ). Um autômato celular unidimensional , com K = 2 (∑ = {1,0}) é ilustrado no próximo slide. Vizinhos :Consiste na própria célula e dos dois vizinhos mais próximos sendo as condições de contornos periódicas. Ex.: A célula mais a esquerda é considerada ser vizinho direito da célula mais a direita e viceversa CA Rules •One-dimensional CA: •next state of cell i: •Example: Rule 3010 = 1E16 = 000111102 Para autômato celular unidimensional o tamanho dos vizinhos η𝑡𝑖 (podemos tirar o tempo quando ele não for necessário) é escrito como : |η𝑖 | = 2r +1 onde r é chamado de raio do CA. No caso unidimensional Φ(η𝑡𝑖 ): ∑ 2𝑟+1 ∑ Portanto temos 256 autômato celular unidimensional, k=2, r = 1 e eles são chamados de autômatos celulares elementares. Uma célula e as suas duas vizinhas formam uma vizinhança de 3 por isso existem 23 = 8 padrões possíveis para uma vizinhança. Há então 28 = 256 regras possíveis. Modificações - aumentando o número das dimensões como: • o número de estados por célula, • o tamanho dos vizinhos modificando as condições de contornos. Pode mudar transformando a regra de um CA para estocástica ao invés de determinística. Autômato Celular Bidimensional Uma descrição alto nível como o autômato de auto reprodução de von Neumann trabalha. O autômato originalmente descrito por von Neumann é um array infinito de duas dimensões de células uniformes, onde cada célula é conectada por quatro vizinhos ortogonal. Figura 2. Originalmente foi chamado de espaço celular, mas o termo CA (Cellular Automata) é mais popular agora. Autômato Celular foi apresentado por von Neumann em 1963 como um modelo formal de sistemas biológicos de auto reprodução (formal model of self-reproducing) “The main purpose of von Neumann was to bring the rigor of axiomatic and deductive treatment to the study of “complicated” natural systems. The basic idea of a self-reproducing automaton is presented in von Neumann [1963a], and is a beautiful adaptation of the idea of constructing a universal Turing Machine (TM). Here we present a brief sketch of the idea.” A grande ideia na mente de von Neumann : O fenômeno biológico de auto reprodução. Então ele coloca uma questão: “What kind of logical organization is sufficient for an automaton to be able to reproduce itself?” A ideia em utilizar autômato celular como um framework para responder a esta questão, foi sugerida à von Neumann por Stanislaw Ulan (Burks, 1970b). Assim, o conceito original de autômato celular pode ser creditado a Ulam enquanto o desenvolvimento embrionário desse conceito pode ser creditado a von Neumann. Von Neumann acreditava que autômato celular seria essencial em dois aspectos: entendimento sistemas complexos da natureza e para projeto de sistemas complexos artificiais. Figura 3: (a) The von Neumann neighborhood. (b) The Moore neighborhood. Em ambos os casos a célula a ser atualizada é a sombreada. Autômato celular de von Neumann. A figura 4 (próximo slide) ilustra esquematicamente o processo alto-nível pelo qual o autômato auto reprodução trabalha. Há 29 possíveis estados por célula (incluindo o estado em repouso). A configuração é composta de duas unidades funcionais: • Uma unidade de construção (que constrói o novo autômato). • Uma unidade de fita (que armazena e lê a informação necessária para construção do novo autômato). Figuras tiradas do livro: Burks, A. W. (editor) (1970a) . Essays on Cellular Automata. Urbana, IL: University of Illinois Press. Descrição de Funcionamento A construção do novo autômato é feita através do envio de sinais (na forma de propagação de estados das células) entre a unidade de fita e a unidade de construção. A unidade de construção é composta do controle de construção e de um “constructing arm” (braço em construção). O braço em construção é um array de células através do qual os estados das células para serem construídos devem ser enviados a partir do controle da construção, para os locais designados na área da construção. O autômato original Mc é “turned on” por um sinal externo, enviado para o controle de construção, para então construir o “arm”, braço, um array de estados de células expandindo e contraindo, e movendo (mudando os estados intermediários das células) da sua posição inicial para o canto superior esquerdo da área de construção. O controle de construção pergunta e recebe, os valores sucessivos de estado da fita, e move para o braço de construção para colocá-los em suas posições adequadas na área de construção. Quando a construção estiver completa, o controle da construção move o braço em construção para o canto inferior esquerdo de M , e envia o sinal start para ele, produzindo em M um novo processo de auto reprodução. Então Mc volta a construção do braço de volta a posição original. Game of Life http://pt.wikipedia.org/wiki/Jogo_da_vida#O_Jogo Autômato Bidimensional “Game of Life” - inventado por John Conway em 1960 Popularizado por Martin Gardner em artigo na Scientific American - Data: Outubro de 1970. A vizinhança da célula η𝑡𝑖 é o Moore neighborhood. A regra transição 𝑥𝑖𝑡+1 = Φ(η𝑡𝑖 ) Quando 𝑥𝑖𝑡 = 1 𝑥𝑖𝑡 = 0 𝑥𝑖𝑡+1 = 1 𝑠𝑠𝑒 𝑒𝑥𝑎𝑡𝑎𝑚𝑒𝑛𝑡𝑒 2 𝑜𝑢 3 𝑣𝑖𝑧𝑖𝑛ℎ𝑜𝑠 𝑒𝑠𝑡ã𝑜 𝑛𝑜 𝑒𝑠𝑡𝑎𝑑𝑜 1 𝑥𝑖𝑡+1 = 0 𝑥𝑖𝑡+1 = 1 𝑠𝑠𝑒 𝑒𝑥𝑎𝑡𝑎𝑚𝑒𝑛𝑡𝑒 3 𝑣𝑖𝑧𝑖𝑛ℎ𝑜𝑠 𝑒𝑠𝑡ã𝑜 𝑛𝑜 𝑒𝑠𝑡𝑎𝑑𝑜 1 𝑥𝑖𝑡+1 = 0 Life inicia uma configuração com um finito números de 1s e todos os outros conjunto de células zero (0), se desenvolvendo num reticulado infinito bidimensional. Regras do Game of Life O valor das células se tornaram 0 ou 1, on ou off dependendo do estado das células que estão ao redor de uma determinada célula ou célula corrente. São oito células ao redor da célula a ser checada. Verifica-se a situação das oito células ao redor da célula em questão, e altera se for o caso. As células que estão ligadas são contadas e esta contagem é utilizada para determinar o que vai acontecer com a célula corrente. 1. Morte: Se a contagem das células vivas (on, 1) for menor que dois (2) ou maior que três (3) a célula corrente é então trocada para situação de morte (off, 0). 2. Sobrevivência: a) Se a contagem é exatamente 2;ou b) A contagem é exatamente 3 e a célula corrente está em on, a célula corrente não é alterada. 3. Nascimento: Se a célula corrente está em off e a contagem é exatamente 3, a célula corrente é trocada para on (1). Outras formas criam padrões complexos de movimento a partir de sua configuração inicial e movem-se em padrões repetitivos, dando "nascimento" a formas de vida independentes. Weisstein gives an extensive alphabetical tabulation of life forms and terms. Um padrão que não muda de uma geração para a próxima é conhecido como uma natureza morta, e é dito ter período 1. Várias naturezas-mortas são ilustrados acima. Os números de células ainda vive de n para n = 1, 2, 3, ... são 0, 0, 0, 2, 1, 5, 4, 9, 10, 25, 46, 121, 240, 619, 1353 , ... (OEIS A019473). http://mathworld.wolfram.com/GameofLife.html O desenho da grade vai se alterando de acordo com as regras para completar o preenchimento das células Trabalhos Futuros A Fast Cryptographic Hash Function Based on Linear Cellular Automata over GF(q) Miodrag Mihaljevi, Yuliang Zheng , and Hideki Imai . Survey of Cellular Automata Based Hash Functions Jun-Cheol Jeon Department of Computer Engineering at Kumoh National Institute of Technology, Gumi, Korea [email protected] ISA 2013, ASTL Vol. 21, pp. 168 - 170, 2013 © SERSC 2013 Proceedings, The 7th International Conference on Information Security and Assurance Abstract. A cellular automata based schemes are very useful to design hash functions with a low hardware complexity because of its logical operation attribute and parallel property. In this paper, we discuss some hash functions based cellular automata.