14
Jogo da Vida Profa. Maria das Graças Bruno Marietto Centro de Matemática, Computação e Cognição (CMCC) [email protected] Vida Arficial na Computação Vida Arficial na Computação Objetivos O objevo desta aula é: Analisar o Jogo da Vida, como um estudo de caso de simulação de um sistema complexo 2 Vida Arficial na Computação Jogo da Vida 3 Vida Arficial na Computação JOGO DA VIDA DE JOHN CONWAY: APRESENTAÇÃO Jogo da Vida Em 1968, o matemáco John Conway desenvolveu um importante autômato celular chamado Jogo da Vida, tendo como objevo projetar um conjunto de regras matemácas simples, capaz de gerar padrões complexos de vida. Conway mostrou como um conjunto de regras básicas pode orientar um sistema complexo. 4 Vida Arficial na Computação Conway explorava a ideia do construtor universal, de forma que uma máquina hipotéca pudesse construir cópias de si mesma. Este assunto foi estudado por John Von Neumann, que criou um modelo matemáco baseado em um autômato celular, com as células podendo assumir 29 estados. John Conway

Objetivosprofessor.ufabc.edu.br/~graca.marietto/HomePage/... · 2020. 6. 6. · É governado por regras simples que definem nascimentos, mortes e sobrevivências de células. 9 Cada

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Objetivosprofessor.ufabc.edu.br/~graca.marietto/HomePage/... · 2020. 6. 6. · É governado por regras simples que definem nascimentos, mortes e sobrevivências de células. 9 Cada

Jogo da Vida

Profa. Maria das Graças Bruno Marietto

Centro de Matemática, Computação e Cognição (CMCC)

[email protected]

Vida Artificial na Computação

Vida Artificial na Computação

Objetivos

O objetivo desta aula é:

Analisar o Jogo da Vida, como um estudo de caso de simulação de um sistema complexo

2Vida Artificial na Computação

Jogo da Vida

3Vida Artificial na Computação

JOGO DA VIDA DEJOHN CONWAY: APRESENTAÇÃO

Jogo da Vida

Em 1968, o matemático John Conway desenvolveu um importante autômato celular chamado Jogo da Vida, tendo como objetivo projetar um conjunto de regras matemáticas simples, capaz de gerar padrões complexos de vida.

Conway mostrou como um conjunto de regras básicas pode orientar um sistema complexo.

4Vida Artificial na Computação

Conway explorava a ideia do construtor universal, de forma que uma máquina hipotética pudesse construir cópias de si mesma.

Este assunto foi estudado por John Von Neumann, que criou um modelo matemático baseado em um autômato celular, com as células podendo assumir 29 estados.

John Conway

Page 2: Objetivosprofessor.ufabc.edu.br/~graca.marietto/HomePage/... · 2020. 6. 6. · É governado por regras simples que definem nascimentos, mortes e sobrevivências de células. 9 Cada

Jogo da Vida

Conway simplificou o modelo de Von Neumann para apenas dois estados, criando o autômato celular Jogo da Vida.

O Jogo da Vida é um exemplo simples de sistema auto-organizável, recebendo a atenção de cientistas de diversas áreas, em estudos sobre como padrões elaborados e comportamentos podem emergir de regras muito simples.

5Vida Artificial na Computação

Por exemplo, o Jogo da Vida ajuda a entender como as pétalas de uma flor, ou as listras de uma zebra, podem aparecer de um tecido de células vivas crescendo juntas.

John Conway

Jogo da Vida

A primeira divulgação do Jogo da Vida de Conway foi na revista Scientific American número 223, de Outubro de 1970, na coluna sobre jogos matemáticos de Martin Gardner (1914-2010).

O Jogo da Vida trataria de apenas um jogo superficial, ou haveria algum real significado por trás de suas regras aparentemente simples?

6Vida Artificial na Computação

No próximo slide está colocado o que Gardner escreveu a respeito da simplicidade encontrada na natureza em relação ao jogo, em um de seus artigos para a Scientific American.

Martin Gardner

Jogo da Vida

7Vida Artificial na Computação

“Uma questão intimamente relacionada é se as próprias leis naturais são simples ou complexas.A maioria dos biólogos, particularmente os que trabalham com o cérebro e o sistema nervoso, estão impressionados com a complexidade da vida. Por outro lado, embora a teoria quântica

tenha se tornado imensamente mais complicada com a descoberta de novas partículas e suas

estranhas interações, a maioria dos físicos mantêm uma forte fé na simplicidade final das leis básicas. Isso era especialmente verdadeiro para Albert Einsten, que escreveu: ‘Nossa experiência

justifica que acreditemos que a natureza é a realização das mais simples ideias matemáticas

concebíveis’”.

Martin Gardner

Jogo da Vida

8Vida Artificial na Computação

O JOGO DA VIDA

Page 3: Objetivosprofessor.ufabc.edu.br/~graca.marietto/HomePage/... · 2020. 6. 6. · É governado por regras simples que definem nascimentos, mortes e sobrevivências de células. 9 Cada

Jogo da Vida

O Jogo da Vida é um autômato celular que se desenvolve em um espaço de duas dimensões, dividido em células quadrangulares.

É governado por regras simples que definem nascimentos, mortes e sobrevivências de células.

9

Cada uma das células do universo bidimensional pode estar em dois estados possíveis: viva ou morta.

No Jogo da Vida da figura acima, a cor preta indica que a célula está morta, e a cor verde/branca indica que a célula está viva.

Se uma célula sobrevive, morre ou nasce será determinado pelo número de vizinhos vivos ao redor de uma célula.

Vida Artificial na Computação

Jogo da Vida

10Vida Artificial na Computação

Na dinâmica do jogo, coloca-se um ou mais organismos, sempre um em cada célula, e a cada instante do tempo/período/geração, aplicam-se as leis gerais para cada célula do quadriculado.

Um organismo em uma célula pode sobreviver ou morrer, e uma célula vazia pode receber um organismo no próximo instante. E assim sucessivamente, a cada geração.

t=0

t=0

t=1

t=1

t=2

t=2

t=3

t=3

t=4

t=4

10Vida Artificial na Computação

Jogo da Vida

11Vida Artificial na Computação

JOGO DA VIDA:COMPORTAMENTOS

DESEJADOS

Jogo da Vida

12

Comportamentos Desejados no Jogo da Vida

Vida Artificial na Computação

Conway chegou às regras do Jogo da Vida por meio do estudo empírico das mesmas, após ter tentado inúmeras possibilidades, até que se chegasse a um universo onde os autômatos celulares alcançassem um determinado equilíbrio entre nascimento e morte de células.

Page 4: Objetivosprofessor.ufabc.edu.br/~graca.marietto/HomePage/... · 2020. 6. 6. · É governado por regras simples que definem nascimentos, mortes e sobrevivências de células. 9 Cada

Jogo da Vida

13

Comportamentos Desejados no Jogo da Vida

Vida Artificial na Computação

As regras de Conway foram escolhidas para se adequar a três condições:

Não deverá haver nenhum teste inicial com uma prova simples de que a população possa crescer sem limitesDevem ser aplicados testes padrões iniciais que, aparentemente, façam crescer sem limiteDeve haver configurações iniciais que no decorrer do tempo cheguem a um resultado que pode ser:

Sumir completamente (seguindo as regras do jogo, ou por solidão ou sufocamento);Assumir uma configuração estável, onde se permaneça constante com o passar do tempo;Entrar em ciclo por dois ou mais períodos de tempo.

Jogo da Vida

14Vida Artificial na Computação

Comportamentos Desejados no Jogo da Vida

As regras do Jogo da Vida devem ser de tal modo que faça o comportamento da população

imprevisível.

Jogo da Vida

15Vida Artificial na Computação

JOGO DA VIDA:REGRAS

Jogo da Vida

16

Regras

Vida Artificial na Computação

Cada célula pode ter oito células vizinhas, que a circundam. Esta é a vizinhança e Moore.

O limite do autômato celular é periódico.

O estado de uma célula é representado por dois valores binários:

(0) se a célula está morta

(1) se a célula está viva

As regras definidas para o Jogo Vida envolvem três tópicos: sobrevivência, nascimentos e mortes.

Page 5: Objetivosprofessor.ufabc.edu.br/~graca.marietto/HomePage/... · 2020. 6. 6. · É governado por regras simples que definem nascimentos, mortes e sobrevivências de células. 9 Cada

Jogo da Vida

17

Regras

Vida Artificial na Computação

Tais regras definem o estado de uma determina célula qualquer na próxima iteração, com base no estado atual das células vizinhas.

As regras do jogo são:

Uma célula viva com 2 ou 3 vizinhos vivos, permanece viva (sobrevivência);

Uma célula viva com apenas 1 ou 0 vizinhos vivos, morre por solidão (morte);

Uma célula viva com 4 ou mais vizinhos, morre sufocada (morte);

Uma célula morta com exatamente 3 vizinhos vivos, nasce/renasce (nascimento).

Jogo da Vida

18

Regras

Vida Artificial na Computação

Ilustrando as regras, a figura abaixo mostra quatro (04) gerações (iterações) ao decorrer do tempo.

Os números na figura não fazem parte do jogo e são apenas para exemplificar qual regra do jogo foi aplicada para que ocorresse tal transição.

t=0

t=0

t=1

t=1

t=2

t=2

t=3

t=3

t=4

t=4

Jogo da Vida

19

Jogo da Vida no Passo N

Jogo da Vida no Passo N

Jogo da Vida no Passo N+1

Jogo da Vida no Passo N+1

Vida Artificial na Computação

Jogo da Vida

20Vida Artificial na Computação

JOGO DA VIDA:TEMPO DISCRETO

Page 6: Objetivosprofessor.ufabc.edu.br/~graca.marietto/HomePage/... · 2020. 6. 6. · É governado por regras simples que definem nascimentos, mortes e sobrevivências de células. 9 Cada

Jogo da Vida

Tempo Discreto

Um AC em duas dimensões é uma grade retangular dividida em células, seus elementos básicos.

Tais células possuem um conjunto finito de estados predefinidos e um conjunto de regras para a mudança de estados.

Os estados das células são alterados conforme a aplicação das regras de transição. Tais regras de transição são baseadas no estado atual da célula e de suas vizinhas.

21

Jogo da Vida

Tempo Discreto

A atualização dos estados das células da matriz/grade é uma operação que ocorre de forma simultânea, em todas as posições da grade/matriz, levando à substituição desta por uma nova grade, com novos valores.

As regras de transição são aplicadas síncrona e paralelamente a todas as células, em cada passo de tempo. Cada estado novo da matriz gerado pela regra é chamado de geração.

Ou seja, os estados das células da matriz são alterados ao mesmo tempo para todas as células.

22

Jogo da Vida

Abaixo, na figura da esquerda no Passo N, cada célula está no estado morto ou vivo.

Tendo como base esta configuração inicial da matriz, para que haja uma mudança da configuração do passo N para a configuração do passo N+1, duas ações devem ser executadas.

23

Jogo da Vida no Passo N

Jogo da Vida no Passo N

Jogo da Vida no Passo N+1

Jogo da Vida no Passo N+1

Tempo Discreto

Jogo da Vida

Primeira Ação

As regras do Jogo da Vida são aplicadas em cada célula da matriz, na iteração N.

Nesta ação são calculados os novos estados das células da matriz. Mas estes novos estados não são atualizados neste momento.

Os estados das células da matriz só serão atualizados após todas as regras do Jogo da Vida terem sido aplicadas em todas as células, e já se saber o valor de cada novo estado.

24

Jogo da Vida no Passo N

Jogo da Vida no Passo N

Jogo da Vida no Passo N+1

Jogo da Vida no Passo N+1

Tempo Discreto

Page 7: Objetivosprofessor.ufabc.edu.br/~graca.marietto/HomePage/... · 2020. 6. 6. · É governado por regras simples que definem nascimentos, mortes e sobrevivências de células. 9 Cada

Jogo da Vida

Segunda Ação

Já sabendo os valores dos novos estados das células do AC, agora é possível atualizar a matriz.

E esta atualização do estado de cada célula é realizado de maneira simultânea, ou seja, de uma única vez é atribuído um novo valor para cada célula da matriz. Assim, todos os nascimentos e mortes ocorrem simultaneamente.

25

Jogo da Vida no Passo N

Jogo da Vida no Passo N

Jogo da Vida no Passo N+1

Jogo da Vida no Passo N+1

Tempo Discreto

Juntos, eles constituem uma única geração (iteração), a partir da configuração inicial (ou anterior). Após esta atualização, o AC agora está no passo N+1.

Jogo da Vida

Segunda Ação

Essa atualização é considerada como um evento em um instante discreto no tempo (do passo N passou para o passo N+1), de forma que o AC é visto como uma entidade que evolui ao longo do tempo, em instantes discretos de tempo.

Por exemplo, da configuração do AC do Passo N, depois de calculado todos os novos estados da matriz, o AC insere os novos valores na matriz (de uma única vez), conforme ilustrado na parte direita na figura abaixo.

26

Jogo da Vida no Passo N

Jogo da Vida no Passo N

Jogo da Vida no Passo N+1

Jogo da Vida no Passo N+1

Tempo Discreto

Jogo da Vida

27Vida Artificial na Computação

t=0

t=0

t=1

t=1

t=2

t=2

t=3

t=3

t=4

t=4

27Vida Artificial na Computação

Observe que o tempo no Jogo da Vida passa, de unidade em unidade

(discretamente), em forma de iterações (gerações).

Tempo Discreto

Jogo da Vida

28Vida Artificial na Computação

No Jogo da Vida, todos os nascimentos, mortes e sobrevivências ocorrem simultaneamente.

Juntos constituem um movimento, na hipótese da vida.

Tempo Discreto

28Vida Artificial na Computação

t=0

t=0

t=1

t=1

t=2

t=2

t=3

t=3

t=4

t=4

Page 8: Objetivosprofessor.ufabc.edu.br/~graca.marietto/HomePage/... · 2020. 6. 6. · É governado por regras simples que definem nascimentos, mortes e sobrevivências de células. 9 Cada

Jogo da Vida

29Vida Artificial na Computação

JOGO DA VIDA:PADRÕES DE

COMPORTAMENTO

Jogo da Vida

30

Padrões de Comportamento

Vida Artificial na Computação

Durante a execução do Jogo da Vida as células organizam-se seguindo alguns padrões, formando objetos visuais.

Padrões no Jogo da Vida são definidos pelo comportamento dos objetos durante sua execução.

Existem vários tipos de padrões detectados, dentre eles:

Padrões que desaparecem

Tipo I: estáveis, vidas paradas, still-alive

Tipo II: oscilatórios, osciladores

Tipo III: estruturas que se movimentam

Jogo da Vida

31Vida Artificial na Computação

PADRÕES DE COMPORTAMENTO:

PADRÕES QUE DESAPARECEM

Jogo da Vida

32

Padrões de Comportamento: Padrões que Desaparecem

Vida Artificial na Computação

Há estruturas de células que desaparecem em poucas interações.

Ou seja, com o passar do tempo as células vão morrendo.

Por exemplo, a cruz suástica desaparece por completo a partir da sexta geração.

Page 9: Objetivosprofessor.ufabc.edu.br/~graca.marietto/HomePage/... · 2020. 6. 6. · É governado por regras simples que definem nascimentos, mortes e sobrevivências de células. 9 Cada

Jogo da Vida

33Vida Artificial na Computação

PADRÕES DE COMPORTAMENTO:

PADRÕES ESTÁVEIS (STILL-LIFE)

Jogo da Vida

Padrões de Comportamento: Padrões Estáveis

Vida Artificial na Computação

Os objetos do padrão Tipo I (estáveis, vidas paradas) são aqueles que não se alteram, que ficam parados, após um determinado número de interações.

Como exemplo tem-se os seguintes objetos: block, beehive, boat, ship, loaf.

Objeto Block

34

Jogo da Vida

35

Padrões de Comportamento: Padrões Estáveis

Vida Artificial na Computação

Objeto Boat

Objeto Ship

Objeto Loaf

Objeto Beehive

Boats

Loafs

Jogo da Vida

36

Padrões de Comportamento: Padrões Estáveis

Vida Artificial na Computação

Objeto Spiral Objeto Hat

Objeto Pond

Page 10: Objetivosprofessor.ufabc.edu.br/~graca.marietto/HomePage/... · 2020. 6. 6. · É governado por regras simples que definem nascimentos, mortes e sobrevivências de células. 9 Cada

Jogo da Vida

37

Padrões de Comportamento: Padrões Estáveis

Vida Artificial na Computação

Jogo da Vida

38Vida Artificial na Computação

PADRÕES DE COMPORTAMENTO:

PADRÃO OSCILATÓRIO

Jogo da Vida

39

Padrões de Comportamento: Padrão Oscilatório

Vida Artificial na Computação

Os objetos oscilatórios são definidos de tal maneira que, com o passar do tempo ficam oscilando entre a forma inicial e uma forma final, alternando entre elas.

Objeto Blinker Objeto Toad

Jogo da Vida

40Vida Artificial na Computação

PADRÕES DE COMPORTAMENTO:

ESTRUTURAS QUE SE MOVIMENTAM

Page 11: Objetivosprofessor.ufabc.edu.br/~graca.marietto/HomePage/... · 2020. 6. 6. · É governado por regras simples que definem nascimentos, mortes e sobrevivências de células. 9 Cada

Jogo da Vida

41

Padrões de Comportamento: Estruturas que se movimentam

Vida Artificial na Computação

Há padrões que se movimentam, como as naves espaciais (spaceships) e os planadores (gliders).

Spaceships se movimentam para cima, para baixo, para a esquerda ou para a direita, enquanto gliders se movimentam horizontalmente.

Padrões que se repetem depois de uma determinada sequência (depois de uma certa quantidade de gerações):

se transformam no espaço

retornam a seus estado original

a medida que as interações se sucedem, temos a sensação de movimento do objeto, que se desloca através da matriz de células do AC

Jogo da Vida

42

Padrões de Comportamento: Estruturas que se movimentam

Vida Artificial na Computação

Exemplo de evolução de uma spaceship.

Exemplo de evolução de um glider.

Jogo da Vida

43

Padrões de Comportamento: Estruturas que se movimentam

Vida Artificial na Computação

É interessante observar que as regras do Jogo da Vida não falam nada sobre objetos que se movem e, apesar disso, padrões de movimentação emergem na execução do Jogo da Vida.

Esse fenômeno de objetos em movimento é uma boa demonstração de como padrões complexos podem surgir a partir de regras simples.

Jogo da Vida

44Vida Artificial na Computação

JOGO DA VIDA E MÁQUINA DE TURING

Page 12: Objetivosprofessor.ufabc.edu.br/~graca.marietto/HomePage/... · 2020. 6. 6. · É governado por regras simples que definem nascimentos, mortes e sobrevivências de células. 9 Cada

Jogo da Vida

45Vida Artificial na Computação

Definição: uma máquina de Turing é um modelo abstrato de um computador

O Jogo da Vida é uma máquina de Turing universal. Basicamente, ela pode calcular qualquer coisa

calculável.

Outra característica fundamental do Jogo da Vida é ser um computador universal. Isto é, ele atende ao Halting Theorem (teorema do travamento), o qual assegura que não existe um algoritmo geral que

possa prever quando um programa de computador irá parar ou continuar a rodar indefinidamente.

Jogo da Vida

46Vida Artificial na Computação

JOGO DA VIDA:VARIAÇÕES DO JOGO

Jogo da Vida

47

Variações do Jogo da Vida

Vida Artificial na Computação

Tentativas de mudar as regras estabelecidas inicialmente por Conway foram feitas, objetivando se chegar a algum resultado interessante.

Esses autômatos celulares foram chamados de Life-Like. Alguns possuem resultados semelhantes aos de Life, e outros resultados curiosos, mas nenhum foi estudado tanto como como o Life original.

Golly é um software livre que funciona como uma plataforma de aplicação para explorar o Jogo da Vida de

Conway e outros autômatos celulares. Inicialmente desenvolvida por Andrew Trevorrow e Tom Rokicki,

encontra-se disponível em http://golly.sourceforge.net/

Jogo da Vida

48

Variações do Jogo da Vida

Vida Artificial na Computação

Uma forma bastante conhecida para definirmos a regra de um determinado AC é utilizar a notação do software Golly.

Uma regra segue o seguinte padrão:

Bx,y...z/Sx‘y‘...z‘Onde os algarismos imediatamente seguintes à letra B (no caso, representados po x,y,...z) referem-se a quantas células vivas vizinhas são necessárias para que uma célula atualmente morta nasça na geração seguinte.

E os algarismos imediatamente depois da letra S (no caso, x ‘, y’,...,z‘) referem-se a quantas células vivas vizinhas são necessárias para que uma célula viva sobreviva na geração seguinte.

Podemos notar que a letra B refere-se a birth, e S à survival (nascimento e sobrevivência em inglês, respectivamente).

Page 13: Objetivosprofessor.ufabc.edu.br/~graca.marietto/HomePage/... · 2020. 6. 6. · É governado por regras simples que definem nascimentos, mortes e sobrevivências de células. 9 Cada

Jogo da Vida

49Vida Artificial na Computação

Como exemplo, pensemos no próprio Jogo da Vida de Conway.

Ele segue a regra: B3/S23, pois uma célula precisa ter exatos 3 vizinhos vivos para nascer e possuir 2 ou 3 vizinhos vivos para sobreviver.

Logicamente, são 2 ou 3 vizinhos vivos, e não 23.

Qualquer outra combinação de vizinhos vivos resulta na morte (ou não nascimento) da célula.

Variações do Jogo da Vida

Jogo da Vida

50Vida Artificial na Computação

VARIAÇÕES DO JOGO DA VIDA:HIGH LIFE

Jogo da Vida

51Vida Artificial na Computação

Uma das variantes do jogo de Conway é o chamado HighLife, concebido por Nathan Thompson em 1994. Suas regras podem ser expressas pela notação vista anteriormente, por B36/S23.

Por ter se originado a partir do Jogo da Vida, muitos de seus padrões mais simples são semelhantes como osciladores, beehive, blinkers, gliders.

Contudo, quando os padrões começam a ficar mais complicados já não são encontradas mais semelhanças.

Variações do Jogo da Vida: High Life

Jogo da Vida

52Vida Artificial na Computação

Um dos interesses especiais, gerados pelo HighLife, vem do padrão chamado replicador.

Replicator é uma imagem que, após chegar em um estado final bem conhecido, entra em loop adotando comportamento de se autoclonar em determinados períodos de tempo.

Um comportamento como esse não foi encontrado no Jogo da Vida.

O comportamento replicante tem seu início após 12 gerações, então reproduz outras duas cópias após a 24ª geração, seguida por mais quatro clones após a 48ª geração e assim por diante.

Generalizando, temos 2^n cópias do replicador na geração 12(2^n -1).

Variações do Jogo da Vida: High Life

Page 14: Objetivosprofessor.ufabc.edu.br/~graca.marietto/HomePage/... · 2020. 6. 6. · É governado por regras simples que definem nascimentos, mortes e sobrevivências de células. 9 Cada

Jogo da Vida

53Vida Artificial na Computação

Variações do Jogo da Vida: High Life

O mesmo replicante após 3, 12 e 36 gerações, respectivamente.

Jogo da Vida

54Vida Artificial na Computação

VARIAÇÕES DO JOGO DA VIDA:SEED

Jogo da Vida

55Vida Artificial na Computação

Outro Life-Like é o Seed, que pode ser descrito por B2/S.

Ou seja, segundo suas regras uma célula precisa de duas células vizinhas para nascer, mas nunca permanece viva.

Apesar de parecer inusitada, essa regra é relativamente comum nas variantes do Jogo da Vida. As variantes os Life-Like deste tipo recebem o nome de phoenix ou fênix.

Inicialmente investigado por Brian Silverman e nomeado por Mirek Wójtowicz, ainda que as células vivas morram constantemente, há um “equilíbrio” pois os requisitos para que uma célula nasça são mínimos.

Variações do Jogo da Vida: Seed

Jogo da Vida

56Vida Artificial na Computação

Uma configuração com poucas células dá origem a uma espécie de desenho dinâmico, que se assemelha a uma explosão caótica que se projeta de maneira a cobrir todo o grid.

Apesar da aparente desordem são encontrados padrões no Seed, como os gliders.

Variações do Jogo da Vida: Seed