vida artificial - dei.isep.ipp.ptpaf/proj/set2003/vida artificial.pdf · paralelo entre vida...

41
ISEP Engenharia de Computadores e Sistemas Projecto Vida Artificial Setembro de 2003 David Resende 930479

Upload: vudang

Post on 13-Dec-2018

219 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Vida Artificial - dei.isep.ipp.ptpaf/proj/Set2003/Vida Artificial.pdf · paralelo entre vida natural e os métodos de construção de vida artificial. A transformação do conceito

ISEP

Engenharia de Computadores e Sistemas

Projecto

Vida Artificial

Setembro de 2003

David Resende

930479

Page 2: Vida Artificial - dei.isep.ipp.ptpaf/proj/Set2003/Vida Artificial.pdf · paralelo entre vida natural e os métodos de construção de vida artificial. A transformação do conceito

Vida Artificial Índice 08-09-03

David Resende - 930479 Eng.ª de Computadores e Sistemas Pág. 1 de 40

Índice 3 Introdução

4 Capítulo 1 - O que é Vida Artificial?

4 1.1. Conceito

5 1.2. O que é Vida?

6 1.3. “Ruptura” com a Vida Artificial

7 Capítulo 2 - Características dos Sistemas com Vida Artificial

7 2.1. Evolução

7 2.2. Interacção entre Sistemas

7 2.2.1 Comunicação

8 2.2.2 Cooperação

8 2.2.3 Competição

8 2.2.4 Parasitismo

9 2.2.5 Aprendizagem

9 2.3. Comunidades Artificiais

10 Capítulo 3 - Aplicações Práticas

10 3.1. Aplicabilidade

10 3.2. Exemplos

11 3.2.1 O Sistema Tierra

12 3.2.2 Network Tierra

14 3.2.3 Os Boids

15 3.2.4 O Projecto COG

16 3.2.5 Arte Artificial

17 3.2.6 Os Virus

18 3.2.7 Colónias de Formigas em Habitat de Imagens

20 Capítulo 4 - Como se Implementa?

20 4.1. Necessidades

20 4.2. Autómatos Celulares

21 4.3. Computação Evolutiva

22 4.3.1 Algoritmos Genéticos

24 4.3.2 Programação Evolutiva

24 4.3.3 Estratégias de Evolução

26 4.3.4 Sistemas de Classificação

26 4.3.5 Sistemas Auto-Organizados

27 4.3.6 Sistemas MultiAgente com “Vida”

29 Capítulo 5 - Suportes de Desenvolvimento

Page 3: Vida Artificial - dei.isep.ipp.ptpaf/proj/Set2003/Vida Artificial.pdf · paralelo entre vida natural e os métodos de construção de vida artificial. A transformação do conceito

Vida Artificial Índice 08-09-03

David Resende - 930479 Eng.ª de Computadores e Sistemas Pág. 2 de 40

29 5.1. Suportes de Desenvolvimento

29 5.2. SWARM Simulation System

31 5.2.1 Estruturas do SWARM

32 5.2.2 Conclusão

32 5.3. EVO

34 5.3.1 Arquitectura do EVO

36 5.3.2 Resource Maps e Environment

36 5.3.3 Genética

37 5.3.4 Conclusão

38 Conclusão

29 Referências

Page 4: Vida Artificial - dei.isep.ipp.ptpaf/proj/Set2003/Vida Artificial.pdf · paralelo entre vida natural e os métodos de construção de vida artificial. A transformação do conceito

Vida Artificial Introdução 08-09-03

David Resende - 930479 Eng.ª de Computadores e Sistemas Pág. 3 de 40

Introdução Este projecto tem por objectivo a exploração de um conjunto

de teorias e das tecnologias que as suportam, teorias estas, que visam a criação de vida artificial num ambiente real e/ou virtual.

De uma forma genérica, podemos descrever Vida Artificial como a reprodução das propriedades principais dos seres vivos em sistemas informáticos, ou seja, desenvolver sistemas que nascem, crescem, se reproduzem e morrem. Além disto, estes sistemas devem ter capacidade para interagir com outros sistemas com “vida” e evoluírem através de aprendizagem ou produzindo novos sistemas semelhantes com ligeiras mutações.

Para além do sistema “vivo” há que se abordar os resultados das interacções entre vários indivíduos pois, a vida em comunidade, é mais uma propriedade dos seres vivos. Também as comunidades de sistemas “vivos” são objecto de estudo. A forma como se organizam, como interagem e o resultado destas interacções são importantes, não só para entendermos os seus comportamentos, mas principalmente para projectarmos a sua aplicabilidade, uma vez que o TODO é maior que o somatório de todas as partes.

Serão também exploradas as aplicações já existentes destas tecnologias, não só como suporte da teoria, mas também como exemplos para demonstrar as suas capacidades e para exemplificar a forma de os implementar.

Serão igualmente abordadas as tecnologias e suportes de implementação, teorias de desenvolvimento, Software e linguagens para a implementação destes sistemas, serão explorados de maneira a explicar as melhores formas de os implementar.

Page 5: Vida Artificial - dei.isep.ipp.ptpaf/proj/Set2003/Vida Artificial.pdf · paralelo entre vida natural e os métodos de construção de vida artificial. A transformação do conceito

Vida Artificial O que é Vida Artificial? 08-09-03

David Resende - 930479 Eng.ª de Computadores e Sistemas Pág. 4 de 40

Capítulo 1 - O que é Vida Artificial?

1.1. O conceito "The study of man-made systems that exhibit behaviors characteristic of natural living systems." �

��

C. G. Langton. "Artificial Life." In C. G. Langton, editor. Artificial Life, Volume VI of SFI Studies in the Sciences of Complexity, pages 1-47, Addison-Wesley, Redwood City, CA, 1989.

Podemos partir desta frase de Chris Langton para começar a definir Vida Artificial. A Vida Artificial é considerada uma das disciplinas da Inteligência Artificial, contudo, é também fruto da confluência de outras disciplinas como sistemas não lineares e teorias biológicas. A vida Artificial pretende reproduzir os processos e comportamentos dos seres vivos tentando, desta forma, criar vida ou algo parecido com vida.

Vida Artificial é o estudo da biologia, usando tecnologia para investigar as propriedades de sistemas vivos. No caso dos sistemas complexos , a investigação da Vida Artificial procura sintetizar os princípios de auto-organização subjacente aos comportamentos inerentes à vida, resultando numa melhor compreensão da vida “natural” e na invenção de ferramentas relevantes para sistemas de aprendizagem e robótica.

A biologia tradicional utiliza uma abordagem Top Down no estudo da vida, separando os organismos em partes cada vez mais pequenas. Ao contrário a Vida Artificial utilizam uma abordagem Bottom Up, procurando que os comportamentos complexos emirjam da interacção de elementos básicos. A maior parte dos aspectos da vida podem ser interpretadas através de comportamentos emergentes.

A Vida Artificial possibilita o desenvolvimento de “biologia sintética”, ou seja, fornece a capacidade de criar novas formas de vida que não estão restritas à química de carbono em que se formam as moléculas. A tentativa de criar formas de vida em meios alternativos abre novos horizontes à investigação empírica da biologia passando do estudo da vida-como-ela-é para o estudo da vida-como-ela-poderia-ser.

Portanto, para respondermos com precisão à pergunta deste capítulo temos que fazer outra. O que é vida? De facto, Vida Artificial é uma implementação informática de uma definição genérica de Vida. Esta aproximação da Vida Artificial à Biologia, como fonte de informação inicial e objecto de estudo, veio inserir

Page 6: Vida Artificial - dei.isep.ipp.ptpaf/proj/Set2003/Vida Artificial.pdf · paralelo entre vida natural e os métodos de construção de vida artificial. A transformação do conceito

Vida Artificial O que é Vida Artificial? 08-09-03

David Resende - 930479 Eng.ª de Computadores e Sistemas Pág. 5 de 40

um novo palavrão, Neobiologia, ou como lhe chamou Langton, principal impulsionador da Vida Artificial, Biologia Sintética.

Se observarmos a natureza que nos rodeia, facilmente encontramos muitas formas de vida, por isso, temos que extrair as propriedades comuns a cada uma delas e através destas propriedades básicas podermos gerar novos conceitos de vida.

1.2. O que é vida? O conceito de Vida foi evoluindo nos tempos, desde o conceito

da fala como elemento chave da vida. A partir dos séculos XVII e XVIII os cientistas colocaram como fenómeno determinante para a vida a capacidade de mover-se e com isto, tentaram criar autómatos que se pudessem mover ou "adquirir vida" da forma mais natural possível.

Com os avanços da computação e com a criação de uma comunidade de pesquisadores da Inteligência Artificial, o simples facto de existir foi factor determinante para a vida pois, seria possível criar seres com autonomia de discernir entre questões "quotidianas". Assim, "Penso, logo existo" deveria ser substituída por "Existo, logo vivo".

De qualquer forma a questão da vida vem sendo tratada sob muitos pontos de vista desde há muito tempo mas, tecnicamente do ponto de vista da computação, a Vida Artificial é colocada como uma simulação de um processo biológico.

Para se elaborar programas ou sistemas automatizados de simulação, é necessário que se tenha conhecimento dos mecanismos e procedimentos naturais. Logicamente a Biologia, com todos os seus processos, é uma das ciências que mais influenciam a Vida Artificial.

Os biólogos, elaboraram então os princípios biológicos da vida:

• Todo o organismo vivo tem que existir tanto no tempo como no espaço;

• Apresentar auto-reprodução ou reproduzir-se noutro organismo;

• Armazenar informações sobre si próprio;

• Alternar-se por metabolismo (ser capaz de transformar matéria em energia);

• Agir no seu próprio ambiente;

Conter partes independentes;

Page 7: Vida Artificial - dei.isep.ipp.ptpaf/proj/Set2003/Vida Artificial.pdf · paralelo entre vida natural e os métodos de construção de vida artificial. A transformação do conceito

Vida Artificial O que é Vida Artificial? 08-09-03

David Resende - 930479 Eng.ª de Computadores e Sistemas Pág. 6 de 40

• Manter a estabilidade durante as mudanças das condições ambientais;

Evoluir;

• Crescer ou expandir;

Estes princípios servem de base para se poder traçar um paralelo entre vida natural e os métodos de construção de vida artificial. A transformação do conceito de vida em regras possibilita projectar programas e teorias que simulem vida.

1.3. A “ruptura” com a Inteligência Artificial

A Vida Artificial como disciplina apareceu em 1987, pela mão de Christopher Langton. O principal motivo da ruptura com a Inteligência Artificial foi a mudança de paradigma na orientação da investigação.

Na década de 70, a Inteligência Artificial estava descreditada, os sistemas de finalidade geral revelaram-se objectivos demasiado ambiciosos. Era suposto que nessa altura a Inteligência Artificial já tivesse alcançado feitos geniais, como, compor musica clássica de grande qualidade. Objectivos utópicos que fizeram com que fosse vista mais como passatempo académico do como uma tecnologia promissora.

Este descalabro fez com que, nos anos seguintes, tudo fosse repensado. Langton discordava da tentativa de «replicação» do conhecimento e do raciocínio humanos da Inteligência Artificial e passou a inspirar-se directamente na biologia. Langton encontrou potencialidades nos mecanismos naturais de evolução e nas comunidades naturais que evidenciam comportamentos de grupo.

No ano de 1987, no Santa Fe Institute, em Los Alamos Langton reuniu pela primeira vez uma comunidade científica interessada na sua nova abordagem. Seguiram-se mais conferências sobre Vida Artificial, que juntaram cientistas de disciplinas distintas, condição favorável à comunicação multi-disciplinar essencial ao desenvolvimento da Vida Artificial.

Page 8: Vida Artificial - dei.isep.ipp.ptpaf/proj/Set2003/Vida Artificial.pdf · paralelo entre vida natural e os métodos de construção de vida artificial. A transformação do conceito

Vida Artificial Características dos Sistemas com Vida Artificial 08-09-03

David Resende - 930479 Eng.ª de Computadores e Sistemas Pág. 7 de 40

Capítulo 2 - Características dos Sistemas com Vida Artificial

2.1. Evolução Quando falamos de evolução é inevitável lembrar Charles

Darwin. Na sua teoria, as espécies evoluíam através da selecção natural. Nessa altura Darwin não tinha conhecimento da genética e conceitos de mutação.

Nos sistemas de Vida Artificial, a evolução ocorre principalmente através da mutação dos sistemas. As mutações, nos sistemas biológicos, são fruto de trocas de informação. Os ruídos ou erros nessas trocas de informação provocam a alteração dos sistemas. Um exemplo de mutação ocorre quando o DNA de uma célula é copiado para outra, e uma das suas bases é alterada por acidente formando um novo composto. Voltando aos sistemas de Vida Artificial, as mutações ocorrem devido à substituição, exclusão ou cópia múltipla de um bit.

Outro método de evolução é o cruzamento de informação entre sistemas que dá origem a um novo sistema. Este método é comparável à reprodução dos sistemas biológicos. O novo sistema, fruto do cruzamento, pode evoluir e sobrepor-se aos restantes sistemas da sua espécie (selecção).

2.2. Interacção entre Sistemas Nos sistemas de vida artificial, tal como nos sistemas

biológicos, existe relação entre os seus diversos componentes. Esta interacção dá origem a comunidades, como enxames ou colmeias, em que cada elemento é responsável por uma tarefa específica e que eleva o potencial do sistema. A vida em comunidade está intimamente ligada aos sistemas de Vida Artificial, na medida em que estes tentam simular os processos naturais, como, saber a menor distância entre dois pontos através da rota das formigas, ou seja, a resolução de problemas através da divisão destes em vários independentes e mais pequenos.

A interacção entre indivíduos pode então caracterizar-se pelo tipo de relações existentes entre eles. Podemos dividir estas relações, basicamente em:

2.2.1 Comunicação: A comunicação é o meio pelo qual as entidades do sistema

trocam informações ou expressam sentimentos. Quando se fala em trocas de informação, não se está necessariamente a falar de um

Page 9: Vida Artificial - dei.isep.ipp.ptpaf/proj/Set2003/Vida Artificial.pdf · paralelo entre vida natural e os métodos de construção de vida artificial. A transformação do conceito

Vida Artificial Características dos Sistemas com Vida Artificial 08-09-03

David Resende - 930479 Eng.ª de Computadores e Sistemas Pág. 8 de 40

emissor e de um receptor activos, porque não tem que existir um método de conversação. A simples observação das características físicas ou de comportamento é também troca de informação, neste caso, unilateral.

Outra questão a abordar neste método de relacionamento é o meio pelo qual a informação se propaga. Não é necessário que existam trocas de mensagens entre os intervenientes. Em vários sistemas biológicos os seres comunicam através de vários métodos diferentes. A comunicação por mensagens trocadas entre os intervenientes na comunicação, por exemplo, por via oral, é a primeira forma de comunicação de que nos lembramos, no entanto em algumas comunidades os indivíduos comunicam entre si através de sinais no seu ambiente, como é o caso das formigas que, comunicam através de feromona que estas depositam nos alimentos encontrados que, ao evaporar, permite que outras formigas a acompanhem e encontrem o alimento.

2.2.2 Cooperação: A cooperação ocorre quando um conjunto de indivíduos, ou

mesmo comunidades inteiras, juntam esforços para alcançarem os seus objectivos.

Na maior parte das vezes existe uma fase inicial da cooperação em que se dá uma negociação entre os intervenientes. Normalmente existe algum interesse nas duas partes: “Eu tenho uma coisa que tu queres e eu estou interessado numa coisa que tu tens”.

2.2.3 Competição: Competir significa concorrer pela obtenção de um mesmo

recurso do ambiente. Podemos considerar a competição um dos elementos mais importantes dos sistemas biológicos por ser um dos motores da evolução. A competição está por isso intrinsecamente ligada à selecção natural.

2.2.4 Parasitismo: O parasitismo ocorre quando um ser (parasita) vive às custas

de outro ser (hospedeiro). O parasitismo é uma associação obrigatória para o parasita, único beneficiado nesta relação que é, naturalmente, prejudicial ao hospedeiro.

Os vírus informáticos são considerados por muitos cientistas da Vida Artificial como seres cibernéticos parasitas.

Page 10: Vida Artificial - dei.isep.ipp.ptpaf/proj/Set2003/Vida Artificial.pdf · paralelo entre vida natural e os métodos de construção de vida artificial. A transformação do conceito

Vida Artificial Características dos Sistemas com Vida Artificial 08-09-03

David Resende - 930479 Eng.ª de Computadores e Sistemas Pág. 9 de 40

2.3. Aprendizagem A aprendizagem é a base do desenvolvimento e,

consequentemente, da evolução. Há várias formas de aprendizagem, desde a observação, aquisição de novas informações (instruções, indicações e exemplos) ou mesmo pela tentativa e erro.

Basicamente nos sistemas artificiais, o objectivo da aprendizagem é permitir o aperfeiçoamento da selecção de comportamentos, isto é, a aprendizagem é o método como o sistema avalia um comportamento. Neste caso, ele fortalece os comportamentos confiáveis e enfraquece os não confiáveis.

A partir daí, estas posturas fortalecidas, são rotuladas como "hábito", acelerando a selecção dos comportamentos subsequentes.

2.4. Comunidades Artificiais A capacidade dos “indivíduos” artificiais de entre si potencia a

formação de comunidades. Estas comunidades podem encaradas como um sistema vivo, pois podem assumir um comportamento, que reflexo do relacionamento dos vários indivíduos da comunidade. Chama-se a este comportamento “comportamento emergente”.

Quando falamos de sistemas “vivos”, estamos de facto a falar de conjuntos de “indivíduos” artificiais, que através das suas relações formam um comportamento de grupo. Podemos até extrapolar e redefinir o conceito de vida artificial, sendo que nestes casos a parte Artificial do conceito é a do indivíduo, ou seja, o sistema é um sistema genuinamente vivo mas que é composto por componentes de matéria distinta das matérias que deram origem à vida na terra. Num pequeno exercício de análise, podemos chegar à conclusão que este conceito também se aplica à vida humana, pois, também nós somos compostos por vários pequenos componentes sendo o nosso comportamento o resultado da acção desses mesmos componentes.

Os objectivos da Vida Artificial estão até mais relacionados com estas comunidades, a pesquisa de sistemas artificiais complexos que evidenciem algum tipo de comportamento emergente animado comparável a vida.

Page 11: Vida Artificial - dei.isep.ipp.ptpaf/proj/Set2003/Vida Artificial.pdf · paralelo entre vida natural e os métodos de construção de vida artificial. A transformação do conceito

Vida Artificial Aplicações Práticas 08-09-03

David Resende - 930479 Eng.ª de Computadores e Sistemas Pág. 10 de 40

Capítulo 3 - Aplicações Práticas

3.1. Aplicabilidade A Neobiologia ou biologia sintética, como lhe chamou

Christopher Langton tem as suas principais aplicações na criação de “alternativas” artificiais à vida e a própria “extensão” artificial do corpo humano.

Quando se fala em criação de “alternativas”, pretende-se significar a produção de sistemas artificiais através da simulação de sistemas vivos por via computacional ou laboratorial, bem como a criação de “ambientes” de simulação. Outras “alternativas” são a criação de novas formas de vida por via de síntese e algoritmos genéticos, a construção de robôs com comportamento próprio e o uso da realidade virtual para teletransportação holográfica, telepresença virtual e «clonagem» virtual de seres humanos.

Os analistas afirmam que há, nesta primeira parte do artificial, mercados emergentes para os próximos cinco a dez anos em torno de aplicações militares, na área da formação profissional, do ensino à distância, do entretenimento, da engenharia, do «design» e do comércio electrónico e um disparo no mercado do novo tipo de robôs.

No campo do tão falado comércio electrónico há já em curso uma vasta investigação sobre agentes inteligentes que irão revolucionar a dinâmica das transacções e da formação de preços, quer no B2B como no B2C, em particular no Media Lab, numa área dirigida por Pattie Maes, no quadro do grupo de investigação sobre Agentes de Software. Refira-se, para os interessados, que também no ISEP existe um projecto em desenvolvimento, pelo GECAD (Grupo de investigação em Engenharia do Conhecimento e Apoio à Decisão), relacionado com a implementação de Sistemas Multi-Agentes para o desenvolvimento de Comércio Electrónico. O projecto tem o Nome Agent Link II e é coordenado pela University of Sowthampton.

Por curiosidade, refira-se que o campo dos agentes autónomos já permitiu a Langton criar uma empresa – a Swarm, um nome sugestivo (enxame) - em 1997 que comercializa sistemas multi-agente. Ele edita uma newsletter que é uma referência para esta área - Alife OnLine 2.0.

3.2. Exemplos Os elementos anteriores forneceram já um enquadramento da

vasta área de aplicações de que estamos a falar. Mas vamos passar

Page 12: Vida Artificial - dei.isep.ipp.ptpaf/proj/Set2003/Vida Artificial.pdf · paralelo entre vida natural e os métodos de construção de vida artificial. A transformação do conceito

Vida Artificial Aplicações Práticas 08-09-03

David Resende - 930479 Eng.ª de Computadores e Sistemas Pág. 11 de 40

agora à prática, começando por alguns exemplos que podem ilustrar e fornecer mais algum enquadramento.

3.2.1 O sistema Tierra O sistema Tierra é um ambiente que

foi desenvolvido por um biólogo tropical de nome Thomas Ray. Este sistema tem por base a ideia de que a evolução na terra se baseia na selecção natural num meio químico de carbono. Contudo a evolução não se limita ao que ocorre na terra ou no meio de carbono, a vida pode evoluir noutras formas e noutros meios que nada se parecem com este.

O sistema Tierra é um sistema que gera uma máquina virtual com um sistema operativo “Darwiniano” que foi desenhado de tal forma que ele próprio é evolutível. Este sistema pode sofrer mutações ou ser recombinado, mantendo-se funcional para prosseguir as suas funções de selector natural.

Thomas Ray, um forte adepto da Vida Artificial, criou este sistema como forma de compreender a evolução do período cambriano.

Inicialmente, Ray "semeou" o seu ambiente com organismos digitais (leia-se programas) de 80 instruções de linguagem máquina cuja sequência formava um genótipo.

Além disso, existem alguns programas auxiliares que têm a função de provocar mutações aleatórias na formação genética dos seus indivíduos e também programas conhecidos por "Ceifadores", que entram em acção matando organismos causadores de erros ou que não estão funcionais devido à alteração de seus algoritmos, na medida que, a população aloca 80% da memória RAM do ambiente.

O próprio sistema operativo possui um algoritmo de varredura, onde mantém um registro de nascimentos, mortes, sequências de códigos de cada criatura e principalmente um banco de genes a partir de genomas que tenham tido sucesso.

O Tierra é um ambiente virtual, isto é, um computador paralelo virtual com a sua própria arquitectura, processadores e linguagem máquina.

A necessidade de se construir um computador virtual dentro do computador físico, surgiu principalmente pelo facto da sua linguagem interna ser flexível, sendo projectada para continuar

Page 13: Vida Artificial - dei.isep.ipp.ptpaf/proj/Set2003/Vida Artificial.pdf · paralelo entre vida natural e os métodos de construção de vida artificial. A transformação do conceito

Vida Artificial Aplicações Práticas 08-09-03

David Resende - 930479 Eng.ª de Computadores e Sistemas Pág. 12 de 40

forte na medida em que os indivíduos da sua população se desenvolvem.

O processamento deste computador virtual é semi-paralelo, pois o tempo de acesso ao CPU é passado de criatura para criatura (como numa lista circular através de um Token).

O objectivo básico de toda a criatura é sobreviver pelo maior tempo possível e reproduzir-se. Aliás, a maior peculiaridade do Tierra é que o tempo de acesso ao CPU, é visto como a energia que move o seu mundo e, neste caso, quanto maior o genótipo das criaturas (muitas instruções de código), maior o consumo de "energia".

O próprio "Ceifador" estimula a diminuição das linhas de código, pois ele concede mais tempo de vida aos indivíduos que acederem menos ao CPU.

Além disso, cada criatura tem privilégio de escrita no seu bloco de instruções (Write), mas a leitura (Read) e execução (Execute) de instruções não são exclusivas e, neste caso, uma criatura pode ler e executar o código de outra, mas não pode escrevê-lo.

Com o passar das gerações, Ray percebeu que, aos poucos, as suas criaturas variavam o seu genótipo, de 80 instruções iniciais para indivíduos com 79, 45, 51 ou menos instruções.

Surgiram também criaturas parasitas que necessitavam de um hospedeiro para se auto-replicar. Neste caso, ele usava o seu processador, mas executando o código de um outro indivíduo.

Surgiram até mesmo hiper-parasitas que usavam um processador "roubado" e o próprio para produzir dois filhos simultaneamente.

Os resultados obtidos através do sistema Tierra comprovam que a evolução das suas criaturas se deu a partir da adaptação de uma pelas outras, como ocorre na natureza, e não ao ambiente físico.

3.2.2 Network Tierra Tom Ray decidiu aproveitar as capacidades do Sistema Tierra

e viu oportunidade na diversidade de ambientes que estaria à disposição dos organismos num grande número de máquinas ligadas em rede.

Em 1996, Tom Ray declarou a intenção de criar a primeira reserva de biodiversidade do ciberespaço, segundo ele: "...a propriedade mais interessante da evolução é a sua habilidade de gerar complexidade.(...) Pensando nisso, propôs a criação de uma região do ciberespaço ampla, completa e interligada que será

Page 14: Vida Artificial - dei.isep.ipp.ptpaf/proj/Set2003/Vida Artificial.pdf · paralelo entre vida natural e os métodos de construção de vida artificial. A transformação do conceito

Vida Artificial Aplicações Práticas 08-09-03

David Resende - 930479 Eng.ª de Computadores e Sistemas Pág. 13 de 40

colonizada com organismos digitais, os quais poderão evoluir livremente por selecção natural.(...) Caso seja bem sucedido, este processo evolutivo vai nos permitir achar a forma natural dos processos paralelos e distribuídos e vai gerar processos de informação digital extremamente complexos.(...) O processo será financiado pela doação de capacidade ociosa de processamento de milhares de máquinas ligadas à rede, correndo a reserva digital como um processo de fundo de baixa prioridade nos participantes.(...) Se a experiência da reserva for um sucesso, ele deveria passar a ser visto tal qual uma floresta de reserva tropical, e deveria tornar-se um elemento permanente da rede: a primeira reserva natural do ciberespaço!".

Este projecto foi de facto implementado em 1997. O sistema baseia-se num organismo inicial programado com dois tipos de células. Um dos tipos de células são as reprodutivas e o outro tipo é sensorial. O tecido reprodutivo, tem a função de copiar o seu genoma enquanto que o tecido sensorial, tem por função recolher informação sobre as condições das outras máquinas da rede.

O primeiro organismo “plantado” no sistema era um organismo com dez células: duas delas reprodutivas e as outras oito eram células sensoriais.

Este projecto tem dois objectivos fundamentais:

• Organismos diferenciados conseguem sobreviver durante um tempo bastante prolongado no sistema;

• O n.º de tipos de células aumenta ao longo da evolução.

O sistema passou por várias fases. Também ele evoluiu aprendendo com os seus erros. Nos primeiros tempos do seu funcionamento surgiram problemas ao nível das comunicações. Os movimentos dos organismos, ocorriam na maior parte das vezes, entre redes diferentes e esta movimentação causava uma grande congestão nos links de acesso à internet das várias instituições envolvidas no projecto. Este problema originou um redesenho da solução para que os organismos distinguissem esses movimentos e passassem a mover-se essencialmente dentro da sua rede. Foram também corrigidos bugs do programa que não permitiam que as células sensoriais evoluíssem da forma que se esperava.

Entre Novembro de 1997 e Março de 1998 o primeiro objectivo do projecto estava atingido.

O segundo objectivo demorou bastante mais e só foi possível verificar no ano 2000. A principal dificuldade do segundo objectivo foi definir métodos de análise dos organismos para diferenciar as suas células. No entanto, o estudo aprofundado dos organismos revelou que os tecidos sensoriais dos organismos se subdividiram

Page 15: Vida Artificial - dei.isep.ipp.ptpaf/proj/Set2003/Vida Artificial.pdf · paralelo entre vida natural e os métodos de construção de vida artificial. A transformação do conceito

Vida Artificial Aplicações Práticas 08-09-03

David Resende - 930479 Eng.ª de Computadores e Sistemas Pág. 14 de 40

em duas tarefas, por isso o número de tipo de células dos organismos passaram de duas para três.

Apesar de ter atingido os objectivos, o sistema ficou aquém das expectativas do seu criador. Thomas Ray concluiu que o Tierra tinha um baixo grau de evolução na perspectiva pois não foi capaz de fazer com que os organismo evoluíssem para organismos com estruturas celulares altamente complexas.

3.2.3 Os BOIDS Em 1986 o animador gráfico Craig

Reinolds, pesquisava uma forma de construir uma animação gráfica sobre o voo de bandos de pássaros e, para isso, ficou dias a observar os pássaros em bandos concluindo que, na verdade, não havia um "líder" mas cada pássaro seguia algumas regras básicas individualmente. Destas regras simples ele concluiu inicialmente três:

• Separação: cada elemento do bando evita aglomerar-se a outro mantendo uma certa distância;

• Alinhamento: cada pássaro tenta ficar no centro de um grupo de indivíduos;

• Coesão: o bando mantém-se unido.

Mais tarde, em cooperação com outros profissionais da Symbolics Graphics Division (Califórnia), onde trabalhava, criou um programa que gerava cenas tridimensionais para simular os movimentos dos pássaros a partir destas regras simples, chamando-o de Boids, contracção de Birds (pássaros) e Oids (andróides).

Cada pássaro foi colocado numa posição aleatória mas, lentamente eles aproximavam-se, aumentando ou diminuindo a sua velocidade e distância, formando um bando.

Os Boids, na verdade, possuíam comportamentos emergentes a partir das regras simples pré estabelecidas convencendo muitos ornitologistas a usar os Boids como ferramenta de pesquisa a favor da Biologia. Meses depois, Reinolds aplicou obstáculos no ambiente na forma de cilindros ou colunas gregas e de forma surpreendente, o bando de pássaros ao aproximar-se das colunas, desviava-se em várias direcções e depois e reagrupava-se na formação original.

Page 16: Vida Artificial - dei.isep.ipp.ptpaf/proj/Set2003/Vida Artificial.pdf · paralelo entre vida natural e os métodos de construção de vida artificial. A transformação do conceito

Vida Artificial Aplicações Práticas 08-09-03

David Resende - 930479 Eng.ª de Computadores e Sistemas Pág. 15 de 40

Isto aconteceu porque Reinolds acrescentou novas regras como "evitar obstáculos" que tinham prioridade sobre as outras (competição de comportamentos).

Em 1987, Craig Reinolds foi convidado por Chris Langton a apresentar os seus "boids" na Artificial Life Workshop, pois encaixava-se perfeitamente nos princípios da Vida Artificial: "comportamento global complexo gerado a partir de regras simples locais".

Até hoje os biólogos questionam se os pássaros seguem realmente estas regras para voar, embora o computador tenha representado perfeitamente o comportamento natural e Reinolds e Langton acreditem piamente que estas regras são mesmo utilizadas.

3.2.4 O Projecto COG O MIT (Instituto de Tecnologia de

Massachusets), sob a direcção de Rodney Brooks e Lynn Andrea Stein, está a construir o robô mais avançado do mundo.

Avançado não só no sentido físico e estético, mas também no desenvolvimento pois, o robô COG é construído de forma a simular os comportamentos humanos.

Tecnicamente, possui sensores e actuadores para simular a dinâmica sensório-motora do homem e, com isto, manter interacção com o ambiente. O seu sistema nervoso é constituído por um sistema de clustering de vários processadores ligados por uma rede de alto débito. O sistema nervoso está ligado a um sistema binocular de captura de vídeo. A sua linguagem de programação é a linguagem L, uma versão de Rodney Brooks da linguagem LISP.

A característica mais interessante deste robô para o presente estudo é a capacidade de se auto-desenvolver. Esta capacidade tem por base o desenvolvimento normal de um homem. De facto, uma criança não nasce com todas as capacidades desenvolvidas, quer motoras quer sensoriais, por exemplo, não sai a correr da maternidade nem faz poses quando se vê reflectida num espelho pela primeira vez. Ao longo do tempo a criança vai desenvolvendo as suas capacidades.

O robô "nasce" com um software de reconhecimento de imagens, podendo vincular as cenas memorizadas com símbolos e,

Page 17: Vida Artificial - dei.isep.ipp.ptpaf/proj/Set2003/Vida Artificial.pdf · paralelo entre vida natural e os métodos de construção de vida artificial. A transformação do conceito

Vida Artificial Aplicações Práticas 08-09-03

David Resende - 930479 Eng.ª de Computadores e Sistemas Pág. 16 de 40

com isso, poder fazer associações amplas como, "imaginar" um rectângulo sobre o que ele já sabe sobre quadrados e depois desenhar uma casa ou mesmo conseguir reconhecer pessoas.

Tudo o que for aprendido nesta fase infantil, será fixado como inato no software, desta maneira, a evolução humana de milhões de anos, poderá ser percorrida em poucos anos num laboratório.

Actualmente o COG está dividido em dois projectos. O novo projecto “KISMET” é uma plataforma para explorar as capacidades de visão e reacções emotivas. Esta plataforma foi criada para desenvolver as ideias de interacção social. A plataforma tem a capacidade de exprimir expresões faciais para expressar emoções.

Uma das investigações em curso no projecto COG é a teoria da mente. Basicamente, o desafio é implementar capacidades no robô para atribuir crenças, objectivos e desejos aos outros indivíduos. Para participar na dinâmica social normal, o humanóide não pode apenas reconhecer as propriedades dos objecto, mas tem as propriedades dos outros agentes animados do mundo.

3.2.5 “Arte Artificial” Artisticamente o sucesso dos "Boids"

de Craig Reinolds influenciou cineastas e criadores de efeitos visuais como Andy Kopra, que partiu dos princípios da Vida Artificial e do próprio programa de Reinolds para criar a sequência de morcegos do Filme "Batman Returns".

Segundo Reinolds, um artista gráfico perderia muito tempo para animar os animais independentemente e, mesmo com programas de animação sofisticados, o comportamento global gerado não pareceria real pois, nos Boids, o movimento é feito do ponto de vista de cada indivíduo e não do grupo.

Na medida que a Vida Artificial simula os processos naturais, a própria beleza artística da natureza pode ser produzida com maior fidelidade pelos meios artificiais.

Zangado Calmo Desgostoso

Contente Interessado Triste

Surpreendido

Page 18: Vida Artificial - dei.isep.ipp.ptpaf/proj/Set2003/Vida Artificial.pdf · paralelo entre vida natural e os métodos de construção de vida artificial. A transformação do conceito

Vida Artificial Aplicações Práticas 08-09-03

David Resende - 930479 Eng.ª de Computadores e Sistemas Pág. 17 de 40

Há alguns anos atrás (1968), dois matemáticos pesquisavam uma forma de traduzir o crescimento de plantas em fórmulas matemáticas, de forma que o processo pudesse ser capturado por um computador.

Para isto, estes dois matemáticos (Aristid Lindenmayer e Przemyslaw Prusenkiewicz) incorporaram teorias que iam desde a teoria gramatical de Noam Chomsky, passando pela matemática dos autómatos de Stephen Wolfram e até os fractais de Benoit Mandelbrot, surgindo os Sistemas-L.

A grande semelhança entre este processo artístico e a Vida Artificial é que os resultados são obtidos através de um processo matemático simples que eles chamaram de regravação.

O método da regravação consiste basicamente de um algoritmo em ciclo e a cada ciclo deste é feita a substituição de um símbolo por outro. Por exemplo: tendo dois símbolos (X e Y). A cada ciclo, substituir X por XY e Y por X, obtendo:

Nos Sistemas-L este X's e Y's transformam-se em representações gráficas simulando o crescimento de plantas. Cada vez mais complexo, um galho possui outros ramos que possuem outros pequenos ramos, etc. Isto chama-se auto-semelhança que é a base dos Fractais.

3.2.6 Os Vírus Os Vírus informáticos são considerados por muitos cientistas

da Vida Artificial, organismos Artificiais. Isto porque, se os observarmos, encontramos de facto características que emitam os vírus biológicos. Ora, esta é a principal característica dos sistemas de Vida Artificial.

Apesar de não terem sido construídos com esse objectivo os seus criadores imitaram de facto vírus biológicos ao implementarem algumas das seguintes características:

Page 19: Vida Artificial - dei.isep.ipp.ptpaf/proj/Set2003/Vida Artificial.pdf · paralelo entre vida natural e os métodos de construção de vida artificial. A transformação do conceito

Vida Artificial Aplicações Práticas 08-09-03

David Resende - 930479 Eng.ª de Computadores e Sistemas Pág. 18 de 40

• Auto-Reprodução: Os vírus de computador reproduzem-se a partir da sucessiva cópia de seu código podendo, com isso, infectar outros programas ou outros computadores.

• Crossing-over: Alguns vírus de computador sofisticados conseguem recombinar características entre si para produzir novos tipos de vírus.

• Latência: Alguns vírus de computador permanecem inertes até que as condições ambientais lhe sejam favoráveis. Ex.: todos os vírus que se manifestam em dias marcados (Sexta-feira 13, Michelangelo, etc)

• Alimentação: Os vírus de computador retiram energia e informações (dados) do hospedeiro.

• Mimetismo: Alguns vírus de computador, conhecidos como vírus furtivos, tentam evitar a sua detecção forjando informações, fazendo com que o sistema fique com a mesma aparência de antes da infecção.

• Mutação: Muitos vírus de computador modificam-se cada vez que duplicam, principalmente com o objectivo de não serem reconhecidos.

É importante salientar que esta modificação notada na mutação, pode acontecer não intencionalmente, isto é, ao ser transferido de um computador para outro, por exemplo, algumas partes do vírus podem sofrer alterações o que, como já foi visto, é uma característica bastante importante da Vida Artificial.

3.2.7 Colónias de Formigas em habitat de imagens

Vitorino Ramos é o autor desta aplicação, o cientista português apoiou-se em vários estudos que já indicavam que o comportamento de uma colónia de formigas é de longe mais complexo do que o comportamento dos seus indivíduos. O comportamento da colónia é muito mais complexo do que o

Page 20: Vida Artificial - dei.isep.ipp.ptpaf/proj/Set2003/Vida Artificial.pdf · paralelo entre vida natural e os métodos de construção de vida artificial. A transformação do conceito

Vida Artificial Aplicações Práticas 08-09-03

David Resende - 930479 Eng.ª de Computadores e Sistemas Pág. 19 de 40

somatório dos comportamentos das várias formigas que o compõem, dando assim expressão à frase “O TODO é maior do que o somatório de todas as partes”. Esta ideia está inevitavelmente ligada ao SWARM de Craig Langton.

O sistema desenvolvido por Vitorino Ramos tem como base um paradigma de computação desenvolvido por Marco Dorigo, denominado Ant System. Nestes sistemas o comportamento global tem origem na relação entre vários comportamentos simples.

Vitorino Ramos encontrou especial interesse na aplicação destes paradigmas ao reconhecimento de padrões, área na qual ainda não eram utilizados, nomeadamente, na segmentação de imagem, podendo esta ser encarada como um problema de combinações que pode ser subdividido em pequenos problemas (clustering).

Assim a imagem será o habitat da colónia. O objectivo do sistema é identificar zonas homogéneas na imagem, segmentando-a em várias regiões. Cada formiga viaja independentemente pelo seu habitat, sem que exista comunicação entre elas. À medida que as formigas vão viajando pelos pixies, vão marcando cada um deles com feromona de forma mais ou menos intensa, conforme a mudança de direcção da formiga, ou seja, nos limites de uma região homogénea, as formigas fazem grandes alterações nas suas trajectórias que correspondem a uma marca menos intensa. Além disto, as formigas podem guiar-se pelo comportamento global, pois, como ela não pode comunicar com as outras, segue as marcas nos píxeis adjacentes, fazendo-a mudar de direcção.

Estas marcas evaporam-se com o tempo, daí que o habitat guarde informação sobre o passado de cada posição mas não sobre tudo o que se passou, uma vez que, pelo processo de evaporação das marcas, o passado mais distante desaparece do habitat.

Uma grande vantagem destes sistemas é que os insectos guardam a sua memória espacial no próprio habitat, não a guardando dentro da sua memória, ou seja, publicam o seu comportamento no seu habitat.

Page 21: Vida Artificial - dei.isep.ipp.ptpaf/proj/Set2003/Vida Artificial.pdf · paralelo entre vida natural e os métodos de construção de vida artificial. A transformação do conceito

Vida Artificial Como se Implementa? 08-09-03

David Resende - 930479 Eng.ª de Computadores e Sistemas Pág. 20 de 40

Capítulo 4 - Como se implementa?

4.1. Necessidades Como se desenvolvem sistemas com Vida Artificial? Todas as

teorias já referidas anteriormente carecem agora resolução prática.

Mas afinal, como é que a evolução produz organismos cada vez mais adaptados a um ambiente incerto para os organismos individuais?

Como é que um organismo usa a sua experiência para modificar o seu comportamento de forma benéfica?

Como é que podemos programar computadores para que a resolução de problemas seja feita através da descrição de ‘o que tem que ser feito’ em vez de ‘como é que se faz’?

Como é que se implementam comunidades de Vida Artificial?

Estas e outras perguntas ficaram naturalmente no ar após a leitura dos capítulos anteriores. Este capítulo pretende apresentar soluções genéricas para estas perguntas.

4.2. Autómatos Celulares A construção de Autómatos Celulares foi uma das primeiras

abordagens à Vida Artificial. Basicamente, um Autómato Celular é uma matriz de células independentes, cada célula age como um autómato independente por reacção ao estado das células vizinhas.

O principal efeito destes autómatos é gerar comportamentos complexos através de um conjunto de regras simples.

Um dos primeiros exemplos destes mecanismos é o denominado “Game of life” produzido em 1970 por um jovem matemático chamado John Horton Conway. O autómato é uma gralha bidimensional de células. Cada célula tem dois estados “vivo” e “morto” e é influenciado pelo estado dos seus vizinhos através de três regras simples:

• Uma célula vida com menos que dois vizinhos vivos, morre por isolamento;

Uma célula viva com mais que três vizinhos vivos, morre por sufocamento;

• Uma célula morta com três vizinhos vivos, torna-se viva.

Estas regras são aplicadas simultaneamente a todas as células do autómato. O recalculo de toda a grelha é chamado geração. Como o programa vai gerar novas grelhas consecutivas, o “desenho” vai-se alterando de forma estranha mas não aleatória.

Page 22: Vida Artificial - dei.isep.ipp.ptpaf/proj/Set2003/Vida Artificial.pdf · paralelo entre vida natural e os métodos de construção de vida artificial. A transformação do conceito

Vida Artificial Como se Implementa? 08-09-03

David Resende - 930479 Eng.ª de Computadores e Sistemas Pág. 21 de 40

Uma configuração inicial pouco complexa vai evoluir para um cenário em que alguns padrões comportamentais aprecem espalhados na grelha. Pode chamar-se a estes padrões comportamentos emergentes.

Os comportamentos mais comuns são grupos de células chamadas intermitentes. Estes grupos alternam constantemente entre dois estados de acordo com as regras e irão alternar eternamente, caso as regras se mantenham.

Outro comportamento muito conhecido são os “gliders”. Este comportamento aparenta um grupo de células que se movimenta na diagonal ao longo da grelha, como se as células se copiassem para uma posição adjacente à sua posição actual.

Outras configurações iniciais podem fazer com que todas as células morram, o exemplo fácil de imaginar é uma grelha em que todas as células estão vivas. Neste caso, na segunda geração todas as células estão mortas e o sistema morre com elas.

4.3. Computação Evolutiva A Computação Evolutiva (CE) engloba um grande conjunto de

técnicas baseadas em processos naturais de evolução e têm por objectivo a resolução de problemas complexos.

A CE procura utilizar alguns conceitos genéricos dos fenómenos que acontecem na natureza como, selecção natural, cruzamento e reprodução, para procurar indivíduos (soluções) que se enquadrem melhor no ambiente (solução).

A CE tem o seu início, quando, na década de 60, John Holland colocou a hipótese de resolver problemas da inteligência Artificial através de mecanismos naturais de selecção.

A CE implementa os seus modelos na forma de algoritmos denominados Algoritmos Evolutivos (AE). Estes modelos têm o objectivo de resolver problemas complexos de busca e aprendizagem.

Os AE possuem o propósito de direccionar uma busca estocástica, fazendo evoluir um conjunto de estruturas e seleccionando de modo interactivo as mais aptas.

No AE, as soluções de um problema são representadas por um conjunto de indivíduos que sofrem um conjunto de transformações para actualizar a busca e, depois, por um processo de selecção, favorece os melhores indivíduos. Por cada vez que ocorre um ciclo de transformações + selecção constitui-se uma nova geração. As gerações sucedem-se até que se consiga uma solução suficientemente próxima da desejada.

Page 23: Vida Artificial - dei.isep.ipp.ptpaf/proj/Set2003/Vida Artificial.pdf · paralelo entre vida natural e os métodos de construção de vida artificial. A transformação do conceito

Vida Artificial Como se Implementa? 08-09-03

David Resende - 930479 Eng.ª de Computadores e Sistemas Pág. 22 de 40

Genericamente, um Algoritmo Evolutivo pode ser representado da seguinte forma:

Existem várias variantes dos AE, mas todas elas possuem métodos evolutivos muito semelhantes. Os principais paradigmas são:

• Algoritmos Genéticos;

• Programação Evolutiva;

Estratégias de Evolução;

• Sistemas Classificadores;

• Programação Genética.

4.3.1 Algoritmos Genéticos: Um Algoritmo Genético (AG) é um modelo de evolução que

deriva o seu comportamento de uma metáfora do processo evolutivo natural, ou seja, o paradigma Darwiniano da evolução das espécies. Isto é obtido pela criação de uma população de indivíduos representados por cromossomas (genótipo). Nos AG a evolução tem lugar nos cromossomas que compõem o genótipo do indivíduo.

início

iniciar tempo

inicializar população (aleatoriamente ou não)

avaliar a aptidão dos indivíduos

Enquanto a solução não satisfeita

Incrementar tempo

Seleccionar população para gerar nova geração

recombinar os genes da sub-população seleccionada

provocar mutações na nova geração

avaliar aptidão dos indivíduos da nova geração

seleccionar os sobreviventes da geração corrente

fim enquanto

fim

Page 24: Vida Artificial - dei.isep.ipp.ptpaf/proj/Set2003/Vida Artificial.pdf · paralelo entre vida natural e os métodos de construção de vida artificial. A transformação do conceito

Vida Artificial Como se Implementa? 08-09-03

David Resende - 930479 Eng.ª de Computadores e Sistemas Pág. 23 de 40

Traçando um paralelo entre Evolução Natural e os Algoritmos Genéticos, chegamos ao seguinte quadro:

Evolução Natural Algoritmos Genéticos

Indivíduo Solução

Genótipo (cromossomas) Representação

Reprodução Sexual Operador de cruzamento

Mutação Operador de Mutação

População Conjunto de Soluções

Gerações Ciclos

Um algoritmo Genético é um processo iterativo que durante a iteração (geração) mantém constante uma população de potênciais soluções. Cada solução é Avaliada para fornecer uma medida de aptidão. De seguida, uma nova geração é formada, seleccionando os indivíduos da geração anterior.

A selecção natural, por si só, não gera nenhuma nova solução, apenas remove soluções que não interessam. Para gerar novas soluções, alguns membros são submetidos a alterações através de cruzamento e mutação. Sendo, assim, geradas novas soluções.

O operador de cruzamento combina as características de dois indivíduos de modo a gerar duas novas soluções (descendentes).

O operador de mutação consiste na alteração arbitrária de um ou mais genes de um cromossoma com uma probabilidade arbitrária. A mutação de indivíduos garante alguma diversidade genética na população, prevenindo desta forma a rápida convergência das soluções. A inserção de mutações nos genes permite que o AG procure soluções em novos pontos do espaço de pesquisa.

Assim, um AG para um determinado problema deve conter os seguintes componentes:

• Uma representação genética para as soluções potenciais do problema;

• Uma forma de gerar uma população inicial de soluções potenciais;

• Uma função de avaliação que desempenha o papel de ambiente, classificando soluções em função da sua aptidão;

• Operadores genéticos que alteram a composição das descendências;

• Valores para diversos parâmetros que o algoritmo genético utiliza (tamanho da população, taxa de cruzamento, taxa de

Page 25: Vida Artificial - dei.isep.ipp.ptpaf/proj/Set2003/Vida Artificial.pdf · paralelo entre vida natural e os métodos de construção de vida artificial. A transformação do conceito

Vida Artificial Como se Implementa? 08-09-03

David Resende - 930479 Eng.ª de Computadores e Sistemas Pág. 24 de 40

mutação, taxa de substituição, critérios de paragem, Avaliação da aptidão ).

4.3.2 Programação Evolutiva: A Programação Evolutiva (PE) foi proposta por Fogel, Owens

e Walsh em meados da década de 60. Ainda que a proposta original tratasse de predição de comportamento de máquinas de estados finitos, o enfoque da PE adapta-se a qualquer estrutura de problema. Este método caracteriza-se pela orientação a um objectivo. Por outras palavras, este método selecciona a melhor saída para um objectivo pré-determinado (Top-Down).

Todas estas performances avaliadas, significam obviamente, adequação ao ambiente em que se insere a população e é, desta forma, que os algoritmos da PE conseguem adaptar-se a uma situação ou escolher a melhor saída para uma problemática.

O algoritmo básico segue os seguintes passos:

Escolhe-se uma população inicial de soluções de forma aleatória. O número de soluções é relevante para a velocidade da optimização;

• Cada solução, gera uma nova população, cujas soluções sofrem mutação de acordo com uma distribuição de taxas de mutação;

• Cada solução tem a sua aptidão calculada. Os mais aptos são retidos como população de soluções. Não se exige que a população permaneça constante ou que cada ascendente gere apenas um descendente.

A mutação é o único operador que actua na programação evolucionária. Não há cruzamento.

4.3.3 Estratégias de Evolução: O campo das Estratégias de Evolução (EE) foi concebido para

solucionar problemas técnicos de optimização (PTOs). Normalmente, não há uma função analítica objectiva fechada para os PTOs e, portanto, nenhum método aplicável de optimização além da intuição do engenheiro.

Similar à Programação Evolutiva, as Estratégias de Evolução, também se servem da mutação e selecção orientada a objectivos.

Através destes conceitos biológicos, selecciona-se os melhores indivíduos para criar próximas gerações com níveis de adaptação ao ambiente cada vez maiores.

Page 26: Vida Artificial - dei.isep.ipp.ptpaf/proj/Set2003/Vida Artificial.pdf · paralelo entre vida natural e os métodos de construção de vida artificial. A transformação do conceito

Vida Artificial Como se Implementa? 08-09-03

David Resende - 930479 Eng.ª de Computadores e Sistemas Pág. 25 de 40

As Estratégias evolutivas dividem-se em vários algoritmos com características diferentes ao nível da geração de novas gerações e do método de selecção de indivíduos.

EE (1+1):

Neste método cada progenitor gera um descendente, através de mutação. Esta mutação é controlada de forma a que exista maior probabilidade de acontecerem pequenas alterações do que grandes saltos.

A razão entre as mutações bem sucedidas e todas as mutações verificadas, pode ser estimado como preferencialmente de 1/5, o que originou a denominada Regra de 1/5 de Sucessos.

EE (m+1):

O algoritmo (1+1), que empregava exclusivamente mutação foi aperfeiçoado para uma estratégia (m+1), incorporando a operação de cruzamento que empregava diversos (m) progenitores. O esquema de mutação e controle exógeno do tamanho de cada passo evolutivo continuou o mesmo da EE (1+1).

A estratégia (m+1) foi posteriormente generalizada para (m+l) e (m,l), empregando os seguintes princípios da evolução natural: uma população, com possibilidade de cruzamento por acasalamento aleatório, mutação e selecção.

EE (m+l):

A geração progenitora também é levada em conta na tarefa de selecção.

EE (m,l)

Apenas a nova geração é submetida à selecção e a geração progenitora morre.

Os sistemas baseados em EE, empregam a teoria da probabilidade e estatística aplicada à interpretação dos resultados obtidos durante a sua navegação em espaços de problemas usualmente multidimensionais. Além disso, em EEs o processo de selecção escolhe aqueles indivíduos que conseguiram construir um bom modelo da função objectivo e, portanto, produziram melhor descendência que os demais. Assim, a evolução ocorre em dois níveis: (1) ao nível genótipo, isto é, a nível do próprio indivíduo e de suas variáveis estratégicas e (2) a nível fenótipo, isto é, de adequação ao ambiente.

Page 27: Vida Artificial - dei.isep.ipp.ptpaf/proj/Set2003/Vida Artificial.pdf · paralelo entre vida natural e os métodos de construção de vida artificial. A transformação do conceito

Vida Artificial Como se Implementa? 08-09-03

David Resende - 930479 Eng.ª de Computadores e Sistemas Pág. 26 de 40

4.3.4 Sistemas de Classificação: Outra ideia de John Holland, são os Sistemas de Classificação

(SDC) que classificam um ou vários inputs para produzir um ou vários outputs. Na sua forma mais simples, uma série de instruções “if this than that” determinam a relação entre os inputs e os outputs. Em sistemas mais complexos, uma aplicação SDC pode usar AG para adaptar as suas operações a um ambiente em constante alteração ou dependendo dos seus outputs. Um SDC pode também evoluir regras de um conjunto de classificações iniciais aleatoreamente geradas.

Para a construção de tais sistemas é necessário: um ambiente, receptores que informam ao sistema sobre o que está a ocorrer, actuadores que permitem ao sistema manipular o seu ambiente e o sistema em si.

Por exemplo, um SDC para a área bolsista, “vigiaria” os valores de compra e venda do “papel” para produzir recomendações (Compra, Vende,...) baseado nas suas regras de classificação da informação. Um sistema evolutivo pode aprender através dos hábitos de compra e venda do bolsista, refinando os seus outputs para melhor se encaixar nas necessidades do seu utilizador. Os primeiros Sistemas de Classificação apareceram nos anos 70, baseados nas ideias iniciais de John Holland. Como parte da pesquisa da Vida Artificial, os SDC podem ser componentes de um agente autónomo ou de outro organismo artificial complexo.

4.4. Sistemas Auto-Organizados Sistemas Auto-Organizados são sistemas complexos que são

capazes de organizar todos os seus componentes para atingir os seus objectivos. Os sistemas Auto-Organizados são sistemas orientados para um objectivo e são avaliados por uma função de performance.

A evolução dos sistemas Auto-Organizados acontece com muito pouca intervenção do ambiente, isto é, o desenvolvimento de novas estruturas complexas acontece pela acção do próprio sistema. Os sistemas Auto-Organizados podem ser compreendidos tal como outros processos de evolução e selecção mais baseados no ambiente, como os métodos da Computação Evolutiva.

A auto-organização destes sistemas é perturbada por processos internos de variação, que são usualmente chamados “flutuações” ou “ruídos”. Estes “ruídos” são alterações ao estado do sistema através de alterações nos seu componentes. Note-se, que quando falamos dos componentes, estamos a falar de organismos artificiais que interagem entre si como seres vivos, ou seja, são sujeitos a mutações. No fundo, são estes ruídos provocados no

Page 28: Vida Artificial - dei.isep.ipp.ptpaf/proj/Set2003/Vida Artificial.pdf · paralelo entre vida natural e os métodos de construção de vida artificial. A transformação do conceito

Vida Artificial Como se Implementa? 08-09-03

David Resende - 930479 Eng.ª de Computadores e Sistemas Pág. 27 de 40

sistema que fazem com que ele evolua. Quanto mais ruídos, mais evolução.

À medida que o sistema vai evoluindo, existe a necessidade de diminuir esses ruídos, fazendo com que os componentes do sistema estabilizem e comecem a convergir. Um sistema auto-organizado é capaz de o fazer autonomamente uma vez que é orientado para um objectivo. Nesse momento, o sistema começa a ficar mais homogéneo verificando um comportamento organizado.

4.5. Sistemas Multi-Agente com “Vida” (Este tema é uma reflexão pessoal e não propriamente um método de desenvolvimento de sistemas de Vida Artificial.)

Numa rápida análise aos sistemas Multi-Agente podemos verificar que implementa algumas noções de Vida Artificial. Um Agente contém várias características intrínsecas a um organismo com Vida Artificial, nomeadamente, capacidade sensorial, reactividade, persistência, capacidade social, aprendizagem (como forma de evolução) e autonomia. Se tentarmos traçar um paralelo entre as características de um agente e um ser vivo o que é que lhe falta?

Características dos seres vivos (já apresentados anteriormente)

Características correspondentes nos agentes

Todo o Organismo tem que existir tanto no tempo como no espaço

Persistência

Apresentar auto-Reprodução ou reproduzir-se noutro agente

Nenhuma

Armazenar Informações sobre si próprio

A sua capacidade de agir autonomamente revela conhecimento sobre si próprio

Alternar-se por metabolismo Nenhuma

Agir no seu próprio ambiente pró-actividade

Conter partes independentes Implementado pelo Sistema Multi-Agente (vários agentes independentes)

Manter a estabilidade durante as mudanças das condições ambientais

Reactividade

Evoluir Aprendizagem

Crescer ou expandir Implementado pelo Sistema Multi-Agente (o n.º de agentes pode aumentar)

Portanto, fica apenas a faltar Reprodução e a capacidade de se Alternar por metabolismo. Não podemos esquecer ainda a mutação que nos organismos vivos é uma parte da evolução.

Page 29: Vida Artificial - dei.isep.ipp.ptpaf/proj/Set2003/Vida Artificial.pdf · paralelo entre vida natural e os métodos de construção de vida artificial. A transformação do conceito

Vida Artificial Como se Implementa? 08-09-03

David Resende - 930479 Eng.ª de Computadores e Sistemas Pág. 28 de 40

Assim, se “cruzássemos” um sistema com Vida Artificial com um sistema Multi-Agente geraríamos um sistema de indivíduos inteligentes com grande capacidade de evolução.

As restantes características dos Agentes, que não são obrigatórios nos organismos artificialmente vivos, estão implementados em algumas aplicações de Vida Artificial. O Sistema Network Tierra, implementa nos seus indivíduos artificiais a característica de Mobilidade dos Agentes, ou seja, a capacidade de movimentar-se de uma máquina para outra.

E como é que se implementaria este “cruzamento”? O mais fácil seria, de facto, aproveitar as capacidades já desenvolvidas para os Agentes e juntar-lhe alguns métodos de Computação Evolutiva para lhes atribuir propriedades genéticas.

Como os agentes são autónomos, não poderíamos construir um ambiente que se ocupasse do cruzamento e mutações dos indivíduos. Teriam que ser os próprios agentes a acasalarem entre si por sua livre e espontânea vontade, tal como acontece nos sistemas naturais. Assim, os Agentes teriam que ter funcionalidades de auto reprodução ou de cruzamento com outros Agentes e mutação da sua descendência.

Eu chamaria a este organismo “Agente Vivo”, por conter em si todas as características de um Agente Inteligente e as características biológicas da vida.

Page 30: Vida Artificial - dei.isep.ipp.ptpaf/proj/Set2003/Vida Artificial.pdf · paralelo entre vida natural e os métodos de construção de vida artificial. A transformação do conceito

Vida Artificial Suportes de Desenvolvimento 08-09-03

David Resende - 930479 Eng.ª de Computadores e Sistemas Pág. 29 de 40

Capítulo 5 - Suportes de Desenvolvimento

5.1. Suportes de desenvolvimento Nesta secção tenta-se descrever algumas ferramentas de

desenvolvimento que facilitam a implementação de sistemas de Vida Artificial. Quando se diz “facilitam”, significa que são ferramentas que, de forma transparente para o programador, implementam já todas as metodologias de desenvolvimento necessárias à produção deste tipo de sistemas, ou seja, Algorítmos Genéticos, Programação Evolutiva, Estratégias de Evolução, etc.. Pretende-se, com estas ferramentas, desenvolver sistemas complexos e não desenvolver sistemas de forma complexa.

Qualquer linguagem pode ser usada para o desenvolvimento de sistemas de Vida Artificial. No entanto existem algumas linguagens que são quase exclusivamente utilizadas no desenvolvimento de Vida/Inteligência Artificial e as mais utilizadas são as linguagens de programação em lógica como Prolog. Outra linguagem muito utilizada é LISP, principalmente para implementar Programação Genética, devido à estrutura dos seus programas, que são fáceis de manipular e integrar dentro de outros sistemas. O principal motivo da utilização é a facilidade de provocar mutações nos programas e cruzamento entre programas através da sua estrutura em árvore.

Contudo, vamos abstrair-nos destes pormenores de implementação recorrendo a ambientes de desenvolvimento de mais alto nível. A este nível, existem já bastantes soluções interessantes. Vou apresentar apenas duas das que encontrei que, pela sua complementaridade, revelam grandes potencialidades.

5.2. SWARM Simulation System Lançado em 1994 por Chris Langton,

o SWARM é um pacote de Software para simulação de sistemas multi-agente complexos, originalmente desenvolvido pelo Santa Fe Institute. O SWARM foi desenvolvido com o objectivo de servir de apoio a investigações de várias disciplinas. A arquitectura do SWARM baseia-se na simulação de colecções de agentes que interagem entre si.

Um sistema SWARM é desenvolvido

Page 31: Vida Artificial - dei.isep.ipp.ptpaf/proj/Set2003/Vida Artificial.pdf · paralelo entre vida natural e os métodos de construção de vida artificial. A transformação do conceito

Vida Artificial Suportes de Desenvolvimento 08-09-03

David Resende - 930479 Eng.ª de Computadores e Sistemas Pág. 30 de 40

em Objective-C. A simulação acontece através de um conjunto de objectos que enviam mensagens entre si.

A ideia do SWARM é fornecer um contexto de execução onde um grande número de objectos podem “viver a sua vida” e interagir uns com os outros de uma forma concorrente e distribuída.

As simulações em SWARM, genericamente, têm a seguinte forma:

• Criar um universo artificial composto de espaço, tempo e objectos que podem ser localizados em determinado ponto da estrutura de espaço e tempo do universo e permite a estes objectos determinarem o seu próprio comportamento de acordo com as suas regras e o seu estado, tendo em conta o mundo que os rodeia;

• Criar um número de objectos que servem para observar, gravar e analisar dados produzidos pelo comportamento do objecto de estudo, dentro do universo implementado no ponto anterior;

• Executar o universo, movendo a simulação e os objectos de observação no tempo, sobre um modelo de concorrência.

Interagir com a experiência através de dados produzidos por objectos de instrumentação, para experimentar o sistema de forma controlada.

• Dependendo do que sucede no ponto anterior, alterar a experiência ou os instrumentos e voltar para o terceiro ponto.

• Publicar todo o aparato da experiência para que possa ser repetida por outros.

If <cond> then

Organizatio

Anim

Data

Inanim

Page 32: Vida Artificial - dei.isep.ipp.ptpaf/proj/Set2003/Vida Artificial.pdf · paralelo entre vida natural e os métodos de construção de vida artificial. A transformação do conceito

Vida Artificial Suportes de Desenvolvimento 08-09-03

David Resende - 930479 Eng.ª de Computadores e Sistemas Pág. 31 de 40

5.2.1 Estruturas do SWARM As aplicações SWARM são estruturadas à volta do conceito de

enxames. Os enxames são a estrutura base das simulações SWARM: um enxame é a combinação de uma colecção de objectos e uma agenda de actividades desses objectos. A colecção de objectos é a matéria da simulação e a agenda é um vector de tempo que faz mover as colecções de objectos.

Model Swarms:

O Model Swarm consiste num conjunto de entradas e saídas de informação. As entradas são parâmetros do modelo: coisas como tamanho do mundo, número de agentes ou a forma de distribuição de recursos. As saídas são tudo o que é observável do modelo: os indivíduos, a distribuição de comida no universo, etc.

Para além da colecção de objectos, o Model Swarm também contém a agenda de actividades do modelo. A agenda define o efeito do passar do tempo no modelo, provocando esses efeitos nos intervenientes.

Observer Swarms:

O Model Swarm por si só define o mundo a ser simulado. Mas uma experiência não consiste apenas nos objectos sobre os quais recai a simulação, também inclui o aparato utilizado para observar a simulação e medir os resultados. Os objectos de observação são colocados no Observer Swarm.

O objecto mais importante de um Observer Swarm é o Model Swarm observado. O Model Swarm é um dos componentes do Observer Swarm. Um objecto Observer pode

Organizations

Animat

Inanimat

ObsModel

Page 33: Vida Artificial - dei.isep.ipp.ptpaf/proj/Set2003/Vida Artificial.pdf · paralelo entre vida natural e os métodos de construção de vida artificial. A transformação do conceito

Vida Artificial Suportes de Desenvolvimento 08-09-03

David Resende - 930479 Eng.ª de Computadores e Sistemas Pág. 32 de 40

assim inserir dados no Model Swarm (alterar os parâmetros da simulação, por exemplo) e ler dados do modelo (captar estatísticas dos comportamentos dos indivíduos)

Tal como o Model Swarm, um Observer Swarm também tem um conjunto de objectos, uma agenda de actividades e uma colecção de entradas e saídas de informação. As actividades da agenda do Observer são do tipo, ler determinado valor do modelo, desenhar um gráfico, etc.. As entradas do Observer Swarm são configurações das ferramentas do Observer: que tipo de gráficos gerar, por exemplo. As saídas são as observações.

5.2.2 Conclusão: O SWARM não é, por si só, uma ferramenta de

desenvolvimento de um sistema evolutivo, no entanto fornece um conjunto de ferramentas fundamentais para o desenvolvimento de sistemas “vivos”. De facto, o SWARM fornece um conjunto de funcionalidades que permite ao utilizador concentrar-se no desenvolvimento dos seus “seres”. Toda a parte de programação genética, da qual depende a evolução, fica ao encargo do programador.

De uma forma simples podemos imaginar um “ser” que tem um conjunto de propriedades, por exemplo, a capacidade auditiva ou de visão. Consideremos estas propriedades o seu mapa genético. O Swarm não tem bibliotecas definidas para facilitar o cruzamento entre os agentes e mutações nos novos agentes, no entanto, não nos limita a esse nível. Podemos utilizar as bibliotecas do Swarm para criar métodos de cruzamento e mutação.

Para nos ajudar nesta tarefa o Swarm já contém bibliotecas bastante completas para geração de números aleatórios dentro de várias distribuições.

Na descrição da próxima ferramenta encontraremos mais alguns detalhes relevantes do Swarm.

O Swarm serve já de base para o desenvolvimento de ferramentas mais complexas para o desenvolvimento de vida artificial, como veremos já a seguir.

5.3. EVO EVO é uma estrutura de desenvolvimento de sistemas

complexos de Vida Artificial. O Evo utiliza mecanismos similares aos dos Algoritmos Evolutivos (AE), no sentido que o genótipo de um indivíduo é um programa que é executado. Contudo, o Evo difere

Page 34: Vida Artificial - dei.isep.ipp.ptpaf/proj/Set2003/Vida Artificial.pdf · paralelo entre vida natural e os métodos de construção de vida artificial. A transformação do conceito

Vida Artificial Suportes de Desenvolvimento 08-09-03

David Resende - 930479 Eng.ª de Computadores e Sistemas Pág. 33 de 40

dos AE. Em sistemas de AE, o foco é dado à resolução de um problema através do uso de operadores genéticos, para procurar no espaço de pesquisa novas soluções que resolvem o problema. No EVO as simulações são mais focadas no comportamento. O problema é o ambiente e a solução é a estratégia de sobrevivência no ambiente.

Os indivíduos, numa simulação do EVO, também têm programas como genótipos, mas definidos em linguagens de alto nível como C ou Java. Uma diferença importante entre o EVO e os AE é que o EVO não avalia a aptidão de um indivíduo. A aptidão de um indivíduo está implícita na sua capacidade de sobreviver no ambiente. Por isso, a solução é a capacidade de sobreviver num determinado ambiente (problema).

No EVO a recombinação genética é uma capacidade dos indivíduos, ou seja, os indivíduos só se combinam com os outros se implementarem instruções para o efeito. A recombinação genética de indivíduos é apenas o efeito de executar o programa de um indivíduo.

Se um indivíduo se enquadrar bem no ambiente, então o comportamento implementado pelo seu genótipo forma uma estratégia de sobrevivência bem sucedida. Estatisticamente um indivíduo que sobrevive mais é também um indivíduo que se reproduz mais vezes e assim passa a sua estratégia de sobrevivência para a sua descendência.

Resumindo:

Algoritmos Evolutivos EVO

1. Iniciar com população gerada aleatoriamente. Cada indivíduo representa uma hipótese de solução;

2. Avaliar a aptidão de cada indivíduo executando o seu programa. Caso seja encontrado algum indivíduo que resolva o problema PARAR;

3. Baseados na aptidão dos indivíduos, seleccionar os sobreviventes;

4. Usando os sobreviventes gerar descendentes através dos operadores genéticos. Provocar mutações genéticas nos descendentes. Os sobreviventes e os seus descendentes são agora as hipóteses de solução;

5. Voltar ao passo 2.

1. Iniciar com população gerada aleatoriamente;

2. Num ambiente suficientemente áspero que requer aptidão para sobreviver, executar todos os indivíduos em paralelo;

3. Indivíduos com mais capacidades de sobreviver terão mais hipóteses de “acasalar” e passar partes dos seus programas para as novas gerações, cujos programas também serão executados pela estrutura de trabalho do EVO.

Page 35: Vida Artificial - dei.isep.ipp.ptpaf/proj/Set2003/Vida Artificial.pdf · paralelo entre vida natural e os métodos de construção de vida artificial. A transformação do conceito

Vida Artificial Suportes de Desenvolvimento 08-09-03

David Resende - 930479 Eng.ª de Computadores e Sistemas Pág. 34 de 40

Assim, verificamos que a Programação Evolutiva utiliza uma abordagem centralizada, enquanto o EVO proporciona uma abordagem distribuída. Nos AE, a decisão sobre a sobrevivência e selecção é tomada por um algoritmo genético, enquanto que no EVO, não existe controlo sobre os indivíduos. São os indivíduos que decidem como e quando se cruzam e a sobrevivência é determinada pela capacidade do indivíduo para se enquadrar no ambiente.

Esta distinção é importante na medida em que o tipo de abordagem descentralizada é mais semelhante à vida real do que a abordagem centralizada.

5.3.1 Arquitectura do EVO O EVO foi desenhado para facilitar a investigação da evolução

do comportamento. O EVO é uma estrutura Orientada a Objectos, de objectos reutilizáveis, que permite aos investigadores estudar sistemas complexos de agentes independentes, interagindo uns com os outros e com o seu ambiente.

O EVO esta construído sobre SWARM Simulatiom System. O SWARM fornece funcionalidades como gestão de tarefas agendadas, gestão de memória, GUI Widgets, geração de números aleatórios e uma colecção de bibliotecas.

Agents e Population:

Cada simulação consiste numa população de agentes que vivem num ambiente. Um agente é constituído por um conjunto de comportamentos. Quando dois agentes se cruzam os comportamentos são herdados dos seus pais. O implementador é responsável por definir que tipo de acções cada agente pode levar a cabo, quais são os seus sentidos e que tipo de informação o agente pode observar dos restantes agentes que coabitam o ambiente. O EVO inicializa a geração de comportamentos da população inicial. O motor de execução do EVO executa todos os comportamentos descritos no genótipo do indivíduo.

O desenvolvimento dos agentes, baseia-se na criação de uma sub-classe da classe Agent que já proporciona funcionalidades como “acasalar” e mover-se no ambiente de simulação, entre outros.

Existe já um objecto Population que trata da execução dos indivíduos. Population é uma subclasse do SWARM que permite a utilização de agendamentos de tarefas e aceder a outras funcionalidades das bibliotecas do SWARM. Uma população pode ter um tamanho mínimo, caso o tamanho da população seja menor que o valor mínimo dos novos agentes, são gerados automaticamente. Esta funcionalidade é

Page 36: Vida Artificial - dei.isep.ipp.ptpaf/proj/Set2003/Vida Artificial.pdf · paralelo entre vida natural e os métodos de construção de vida artificial. A transformação do conceito

Vida Artificial Suportes de Desenvolvimento 08-09-03

David Resende - 930479 Eng.ª de Computadores e Sistemas Pág. 35 de 40

importante para manter a população até emergir uma estratégia de evolução estável.

Traits:

Cada agente tem um conjunto de traits herdados da classe Agent que são representados por valores de virgula flutuante. Podemos “traduzir” traits para “Traços Gerais”. Ao desenvolver uma simulação decide-se que traits os agentes suportarão e quais os limites dos seus valores.

Agent Behavior:

Os Behaviors são partes do programa que cada agente executa. Podemos compará-los com métodos. Estes Behaviors são constituídos por instructions, senses e observations. O implementador especifica instructions, senses, etc. Os comportamentos serão compostos. O EVO criará, aleatoriamente, a população inicial e tratará da execução dos behaviors.

• Instructions: É uma acção simples do Agente, como comer ou mover-se. Ao construir uma simulação são definidas as instruções que os agentes podem executar e são implementadas essas instruções na classe do agente (sub-classe de Agent).

• Senses: Permitem ao agente observar o ambiente. Tal como as instructions são implementadas na classe do agente. Um exemplo pode ser foodW. Este Sense permitirá ao agente saber se existe comida a Oeste da sua localização. Os Senses podem devolver valores lógicos ou valores inteiros.

• Observations e Observables: Observations permitem aos agentes observar outros agentes. Os Obsevables são as características que podem ser observadas pelos outros agentes. Traits também podem ser observados. Quando se especificam as Traits herdadas por um agente, podemos também especificar se são ou não observáveis. Uma Observation é feita na forma targeter.observable. O targeter é um método implementado por um agente que retorna outro agente. Por exemplo, getAgentE.age devolve a idade do agente na posição a Este da posição do agente que está a observar. O targeter self devolve o próprio agente. A capaciade dos indivíduos observarem as características dos outros permite a implementação de fenómenos como a selecção sexual, ou seja, os agentes podem escolher com quem acasalar dependendo de determinadas características do potencial parceiro.

Page 37: Vida Artificial - dei.isep.ipp.ptpaf/proj/Set2003/Vida Artificial.pdf · paralelo entre vida natural e os métodos de construção de vida artificial. A transformação do conceito

Vida Artificial Suportes de Desenvolvimento 08-09-03

David Resende - 930479 Eng.ª de Computadores e Sistemas Pág. 36 de 40

• Behaviors: Um behavior pode ser uma simples instrução ou uma sequência de instruções condicionais do tipo:

O predicado pode conter os operadores lógicos AND, OR e NOT. Os predicados podem ser aninhados. Por exemplo, (((foodW)OR (NOT(foodN))) AND (getAgentSE.energy>30.1)). O número de aninhamentos dos predicados aleatoriamente gerados pode ser configurado. Também a probabilidade de existir um else pode ser configurado.

5.3.2 Resource Maps e Environment Resource Maps são objectos que representam a distribuição

de recursos no espaço. As funcionalidades básicas são implementadas na estrutura do EVO pela classe ResourceMap. Como os recursos podem ser alterados durante a simulação, o EVO permite que o Resource Map seja alterado, vou chamar-lhe FoodMap. Por exemplo, se o implementador resolver incluir comida no ambiente, então cria uma classe que deriva da classe ResourceMap. Neste caso faz sentido que a comida cresça em intervalos de tempo definidos. Assim, especifica-se um intervalo de alteração para a instância da classe FoodMap e automaticamente o EVO executa o procedimento de alteração do FoodMap. Este procedimento é desenvolvido pelo implementador.

Um Environment é um recipiente para todos os objectos da simulação. A classe Environment trata dos agendamentos da população e dos Resource Maps. Através da utilização de uma subclasse da classe Environment o implementador pode dar uma noção de espaço à simulação. Por exemplo, a classe EnvironmentDiscrete2D oferece um modelo de espaço que é uma grelha bidimensional.

5.3.3 Genética

Cromossomas:

Cada Agente tem um genoma composto por dois cromosomas: o trait chromosome e o behavior chromosome. O trait chromosome (classe TraitChromosome) gere a lista de

if(<predicate>){

...}else{

...}

Page 38: Vida Artificial - dei.isep.ipp.ptpaf/proj/Set2003/Vida Artificial.pdf · paralelo entre vida natural e os métodos de construção de vida artificial. A transformação do conceito

Vida Artificial Suportes de Desenvolvimento 08-09-03

David Resende - 930479 Eng.ª de Computadores e Sistemas Pág. 37 de 40

Traits definidas pelo implementador. Cada Trait contém um valor de vírgula flutuante dentro de um intervalo definido pelo implementador. O behavior chromosome (classe BehaviorChromosome) é essencialmente uma lista de behaviors. Estes cromossomas podem ter tamanhos diferentes em indivíduos diferentes.

Reprodução:

Quando dois agentes se reproduzem, os seus genomas são combinados para formar dois descendentes através de um operador de crossover. O EVO suporta crossover com um ou dois cortes e é configurável em runtime. Durante a reprodução, a lista de Traits dos progenitores são combinados formando duas novas Trait Chromosomes. Da mesma forma, os dois progenitores combinam os seus Behaviors Trait, formando duas novas listas de Behaviors para dois novos descendentes.

Mutação:

Durante a reprodução, existe uma hipótese estatística de ocorrer uma mutação em qualquer dos genomas dos descendentes. Caso uma das Traits do Trait Chromosome sofrer uma mutação, um novo valor é atribuído a essa Trait, dentro do intervalo de valores possíveis. Se um Behavior sofrer uma mutação, esse Behavior é substituído por outro aleatoriamente gerado.

5.3.4 Conclusão O Evo, em conjugação com o SWARM, é uma ferramenta que

apresenta todas as funcionalidades necessárias ao desenho de sistemas complexos de Vida Artificial. Implementa um ambiente propício à interacção entre agentes e apresenta funcionalidades fundamentais para a Computação evolutiva.

Portanto, pode dizer-se que encontramos um suporte de desenvolvimento propício para o desenvolvimento simples de sistemas complexos.

Page 39: Vida Artificial - dei.isep.ipp.ptpaf/proj/Set2003/Vida Artificial.pdf · paralelo entre vida natural e os métodos de construção de vida artificial. A transformação do conceito

Vida Artificial Referências 08-09-03

David Resende - 930479 Eng.ª de Computadores e Sistemas Pág. 38 de 40

Conclusão Neste estudo pretendi descrever Vida Artificial. Estamos a

falar de uma disciplina que tenta representar, num meio tecnológico, os conceitos principais de Vida, de forma a construir sistemas com vida ou algo parecido com vida.

Mas num exercício de reflexão sobre todas as metodologias e teorias apresentadas, podemos dizer que a Vida Artificial estuda o conceito biológico de Vida para fornecer mecanismos que permitam a entidades cibernéticas evoluírem, tal como os organismos biológicos evoluíram na terra ao longo de milhões de anos.

A abordagem da Vida Artificial, diverge das abordagens tradicionais, pelo facto de que não necessita de saber como é que o objectivo de um determinado sistema é atingido. O objectivo é atingido através da evolução do sistema. Da mesma forma que o homem evoluiu desde uma célula até ao nosso estado, ou seja, não temos que saber como se resolve um problema, mas sim que condicionantes contribuem para o resolver.

Por tudo o que foi referido atrás. O nosso papel como informáticos é criar mecanismos de evolução bem fundamentados que desenvolvam hipóteses fortes em resoluções concretas, vigiando essas resoluções através de sistemas de selecção natural. Com estes mecanismos criados deixamos o caminho aberto para os biólogos plantarem as suas experiências baseadas em seres biológicos.

As evoluções que esta disciplina pode provocar na própria informática são mais ou menos obvias. Com a inclusão do factor evolução nos nossos sistemas, passamos a ter uma forma bem mais simplificada de resolver problemas cada vez mais complexos. O segredo é deixar que os sistemas evoluam dentro de regras bem definidas.

Page 40: Vida Artificial - dei.isep.ipp.ptpaf/proj/Set2003/Vida Artificial.pdf · paralelo entre vida natural e os métodos de construção de vida artificial. A transformação do conceito

Vida Artificial Referências 08-09-03

David Resende - 930479 Eng.ª de Computadores e Sistemas Pág. 39 de 40

Referências Toda a literatura utilizada para o desenvolvimento deste

estudo encontra-se na Internet. Por este motivo, vou listar um conjunto de sítios onde encontrei a informação ou ligações para a informação a que dei forma neste relatório.

• A Vida Artificial http://www.geocities.com/Eureka/3211/v-main.htm;

• Alife Bibliography http://www.cogs.susx.ac.uk/users/ezequiel/alife-page/alife.html;

• A-life links http://lachlan.bluehaze.com.au/alife.html;

• Boids http://www.red3d.com/cwr/boids/;

• COG http://www.ai.mit.edu/projects/humanoid-robotics-group/cog/cog.html;

• Darwin Pond http://www.ventrella.com/Darwin/darwin.html;

• EVO http://omicrongroup.org/evo/;

Evolutionary Systems and Artificial Life http://wwwc3.lanl.gov/~rocha/ss504_02.html;

• Framsticks – Artificial Life – 3D Evolution and Simulation http://www.frams.alife.pl/;

• GAIA: Artificial Life – Genetic Algorithms – Learning Machine http://www.redcientifica.com/gaia/;

• GECAD http://bridge.gecad.isep.ipp.pt/;

• Human Robotics Group http://www.ai.mit.edu/projects/humanoid-robotics-group/index.html;

• IANET || Inteligência Artificial|| v3.8 http://lokall.com/ianet/vidart.htm;

• Inteligência Computacional http://www.lcmi.ufsc.br/gia/softcomp/softcomp.html;

International Society of Artificial Life http://www.alife.org/;

Page 41: Vida Artificial - dei.isep.ipp.ptpaf/proj/Set2003/Vida Artificial.pdf · paralelo entre vida natural e os métodos de construção de vida artificial. A transformação do conceito

Vida Artificial Referências 08-09-03

David Resende - 930479 Eng.ª de Computadores e Sistemas Pág. 40 de 40

• Kismet http://www.ai.mit.edu/projects/humanoid-robotics-group/kismet/kismet.html;

• Linux AI & Alife HOWTO http://new.linuxnow.com/docs/content/AI-Alife-HOWTO-html/AI-Alife-HOWTO.html;

• O século da Vida Artificial http://www.janelanaweb.com/digitais/vida_artificial.html;

• SWARM Development Group http://www.swarm.org/;

• The Temple of Alife http://alife.fusebox.com/;

• Tierra Home Page http://www.isd.atr.co.jp/~ray/tierra/index.html;

• Tomas S. Ray http://www.isd.atr.co.jp/~ray/index.html;

• Vida Artificial http://www.igce.unesp.br/igce/grad/computacao/cintiab/fufis/nofram~1.html;

v.ramos [IST] http://alfa.ist.utl.pt/~cvrm/staff/vramos/index.html;