TIERRA - Anúncio do Simulador de Evolução
Thomas Ray

Atualização TERRA:

(Fonte, resumo, publicações, palestras, novos resultados)

Esta mensagem contém:

  1. Anúncio do lançamento do código fonte do Tierra
  2. Resumo descrevendo o Tierra
  3. Lista de publicações relacionadas e palestras futuras
  4. Alguns novos e inéditos resultados interessantes

Anúncio do lançamento do código fonte da Tierra

Estamos liberando o código-fonte agora, embora ele esteja em desenvolvimento rápido e melhorias principais estejam apenas a alguns dias de distância. Se você usar o software, certifique-se de baixar novas versões em breve do site FTP. O código-fonte no site FTP será substituído em uma base aproximadamente semanal.

O código-fonte completo do simulador Tierra está disponível por ftp anônimo em:

tierra.slhs.udel.edu [128.175.41.34] e
life.slhs.udel.edu [128.175.41.33]
in the directory /tierra.

Para obtê-lo, faça o ftp para tierra ou life, faça login como usuário "anonymous" e forneça seu nome real (por exemplo, tom@udel.edu) como senha. Em seguida, digite o comando `cd tierra' para obter uma lista de arquivos; para exibir a lista de arquivos, digite `dir'. Você verá os seguintes arquivos:

README.T1		Uma descrição detalhada de Tierra e como usá-la.
README.T2		    em duas partes
Part01			o código-fonte no formato shar
 ...			    em sete partes
Part07
announce    		este anúncio
tierra1.tex		Parte 1 e 2 de um manuscrito descrevendo Tierra,
tierra2.tex		    no formato LaTeX.
The shar files contain the README files, so if you want the source code, you don't need to copy README separately. To unpack the shar files, use `unshar', or `sh'.

A versão lançada inclui contribuições significativas de Tom Uffner, Dan Pirone e Marc Cygnus. O software continua sob direitos autorais ("todos os direitos reservados") e não está sendo colocado no domínio público. No entanto, será disponibilizado gratuitamente e poderá ser distribuído livremente. A intenção é que não seja utilizado para atividades de lucro, a menos que algum acordo de royalties seja estabelecido com os autores.

Uma versão DOS do software Tierra com uma interface decente estará pronta para venda ($70) até novembro.

Resumo descrevendo Tierra

Organismos sintéticos foram criados com base em uma metáfora computacional da vida orgânica na qual o tempo de CPU é o recurso de ``energia'' e a memória é o recurso de ``material''. A memória é organizada em padrões informativos que exploram o tempo de CPU para a autorreplicação. A mutação gera novas formas, e a evolução prossegue por seleção natural conforme diferentes genótipos competem por tempo de CPU e espaço de memória.

A observação da natureza mostra que a evolução por seleção natural é capaz tanto de otimização quanto de criatividade. Modelos artificiais da evolução demonstraram a capacidade de otimização da evolução, como exemplificado pelo campo dos algoritmos genéticos. Os aspectos criativos da evolução têm sido mais difíceis de modelar. A dificuldade deriva em parte de uma tendência dos modelos de especificar o significado do ``genoma'' das entidades em evolução, impedindo que novos significados surjam. Apresentarei um modelo natural da evolução que demonstra tanto otimização quanto criatividade, no qual o genoma consiste em sequências de código máquina executável.

A partir de um ancestral rudimentar único ``criatura'', muito rapidamente evoluem parasitas, que não são capazes de se replicar isoladamente porque carecem de uma grande porção do genoma. No entanto, esses parasitas buscam as informações faltantes e, se as localizarem em uma criatura próxima, parasitam as informações do genoma vizinho, assim efetivando sua própria replicação.

Em algumas simulações, os hospedeiros evoluem imunidade contra ataques por parasitas. Quando hospedeiros imunes aparecem, eles frequentemente aumentam em frequência, devastando as populações de parasitas. Em algumas simulações onde a comunidade passa a ser dominada por hospedeiros imunes, os parasitas evoluem resistência à imunidade.

Os hospedeiros evoluem, por vezes, uma resposta aos parasitas que vai além da imunidade, até ao parasitismo hiper (facultativo). O hiper-parasita engana o parasita, fazendo-o dedicar os seus recursos energéticos à replicação do genoma do hiper-parasita. Isto leva os parasitas à extinção.

Evoluindo na ausência de parasitas, os hiperparasitas dominam completamente a comunidade, resultando em uma comunidade relativamente uniforme caracterizada por um alto grau de relacionamento entre os indivíduos. Nessas circunstâncias, a socialidade evolui, na forma de criaturas que só podem se replicar em agregações.

O comportamento cooperativo dos hiperparasitas sociais os torna vulneráveis a uma nova classe de parasitas. Estes trapaceiros, hiper-hiperparasitas, inserem-se entre indivíduos sociais cooperantes, enganando as criaturas sociais, fazendo-as replicar os genomas dos trapaceiros.

A única alteração genética imposta ao simulador são inversões aleatórias de bits no código das criaturas. No entanto, os parasitas são replicadores muito desleixados. Eles causam recombinação e rearranjo significativos dos genomas. Essa sexualidade espontânea é uma força poderosa para a mudança evolutiva no sistema.

Um dos aspectos mais interessantes deste caso de vida é que a maior parte da evolução é baseada na adaptação ao ambiente biótico em vez do ambiente físico. É a coevolução que impulsiona o sistema.

Lista de publicações relacionadas e palestras futuras

A recente publicidade sobre meu trabalho (Technology Review, abril de 1991; Science News, 10 de agosto de 1991; New York Times, 27 de agosto de 1991; Computerworld 30 de setembro de 1991) gerou muito interesse. Eu queria listar as publicações relevantes, bem como os seminários futuros.

Ray, T. S. 1991. ``Is it alive, or is it GA?'' Proceedings of the 1991 International Conference on Genetic Algorithms, Eds. Belew, R. K., and L. B. Booker, San Mateo, CA: Morgan Kaufmann, 527--534.

Ray, T. S. 1991. ``Uma abordagem à síntese da vida.'' Artificial Life II, Estudos do Instituto Santa Fe nas Ciências da Complexidade, vol. XI, Eds. C. Langton, C. Taylor, J. D. Farmer, & S. Rasmussen, Redwood City, CA: Addison-Wesley, 371--408.

Ray, T. S. 1991. ``Dinâmica populacional de organismos digitais.'' Proceedings em Vídeo da Artificial Life II, Ed. C. G. Langton, Redwood City, CA: Addison Wesley.

Ray, T. S. 1991. ``Evolução e otimização de organismos digitais.'' Excelência Científica em Supercomputação: Os Prêmios do Concurso IBM 1990, Eds. Keith R. Billingsley, Ed Derohanes, Hilton Brown, III. Athens, GA, 30602, The Baldwin Press, The University of Georgia. Data de publicação: Dezembro de 1991.

Estarei no Instituto Santa Fe de 1º de fevereiro a 31 de agosto de 1992. Este trabalho também será apresentado nos seminários seguintes:

Universidade de Maryland, Zoologia, 29 de outubro de 1991
Universidade de Kentucky, Lexington, Biologia, 31 de outubro de 1991
Universidade de Delaware, Entomologia, 5 de novembro de 1991
Stony Brook, Departamento de Ecologia e Evolução, 6 de novembro de 1991
Universidade Drexel, Engenharia Elétrica, 8 de novembro de 1991
The University of the Arts, Filadélfia, palestras Design in Cyberspace, 12 de novembro de 1991
IBM, Centro de Pesquisa T. J. Watson, Yorktown Heights, NY, 13 de novembro de 1991
Thinking Machines Corp., Cambridge, 14 de novembro de 1991
Digital Equipment Corp., Hudson, MA, 15 de novembro de 1991
American Society of Information Science, Nova Jersey, 19 de novembro de 1991
Texas Instruments, Dallas, 21 de novembro de 1991
Universidade de Harvard, Biologia (laboratório de Lewontin), 2 de dezembro de 1991
Universidade de Boston, Centro de Ciências Computacionais, 3 de dezembro de 1991
Grupo de Estudo em Nanotecnologia do MIT, 3 de dezembro de 1991
Universidade de Massachusetts Boston, Biologia, 5 de dezembro de 1991
Universidade de Yale, Biologia, 6 de dezembro de 1991
Universidade do Arizona, Ecologia & Biologia Evolutiva, 10 de março de 1992
Universidade Cornell, Instituto de Ciências Matemáticas, Workshop CA, maio de 1992
Gordon Conference on Theoretical Biology, Nova Hampshire, 8--12 de junho de 1992

Alguns resultados novos e não publicados interessantes

Abaixo está um relatório de um resultado interessante que não é descrito em nenhuma das publicações listadas acima: Uma Adaptação Complexa

A adaptação descrita abaixo é um exemplo clássico de design intricado na evolução. Pergunta-se como ela poderia ter surgido através de inversões aleatórias de bits, já que cada componente do código deve estar em seu lugar para que o algoritmo funcione. No entanto, o código inclui uma mistura clássica de design inteligente aparente e a mão caótica da evolução. A técnica de otimização é muito engenhosa, inventada por humanos, no entanto, é implementada em um estilo embaralhado, mas funcional, que nenhum humano usaria (a menos que talvez muito intoxicado).

A corrida armamentista descrita nos manuscritos ocorreu ao longo de um período de um bilhão de instruções executadas pelo sistema. Outra execução foi permitida continuar por quinze bilhões de instruções, mas não foi examinada em detalhe. Uma criatura presente no final da execução foi examinada e constatou-se que havia evoluído uma adaptação intrincada. A adaptação é uma técnica de otimização conhecida como ``desenrolar o loop''.

O loop principal do procedimento de cópia executa as seguintes operações: 1) copia uma instrução da mãe para a filha, 2) decrementa o registro cx que inicialmente contém o tamanho do genoma do progenitor, 3) testa para ver se cx é igual a zero; se for, sai do loop; caso contrário, permanece no loop, 4) incrementa o registro ax que contém o endereço na filha onde a próxima instrução será copiada, 5) incrementa o registro bx que contém o endereço na mãe onde a próxima instrução será copiada, 6) pula de volta ao topo do loop.

O trabalho do loop está contido nos passos 1, 2, 4 e 5. Os passos 3 e 6 são sobrecarga. A eficiência do loop pode ser aumentada duplicando os passos de trabalho dentro do loop, economizando assim com a sobrecarga. A criatura do final da longa corrida repetiu os passos de trabalho três vezes dentro do loop, conforme ilustrado abaixo.

O loop desdobrado é um exemplo da capacidade da evolução de produzir um aumento na complexidade, gradualmente, ao longo de um longo período de tempo. O interessante sobre a técnica de otimização de desdobramento de loop é que ela exige um código mais complexo. A criatura resultante tem um tamanho de genoma de 36, comparado ao seu ancestral de tamanho 80, e ainda assim conseguiu encaixar um algoritmo muito mais complexo em menos da metade do espaço.

Abaixo, incluo o código de montagem para o loop de cópia central do ancestral (80aaa) e do descendente após quinze bilhões de instruções (72etq). Dentro do loop, o ancestral executa cada uma das seguintes operações uma vez: cópia de instrução (51), decremento de cx (52), incremento de ax (59) e incremento de bx (60). O descendente executa cada uma das seguintes operações três vezes dentro do loop: cópia de instrução (15, 22, 26), incremento de ax (20, 24, 31) e incremento de bx (21, 25, 32). A operação de decremento de cx ocorre cinco vezes dentro do loop (16, 17, 19, 23, 27). A instrução 28 inverte o bit de ordem baixa do registro cx. Sempre que esta última instrução é alcançada, o valor do bit de ordem baixa é um, o que equivale a uma sexta instância de decremento de cx. Isso significa que há dois decrementos para cada incremento.

A razão para isso está relacionada a outra adaptação dessa criatura. Quando ela calcula seu tamanho, desloca-se para a esquerda (12) antes de alocar espaço para a filha (13). Isso tem o efeito de alocar o dobro do espaço que é realmente necessário para acomodar o genoma. O genoma da criatura tem 36 instruções de comprimento, mas ela aloca um espaço de 72 instruções. Isso ocorreu em um ambiente onde o tamanho do slice foi definido igual ao tamanho da célula. Dessa forma, as criaturas foram capazes de obter o dobro de energia. No entanto, elas tiveram que compensar essa mudança dobrando o número de decrementos no loop.

nop_1    ; 01  47 modelo de loop de cópia      LOOP DE CÓPIA DE 80AAA
nop_0    ; 00  48 modelo de loop de cópia
nop_1    ; 01  49 modelo de loop de cópia
nop_0    ; 00  50 modelo de loop de cópia
mov_iab  ; 1a  51 mover o conteúdo de [bx] para [ax] (instrução de cópia)
dec_c    ; 0a  52 decrementar cx
if_cz    ; 05  53 se cx = 0 executar próxima instrução, caso contrário pular
jmp      ; 14  54 pular para o modelo abaixo (saída do procedimento de cópia)
nop_0    ; 00  55 complemento de saída do procedimento de cópia
nop_1    ; 01  56 complemento de saída do procedimento de cópia
nop_0    ; 00  57 complemento de saída do procedimento de cópia
nop_0    ; 00  58 complemento de saída do procedimento de cópia
inc_a    ; 08  59 incrementar ax (apontar para próxima instrução da filha)
inc_b    ; 09  60 incrementar bx (apontar para próxima instrução da mãe)
jmp      ; 14  61 pular para o modelo abaixo (loop de cópia)
nop_0    ; 00  62 complemento de loop de cópia
nop_1    ; 01  63 complemento de loop de cópia
nop_0    ; 00  64 complemento de loop de cópia
nop_1    ; 01  65 complemento de loop de cópia (10 instruções executadas por loop)


shl     ; 000 03  12 deslocar para a esquerda cx        LOOP DE CÓPIA DE 72ETQ
mal     ; 000 1e  13 alocar célula filha
nop_0   ; 000 00  14 topo do loop
mov_iab ; 000 1a  15 instrução de cópia
dec_c   ; 000 0a  16 decrementar cx
dec_c   ; 000 0a  17 decrementar cx
jmpb    ; 000 15  18 lixo
dec_c   ; 000 0a  19 decrementar cx
inc_a   ; 000 08  20 incrementar ax
inc_b   ; 000 09  21 incrementar bx
mov_iab ; 000 1a  22 instrução de cópia
dec_c   ; 000 0a  23 decrementar cx
inc_a   ; 000 08  24 incrementar ax
inc_b   ; 000 09  25 incrementar bx
mov_iab ; 000 1a  26 instrução de cópia
dec_c   ; 000 0a  27 decrementar cx
or1     ; 000 02  28 inverter bit de ordem baixa de cx
if_cz   ; 000 05  29 se cx == 0 executar próxima instrução
ret     ; 000 17  30 sair do loop
inc_a   ; 000 08  31 incrementar ax
inc_b   ; 000 09  32 incrementar bx
jmpb    ; 000 15  33 ir para o topo do loop (6 instruções por cópia)
nop_1   ; 000 01  34 fundo do loop    (18 instruções executadas por loop)

Tom Ray
Universidade de Delaware
Faculdade de Ciências da Vida & Saúde
Newark, Delaware 19716
ray@tierra.slhs.udel.edu
ray@life.slhs.udel.edu
ray@brahms.udel.edu
302-451-2281 (FAX)
302-451-2753