159 ARTIGO ORIGINAL ANÁLISE DO ALGORITMO JOGO DA VIDA Junior Nakamura (1) Rosely Scheffer (2) (1) Acadêmico do curso de Tecnologia em Análise e Desenvolvimento de Sistemas – Faculdade Integrado de Campo Mourão (2) Coordenadora do curso de Tecnologia em Análise e Desenvolvimento de Sistemas –Faculdade Integrado de Campo Mourão. E-mail: [email protected] RESUMO O algoritmo do jogo da vida, desenvolvido por John Horton Conway em 1970, é um importante autômato celular que até os dias de hoje é utilizado em pesquisas na química, biologia e ciências em geral. O objetivo dessa pesquisa é o de reproduzir o algoritmo do jogo da vida para qualquer ambiente, não importando seu estado inicial. O algoritmo foi desenvolvido na linguagem Java e deve simular quantas iterações forem solicitadas de maneira exata. A metodologia utilizada foi a empírica, baseada em análises e testes, bem como a revisão bibliográfica. Observou-se que em ambientes com alta população a tendência é sempre de redução total da população em poucas gerações, já em ambientes de média lotação, a estabilização da população é recorrente. Conclui-se que a pesquisa obteve êxito, pois foram alcançados os objetivos propostos, demonstrando que o algoritmo do jogo da vida até hoje é válido. PALAVRAS CHAVE: algoritmo; jogo da vida; autômato celular; ambiente. ANALYSIS ALGORITHM GAME OF LIFE ABSTRACT The Game of Life algorithm developed by John Horton Conway in 1970 is an important cellular automata that even today is used for research in chemistry, biology and science in general. The purpose of this research is to reproduce the game of life algorithm for any environment regardless of its initial state. The algorithm was developed in java language and must simulate as many interactions as required exactly. The methodology used was empirical, with analysis and testing, and bibliographic review. It was observed that in environments with high population the trend is total reduction of the population within a few generations, however, on environments of medium population, the population stabilization is recurrent. It is concluded that the research was successful because all the goals were achieved, demonstrating that the game of life algorithm is valid until today. KEYWORDS: algorithm; game of life; cellular automata; environment. Revista Iniciare, Campo Mourão, v. 1, n. 1, p. 159-163, jul. /dez. 2016. 160 INTRODUÇÃO O algoritmo do jogo da vida é conhecido como um autômato celular, foi desenvolvido por John Horton Conway em meados da década de 1970 e é também um modelo matemático de grande valia para estudos comportamentais de combate a incêndios, combate a câncer, crescimento e morte de colônia de bactérias entre outros. Um autômato celular é baseado em quatro conceitos: o da geometria, que diz respeito ao formato do ambiente; o das regras dos estados, que são de regras simples que simulam mudanças e acontecimentos dentro de grupos de seres vivos; do estado da célula, que deve ser finito e dizer respeito aos possíveis estados dessa célula (vivo ou morto); e da vizinhança, que é a forma que elas se relacionam. Hoje em dia existem diversas evoluções do jogo da vida que se aplicam a contextos específicos, porém que se baseiam na ideia original. Sendo que uma de suas aplicações práticas é o seu uso com as equações diferenciais utilizadas em faculdades norte-americanas na pesquisa para entender o crescimento de câncer em seres humanos. O jogo da vida foi um passo importante para o desenvolvimento da computação distribuída e redes peer- to-peer, que dentre outras coisas dependem da cooperação de um conjunto de recursos para funcionar adequadamente. Este estudo tem como objetivo reproduzir um algoritmo do jogo da vida utilizando a linguagem Java para qualquer tipo de ambiente, não importando o estado inicial, e o algoritmo deve simular um número indefinido de gerações. Para o seu desenvolvimento adotou-se como ferramenta o NetBeans, bem como foi utilizado o enunciado original sobre o jogo da vida. 2 METODOLOGIA Para esta pesquisa, utilizou-se a revisão bibliográfica e o método empírico que é aquele que se dedica ao tratamento da “face empírica e fatual da realidade; produz e analisa dados, procedendo sempre pela via do controle empírico e fatual” (1). A valorização desse tipo de pesquisa é pela “possibilidade que oferece de maior concretude às argumentações, por mais tênue que possa ser a base fatual, pois o significado dos dados empíricos depende do referencial teórico, porém estes dados Revista Iniciare, Campo Mourão, v. 1, n. 1, p. 159-163, jul. /dez. 2016. 161 agregam impacto pertinente, sobretudo no sentido de facilitarem a aproximação prática” (2). Utilizou-se a ferramenta NetBeans e a linguagem Java e como notação optouse pelo uso de 0 para representar células mortas e 1 para células vivas. Exemplo: [1, 0, 1]. 3 RESULTADOS E DISCUSSÕES A partir do enunciado base do jogo da vida proposto por John Horton Conway, reproduziu-se com exatidão o jogo da vida na linguagem Java em qualquer tipo de ambiente, não importando seu estado inicial. Observou-se que um algoritmo, proveniente dos anos 1970, até hoje funciona perfeitamente, apenas com suas regras básicas e que pode ser adaptado para qualquer linguagem computacional. Percebeu-se ainda, que quando se utiliza uma matriz cheia, ou seja, um ambiente com todos os seus integrantes vivos após duas gerações, a matriz ou o ambiente fica totalmente vazio devido à superpopulação que é uma das regras do jogo da vida. Resultado para ambientes com superpopulação: [1 1 1] [1 1 1] [1 1 1] [1 0 1] [0 0 0] [1 0 1] [0 0 0] [0 0 0] [0 0 0] 1ª Geração 2ª Geração 3ª Geração Quando se utiliza uma matriz equilibrada, ou seja, um ambiente mais conciso e com menos integrantes vivos e em lugares estratégicos, observa-se que a população tende a estabilizar-se por N gerações. Resultado para ambientes com população em equilíbrio: 0 0 0] [1 1 0] [1 1 0] [0 0 0] [1 1 0] [1 1 0] [0 0 0] [1 1 0] [1 1 0] 1ª Geração 100ª Geração Nª Geração Já em ambientes com escassez de indivíduos, ou seja, menos populosos existe tendência à extinção completa da população, como no exemplo a seguir. Revista Iniciare, Campo Mourão, v. 1, n. 1, p. 159-163, jul. /dez. 2016. 162 Resultado para ambientes com subpopulação: 0 0 0] [1 0 0] [0 1 0] [0 0 0] [0 0 0] [0 0 0] 1ª Geração 2ª Geração Esses resultados demonstram certos padrões e modos de crescimento, morte e estabilização de seres vivos, tais como: a tendência à extinção quando ocorre superpopulação e subpopulação em um ambiente; a estabilização da população em ambientes com população equilibrada. Além disso, pôde-se perceber que com testes maiores poderia se chegar a resultados mais significativos, no entanto, o objetivo da pesquisa era apenas o de implementar esse algoritmo e analisar alguns resultados obtidos. 4 CONSIDERAÇÕES FINAIS O algoritmo do jogo da vida foi o resultado de uma grande pesquisa que se baseou nos autômatos celulares de John Von Neumann, que até hoje possuí grande valia para as ciências de modo geral. Observou-se que o mais interessante de um autômato celular é sua simplicidade conceitual, que se baseia em quatro fatores principais: a geometria, regras de estado, estado da célula e a vizinhança. Devido a essa objetividade e simplicidade que um autômato celular possui, muitos pesquisadores foram atraídos para esse tema e acabaram por evoluir o projeto. O jogo da vida é um dos resultados mais famosos de um autômato celular e o seu enunciado base pode ser implementado em qualquer linguagem computacional obtendo-se o mesmo resultado. Essa pesquisa demonstrou que quanto mais cheio e populoso for a matriz ou o ambiente, existe uma tendência à redução e extinção da população em poucas gerações posteriores. Além disso, quando o ambiente apresenta uma subpopulação, a tendência à extinção é grande, e em ambientes que possuem uma população mais coesa e equilibrada, há tendência à estabilização populacional por N gerações posteriores. Revista Iniciare, Campo Mourão, v. 1, n. 1, p. 159-163, jul. /dez. 2016. 163 Esse resultado mostra que para perpetuação de uma colônia de seres vivos em um ambiente controlado é preferível o equilíbrio populacional em detrimento aos extremos populacionais. A pesquisa obteve êxito pode ser considerada um sucesso, tendo em vista que cumpriu seus objetivos, os quais eram de implementar um algoritmo para simular gerações do jogo da vida na linguagem Java em quaisquer tipos de ambientes. REFERÊNCIAS (1) DEMO, Pedro. Metodologia do conhecimento científico. São Paulo: Atlas, 2000. DEMO, Pedro. Pesquisa e construção do conhecimento: metodologia (2) científica no caminho de Habermas. Rio de Janeiro: Tempo Brasileiro, 1994. Enviado: 14/07/2016 Aceito: 14/08/2016 Publicado: 09/2016 Revista Iniciare, Campo Mourão, v. 1, n. 1, p. 159-163, jul. /dez. 2016.