Descubra autômatos

English - Português - 日本語

 # Como Funciona o Emulador?

Eu queria fazer alguns designs divertidos, e tinha acabado de ler sobre autômatos celulares unidimensionais, então este site nasceu.

Continue lendo ou pule direto para o emulador.

 # Autômatos Celulares Unidimensionais

Autômatos celulares são uma espécie de jogo de zero jogadores jogado em um "universo" de "células" ladrilhadas. Cada autômato tem sua própria configuração, e pode evoluir um universo através de muitas gerações. O autômato celular mais conhecido é provavelmente o Jogo da Vida de Conway.

Autômatos celulares unidimensionais (AC1D) são um tipo de autômatos celulares onde o ladrilho é 1D; podemos pensar nisso como uma linha de quadrados. Isso torna as muitas gerações de um AC1D fáceis de desenhar: podemos desenhar todas as linhas de geração uma após a outra para formar um retângulo.

(Primeira geração)
(Próxima geração)
(Próxima geração)

 # Configuração

Para definir um AC1D, precisamos saber três coisas: o número de estados a serem usados, quais vizinhos considerar ao calcular a próxima geração e as regras de transição para decidir para qual estado uma célula evoluirá (com base nos estados de seus vizinhos).

 # Estados

Cada célula em um autômato celular pode estar em um dos vários estados, na maioria das vezes representado como um número (como 0 ou 1) ou uma cor (como preto ou branco).

Nesta simulação, você pode definir o número de estados que o autômato celular possui.

 # Vizinhos

Um exemplo simples de vizinhança é a célula atual e seus dois vizinhos imediatos, como:

000

Em geral, existem muitos, muitos tipos de vizinhanças que podem ser usados para criar autômatos celulares (incluindo vizinhanças que podem mudar com o tempo). No entanto, as vizinhanças usadas neste site são limitadas a uma seleção da célula atual e vários de seus vizinhos mais próximos de cada lado.

Vizinhos (1 - 7)

 # Regras de Transição e Número da Regra

Uma vez selecionado o número de estados e a vizinhança, as regras de transição devem ser determinadas. Para cada combinação possível de estados na vizinhança dada, o estado resultante deve ser escolhido. Como exemplo, aqui está a regra de transição dizendo que, se todos os vizinhos de uma célula forem 0, a célula deve se tornar 1:

(Clicar na regra altera o estado resultante.)

Essas regras de transição podem ser codificadas como um único número, o "número da regra", que também pode ser usado para alterar as regras de transição.

(Esta representação das regras de transição como um "número da regra" usa o Código Wolfram.)

 # Emulador

Uma vez que o autômato é configurado, este site o emula gerando uma geração inicial aleatória e então desenhando muitas gerações filhas.

Acesse aqui para usar o emulador.

 # Nota sobre Nomenclatura

Chamei isso de "emulador" em vez de "simulador", porque espera-se que os simuladores aproximem a coisa que simulam, enquanto o objetivo de um emulador é recriar exatamente o comportamento da coisa que emula.

 # Configurações de Exibição

Existem várias configurações que controlam como o emulador é exibido:

Matiz
  • Os rótulos numéricos podem ser ativados ou desativados.
  • O emulador pode ser renderizado em cores ou em tons de cinza.
  • A primeira geração de células pode ser criada aleatoriamente ou como uma única célula diferente de zero cercada por células zero.
  • O matiz pode ser ajustado para renderizar o emulador usando cores diferentes.
github.com/spejamchr/discover-automata