# Vida artificial

Vida artificial é a disciplina que estuda a vida através da tentativa de recriar fenômenos biológicos em computadores ou outros meios artificiais. Complementa a abordagem analítica tradicional da biologia com uma abordagem sintética onde, ao invés de estudar os fenômenos biológicos para ver como funcionam os organismos vivos já constituídos, cria um sistema que se comporta como um organismo vivo. O processo de síntese é uma ferramenta importante em diversas disciplinas. Química sintética, por exemplo, não só contribui para o entendimento teórico dos fenômenos químicos como também nos permite fabricar novos materiais com uso prático e fornecer componentes não encontrados na natureza. As tentativas de recriar os fenômenos biológicos de maneira artificial podem resultar não só na melhor compreensão teórica dos fenômenos estudados como também em aplicações práticas dos princípios biológicos na tecnologia de computadores (hardware e software), robótica, medicina, nanotecnologia e diversas áreas de engenharia.

## Princípios Básicos
### Natural, Artificial e Sintético

“A ciência natural é o cerne do conhecimento sob os objetos e fenômenos do mundo que nos cercam, sob suas características e propriedades inerentes, sob seus comportamentos e suas interações intrínsecas. A tarefa principal das ciências naturais é transformar os prodígios da natureza em lugar-comum, mostrando-nos que a complexidade é uma máscara para a simplicidade, descobrindo os padrões escondidos no meio do caos aparente.” (Simon, 1969)
O mundo que nos cerca atualmente é formado, basicamente, por elementos construídos por seres humanos (artificiais), em detrimento dos elementos naturais. Praticamente todos os componentes de nosso ambiente se mostram, ou seja, possuem características, construídas por seres humanos. A temperatura onde gastamos a maior parte do nosso tempo é mantida artificialmente, assim como a umidade e até mesmo as impurezas que respiramos são controladas. Mesmo sendo controladas artificialmente, estes fenômenos trabalham com algum tipo de matéria-prima natural. O termo natural é definido como algo “da, ou referente à, ou produzido pela natureza” (Holland, 1980), ou seja, em que não há trabalho ou intervenção do homem. É preciso ter muito cuidado para não confundir um fenômeno natural com um fenômeno biológico. Uma floresta pode ser entendida como um fenômeno natural, ao passo que uma fazenda certamente é um fenômeno biológico, mas nunca natural. As várias espécies das quais o homem é dependente, tais como o gado e o trigo, em última instância, são artefatos de sua engenhosidade. Um campo arado não faz mais parte da natureza do que uma estrada asfaltada, nem menos. O ser humano vive em um mundo cercado de objetos naturais e artificiais e seu ambiente é definido pelas interações entre esses elementos e seus próprios propósitos.
A definição formal do termo artificial pode ser descrita como: “(1) produzido pela arte ou pela indústria; não-natural, (2) Dissimulado, disfarçado, fingido, (3) postiço” (Holland, 1980). Ou seja, artificial é algo feito pelo ser humano, o oposto do natural. Apesar disso, os elementos que nós habitualmente denominamos artificiais não podem ser consideradas em separado à natureza. Eles não possuem nenhum tipo de isenção que os faça ignorar, ou mesmo violar, as leis da natureza, as leis físicas que regem o nosso mundo. Ao mesmo tempo, estes artefatos são adaptados aos objetivos e desejos humanos. Eles são o que são, desde que possam conduzir objetos ou seres humanos mais rapidamente (aeroplano) ou serem apreciados pelo paladar (criação de gado). Se os objetivos dos seres humanos mudarem, seus artefatos também mudam – e vice-versa. Por outro lado, como exemplificou Simon (1969), uma gema produzida por um vidro colorido imitando uma safira, é um objeto artificial. Mas uma gema que fosse construída pelo ser humano, mas cuja composição química fosse indistinguível de uma gema natural, é um objeto sintético. Tais artefatos são imitações da natureza, em todos os seus detalhes, e esta imitação pode ou não utilizar os mesmos componentes básicos do objeto natural a ser imitado. O termo sintético é comumente usado como sinônimo para projetado ou composto.
A engenharia trata do sintético, da síntese, enquanto que a ciência trabalha com a análise. O engenheiro preocupa-se como os objetos devem ser, como deve ser sua funcionalidade, ou seja, quais são seus objetivos, enquanto que a ciência concentra-se no que os objetos são.
A Vida Artificial pode ser vista como um elo que une a dicotomia gerada entre o pensamento descritivo (analítico) e o pensamento normativo(sintético). Podemos descrevê-la como um campo de estudo devotado ao entendimento da vida pela tentativa de abstrair os princípios fundamentais das dinâmicas que envolvem os fenômenos biológicos (análise); e recriar tais dinâmicas em outro meio físico, como os computadores, tornando-os assim acessíveis para novos tipos de manipulações, experiências e testes (síntese). Enquanto que a pesquisa em biologia natural é essencialmente analítica, pois tenta quebrar os fenômenos complexos em seus componentes básicos, a Vida Artificial é, ao mesmo tempo, sintética, pois seu objetivo é construir fenômenos complexos a partir de elementos unitários; e analítica, pois é originada da análise dos fenômenos naturais, além de prover um complemento para as pesquisas biológicas tradicionais, pois permite a exploração de novos caminhos na tentativa de entender a vida.

### A Vida

O que é vida? Para desenvolvermos um sistema capaz de nos fornecer pistas sobre a vida e sua evolução, é necessário um aprofundamento maior sobre o que nós entendemos sobre o conceito de vida. Formalmente, pode-se definir vida por:
1. Conjunto de propriedades e qualidades graças às quais animais e plantas, ao contrário dos organismos mortos ou da matéria bruta, se mantêm em contínua atividade, manifestada em funções orgânicas tais como o metabolismo, o crescimento, a reação a estímulos, a adaptação ao meio, a reprodução e outras; existência. 2. Estado ou condição dos organismos que se mantêm nessa atividade desde o nascimento à morte; existência. 3. A flora e/ou a fauna. 4. A vida humana. 5. O espaço de tempo que decorre do nascimento à morte; existência. 6. O tempo de existência ou de funcionamento de uma coisa. 7. Um dado período da vida. 8. Estado ou condição do espírito após a morte... (Holland, 1980).
Tradicionalmente, o conceito de vida tem sido identificado por uma coleção de materiais que observam certas listas de propriedades, tais como: metabolismo, adaptação, autonomia, crescimento, auto-suficiência, replicabilidade, reatividade (irritabilidade), evolução, etc. A maioria dos organismos vivos seguem estas regras. No entanto, alguns outros sistemas obedecem à subconjuntos destas regras, como os vírus, a própria Terra e alguns tipos de robôs. A abordagem científica tradicional tem reduzido o estudo dos sistemas vivos numa busca por respostas sobre a bioquímica dos organismos vivos. Esta alternativa vê a vida como nada mais que uma série complexa de fenômenos físicos e químicos.
Mesmo assim, a questão permanece sem resposta pois existem muitas maneiras de se obterem sistemas dinâmicos complexos (sistemas físicos), mas dentre destes, quais podem-se considerar realmente vivos? Que tipo de complexidade estamos procurando? Ninguém contesta o fato de que a vida é uma espécie de arranjo complexo de substâncias, mas qual é o limiar de complexidade necessário após o qual a matéria pode ser dita viva? Para estudarmos a vida é necessário sintetizar a organização da matéria com o mesmo limiar de complexidade, ou é suficiente simular os comportamentos dos organismos vivos?
Objetivamente ou subjetivamente, pode-se reconhecer certas organizações de matérias como vivas. É a partir de percepção do mundo que nos cerca, que pode-se categorizar os organismos vivos dos não-vivos. É importante observar que esta percepção muda de indivíduo para indivíduo, assim como de espécie para espécie. Os seres humanos reconhecem as plantas como seres vivos, participantes do nosso ecossistema, o que não ocorre com os animais ditos inferiores . Estes não possuem uma percepção consciente que os permita reconhecer uma planta como um ser vivo e uma pedra como um ser inanimado, apesar de reconhecerem (e reagirem de acordo) à presença de outros animais.
Esta habilidade de reconhecer e categorizar eventos nos ambientes em que atuam, é uma das mais importantes diferenças entre os sistemas vivos e os não-vivos. A vida requer a habilidade de reconhecer e controlar os eventos em seu ambiente, para a sobrevivência do indivíduo. Esta é uma característica comum a toda vida conhecida, em conjunto com a habilidade de armazenar e transmitir registros sob estas habilidades. Além disso, esta característica representa também a ruptura da física com a biologia. Os sistemas físicos são independentes de qualquer organismo em particular, são universais, inexoráveis, imunes à qualquer tipo de controle por qualquer organismo. Já os sistemas biológicos estendem seu controle para os organismos, permitindo que estes categorizem e controlem aspectos relevantes nas substâncias que os cercam. E é a definição da relevância destes aspectos que fornecem aos processos de categorização e controle um atributo extra, diferente das simples interações físicas de ação-reação.
Resumindo, quando um organismo é apto a reconhecer e atuar sob aspectos de seu ambiente que são importantes para a sua própria sobrevivência, pode-se dizer que os mecanismos pelos quais o organismo reconhece e atua são funcionais, em referência ao próprio organismo (auto-referência). A física, por si só, não preocupa-se com as funções dos mecanismos, e sim como estes funcionam.
Em outras palavras, qualquer organização que atravesse o limiar de complexidade da vida, pode ser dito como emergente da física, pois seus atributos não podem ser explicados completamente pelas leis físicas. Funções, controle e categorização não podem ser explicadas unicamente pela física, apesar de seguirem fielmente suas leis. Finalmente, podemos entender a origem da vida como um problema de emergência de processos de categorização e controle a partir de um meio físico.

### Dos Aminoácidos aos Seres Humanos

Atualmente, a teoria mais aceita sobre a origem da vida na Terra tem suas bases na criação do próprio Sistema solar. Quando a Terra se formou, a cerca de 4,6 bilhões de anos atrás, ela era um deserto sem mares ou costas, uma rocha incandescente agredida continuamente por colisões com os milhões de fragmentos de cascalho que ocupavam desordenadamente o espaço exterior, restos do nascimento do sistema solar.
A lua, provavelmente, estava muito mais próxima (cerca de 18 000 quilômetros) que agora ( ±400 000 quilômetros ). Assim, a Lua girava em torno da Terra em cerca de seis horas, provocando enormes marés de rocha fundida. A atmosfera era composta, primeiramente, por hidrogênio e hélio, os gases mais comuns e leves do universo. Muito cedo, contudo, a força dos ventos solares acabaram por esvaziar a atmosfera desses gases, que foram substituídos por gases que se infiltravam através das rachaduras e fendas e das crateras vulcânicas. Estes gases eram constituídos provavelmente por metano, dióxido de carbono, amoníaco e vapor de água.
Milhões de toneladas de carbono orgânico eram esparramados na superfície terrestre, provindo das estrelas cadentes que bombardeavam a Terra incessantemente. Alguns cometas também caíram, trazendo consigo enormes quantidades de gelo. No entanto, devido à alta temperatura terrestre, todo este gelo era vaporizado instantaneamente.
Centenas de milhões de anos se passaram. Os grandes bombardeios abrandaram e grande parte do calor originado pela formação da Terra já havia sido irradiado para o espaço. A temperatura esfriou, até um ponto abaixo da ebulição da água. Grandes nuvens formaram-se, provocando chuvas torrenciais sobre as negras superfícies basálticas. Desse modo, a própria Terra fornecia os elementos básicos (água, carbono e energia) para a construção de aminoácidos, a partícula elementar de toda a vida terrestre. Através de sua constante agitação, o próprio caráter caótico do jovem planeta teria apressado o nascimento da vida combinando os aminoácidos e as moléculas orgânicas em combinações quase infinitas.
A formação de aminoácidos, a partir do carbono e a energia fornecida pelos raios ultravioleta, abundantes naquela época, já foram demonstradas experimentalmente em laboratório. Tubos de ensaio contendo uma sopa de elementos semelhantes aos da Terra primitiva, sofrendo a ação contínua de faíscas elétricas, acabavam gerando alguns tipos primitivos de aminoácidos, que seriam a origem dos demais. Apesar disso, a formação da primeira célula a partir dos aminoácidos é um fenômeno que encontra-se, ainda, em torno de diversas teorias e especulações, mas sem nenhuma certeza.
As primeiras células sobre a Terra tinham uma alimentação abundante, pois flutuavam num mar composto de aminoácidos e outras moléculas menos desenvolvidas. Além disso, novos suprimentos de aminoácidos eram constantemente gerados em volta dessas pelos raios ultravioleta. Contudo, à medida que as células prosperavam e multiplicavam-se, as reservas de moléculas orgânicas livres diminuíram até a exaustão. Num primeiro momento, as células foram quase dizimadas pela falta de alimentos. Mas, com a diminuição brusca do número de consumidores, a produção de aminoácidos aumentou o que levava a um novo aumento no número de células. Este vai-e-vem celular ocorreu, provavelmente dezenas de vezes, até que algumas células mutantes apresentaram uma característica importantíssima para a evolução da vida: a fotossíntese. Elas conseguiam utilizar a energia solar para produzir elas mesmas as moléculas orgânicas necessárias a sua sobrevivência. A vida sobreviveu graças à fotossíntese.
No entanto, a fotossíntese não terminou imediatamente com a carência geral de alimentos. Para crescer e multiplicar-se, cada célula necessitava de dois elementos fundamentais: energia e substâncias químicas (moléculas orgânicas, hidrogênio, etc.). O hidrogênio, uma das peças básicas para a vida celular, tornava-se cada dia mais escasso. Para suprir a falta de hidrogênio, algumas células conseguiram adaptar-se ao ambiente, retirando esse das moléculas de gás sulfídrico, que era jorrado em grandes quantidades pelos vulcões e fendas da crosta terrestre.
A vida, então, prosseguiu sem maiores sobressaltos, por uns cem milhões de anos. Neste intervalo de tempo, as células sofreram novas modificações, que as permitiram obter hidrogênio de uma fonte muito mais abundante que o gás sulfídrico: o vapor de água. Essas células, apesar de necessitar cerca de dez vezes mais energia para quebrar a molécula d’água, obtinham esta muito mais facilmente que o gás sulfídrico. Como a fonte de energia era ilimitada (raios solares), a troca foi vantajosa. Obviamente, nesta época, a quase totalidade da vida terrestre concentrou-se nos mares e oceanos. Estas células, conhecidas como cianobactérias, surgiram há uns 2,6 bilhões de anos atrás e acabaram por multiplicar-se desenfreadamente, cobrindo todos oceanos e mares terrestres, o que acabou gerando uma segunda crise na vida terrestre.
Cada vez que uma desses células separava um molécula de dióxido de hidrogênio (água), utilizava os átomos de hidrogênio e liberava os átomos de oxigênio, que era um verdadeiro veneno nesta etapa evolutiva. O oxigênio é altamente reativo, principalmente com o ferro. Naquele tempo, existiam vastas quantidades de compostos de ferro (sais ferrosos) suspensos no mar, que combinando-se com o oxigênio formavam o óxido ferroso, que era precipitado sob o mar. Muito rapidamente, as reservas de sais ferrosos foram combinadas, formando enormes depósitos de ferro, o que diminuiu drasticamente a quantidade de sais ferrosos no mar. Logo, as moléculas de oxigênio começaram a nadar livremente pelo ar e mar terrestres, ameaçando as cianobactérias, que eram adaptadas a baixos níveis de oxigênio.
Novamente, foi preciso uma readaptação ao ambiente. Primeiramente, algumas células acabaram por desenvolver enzimas especais que podiam fixar os componentes formados pelo oxigênio, transformando-os em componentes inofensivos para as cianobactérias. Tais células acabaram por prosperar rapidamente, através da seleção natural, tornando-se o padrão nos oceanos, que continha cada vez mais oxigênio. Tendo aprendido a tolerar o oxigênio, algumas destas células sofreram mutações que as permitiram utilizar o oxigênio, altamente reativo, como fonte de energia. As cianobactérias, que aprenderam a utilizar a respiração como forma de obter energia, se espalharam ainda mais rapidamente pelo planeta. As células que puderam sobreviver à explosão de oxigênio multiplicaram-se nos mares. Um outro efeito da concentração excessiva de oxigênio foi a formação da camada de ozônio na atmosfera terrestre, cortando assim drasticamente a quantidade de luz (ultravioleta) que atingia a Terra. Em um ambiente mais ameno, as células mostraram-se aptas a diversificar-se igualmente em terra. A vida alterou a face do mundo, num processo contínuo que perdura até os dias de hoje.
É importante observar que até hoje não há provas de que a existência da vida, assim como a de vida altamente organizada, seja inevitável. Esta feliz confluência de coincidências pode ser, ou não, uma exceção no universo.

### A Importância da Evolução

A evolução biológica pode ser definida como a mudança progressiva no material genético de uma população por muitas gerações. Estas mudanças não precisam ser adaptativas. Na verdade, muitos genecistas acreditam que a maior parte da evolução pode ser considerada adaptativamente neutra ( Kimura, 1968; Hartl e Clark, 1989 ). Em seu livro, Charles Darwin (1859) apresenta o que viria a ser o núcleo de toda a teoria evolucionária atual, cujos principais conceitos eram:
* indivíduos variam de todas as formas viáveis nos ambiente em que ocupam;
* a variação é hereditária;
* a auto replicação de indivíduos tende a produzir mais descendentes que possam sobreviver com os recursos limitados disponíveis no ambiente;
* pelo resultado do embate pela sobrevivência, os indivíduos melhores adaptados irão gerar um maior número de descendentes na próxima geração.
Os dois principais conceitos apresentados acima são a seleção natural e a variação genética. A seleção natural é o processo pelo qual os indivíduos mais aptos produzem, em média, mais descendentes, em gerações sucessivas, do que os indivíduos menos aptos. A variabilidade genética resulta dos eventos aleatórios que podem ocorrer aos indivíduos de uma determinada população. Estes eventos incluem a mutação aleatória do material genético, a morte acidental de um indivíduo com alto grau de adaptabilidade antes que esse tivesse a oportunidade de reproduzir-se, etc.

### Genótipos, Fenótipos e Mutações

O gene é a unidade da hereditariedade. Cada gene, agindo sozinho ou com outros genes, determina uma ou mais características do organismo resultante. Todas as formas de vida conhecidas são baseadas em códigos genéticos. Mesmo os organismos unicelulares são construídos a partir do material genético do núcleo celular. Um conjunto completo de genes é conhecido como genótipo.
Os genes são encontrados no interior do material genético denominado cromossomo. Na maioria das células, cada gene ocupa uma posição em particular num cromossomo específico. Os cromossomos podem quebrar-se, durante a reprodução celular, e parte de seus genes são transferidos de um lugar para outro dentro do mesmo cromossomo ou para outros cromossomos. Quando isso acontece, novas combinações dos genes são formadas.
Os genes também podem mudar na sua composição química. Neste tipo de recombinação alterada ou variação química, eles acabam por produzir diferentes elementos a partir de genes inalterados. Esse processo é conhecido por mutação e tem um papel decisivo na evolução das espécies. Muitos fatores ambientais podem acabar alterando a estrutura da molécula de DNA (material genético). Alguns fatores podem ser físicos, e outros são químicos. Uma mutação ocorre quando estas alterações acabam por provocar mudanças permanentes na seqüência básica do DNA, que provocam uma mudança hereditária da síntese de proteínas.
Muitas mutações tendem a ser nocivas em seus efeitos. Tais efeitos podem reduzir a adaptabilidade de um descendente ou até mesmo matá-lo. Muitos tipos de câncer e algumas anormalidades de nascimento são atribuídas à mutações. Para minimizar os prejuízos feitos ao DNA, existem um grande número de mecanismos de auto reparação que tentam evitar o aparecimento de mutações.
Por outro lado, muitas vezes um novo gene ou um novo arranjo dos cromossomos possibilita ao descendente uma adaptação melhor ao ambiente que a dos seus pais. Estas mutações, neste caso, é que acabam fornecendo a matéria prima da seleção natural.
O fenótipo é o organismo de um ser vivo considerado em relação aos caracteres apreciáveis com o uso dos sentidos. Ou seja, o fenótipo de um indivíduo é o conjunto de comportamentos deste, em relação ao ambiente em que vive. Comportamentos estes definidos pelo código genético (genótipo) e pela capacidade de percepção e aprendizado do indivíduo frente ao mundo que o cerca. Essa definição é de suma importância em Vida Artificial, pois é a partir dos comportamentos dos indivíduos que esta busca a compreensão da vida e da sua evolução.

### O Efeito de Baldwin

O aprendizado durante o tempo de vida de um indivíduo não afeta diretamente o seu material genético; conseqüentemente as ações aprendidas durante o tempo de vida do indivíduo não podem ser transmitidas diretamente aos seus descendentes. No entanto, alguns biólogos evolucionistas tem discutido um efeito indireto do aprendizado na evolução, inspirado nas ideias de J.M. Baldwin(1896). Ele introduziu o conceito de seleção orgânica na tentativa de explicar alguns exemplos de características que eram, inicialmente, adquiridas pelos membros de uma população em evolução durante o seu tempo de vida. Posteriormente estas características surgiam codificadas em seu material genético. Logo, a seleção orgânica é o processo pelo qual os indivíduos que são aptos a adquirir uma nova característica durante o seu tempo de vida terão uma maior probabilidade de sobrevivência e passarão esta habilidade de adquirir tal característica para os seus descendentes.
Em seu artigo (Mitchell e Forrest, 1989) explicam o efeito de Baldwin pela teoria de que o aprendizado ajuda na sobrevivência do indivíduo, logo os organismos que sejam mais capazes de aprender terão o maior número de descendentes e incrementarão a freqüência de genes responsáveis pelo aprendizado. Se o ambiente for estável o suficiente para que as melhores ações a serem aprendidas permaneçam as mesmas, esta combinação de fatores pode gerar uma codificação genética destas ações que, originalmente, deveriam ser aprendidas.
A capacidade de adquirir um certo comportamento desejado permite ao organismo que está aprendendo a preferência na sobrevivência. Sem este aprendizado, a possibilidade de sobrevivência, e a oportunidade de uma nova descoberta genética originada pelos genes responsáveis pelo aprendizado, diminuem. Neste aspecto indireto, o aprendizado pode afetar a evolução, mesmo se o que está sendo aprendido não puder ser transmitido geneticamente.
Resumindo, o aprendizado fornece soluções parciais codificadas geneticamente para conseguir vantagens parciais, ao invés do paradigma tudo-ou-nada dos organismos que não apresentam características de aprendizado. Um aspecto comum para o aprendizado é que ele fornece a capacidade ao organismo de adaptar-se à aspectos imprevisíveis do ambiente – aspectos que mudam muito rapidamente para a evolução tratar geneticamente. No entanto, apesar deste claro benefício da aprendizagem, o que o Efeito de Baldwin nos coloca é diferente: ele indica que o aprendizado ajuda os organismos a adaptarem-se geneticamente a aspectos previsíveis, mas difíceis, e que o aprendizado ajuda indiretamente na transformação destas adaptações em código genético.

### A Aptidão do Indivíduo e a Seleção Natural

Para ilustrarmos o conceito de aptidão de um indivíduo e suas conseqüências para a seleção natural, partiremos do estudo de Wright(1932) que apresenta a ideia da paisagem adaptativa ou superfície de aptidão, que é um meio útil de visualizarmos como a seleção atua numa população que está evoluindo. A ideia aqui é traçar a aptidão ( fitness ) como uma função sob o espaço de todas as combinações genéticas possíveis para uma espécie em um ambiente em particular, como visto na figura a seguir colocar figura. O gráfico resultante forma a superfície de aptidão. O espaço de possíveis organismos têm milhares de dimensões, e as superfícies de aptidão tem tipicamente um grande número de picos e vales, variando na altitude, pois algumas combinações dos genes são mais adaptativas do que outras.
A população é representada como uma nuvem de pontos sob a superfície de aptidão, um ponto para cada organismo na população. Quanto mais variável for a população, mais esparramada será a representação desta sob o gráfico. Os descendentes dos indivíduos mais aptos em uma população tendem a ser mais numerosos e mais aptos que os indivíduos menos aptos. Logo, após muitas gerações, a seleção natural tende a mover a população para os picos (aptidão elevada), enquanto que a caráter aleatório das mutações tendem a mover a população de forma esparsa sob a superfície do gráfico. Se a seleção natural dominar a evolução da população, a tendência é um aumento gradual no gradiente da superfície de aptidão; se a aleatoriedade dominar, a evolução tende a desviar-se por toda a superfície.
Na biologia, a aptidão é definida como a habilidade relativa à sobrevivência e reprodução no contexto de um ambiente em particular e de uma coleção de genes. Na natureza, a aptidão de um organismo é muito difícil de ser determinada, assim como a contribuição de um traço genético em particular. Medidas precisas de aptidão são necessária pois mesmo mudanças muito pequenas podem desencadear grandes conseqüências evolucionárias.
Como veremos adiante, a aptidão pode ser considerada um atributo de todo um genótipo, ao invés de referir-se a um gene ou traço específico. A seleção natural favorece determinados genótipos. O sucesso reprodutivo de determinados genótipos é determinado pela totalidade de traços e qualidades produzidas num dado ambiente. A aptidão de um genótipo em particular é determinada pelos eventos em todos os estágios do seu ciclo de vida. O elemento mais óbvio da aptidão é a viabilidade, ou seja, a habilidade de um organismo desenvolver-se e sobreviver desde o nascimento até a fase adulta. Um outro componente importante é a habilidade de formar pares para o acasalamento, conhecido como a seleção sexual (ver seção seguinte). A seleção sexual é responsável pelas competições entre os machos de uma mesma espécie, escolha de um macho, escolha de uma fêmea, ou escolha mútua, através de interações entre os machos e fêmeas.
Outra componente da aptidão é denominado direção meiótica, que trata sobre as diferenças na produção das combinações genéticas (usualmente de forma não aleatória) dos gametas, durante a formação destes (meiose). Outra forma de seleção é seleção gamética, que resulta das diferenças no sucesso das fertilizações entre os gametas produzidos. A fecundidade de um indivíduo, ou seja, o número de zigotos (gametas fertilizados) produzidos, é um outro componente para a aptidão global de um genótipo.
Os efeitos combinados de todos estes componentes determinam a aptidão de um dado genótipo. É preciso ressaltar que um indivíduo, mesmo que viável e saudável na fase adulta, terá um grau de aptidão zero se falhar em encontrar um parceiro compatível durante a seleção sexual.
A aptidão também pode ser aplicada e quantificada a partir de uma sociedade de indivíduos (genótipos) em termos de sua adaptabilidade com o ambiente dado. Neste caso, as observações dos comportamentos seriam realizadas de uma forma macroscópica (Bedau, Packard, 1992), levando em conta toda as transformações realizadas pela sociedade como um todo, a tentar adaptar-se ao seu meio ambiente. A formulação de quantificadores macroscópicos da evolução e adaptação, assim como as descrições dos mecanismos microscópicos de onde estas quantidades macroscópicas emergem, é essencial se a Vida Artificial for utilizada como uma ciência exploratória e quiser contribuir significativamente para a biologia evolucionária real. No entanto, esta abordagem apresenta uma análise difícil em termos de como definir e tratar estes quantificadores macroscópicos.

### A Reprodução

A reprodução, seja ela sexuada ou assexuada, é o mecanismo pelo qual a célula perpetua a si mesma. Na reprodução assexuada, os novos indivíduos são produzidos pela simples divisão de células não reprodutíveis, através da formação de botões a partir de um sistema de origem (pais), pela formação de esporos, que são germinados diretamente neste novo indivíduo, etc. Ou seja, não é necessário para as células, ou para o núcleo celular, fundir-se com outro indivíduo para a reprodução. As novas gerações assexuadas são, essencialmente, idênticas, pois um pai único acaba por transmitir uma cópia fiel de si mesmo para todos os seus descendentes (clonagem).
Na reprodução sexuada, as novas gerações têm origem após uma fusão entre os núcleos das células de dois pais diferentes, o que acaba produzindo uma maior variação genética. As células que são utilizadas neste processo são denominadas gametas. Estas células formam pares provenientes de dois pais diferentes, para produzir um zigoto, ou seja, um ovo fertilizado, que é o ponto de partida para a nova geração. Cada tipo de sistema reprodutivo provê algumas vantagens e desvantagens com maior ou menor importância evolutiva. Os sistemas assexuados são mais produtivos, mais prolíficos, e acabam por colonizar rapidamente um novo ambiente, pois muitos descendentes assexuados de constituição genética e adaptabilidade similares, acabam por preencherem rapidamente um habitat.
Já as espécies sexuadas são mais variáveis, logo um mínimo de tipos genéticos de uma mesma população podem adaptar-se às diferentes condições flutuantes, provendo uma chance maior para a continuação da população. Em geral, as espécies sexuadas são melhores adaptáveis a ambientes novos e sob influência de mudanças abruptas, enquanto que as espécies assexuadas trabalham melhor em cercanias estáticas. No entanto, é importante observar que, em certas espécies em que o sexo é norma, uma mutação genética faz, eventualmente, aparecer uma fêmea assexuada, portadora de óvulos já prontos para gerar um embrião. Esta, é claro, acaba se reproduzindo com tamanha velocidade que logo se espalha por grandes áreas. Ora, como na competição por alimentos costuma vencer quem pertence ao time mais numeroso, a população assexuada tende a sobreviver aos indivíduos sexuados que lhe deram origem. (Oliveira, 1990)
A seleção sexual refere-se às vantagens que certos indivíduos têm sobre os outros indivíduos do mesmo sexo e espécie, com respeito a reprodução. A seleção sexual pode ser resultado da preferência demonstrada por uma fêmea por certos machos que estão competindo por ela, ou pelas interações entre os machos competidores que acabam resultando em um só macho que irá impedir os demais de procriar. Sistemas de procriação competitiva ocorrem em muitas espécies animais devido ao número excessivo de machos em relação às fêmeas. A poligamia, ou seja, um macho procriar exclusivamente com muitas fêmeas, ocorre em certas espécies e acaba por acentuar a competição entre os machos.
Em seu livro, Darwin (1859) dá uma grande ênfase à seleção sexual como uma das principais forças no processo evolucionário. Ele estabeleceu que qualquer traço hereditário que incrementasse a taxa de sobrevivência e reprodução seria transmitida para seus descendentes. No entanto, Darwin também considerou a possibilidade de que alguns fatores envolvidos na seleção sexual poderiam não ter nenhuma função na luta pela sobrevivência, o que representa uma dicotomia entre a seleção natural e a seleção sexual.

### A Morte

Como visto acima, na seleção natural, a fonte das mudanças são as mutações nos genes. A criação da natureza emerge da realização de experiências com os genes e observando seus resultados. Portanto, a natureza deve destruir suas criações antigas para dar espaço para a criação de novas experiências. A mortalidade de organismos multicelulares é uma necessidade evolucionária.
Rucker (1993) enfatiza esta ideia, ao fazer cálculos sob o que ocorreria caso surgissem seres imortais. Suponhamos que cada indivíduo, em média, produza um novo descendente a cada trinta anos. Logo, se ninguém morresse e todos continuassem a reproduzir-se, a população iria dobrar a cada trinta anos. Se o processo iniciasse com dois imortais, teríamos 2n imortais após 30*n anos. Uma estimativa indica que o universo tem o mesmo tamanho de um cubo de dez bilhões de anos-luz de lado. Considerando um ano-luz como dez trilhões de quilômetros, o universo teria, mais ou menos $10^{1}078$ metros cúbicos.
Suponha que cada indivíduo ocupe um metro cúbico de espaço, quanto tempo seria necessário para que esta população de imortais preenchessem todo o universo? Segundo os cálculos de Rucker, em apenas 260 gerações (± 7800 anos), esta população encheria completamente o universo.
Além do efeito devastador em termos de espaço, a morte ajuda na evolução de outras maneiras. A evolução é possível sempre que tivermos: (1) reprodução, (2) variação do genoma e (3) seleção natural. A variabilidade genética ocorre durante a reprodução, pelo cruzamento e mutação nos genomas do descendente. Já a seleção natural ocorre com a morte do indivíduo, ou seja, nem todas as criaturas tornam-se aptas a reproduzir-se antes de morrerem. Os indivíduos que reproduzem-se possuem genomas que são selecionados pelo processo de competição pela vida, originando descendentes que possam sobreviver.

### A Evolução do Ser Humano

É importante estudarmos a evolução de nossa espécie em particular, que acabou por dominar toda a Terra. A Terra levou bilhões de anos para criar a primeira célula. A partir daí, a explosão da vida transformou por completo o ambiente que a cercava. Mas o que impulsionou a evolução do ser humano, em detrimento às demais sociedades, foi a integração pela linguagem super desenvolvida. A linguagem é utilizada em duas funções principais: comunicação entre os integrantes da sociedade e a modelagem da realidade.
Utilizando o material da linguagem, as pessoas podem construir modelos da realidade (sistemas de sinais) que nunca existiram no cérebro antes. Além disso, a linguagem pode ser considerada uma extensão comum unificada para todos os membros da sociedade. Este é um modelo coletivo da realidade que todos os membros da sociedade esforçam-se para aperfeiçoar, além de preservar a experiência das gerações anteriores, evitando a repetição dos erros.
A emergência dos seres humanos e sua integração formaram um novo mecanismo para a evolução. Antes, o desenvolvimento e o melhoramento dos níveis mais altos da organização (a estrutura do cérebro) ocorriam como resultado do combate pela sobrevivência e pela seleção natural. Este processo demorado requeria milhares de gerações. Na sociedade humana, o desenvolvimento da linguagem e da cultura são o resultado de esforços criativos de seus membros. A seleção de variantes necessárias para aumentar a complexidade da matéria do organismo pelo método da tentativa-e-erro foi trocado dentro do cérebro humano: ele tornou-se inseparável dos atos voluntários do indivíduo. Logo, a velocidade da evolução cultural aumentou várias vezes.
Resumindo, podemos constatar que, na evolução da cultura humana, o cérebro humano tornou-se a fonte da criatividade, e não mais um objeto de experimentação. Além disso, o aprendizado do indivíduo não era mais descartado, sendo repassado para seus descendentes de forma mais direta e objetiva. Este postulado não descarta a evolução biológica natural que ainda deve estar atuando sobre os seres humanos. Seria muita pretensão considerarmo-nos o ápice da evolução. Podemos considerar que os seres humanos são a espécie mais desenvolvida do planeta Terra, após 4,6 bilhões de anos. Isto não implica que a luta pela sobrevivência esteja ganha.

## Modelagem de Sistemas de Vida Artificial
### Boids

Como os visto anteriormente, os boids foram propostos por Robert Reynfield (1987). Seu objetivo era produzir artificiais que no apresentam os comportamento semelhante os no bandos de pássaros. A cada passo, cada boide atualiza seu vetor de rapidez e move-se ao longo desse vetor até a sua nova posição, um boide simples não possui nenhum interno sempre reage de maneiras distintas em situações iguais, além disso se um único boide colocado se ambiente vazio não realizará nenhum comportamento complexo. Ele apenas voará numa em se determinada direção, em linha reta assim Quando são colocados diversos boids num ambiente, o número de situações possíveis extremamentes alta – cada boide reaje diferensemente de acordo na posição o velocidade de outros boides.
As três regras que compõem o voo geométrico dos pássaros virtuais de Reynolds estão descritas a seguir:
* Evitar colisões: cada boid deve manter-se numa distância de cruzeiro otimizada, uma espécie de zona de segurança, entre ele mesmo e seus companheiros nas cercanias de sua vizinhança. Se um outro boid estiver dentro da zona de segurança, há o perigo de colisão. Os boids evitam as colisões diminuindo a velocidade, se o vizinho que atravessou a zona de segurança estiver na sua dianteira, ou aumentando a velocidade, se este estiver na traseira, como visto na primeira parte da figura abaixo. Assim como o boid não deve aproximar-se demais de outro boid, ele também não deve afastar-se demais do boid que estiver mais próximo. Ou seja, se um boid e seu vizinho mais próximo estiverem mais longe que a distância de cruzeiro, o boid na frente aumenta a sua velocidade e de trás diminui a velocidade, como observado na segunda parte da figura acima;
* Igualar velocidades: cada boid tenta voar paralelamente ao seu vizinho mais próximo. Esta regra é realizada pelo ajustamento da tangente do vetor posição para que este se aproxime da tangente do vetor posição do vizinho mais próximo. Esta regra não modifica a velocidade do boid;
* Concentração do bando: cada boid tenta manter-se rodeado por outros boids por todos os lados. Isto é realizado calculando a posição média (centroid) em relação aos outros boids, e movendo-se para esta nova posição. Para realizar isso, o boid calcula o vetor que aponta para o centroid e gira a tangente do seu vetor posição para que os dois ângulos aproximem-se. Esta regra não modifica a velocidade do boid.

### Turmites

Um turmite é um modelo de criatura de vida artificial que emula uma máquina de Turing em um ambiente bidimensional. Um turmite simples pode mover-se em quatro direções: norte, sul, leste e oeste. O estado da máquina de Turing é dado por um conjunto quíntuplo contendo: estado presente, cor de leitura, cor de escrita, novo estado e giro. O estado corrente e o novo estado são as direções que os turmites devem seguir. A cabeça da máquina de Turing muda sua posição adicionando um giro à sua direção e movendo-se em sua nova direção. Os turmites são inicializados em algumas condições iniciais e seus movimentos são determinados apenas pelos giros e por uma tabela de mudança de estado. Um exemplo de tabela de mudança de estado para um turmite que movimenta-se em quatro direções é mostrado a seguir:
* Mudança em X: (Leste = 1) (Norte = 0) (Oeste = -1) (Sul = 0)
* Mudança em Y: (Leste = 0) (Norte = 1) (Oeste = 0) (Sul = -1)
Devemos assumir que cada máquina de Turing possui uma direção e que, ao final de cada iteração, o turmite move-se um passo em sua direção corrente. A mudança da direção ocorre em função do seu valor de giro, que varia de acordo com o conjunto abaixo:
K = [ 0, 1, .... número de direções possíveis – 1 ]
Em nosso exemplo, o turmite pode girar, sempre no sentido contrário ao dos ponteiros do relógio, de zero a três vezes. O efeito do giro na direção corrente do turmite é dada pela tabela abaixo:
* Giro 0: Leste(Leste) Norte(Norte) Oeste(Oeste) Sul(Sul)
* Giro 1: Leste(Norte) Norte(Oeste) Oeste(Sul) Sul(Leste)
* Giro 2: Leste(Oeste) Norte(Sul) Oeste(Leste) Sul(Norte)
* Giro 3: Leste(Sul) Norte(Leste) Oeste(Norte) Sul(Oeste)
Por exemplo, se considerarmos um passo dado por Direção = Oeste e Giro = 3, teremos ao final Direção = Norte, como mostrado na figura abaixo:

### Vírus

O termo vírus de computador é derivado e análogo ao vírus biológico. As infecções biológicas expandem-se quando o vírus (um pequeno casco contendo material genético) consegue injetar-se numa grande célula do corpo. A célula infectada é convertida numa fábrica biológica para a replicação do próprio vírus. Similarmente, um vírus de computador é um segmento de código de máquina (tipicamente entre 200 e 4000 bytes) que replica seu código, quando ativados, em um ou mais programas hospedeiros. Quando os programas infectados são executados, o código viral também é executado o que acaba por expandindo a infecção.
Um vírus possui três estágios de ‘vida’:
* Execução: para que um vírus se espalhe, ele precisa ser executado. Esta fase ocorre como um resultado direto para um usuário que invoque um programa infectado, ou indiretamente, quando o sistema executa o código viral como parte de sua seqüência de inicialização ou ao executar uma tarefa administrativa em segundo plano;
* Replicação: o vírus, ao ser executado, replica-se para um ou mais programas escolhidos aleatoriamente;
* Realização de tarefas: além de auto replicar-se, os vírus podem realizar outras tarefas paralelamente, que apresentam uma variedade de efeitos (benéficos ou malévolos) que acabam por indicar a presença do vírus.
Algumas considerações podem ser feitas em relação às semelhanças entre os vírus e a Vida Artificial (Spafford, 1991):
* Vírus como um molde no espaço tempo: os vírus são representados como moldes de instruções que existem ao mesmo tempo em muitos sistemas computadorizados. Os vírus não são associados com o maquinário físico, mas com as instruções executadas por este hardware;
* Auto replicação: os vírus de computador possuem a habilidade de reproduzir-se, gerando uma cópia exata ou mutante de seu código genético, o que constitui um dos princípios básicos da vida;
* Armazenamento da informação de sua própria representação: assim como os vírus biológicos, que utilizam o DNA para armazenar toda a informação necessária para a replicação da célula, os vírus de computador utilizam o seu código como um gabarito ao auto replicar-se;
* Metabolismo virótico: esta propriedade envolve a energia ou a matéria que um organismo vivo necessita transformar para executar as suas atividades. Os vírus de computador utilizam a energia elétrica do sistema para executar as suas atividades. Eles não convertem matéria, mas utilizam esta energia para executar as suas instruções e infectar outros programas;
* Interações funcionais com o ambiente: os vírus executam inspeções em seus sistemas hospedeiros como parte de sua atividade. Eles examinam as arquiteturas de memória e do disco rígido, alterando os endereços para que possam ocultar a si mesmos, ou seja, ele alteram seu ambiente para suportar a sua existência;
* Interdependência entre todas as partes do vírus: assim como os vírus biológicos, se um vírus de computador for dividido, ele será destruído e cessará suas atividades normais;
* Estabilidade perante perturbações: alguns vírus de computador podem rodar numa grande variedade de máquinas, sob diferentes sistemas operacionais. Muitos vírus podem constranger e derrotar programas antivírus;
* Evolução: esta é a maior diferença entre os vírus biológicos e os vírus de computador, pois o segundo não apresenta uma evolução. Apesar de ser possível construir um vírus capaz de evoluir de uma forma contínua, este seria tão grande e complexo, que dificilmente deixaria de ser detectado e seria, então, eliminado. No entanto os vírus de computador apresentam mutações. Normalmente estas mutações variam poucas instruções, principalmente as que imprimem mensagens, ou os tipos de formas de ativação e replicação;
* Crescimento: o crescimento do vírus pode ser medido pelo número de arquivos infectados no sistemas. Certos vírus podem invadir todos os arquivos em algumas poucas ativações;
* Outros comportamentos: os vírus de computador agrupam-se em espécies com nichos ecológicos bem definidos, baseados no tipo de máquina hospedeira e no seu sistema operacional. Estas espécies são adaptadas para um ambiente específico e não sobrevivem se movidas para um ambiente diferente. Além disso, alguns vírus exibem comportamentos predatórios. Como exemplo, o vírus DenZuk procura e replica-se por cima das instâncias do vírus Brain, se os dois estiverem presentes no mesmo sistema. Outros vírus apresentam um comportamento territorial, marcando seus domínios territoriais para que outros vírus do mesmo tipo não possam entrar em sua área, competindo com o vírus original.

### Minhocas

Uma minhoca de computador (worm) é um programa de computador que, parecido com os vírus, pode auto replicar-se. A diferença é que um worm não expande-se infectando programas executáveis hospedeiros. Ao invés disso, um worm inicia sua execução por si próprio, copiando seu código para novas posições de memória. Alguns worms mandam cópias de si mesmo para outros usuários utilizando o correio eletrônico. Os worms rodam independente e viajam de máquina para máquina através das conexões de rede; os worms podem ter porções espalhadas rodando em diversas máquinas e, usualmente, não mudam outros programas. Apesar disso, eles podem carregar outros códigos que infectam o sistema (vírus). Poucos worms foram construídos até hoje, principalmente os que executam funções danosas, pois eles são difíceis de construir. Os worms necessitam um ambiente de rede e um autor que esteja familiarizado com os serviços e facilidades da rede, assim como as operações necessárias para suportar o seu transporte de uma máquina para outra.

### Mundos Virtuais

A construção de modelos de Vida Artificial utilizando mundos virtuais, usualmente bidimensionais, é a forma mais difundida e utilizada no estudo científico da Vida Artificial. As simulações computadorizadas de Vida Artificial são feitas construindo-se um mundo virtual no qual programas de computador (agentes) podem mover-se, competir e evoluir. Um agente neste mundo virtual contém, normalmente, um número pessoal de identificação, sua posição atual, e alguns valores que são utilizados para a comparação e definição dos comportamentos a serem seguidos. Estes comportamentos podem ser representados por tabelas, algoritmos genéticos e/ou redes neurais. Além disso, o agente pode manter dados adicionais sobre o seu estado, sua velocidade, os membros de sua colônia, o tipo de identificação de suas presas e predadores. O mundo virtual, que é compartilhado por todos os agentes, é formado por uma grade de células, parecida com um tabuleiro de xadrez. Cada agente habita uma única célula de cada vez (ver seção 2.1). O mundo apresenta um marcador ou uma trilha individual para cada agente, que representa as mudanças de posição do agente. Além disso, o mundo mantém também algumas marcas que os agentes podem interpretar como comida, veneno, muros, caminhos, etc. Um exemplo típico de um mundo virtual é dado pela figura a seguir. Os agentes trabalham dentro de um laço de execução, usualmente definido como o que segue:
* Receba e analise as informações do mundo;
* Calcule a saída, a nova posição e os novos valores para os marcadores internos;
* Repasse a saída para o mundo.
Os agentes podem receber vários tipos de informações do mundo, dependo do poder computacional da máquina e das variáveis envolvidas e desejadas pelo pesquisador. Em termos de processamento, o modo mais vantajoso é receber informações apenas da célula para a qual o agente está movendo-se. Alternativamente, pode-se construir um agente que receba informações de todos os seus vizinhos. Outros modos incluem a concepção de visão, onde o agente recebe e calcula a distância e a direção dos outros agentes que estejam dentro do seu campo de visão.
Finalizando, um agente ainda pode receber informações sobre todos os agentes do mundo, com a sua localização e tipo. Este tipo de informação, além de apresentar o maior custo computacional, não apresenta nenhuma similaridade com os modelos biológicos existentes.
Os quatro principais modos de percepção de um agente podem ser visualizados na figura a seguir:
A partir da percepção do mundo que os cerca, os agentes podem tomar suas decisões. O processo de tomada de decisões é o mais importante e, potencialmente, o mais difícil de ser definido e executado. É a partir da definição destes comportamentos básicos que o sistema será posto a prova quanto à emergência de uma inteligência, normalmente não explicitada.

## Sistemas de Mundos Virtuais
### Tierra

O projeto Tierra é um dos mais avançados no estudo da evolução dos organismos, ao nível da evolução do genoma. Ele foi desenvolvido por Tom Ray (1994) na Universidade de Delaware. O Tierra provê um ambiente onde a evolução darwiniana pode ocorrer dentro de um computador, sem uma direção explícita ou intervenção humana.
Para Ray, deve-se observar uma distinção nítida entre simulações e instanciações de vida artificial. Por simulações, ele entende como populações de estruturas de dados num programa de computador que são utilizadas para representar populações de entidades biológicas (predadores, presas, formigas, etc.). A maioria dos projetos discutidos nas próximas seções encontram-se nesta categoria. Em uma instanciação de vida artificial, populações de estruturas de dados não representam explicitamente nenhum organismo ou processo vivo, mas sim obedecem algumas leis artificiais abstraídas das leis naturais que governam os processos vivos.
Para Ray, apenas as instanciações de vida artificial podem ser consideradas vivas. No Tierra, os organismos são programas de computador em linguagem de máquina. Um organismo é uma string linear de instruções que são executadas movendo-se um ponteiro de execução ao longo deste. O principal avanço conceptual no projeto Tierra é a construção de um conjunto de instruções em linguagem de máquina extremamente robustas. Um programa (organismo) escrito neste conjunto de instruções pode sofrer mutações aleatórias ou recombinações e, mesmo assim, continuar executável.
O Tierra apresenta um conjunto de 32 instruções, onde cada instrução é representada por um número de 5 bits. Um programa pode ser considerado uma simples concatenação de números de bits e, qualquer combinação de números de 5-bits é considerado um programa válido. Por exemplo, o operador de mutação opera sob os bits da string de execução. Modificando um destes bits ele pode transformar uma operação de JUMP (salto incondicional) numa operação de NOP (nenhuma operação). O programa, do ponto de vista do sistema operacional, continuará executável, apesar de não realizar mais nenhuma tarefa útil ou produzir ações sensíveis ao observador.
O operador de mutação é utilizado pelo sistema operacional para conduzir a evolução. Para as simulações realizadas, o sistema operacional aloca um certo número de ciclos de CPU e uma parcela de memória para as populações de organismos. Após um certo número de iterações (definidas pelo usuário), o sistema introduz erros (mutações) aleatórias nos organismos.
Em uma simulação típica, o sistema operacional é infectado por alguns organismos, capazes de auto reproduzir-se (fazer uma cópia de si mesmo em outras partes da memória). Logo, o sistema operacional irá executar o organismo repetidamente, o que ocasionará um aumento no número dos descendentes.
Ocasionalmente, algumas mutações introduzidas nos descendentes acabam por impedir que este reproduzam-se. No entanto, outros tipos de mutações acaba por acelerar o processo de reprodução dos descendentes. Quando há uma superlotação na memória, alguns organismos devem ser eliminados. Os organismos que serão excluídos são escolhidos de acordo com o quão bem estes rodam no sistema operacional, ou seja, elimina-se os organismos que podem gerar erros em certas condições. Cada organismo incrementa seu grau de penalidade, fornecido pelo sistema operacional, quando gera alguma condição de erro. O organismo é eliminado pelo sistema se acumular um grande número de penalidades (de acordo com os outros organismos da população). O resultado desta abordagem indica que os organismos que conseguem reproduzir-se rapidamente com um mínimo de erros ao sistema irá dominar a população. Mesmo assim, nas simulações realizadas, variabilidade da população é mantida, devido as contínuas mutações e recombinações.
Alguns fenômenos evolucionários básicos são observados, como o parasitismo. O Tierra é um ambiente artificial onde os organismos melhores adaptados sobrevivem, sem precisar uma definição de um grau de aptidão explícito. Neste ambiente, há apenas dois recursos: tempo de CPU (energia) e memória (território). Os organismos que conseguirem melhor adaptar-se ao ambiente e capturar a maior quantidade de recursos terá um taxa de sobrevivência mais alta que os demais.
O Tierra apresenta uma abordagem extremamente bottom-up para a construção de simuladores de Vida Artificial mais gerais. Apesar de apresentar algumas vantagens, como a mutabilidade e o grau de aptidão emergente, o sistema apresenta algumas dificuldades para a implementação de funções de alto nível tais como a percepção e a comunicação. No entanto, alguns fenômenos de baixo nível, como o estudo de organismos multicelulares, podem ser melhores estudados com esta abordagem.

### Evolutionary Reinforcement Learning

Em seu artigo, Ackley (1992) construíram agentes adaptativos, que movem-se aleatoriamente num espaço bidimensional, onde encontram-se alimentos, predadores, lugares escondidos a explorar, etc. Cada estado do agente inclui as entidades visualizadas pelo seu campo visual, o seu nível interno de energia, além de outras variáveis pertinentes.
Para a formação do seu comportamento, cada agente possui duas redes-neurais, do tipo feed-forward: (1) rede avaliadora que mapeia o estado do agente no tempo t como um número que representa o quão bom este estado é; (2) rede de ações que mapeia o estado do agente no tempo t como uma ação a ser tomada no tempo t+1. As únicas possibilidades de ações permitidas são o movimento para uma das quatro posições adjacentes (Norte, Sul, Leste e Oeste), mas estas ações podem resultar em situações como : alimentar-se, servir de alimento para um predador, descobrir um novo esconderijo, etc.
A arquitetura das redes neurais é a mesma para todos os agentes, mas os pesos para cada agente podem mudar. Os pesos das redes de avaliação são fixados na hora da criação (inicialização) do agente. Esta rede representa os comportamentos inatos e os desejos herdados de seus antecessores, tais como estar-perto-da-comida-é-bom. Já os pesos da rede de ações podem mudar seus valores durante o tempo de vida do indivíduo, de acordo com o algoritmo ERL. O genoma de cada agente codifica os pesos para a rede de avaliação e os pesos iniciais para a rede de ações.
Todos os agentes tem uma reserva interna de energia (representada por um número real) que deve manter-se acima de um determinado nível para prevenir a morte; o que é alcançado alimentando-se com a comida encontrada no ambiente. Um agente deve, além disso, manter-se longe de predadores, ou acabará sendo devorado.
Um agente só pode reproduzir-se se tiver uma quantidade de energia suficiente em seu compartimento interno. A reprodução assexuada é realizada clonando-se seus genomas e submetendo-os a mutação. Dois agentes que estejam suficientemente próximos podem gerar descendentes, cruzando seus genomas. Não há uma função de avaliação (fitness) externa, que possa avaliar o agente. Na verdade, o fitness emerge pelas suas ações e interações com o ambiente durante o seu curso de vida. O comportamento do agente é definido pelo algoritmo ERL : a cada tempo t, o agente avalia seu estado corrente, utilizando sua rede de avaliação. Esta avaliação é comparada com a avaliação produzida em t-1, em conjunto com a ação provocada, e esta comparação gera um sinal de reforço (positivo ou negativo) utilizado para modificar os pesos da rede de ações. A ideia aqui é que os agentes aprendam a agir de modo a melhorar o seu estado atual. Após este passo de aprendizado, a rede de ações já modificada é utilizada para determinar a próxima ação a ser executada.
Ackey e Littman compararam os resultados de três experimentos distintos: (EA) evolução da população em conjunto com o aprendizado dos agentes, (E) apenas evolução genética da população e (A), apenas aprendizado dos agentes. A estatística utilizada nesta comparação foi o período de tempo necessário para que esta população se extinguisse, em função dos predadores e das adversidades do ambiente. A melhor performance foi exibida pela população EA, seguida de perto pela população A, e muito abaixo, a população E. Análises mais detalhadas da população EA revelaram que, em respeito a certos comportamentos, a importância relativa entre o aprendizado e a evolução muda durante o curso da evolução. Analisando os genes relativos ao comportamento de aproximar-se da comida (tanto na rede de avaliação como na rede de ações), eles descobriram que, nas primeiras gerações, os genes avaliadores da proximidade da comida (estar-perto-da-comida-é-bom) permanecem relativamente constantes perante a população, enquanto que os genes iniciais codificados na rede de ações eram muito mais variáveis. Esta observação indica a importância de manter as metas para o processo de aprendizado, assim como a importância do aprendizado para a sobrevivência.
No entanto, mais tarde, os genes avaliadores tornaram-se mais variáveis na população enquanto que os genes da rede de ações tornaram-se mais constantes. Este fato indica que os comportamentos inatos tornaram-se mais significativos que a aprendizagem durante esta fase. Ackey e Littman interpretaram estas observações como uma variante do efeito de Baldwin. Inicialmente, é necessário para os agentes aprenderem à aproximar-se do alimento; logo, a manutenção do conhecimento explícito de que estar-perto-da-comida-é-bom é essencial para o processo de aprendizagem tome lugar. Mais tarde, o conhecimento avaliativo de que estar-perto-da-comida-é-bom é transformado para uma codificação genética, em termos de comportamentos : aproxime-se-da-comida-se-estiver-por-perto. Logo, o conhecimento avaliativo não é mais necessário. A habilidade inicial de aprender um comportamento é o que permite que este seja, eventualmente, codificado geneticamente.

### Echo

O Echo é um modelo de sistema ecológico, formulado por Holland (1975, 1992). O Echo modela a ecologia do mesmo modo que os Algoritmos Genéticos modelam as populações genéticas. Ele abstrai virtualmente todos os detalhes físicos dos sistemas ecológicos reais e concentra-se num pequeno número de interações, baseadas nas primitivas agente-agente e agente-ambiente. A meta do Echo é estudar como simples interações sobre agentes simples podem emergir em fenômenos de alto nível, tais como o fluxo de recursos no sistema, ou a cooperação e competição em redes de agentes (ex.: comunidades, redes comerciais, distinção de raças e espécies ). O Echo estende os A.G. em diversos e importantes modos: os recursos são modelados explicitamente no sistema, os indivíduos (agentes) possuem uma localização geográfica que afeta o seu fitness (implícito), certos tipos de interações entre agentes são construídos sob o sistema (combate, permuta, acasalamento), e o fitness é endógeno.
O sistema consiste de uma população de agentes distribuídos num conjunto de setores do ambiente. Muitos agentes podem coabitar o mesmo setor, cada um deles apresentando uma determinada localização geográfica. Também distribuídos no ambiente, temos vários tipos diferentes de recursos renováveis (onde cada tipo de recurso é codificado por uma letra : a, b, c ...). Diferentes tipos de agentes usam diferentes tipos de recursos e podem guardar estes recursos (representados pelas letras) internamente.
Os agentes interagem por acasalamento, comércio ou luta. O comércio e a luta resultam na troca dos recursos internos entre os agentes, e o acasalamento resulta num descendente cujo genoma é a combinação de seus pais. Cada agente tem um conjunto particular de regras que determinam suas interações com outros agentes (ex.: quais recursos estão disponíveis e podem ser trocados, as condições pelas quais deve-se iniciar uma luta). A aparência externa de um agente também pode ser codificada nestas regras, como um string visível para os outros agentes. Esta característica abre a possibilidade da geração e evolução de regras sociais e a potencialidade para o mimetismo, um fenômeno freqüentemente observado nos ecossistemas naturais. As regras de iterações utilizam strings, o que torna mais fácil a sua transformação para o genoma. Os agentes também podem reproduzir-se de forma assexuada, através de replicação.
Os genótipos de cada agente codificam os detalhes das regras pelas suas interações (condições pelas quais a regra deve ser aplicada) e os tipos de recursos necessários. Como em outros modelos de vida artificial, o Echo não possui uma função de fitness guiando a seleção e a reprodução. Na verdade, um agente reproduz-se quando acumula recursos suficientes para fazer uma cópia exata de seu genoma. Como nos A.G. tradicionais, a replicação é submetida a uma baixa taxa de mutação, e o acasalamento implica a troca do seu material genético.
Nas primeiras simulações, o sistema Echo demonstrou comportamentos surpreendentemente complexos, o que incluía algo parecido coma uma diferença de duas espécies biológicas competitivas desenvolvendo, progressivamente, estratégias ofensivas e defensivas cada vez mais complexas; dependências ecológicas entre diferentes espécies, tais como o triângulo natural formiga-lagarto-mosca; e o desenvolvimento de uma sensibilidade para diferenciar diversos recursos renováveis, em função dos diferentes números de fenótipos.
Possíveis estudos futuros para o modelo Echo incluem: (1) estudo da evolução da aparência externa como mecanismos para comunicação social; (2) extensão do modelo para suportar a evolução de metazoários, ou seja, comunidades de agentes conectados que possuem características e/ou funções internas quando agrupados, e reproduzem-se unitariamente. Esta capacidade suporta o estudo da especialização de um agente individual e a evolução de indivíduos multi-celulares; (3) estudo da evolução dinâmica do schemata da população; (4) e, utilizando-se dos resultados de (3), formular uma generalização do teorema do schema, baseado no fitness endógeno.

### Strategic Bugs

Neste modelo, desenvolvido por Bedau e Packard (1992), o mundo é composto por um ambiente bidimensional, contendo apenas agentes adaptativos (insetos) e alimento. O suprimento de alimento é renovável, ou seja, ele é reposto periodicamente e distribuído dinamicamente no ambiente. Os insetos (agentes) sobrevivem descobrindo e comendo os alimentos, armazenando-os num reservatório interno até ter energia suficiente para a reprodução.
Os agentes usam energia do seu reservatório interno para movimentar-se. Se o reservatório tornar-se vazio, o agente morre (por inanição). Os comportamentos de cada agente são controlados por uma tabela interna que mapeia os dados sensoriais da vizinhança local do agente num vetor que indica a direção e a distância que o agente deve executar como próximo movimento ( ex. se-mais-de-10-unidades-de-comida-estiverem-a-2-passos-ao-sul -> ande-dois-passos-para-o-sul ). Esta tabela é o material genético do agente, e cada entrada representa um gene. O agente pode reproduzir-se assexuadamente, e neste caso, transferir seu material genético ao seu descendente com uma baixa taxa de mutação por gene; ou sexualmente, onde o acasalamento ocorre com um agente espacialmente adjacente, produzindo um descendente cujo material genético é a combinação de seus pais, possivelmente com um algum pequeno número de mutações. O objetivo de Berdau e Packard era definir e medir o que eles denominavam o grau de Atividade Evolucionária no sistema, durante um certo intervalo de tempo, onde a Atividade Evolucionária é definida informalmente como "a taxa pela qual as inovações genéticas úteis são absorvidas pela população". Bedau e Packard diziam que o "uso permanente de novos genes é o verdadeiro sinal da atividade evolucionária", ou seja, a Atividade Evolucionária é definida para medir a taxa de tempo na qual novos e úteis genes são descobertos, e que acabam por persistir na evolução.
Para quantificar a Atividade Evolucionária, Bedau e Packard começaram mantendo estatísticas da utilização dos genes para cada novo gene que aparecia na população (cada gene era uma entrada na tabela de pares entrada-ação). A cada gene era atribuído um contador, inicializado em zero, que era incrementado a cada momento em que o gene era utilizado, ou seja, no momento em que a situação de entrada surgia e ação correspondente era utilizada. Quando um agente pai passava um gene para seu filho, por reprodução sexual ou não, o valor do contador era passado e permanecia com o gene. A única situação em que o gene era inicializado em zero era quando um novo gene era criado por mutação. Desta maneira, os contadores refletiam a utilização dos genes sob muitas gerações. Quando um agente morre, os genes e seus contadores são destruídos.
Berdau e Packard plotaram, para cada passo de tempo durante a evolução, histogramas dos números de genes na população, mostrando seus valores de uso. Estes histogramas mostraram, o que eles denominaram, “ondas de atividades” durante o período observado, demonstrando que conjuntos de genes eram continuamente descobertos e acabam por persistindo na população, ou seja, que a população achava e explorava inovações genéticas continuamente. Esta era, precisamente, a definição de Berdau e Packard para a evolução e, de acordo com eles, enquanto as ondas continuassem a ocorrer, pode-se dizer que a população está continuamente evoluindo.
Eles acabaram por definir um número apenas, a Atividade Evolucionária num dado tempo, A(t) que mede o grau no qual a população está adquirindo novos e úteis materiais genéticos num dado tempo t, ou seja, se está ou não ocorrendo ondas de atividades no tempo t e como são suas características. Se A(t) for positivo, a evolução está ocorrendo em t. Considerando que a vida é um problema para a população e não para organismos individuais, Bedau e Packard propuseram A(t) como um teste para a vida no sistema. Se A(t) fosse positivo, o sistema está exibindo vida em t. A importância deste modelo é a definição de uma quantidade macroscópica como a Atividade Evolucionária. A formulação de quantificadores macroscópicos da evolução e adaptação, assim como as descrições dos mecanismos microscópicos de onde estas quantidades macroscópicas emergem, é essencial se a Vida Artificial for utilizada como uma ciência exploratória e quiser contribuir significativamente para a biologia evolucionária real.

### Learning Classifier Systems

Os Sistemas de Qualificação do Aprendizado ( SQA ) (Holland, Holyoak, Nisbett, Thagard, 1986) tem sido utilizados como modelos de comportamentos baseados no paradigma do estímulo-resposta e em outros processos cognitivos complexos. Os sistemas de qualificação são baseados em três princípios: aprendizado, retorno intermitente do ambiente, e modelos hierárquicos internos que representam o ambiente. Estes sistemas têm sido utilizados para modelar uma grande gama de comportamentos inteligentes: comportamento humano em situações sociais e econômicas, sistemas de classificação e categorização, etc.
Assim como as Redes Neurais, os sistemas de qualificação constituem-se de máquinas paralelas e algoritmos de aprendizagem que ajustam a configuração destas máquinas durante todo o tempo. Apesar disto, estes sistemas são diferentes das Redes Neurais nos detalhes da máquina paralela, que são referenciadas como Sistemas de Performance Interna, e nos detalhes dos algoritmos de aprendizado. A máquina dos SQA é mais complexa que a maioria das Redes Neurais, trabalhando com quantidades denominadas “mensagens” e controlando seus estado com regras if-then, que especificam os modelos das mensagens.
Um Algoritmo Genético é utilizado para descobrir regras úteis, baseado no retorno intermitente do ambiente e num algoritmo de armazenamento de crédito interno, denominado bucket-brigade. Um SQA consiste de três camadas, sendo que o Sistema de Performance Interna forma a primeira camada. Como segunda camada, o algoritmo de aprendizagem bucket-brigade coordena a fixação dos valores do crédito interno entre os classificadores que estão competindo (de forma análoga a uma Rede Neural utilizando back-propagation). Como última camada, temos os operadores genéticos que criam novos classificadores.
Associado a cada classificador existe um parâmetro de Força. Esta medida reflete a utilidade de cada regra, baseada na experiência passada do sistema. O algoritmo de bucket-brigade é o mecanismo pelo qual este parâmetro é alterado. O algoritmo está baseado na metamorfose de uma economia, onde o ambiente atua como o produtor das matérias-primas e como o consumidor dos produtos finais e, cada classificador, atua como um intermediário na cadeia de produção. Usando o bucket-brigade, o SQA está apto a identificar e utilizar um subconjunto de regras que provaram-se úteis no passado.
No entanto, a base inicial de regras de um SQA não contém todos os classificadores necessários para uma boa performance. O Algoritmo Genético interpreta a Força de cada regra como uma medida de seu fitness e, periodicamente (após os valores das Forças terem sido estabilizados pelo bucket-brigade), remove as regras que não mostraram-se relevantes ou úteis no passado (Força com baixo valor), e gera novas regras utilizando-se operadores de mutação, crossover e outros de propósitos especiais.
Assim como nos A.G. tradicionais, estas adições e remoções são realizadas probabilisticamente. Considerando a definição de indução como todo o processo de inferência que expande o conhecimento na face da incerteza, o A.G. atua como um mecanismo indutivo nos SQA. Uma motivação importante na formulação dos SQA foi o princípio pelo qual os sistemas indutivos necessitam a habilidade de construir modelos internos do ambiente. Os modelos internos devem habilitar o sistema a gerar predições, mesmo que o conhecimento do ambiente seja incompleto ou incorreto e, posteriormente, refinar seu modelo interno quando informações adicionais tornarem-se disponíveis. Em (Riolo, 1991) utiliza-se os SQA para modelar o aprendizado latente e o comportamento de olhar ao seu redor, distinguindo tipos diferentes de objetos, observados em ratos. Para tanto, Riolo desenvolveu um labirinto simples, similar aos observados em experimentos com ratos de verdade, com um ponto inicial e vários pontos finais. Em cada ponto final havia um caixa, com ou sem comida, e que poderiam ser ou não distinguíveis uma da outra ( pela cor, formato, etc. ). Para o experimento, seguiu-se o seguinte algoritmo: ( 1 ) antes da “comida estar” colocada nas caixas, os ratos ( agentes ) sem fome são colocados no labirinto para explorá-lo; ( 2 ) deixavam os agentes explorarem o ambiente por 24 horas; ( 3 ) os agentes eram, então, colocados em algum dos pontos finais do labirinto, habilitados a alimentarem-se de alguma caixa; ( 4 ) os agentes eram colocados no ponto inicial do labirinto e seu comportamento é observado.
Se as caixas fossem distinguíveis, os agentes escolhiam normalmente o caminho que levava a caixa onde estes alimentaram-se em 3. Riolo fez algumas observações sobre o experimento : ( 1 ) na fase de exploração, os agentes aprenderam a estrutura do labirinto sem um objetivo a ser alcançado; ( 2 ) eles aprenderam a usar um modelo interno para realizar uma busca exploratória que os permitiu predizer qual caixa está em cada parte do labirinto; ( 3 ) os agentes tornaram-se aptos a utilizar esta busca com o reconhecimento, onde eles associaram a “comida” com uma determinada caixa; ( 4 ) este tipo de inferência não pode ser gerada por sistemas reativos simples ( estímulo-resposta ). O experimento de Riolo é um dos principais demonstrações da necessidade de modelos internos para os SQA realizarem determinadas tarefas.

### Sistemas Imunológicos

Os Sistemas Imunológicos ( S.I.) são sistemas adaptativos onde o aprendizado é realizado por mecanismo evolucionários semelhantes a evolução biológica. O Sistema Imunológico real é capaz de reconhecer, virtualmente, qualquer célula ou molécula estrangeira. Para tanto, ele deve distinguir as células do próprio corpo, assim como as moléculas criadas por estas ( cerca de 105 proteínas diferentes ) de todas as outras células estrangeiras. Estima-se que o S.I. é capaz de reconhecer cerca de 1016 moléculas estrangeiras diferentes ( obs.: o genoma humano tem cerca de 105 genes ). O modelo de A.G. proposto por (Forrest, Javornik, Smith, Pereleson, 1996) é baseado num universo onde os antígenos ( partículas estrangeiras ) e os anticorpos ( células que realizam o reconhecimento ) são representados por strings binárias. Mais precisamente, as strings binárias são utilizadas para representar os receptores nas células B e T, e os epitopes dos anticorpos. O reconhecimento nos S.I. naturais é realizado por ligações moleculares. A química complexa do reconhecimento dos antígenos é simplificada no sistema binário, e modela como uma simples comparação de strings.
O A.G. é utilizado para evoluir populações de strings que combinam-se bem com antígenos específicos. Para strings de tamanho variável, uma combinação perfeita é altamente improvável, logo um regra de combinações parciais é utilizada para descobrir o maior número de combinações perfeitas numa determinada população. Esta regra de combinação parcial reflete o fato de que o reconhecimento no sistema imunológico natural necessita um alto grau de confiabilidade, para evitar confusões entre suas próprias moléculas e as estrangeiras.
As populações são criadas aleatoriamente e, enquanto que os anticorpos evoluem junto com os antígenos, estes co-evoluem em separado ( pois não dependem dos primeiros ). Os antígenos são apresentados a população de anticorpos seqüencialmente e os anticorpos que tiverem maior afinidade tem seu fitness incrementado.
O sistema imunológico binário tem sido utilizado para estudar aspectos diferentes dos sistemas imunológicos reais: ( 1 ) a habilidade de detectar padrões ( esquemas ) no ambiente ruidoso formados pelos antígenos apresentados aleatoriamente; ( 2 ) a habilidade de descobrir e manter informações sobre as diversas populações de antígenos; ( 3 ) e a habilidade de aprender eficientemente, mesmo quando nem todos os anticorpos estão expressados e nem todos antígenos são apresentados.

### SimVidA

SimVidA é um sistema de vida artificial que enfoca na especialização da eficiência de criaturas nadantes em um mundo líquido bidimensional. Desenvolvido por Rodrigo Setti, neste ambiente as criaturas são formadas por estruturas circulares ligadas por segmentos, diferentes combinações de pesos, comprimentos e forças de torque produzem diferentes estilos de "nados" dos seres, cujo objetivo é conseguir grãos de energia espalhados aleatoriamente pelo ambiente. As criaturas morrem quando sua energia chega a zero - gasta pelo nado - e em contrapartida, se reproduzem assexuadamente quando este valor ultrapassa um certo limiar energético determinado pelos genes.
Na ocorrência de reprodução, um clone do ser é criado recebendo uma percentagem - determinada pelos genes - de sua energia, entretanto existe uma propriedade ajustável que possibilita uma probabilidade de mutação, que é uma alteração pequena em um ou mais genes do novo animal.
Com o decorrer do tempo de simulação é possível observar claramente uma seleção natural Dawinística a favor de criaturas mais eficiêntes no nado. Diferêntes parâmetros ajustáveis produzem diferêntes tendências evolucionárias. É possível aplicar isolamentos geográficos numa espécie e observar divergências evolutivas entre populações buscando a eficiência por meios diversos, neste sistema existe somente um nicho, por esta razão sempre haverá uma tendência a estabilização de uma espécie dominante.