VIDA ARTIFICIAL: CONCEITOS E APLICAÇÕES · para animação de personagens artificiais. Neste caso...

22
VIDA ARTIFICIAL: CONCEITOS E APLICAÇÕES MARCIO LOBO NETTO, LUCIENE CRISTINA ALVES RINALDI Escola Politécnica da Universidade de São Paulo Departamento de Engenharia de Sistemas Eletrônicos Av. Prof. Luciano Gualberto, trav. 3, 158, Cidade Universitária, 05508-010 São Paulo, SP, BRASIL [email protected], [email protected] Abstract The research area called Artificial Life is interdisciplinary and aims to study the behavior of artificial systems (or synthetic systems) that are similar to live organisms. This paper emphasizes some aspects of life aiming to explore its relation- ship with computational methods and concepts. Moreover, it describes computational techniques used to conduct experimental simulations in virtual environments. Keywords Artificial Life, Virtual Environments, Computational Simulation, Computational Methods Resumo A área de pesquisa denominada Vida Artificial é interdisciplinar e visa estudar o comportamento de sistemas artifici- ais (ou sistemas sintéticos) que são semelhantes a organismos vivos. Este artigo ressalta alguns aspectos de vida e suas relações com métodos e conceitos computacionais. Além disto, são abordadas técnicas computacionais usadas para realizar simulações experimentais em ambientes virtuais. Palavras-chave Vida Artificial, Ambientes Virtuais, Simulação Computacional, Métodos Computacionais 1 Introdução Vida Artificial (VA) tem sido tema de pesquisa des- de os primórdios da computação. Pioneiros da área como Allan Turing e John Von Neumann tinham interesse por este tema e por sua relação com os fundamentos da computação. Entre as questões que queriam entender estava a da possibilidade de se representar vida a partir de regras computacionais, ou se existiriam procedimentos computacionais que levassem a comportamentos equivalentes em sua essência aos dos seres vivos. Mais recentemente, e com um caráter mais tec- nológico, cientistas de computação gráfica como Demetri Terzopoulos e Karl Sims também demons- tram interesse pela área, desta vez como ferramenta para animação de personagens artificiais. Neste caso se procurava encontrar mecanismos para criar artifi- cialmente personagens 1 que pudessem desempenhar funções equivalentes a de seres, e assim representa- los em simulações computacionais. O avanço neste setor está também relacionado a animações gráficas. Desta forma a VA tem sido usada seja com o proposito de prover mecanismos adequados para criar personagens artificiais para o cinema, seja como forma de estabelecer laboratórios virtuais para simu- lação de diferentes aspectos de vida. Várias das ca- racterísticas de seres vivos podem ser hoje bem estu- dadas com o apoio de avançados sistemas computa- cionais. As simulações permitem tanto a reprodução (ainda que normalmente de forma simplificada) de fenômenos observados em seres vivos, quanto uma adequada representação gráfica dos mesmos. A rela- ção entre as áreas de VA e Realidade Virtual (RV) 1 Ao longo deste texto seres virtuais serão também referenciados como personagens ou agentes. pode ser de simbiose. Modelos biológicos e evoluci- onários são usados para dar vida aos personagens que habitam os mundos virtuais, incluindo plantas e ani- mais. Métodos de VA servem para simular muitos dos processos naturais que caracterizam os seres vivos, como crescimento, reprodução, evolução, morfogênese, adaptação, percepção, aprendizagem e cognição (Bentley, 1999; Charniak, 1985). Por outro lado, as simulações em RV contribuem para o estudo de diversos tópicos de VA por permitir através de sofisticados recursos visuais e interativos uma me- lhor compreensão dos processos acima relacionados. Os personagens de VA podem ser capazes de evoluir e se reproduzir artificialmente, aprender, se comunicar e tomar decisões de forma autônoma. As técnicas de animação computacional ajudam permi- tindo a visualização destes personagens, e com isto oferecem meios para o acompanhamento de suas atividades e indiretamente do seu comportamento, e do desenvolvimento de suas capacidades. Inúmeras são as técnicas computacionais de al- guma forma vinculadas a VA, seja na medida em que se espelham na vida natural, seja porque servem adequadamente para implantar mecanismos intrínse- cos à vida e assim permitir simulações computacio- nais da mesma. Este artigo apresenta inicialmente alguns concei- tos de vida natural e de sua vertente artificial, para então discorrer sobre o que se chamou de elementos característicos de vida (que devem ser entendidos como componentes principais de simulações que tratem deste assunto). Na seção seguinte apresentam- se algumas das técnicas computacionais que são mais importantes nesta área e que servem para implantar diferentes módulos de personagens artificiais dando a eles capacidades especiais para que possam ser reco- nhecidos como seres artificiais. Por fim, são apresen- tados alguns trabalhos de pesquisa desenvolvidos ao

Transcript of VIDA ARTIFICIAL: CONCEITOS E APLICAÇÕES · para animação de personagens artificiais. Neste caso...

Page 1: VIDA ARTIFICIAL: CONCEITOS E APLICAÇÕES · para animação de personagens artificiais. Neste caso se procurava encontrar mecanismos para criar artifi-cialmente personagens 1 que

VIDA ARTIFICIAL: CONCEITOS E APLICAÇÕES

MARCIO LOBO NETTO, LUCIENE CRISTINA ALVES RINALDI

Escola Politécnica da Universidade de São Paulo Departamento de Engenharia de Sistemas Eletrônicos

Av. Prof. Luciano Gualberto, trav. 3, 158, Cidade Universitária, 05508-010 São Paulo, SP, BRASIL [email protected], [email protected]

Abstract The research area called Artificial Life is interdisciplinary and aims to study the behavior of artificial systems (or synthetic systems) that are similar to live organisms. This paper emphasizes some aspects of life aiming to explore its relation-ship with computational methods and concepts. Moreover, it describes computational techniques used to conduct experimental simulations in virtual environments.

Keywords Artificial Life, Virtual Environments, Computational Simulation, Computational Methods

Resumo A área de pesquisa denominada Vida Artificial é interdisciplinar e visa estudar o comportamento de sistemas artifici-ais (ou sistemas sintéticos) que são semelhantes a organismos vivos. Este artigo ressalta alguns aspectos de vida e suas relações com métodos e conceitos computacionais. Além disto, são abordadas técnicas computacionais usadas para realizar simulações experimentais em ambientes virtuais.

Palavras-chave Vida Artificial, Ambientes Virtuais, Simulação Computacional, Métodos Computacionais

1 Introdução

Vida Artificial (VA) tem sido tema de pesquisa des-de os primórdios da computação. Pioneiros da área como Allan Turing e John Von Neumann tinham interesse por este tema e por sua relação com os fundamentos da computação. Entre as questões que queriam entender estava a da possibilidade de se representar vida a partir de regras computacionais, ou se existiriam procedimentos computacionais que levassem a comportamentos equivalentes em sua essência aos dos seres vivos.

Mais recentemente, e com um caráter mais tec-nológico, cientistas de computação gráfica como Demetri Terzopoulos e Karl Sims também demons-tram interesse pela área, desta vez como ferramenta para animação de personagens artificiais. Neste caso se procurava encontrar mecanismos para criar artifi-cialmente personagens1 que pudessem desempenhar funções equivalentes a de seres, e assim representa-los em simulações computacionais. O avanço neste setor está também relacionado a animações gráficas.

Desta forma a VA tem sido usada seja com o proposito de prover mecanismos adequados para criar personagens artificiais para o cinema, seja como forma de estabelecer laboratórios virtuais para simu-lação de diferentes aspectos de vida. Várias das ca-racterísticas de seres vivos podem ser hoje bem estu-dadas com o apoio de avançados sistemas computa-cionais. As simulações permitem tanto a reprodução (ainda que normalmente de forma simplificada) de fenômenos observados em seres vivos, quanto uma adequada representação gráfica dos mesmos. A rela-ção entre as áreas de VA e Realidade Virtual (RV)

1 Ao longo deste texto seres virtuais serão também referenciados como personagens ou agentes.

pode ser de simbiose. Modelos biológicos e evoluci-onários são usados para dar vida aos personagens que habitam os mundos virtuais, incluindo plantas e ani-mais. Métodos de VA servem para simular muitos dos processos naturais que caracterizam os seres vivos, como crescimento, reprodução, evolução, morfogênese, adaptação, percepção, aprendizagem e cognição (Bentley, 1999; Charniak, 1985). Por outro lado, as simulações em RV contribuem para o estudo de diversos tópicos de VA por permitir através de sofisticados recursos visuais e interativos uma me-lhor compreensão dos processos acima relacionados.

Os personagens de VA podem ser capazes de evoluir e se reproduzir artificialmente, aprender, se comunicar e tomar decisões de forma autônoma. As técnicas de animação computacional ajudam permi-tindo a visualização destes personagens, e com isto oferecem meios para o acompanhamento de suas atividades e indiretamente do seu comportamento, e do desenvolvimento de suas capacidades.

Inúmeras são as técnicas computacionais de al-guma forma vinculadas a VA, seja na medida em que se espelham na vida natural, seja porque servem adequadamente para implantar mecanismos intrínse-cos à vida e assim permitir simulações computacio-nais da mesma.

Este artigo apresenta inicialmente alguns concei-tos de vida natural e de sua vertente artificial, para então discorrer sobre o que se chamou de elementos característicos de vida (que devem ser entendidos como componentes principais de simulações que tratem deste assunto). Na seção seguinte apresentam-se algumas das técnicas computacionais que são mais importantes nesta área e que servem para implantar diferentes módulos de personagens artificiais dando a eles capacidades especiais para que possam ser reco-nhecidos como seres artificiais. Por fim, são apresen-tados alguns trabalhos de pesquisa desenvolvidos ao

Page 2: VIDA ARTIFICIAL: CONCEITOS E APLICAÇÕES · para animação de personagens artificiais. Neste caso se procurava encontrar mecanismos para criar artifi-cialmente personagens 1 que

longo de vários anos pelo grupo de pesquisa Cognitio da Escola Politécnica da USP.

2 O Que É Vida?

Para compreender o que é Vida Artificial, é necessá-rio primeiramente responder a pergunta “O que é vida?”, pois a VA serve para simular e ajudar a com-preender alguns aspectos da vida real.

Esta é uma pergunta simples e ao mesmo tempo complexa, sendo alvo de muitas discussões científi-cas (Judson, 1979; Moore, 1989; Pauling, 1987; Perutz, 1987). Do ponto de vista científico, concen-tra-se na identificação dos aspectos intrinsicamente relacionados aos organismos vivos, dentre os quais nascimento, crescimento, reprodução, reação ao ambiente, assimilação de matéria e energia, excreção de dejetos, morte, entre outros. Estas são, por exem-plo, características dos mais variados seres, desde os mais simples como uma bactéria ou uma ameba até seres mais complexos como o ser humano. Mas não servem necessariamente para definir vida, embora sejam reconhecidamente importantes para identificar seres vivos e classifica-los.

Os estudos sobre a origem da vida mostram que ela se utilizou do ambiente físico rico em carbono, nitrogênio e água para se desenvolver e se adaptar, sendo este ambiente o único disponível para observa-ção e consequentemente para avaliação deste fenô-meno. Mas a partir do reconhecimento dos seus prin-cípios fundamentais podemos criar hipóteses de ambientes virtuais e de criaturas artificialmente vivas que nele possam se desenvolver. Neste sentido a vida pode ser avaliada segundo diferentes critérios e ní-veis, relacionados a seguir.

Do ponto de vista orgânico, o estudo de orga-nismos vivos envolve a sua estrutura (anatomia) e a sua funcionalidade (fisiologia) incluindo capacidades como respiração, digestão e movimentação, entre outras (Adami, 1998). Neste contexto, explicam-se alguns aspectos de vida, mas não todos (por exem-plo, seu surgimento). Portanto fazem-se necessárias outras definições na procura pelo estabelecimento dos princípios fundamentais da vida.

Na definição metabólica, vida é a capacidade de trocar materiais e energia com o ambiente onde o elemento está inserido (Adami, 1998). Este consumo de energia garante sua sustentabilidade. A vida sur-giu quando as condições do ambiente se tornaram favoráveis para que pudessem surgir organismos capazes de realizar tais trocas com o meio que habi-tavam.

Mas uma definição mais precisa leva ao princi-pio bioquímico, que define sistemas vivos por sua potencialidade de armazenar informações hereditá-rias em moléculas de ácido nucléico, ou seja, o códi-go genético DNA (Deoxyribonucleic Acid) (Adami, 1998), que além de permitir a perpetuação da espécie por reprodução, são de fato a receita para a constru-ção dos organismos vivos. Francis Crick e James Watson em 1953 reconstruíram a estrutura de dupla

hélice do DNA mostrando sua constituição espacial, mas também concluindo que servia de base para a sustentação da vida, na medida em que a informação genética poderia ser armazenada e transferida de geração para geração. É o vasto armazenamento de informação codificada como o RNA (Ribonucleic Acid) e o DNA que determina o comportamento humano e difere o homem de uma bactéria.

Em um contexto mais formal a definição recai então na genética, pois cabe a ela definir o processo de evolução dos seres vivos autônomos. O principio está no código e não no substrato que é usado para representá-lo, o DNA. Portanto o DNA pode ser visto como a molécula que foi capaz de armazenar tal código, mas em um contexto mais geral pode-se pensar no código em si (e não uma particular realiza-ção física) como elemento mais fundamental. Neste caso é particularmente interessante expandir este conceito que permite então a realização de vida em outros substratos, inclusive em programas de compu-tador, na medida em que se tenham mecanismos responsáveis por cria-los e interpreta-los, mimetizan-do o DNA e o RNA. Esta é uma das bases da VA.

A evolução (geração da informação) foi possí-vel, primeiro em um nível molecular, depois celular e a seguir orgânico, devido à reprodução e seleção. Seleção é a forma inerente de auto-organização e uma consequência física direta da auto-replicação (sem a qual a informação seria perdida após cada geração), da mutação (sem a qual a informação é “inalterável” e, portanto, não poderiam emergir no-vas estruturas) e do metabolismo (sem o qual o sis-tema regrediria para um estado de equilíbrio onde as modificações anteriores não seriam possíveis) (Muphy, 1997).

Por fim, em um ultimo nível de refinamento, ob-servando uma análise de caráter físico (bioquímico) chega-se à abordagem termodinâmica que expressa a capacidade do elemento vivo de manter baixa sua entropia, ainda que imerso em um ambiente cuja entropia seja muito maior que a sua. Neste sentido o código genético e o que quer que a partir dele seja construído, é uma forma de permitir o surgimento destas ilhas que conseguem se contrapor a tendência termodinâmica, sem naturalmente ser um paradoxo, afinal ela existe de fato e ainda que pareça ser uma contradição termodinâmica de fato não é (e nem poderia ser, pois neste caso a física teria que ser revista).

Segundo Christoph Adami (Adami, 1998), “vi-da” pode ser definida em um contexto termodinâmi-co como:

“Vida é uma propriedade de uma amostra de unidades que compartilham informações codificadas em um substrato físico e que, na presença de ruído, esforça-se para manter sua entropia significativa-mente abaixo da entropia máxima da amostra, em escalas de tempo que excedem a escala ‘normal’ de decaimento do substrato (que contém a informação) por muitas ordens de magnitude” (tradução nossa).

Page 3: VIDA ARTIFICIAL: CONCEITOS E APLICAÇÕES · para animação de personagens artificiais. Neste caso se procurava encontrar mecanismos para criar artifi-cialmente personagens 1 que

A pergunta “O que é vida?” tem ocupado a men-te de filósofos e estudiosos durante os últimos sécu-los e gerou inúmeras contribuições.

O livro “O que é vida? 50 anos depois” (Mur-phy, 1997) expressa idéias em dois temas: a natureza hereditária e termodinâmica dos seres vivos, segundo Erwin Schrödinger. O título faz menção ao cinquen-tenário de um evento organizado no Triniy College de Dublin, quando eminentes cientistas, liderados por Schrödinger se propuseram a avaliar esta questão a luz do conhecimento cientifico, com forte embasa-mento na física. Suas ideias têm sido criticadas como não originais ou erradas por alguns pesquisadores (Pauling, 1987; Perutz, 1987) e defendidas por outros (Moore, 1997; Schuneider, 1987), mas independente disso, serviu de inspiração para outros pesquisadores.

3 Vida Artificial

Vida Artificial é uma forma alternativa de estudar a vida, ou seja, permite o estudo de um sistema ou organismo vivo através de simulações computacio-nais (modelos matemáticos). Segundo Christopher Langton, responsável pelo termo VA “a coisa mais importante a se lembrar sobre VA é que a parte artificial não é vida, mas os materiais. Coisas reais acontecem. Fenômenos reais são observados. É a vida real em uma mídia artificial” (Langton, 1995).

VA permite a simulação de características de se-res vivos, com o uso de computadores, sem o envol-vimento de criaturas vivas, para a recriação de for-mas de vida em silício, através de regras que levam a resultados complexos e até imprevisíveis (Miranda, 2001; Netto, 2004; Sims, 1994; Terzopoulos, 1999; Thalmann, 1994).

Os objetivos da VA são ajudar a descobrir os princípios gerais da vida e também a identificar as-pectos particulares de sistemas vivos complexos. Além disto, os conceitos de VA servem para implan-tação de inúmeras aplicações, como por exemplo, realização de filmes com personagens virtuais autô-nomos (parcialmente ao menos), ou realização de experimentos científicos nas áreas de biologia, eco-logia, sociologia, enfim em uma grande variedade de áreas que tenham personagens vivos como objeto central do estudo, incluindo desde situações com um único personagem até aquelas com grandes popula-ções, como é o caso de simulações de multidões. Cabe notar que embora muitos destes experimentos virtuais possam ser feitos sem tratar de VA, o uso de paradigmas e ferramentas desenvolvidas segundo preceitos de VA podem auxiliar muito no desenvol-vimento de tais aplicações.

A VA tem sido utilizada para emular e simular seres vivos, procurando tratar da questão de forma integrada. Vale notar que preceitos de experimentos científicos clássicos, baseados no pensamento de Descartes e Newton, de “decompor” um sistema em seus componentes, na busca de identificar um objeto elementar, não se mostraram adequados no casso de vida, uma vez que ela é uma propriedade do conjunto

e não de seus componentes. E, ao tentar reagrupar as partes do sistema vivo, isso também não reconstruiria o sistema original (Adami, 1998).

Os experimentos em VA são importantes na busca de uma teoria universal de vida, que surgiu na Terra há 3,5 bilhões anos. Isso decorre da procura por princípios fundamentais de vida, pois as diversas definições de vida existentes: fisiológica, metabólica, bioquímica, genética e termodinâmica, não são uni-versais o suficiente para classificar os sistemas entre vivos e não vivos. É interessante observar como muitos experimentos em VA evidenciam característi-cas dessas definições durante sua simulação. Por exemplo, o sistema Tierra, desenvolvido por Tomas Ray, onde foram “semeados” organismos digitais que sofriam mutações, evidenciou a característica de evolução das criaturas, que é uma das consequências da genética. Além disso, o experimento ainda com-provou a hipótese inicial de que a evolução das cria-turas se deu a partir da adaptação de uma pelas ou-tras, como ocorre na natureza, e não somente ao ambiente físico (Ray, 1992).

Pelo fato de que VA é essencialmente um proce-dimento de simulação computacional, e que trata particularmente de uma série de aspectos de vida, vale então discorrer sobre tais elementos característi-cos de vida, em uma abordagem adequada para VA. Da mesma forma, existem algumas técnicas compu-tacionais que tem aplicação direta em implantações de simulações computacionais de VA, e que, portan-to serão também analisadas. Tais ferramentas têm também, em seus princípios, conceitos de VA, sendo ao menos inspirados nos mesmos. As duas próximas seções tratam destes dois aspectos – elementos carac-terísticos de vida e ferramentas computacionais apropriadas para desenvolvimento de simuladores de VA.

4 Elementos Característicos de Vida e suas Formas de Realização em Vida Artificial

Seres vivos são na sua maioria compostos por diver-sos sistemas (nervoso, digestivo, respiratório,...) e apresentam vários elementos característicos (presen-tes na maioria dos casos) e que servem para identifi-ca-los. É natural então que sistemas artificiais te-nham por premissa reproduzir, ainda que parcialmen-te e de maneira simplificada, estes elementos. Portan-to uma metodologia empregada no estudo de VA trata da observação daquilo que se denomina aqui como elementos característicos ou aspectos de vida, para recriá-los em um contexto sintético. Dentre esses podem ser citados a percepção, a cognição, a reprodução, e alguns outros considerados mais im-portantes no contexto de VA, e que serão abordados de forma sucinta a seguir.

Cabe salientar que os sistemas de VA não neces-sariamente contemplam simultaneamente todos estes elementos, e que na maioria das vezes há alguma independência entre eles, com objetivo de simplificar a sua implantação.

Page 4: VIDA ARTIFICIAL: CONCEITOS E APLICAÇÕES · para animação de personagens artificiais. Neste caso se procurava encontrar mecanismos para criar artifi-cialmente personagens 1 que

Cabe ressaltar também que a incorporação de tais elementos aos seres virtuais é na maioria das vezes feita em um processo top-down, e que os as-pectos emergentes naturais a sistemas vivos são então manifestados por estes elementos. Por exem-plo, após ter construído um sistema capaz de reco-nhecer algo, o reconhecimento em si decorre da inte-ração com o ambiente, não sendo previamente esta-belecido o que será reconhecido, mas apenas que a capacidade de reconhecimento foi artificialmente incorporada ao personagem. Assim o reconhecimen-to em si pode ser considerado legítimo.

4.1 Percepção

Este aspecto está diretamente relacionado à capaci-dade de identificação do estado no qual o ambiente se encontra, por meio de sensores e mecanismos que permitam criar representações internas de tais esta-dos e memoriza-los. Este procedimento pode ser dividido em duas etapas. Na primeira é feita a aquisi-ção e um pré-tratamento das informações do ambien-te através de sensores. Essa capacidade consiste em extrair informações a respeito da disposição espacial, ocorrência de eventos, bem como o seu enquadra-mento temporal (o uso de redes neurais artificiais é adequado para a extração de características do ambi-ente e sua consequente classificação, sendo uma das técnicas apresentadas na próxima seção). Em uma segunda etapa é feita uma melhor avaliação da in-formação, agora já sob um caráter simbólico que permita sua interpretação pelo estágio seguinte, o cognitivo (em VA, máquinas de estados, por exem-plo, podem servir para este propósito e serão vistas na próxima seção).

O primeiro passo deste processo é o da extração de informações do ambiente, para o que o persona-gem possa possuir alguns sensores que sejam respon-sáveis pelo processamento de sinais que emulem a transmissão de informações no ambiente, como luz e som. A implantação desses sensores deve considerar as formas mais adequadas para sua simulação e pos-síveis simplificações. Tais sensores podem ser en-quadrados de acordo com o tipo de sinal processado, similarmente aos cinco sentidos do ser humano: visão, audição, olfato, tato, e paladar, sendo os senso-res visuais, auditivos e táteis os mais utilizados, so-bretudo nas aplicações em RV.

Os sensores visuais, por exemplo, trabalham com a síntese de imagens obtidas por uma câmera, produzindo imagens do ambiente sob a perspectiva do ser virtual, e que serão usadas para posterior pro-cessamento (classificação, identificação, ...) comple-tando assim a função perceptual. Já no caso da audi-ção há a emulação da captura de ondas sonoras, en-quanto que nos sensores táteis pode-se fazer uso dos mecanismos de detecção de colisão entre objetos como os normalmente usados em jogos nos ambien-tes virtuais (Cony, 2007; Pletsch, 2006).

O segundo passo no processo de percepção é o da extração de símbolos (contendo significado atri-buído a eles) a partir dos sinais capturados. Tal ex-

tração de símbolos permite representar objetos em um nível simbólico, e então proceder com níveis mais elevados de tratamento dos mesmos, como o reconhecimento do ambiente (auto-observação de outros seres e objetos).

A aquisição e o tratamento de conhecimento é consequência do processo de percepção, ocorrendo dentro de um mecanismo chamado aqui de cognitivo. Assim a percepção serve para preparar a informação que será posteriormente tratada no âmbito cognitivo para tomadas de decisão, além de ser muitas vezes ainda relacionada aos procedimentos de aprendiza-gem.

Neste ponto torna-se evidente a conveniência da adoção de um mecanismo capaz de representar as informações que compõem o ambiente. O uso de uma ontologia pré-concebida ajuda neste processo, permitindo descrever consistentemente as entidades envolvidas, bem como as informações a elas agrega-das através de níveis hierárquicos, representando assim, os possíveis fatos externos e internos ao per-sonagem virtual.

4.2 Comunicação

Este mecanismo serve para a intermediação na troca de informações entre dois personagens. A comunica-ção decorre da capacidade de um personagem emitir ou receber uma mensagem, permitindo que uma informação seja transferida por quem fala para quem ouve, e que esta possa então ser registrada e interpre-tada por este último. Com isto, dadas garantias de que haja consistência entre a interpretação dos dois interlocutores (normalmente por construção de onto-logias apropriadas ao contexto da simulação) os personagens podem trocar informações e desta forma compartilhar algo conhecido, bem como aprender coisas novas. Sendo assim, a implantação deste recurso implica na existência de um sistema emissor e outro receptor. No caso do som, por exemplo, seri-am necessários os sistemas fonador e auditivo, um para emitir sons e outro para reconhecer tais emis-sões, respectivamente. No entanto, na maioria das situações em simulação computacional é construído um mecanismo que abstrai os detalhes de transmis-são de sinais, focando exclusivamente na transmissão da mensagem. Neste sentido pode-se fazer uma ana-logia com uma comunicação telepática, onde de alguma forma não explicitada a informação passa do locutor para o ouvinte.

Outra consideração importante a ser feita é a da obrigatoriedade de se ter a mesma compreensão para uma mesma mensagem. Ou seja, cada símbolo deve ser passível de ter a mesma interpretação em todos os interlocutores, permitindo assim uma efetiva comu-nicação e troca de informação entre eles. Cabe a cognição o papel de reconhecer os símbolos comuni-cados, e de dar a eles uma interpretação coerente com o contexto da simulação, e muito provavelmente (por simplicidade) embasada em uma ontologia arti-ficialmente definida para cada contexto.

Page 5: VIDA ARTIFICIAL: CONCEITOS E APLICAÇÕES · para animação de personagens artificiais. Neste caso se procurava encontrar mecanismos para criar artifi-cialmente personagens 1 que

4.3 Adaptação

Talvez, um dos aspectos mais intrínsecos ao conceito de vida sejam as múltiplas capacidades de adaptação dos seres. A capacidade de alterar seu comportamen-to em virtude de uma melhor interação com o ambi-ente pode ser desenvolvida pelo personagem através de evolução ou aprendizado. Ambos são considera-dos aqui como mecanismos adaptativos, sendo o primeiro de caráter filogênico (atuando sobre o apri-moramento coletivo da espécie) e o segundo ontogê-nico (agindo sobre o aperfeiçoamento do personagem individualmente).

No caso da evolução são empregados os recursos de computação evolucionária que é fortemente fun-damentada na teoria Darwinista. Dentre estes encon-tram-se as estratégias evolucionarias, os algoritmos genéticos e a programação genética, cuja aplicação depende do problema.

Já no caso da aprendizagem não se observa alte-rações no código genético e, portanto as alterações de comportamento não se propagam como ocorre na evolução, mas sim basicamente pela comunicação e pela interação com o meio ambiente. No caso do aprendizado podem-se ter duas visões, a primeira das quais é baseada no método do instrucionismo (Vygotsky) que consiste na transmissão do conheci-mento de forma passiva. Em outras palavras um determinado personagem recebe informações de outro personagem. Tal cenário requer dois agentes: aluno e professor, respectivamente. Diferentemente do instrucionismo, o segundo paradigma – construti-vismo (Piaget) – exige que um determinado persona-gem busque informações e de posse delas, as compi-le, descobrindo assim uma nova informação que passa a ser agregada ao sistema. Tal aprendizado pode ser caracterizado como ativo ou aprendizagem interativa. Contudo, este método de aprendizado é mais complexo e requer uma estrutura cognitiva bem desenvolvida, sendo portanto, mais difícil de ser implantado em VA.

As técnicas de computação evolutiva (algoritmos genéticos, mecanismos evolucionários) são utilizadas para tratar dos aspectos filogenéticos da adaptação, enquanto que técnicas de aprendizagem computacio-nal da inteligência artificial são adequadas para os aspectos ontogenéticos da adaptação. Tais técnicas estão ainda relacionadas a planejamento, raciocínio e tomada de decisão. Ambas são apresentadas na pró-xima seção.

4.4 Cognição

Os personagens interagem com o ambiente, seja de modo sofisticado através de uma sequência de ações para cumprir uma meta ou, de modo mais simples, apenas para buscar energia para sua sobrevivência. A questão é como essas ações são determinadas e quem as controla. Em termos gerais pode-se dizer que o personagem pode desenvolver um comportamento tanto reativo como cognitivo, de modo similar ao estabelecido na teoria dos sistemas multi-agentes.

Uma das definições da teoria multi-agentes (Russell, 2004), destaca que “um agente é tudo o que pode ser considerado capaz de perceber seu ambien-te por meio de sensores e de agir sobre esse ambien-te por intermédio de atuadores”. Embora essa defini-ção seja muito abrangente, ela apresenta de modo simples a idéia de agentes.

Outra definição, um pouco mais precisa seria a de Wooldridge (1999) onde “um agente é um sistema de computação que é capaz de agir independente-mente (autônomo) de um usuário...”. Aprimorando essa definição seria interessante frisar que o agente segue um propósito ou objetivo para que suas ações modifiquem o ambiente de acordo com as suas ne-cessidades.

Como já mencionado anteriormente, os sensores e os atuadores são fundamentais ao agente, uma vez que eles servem de interface com o ambiente. Essa interface garante ao agente a capacidade de se relaci-onar com o ambiente, e desta forma desempenhar internamente procedimentos condizentes com a rea-lidade externa. Para tratar desse relacionamento, seja para avaliar as informações vindas do ambiente, seja para produzir outras destinadas ao meio externo, os agentes possuem uma estrutura que responde pelo seu comportamento (Weiss, 1999; Wooldridge, 1995; Wooldridge, 2002), e que neste texto é considerada como fruto de seu centro cognitivo.

A estrutura do comportamento desses agentes praticamente representa como o personagem é sensi-bilizado, controlado e de que forma ele interagirá com o ambiente. Desta forma são conciliados os aspectos de vida com o agente para que o mesmo atue de modo mais eficiente.

Um comportamento reativo consiste em apenas mapear os símbolos obtidos pela percepção em ações de modo direto e sem grandes considerações. Por outro lado, um comportamento cognitivo permite representar algumas características dos seres mais evoluídos na escala biológica. Tais características incluem o raciocínio, a tomada de decisões, e a avali-ação racional de um cenário com base em perspecti-vas, possibilidades e situações (Russel, 2004).

Quando empregadas no processo de seleção de uma ação a ser feita em um certo contexto, tais me-canismos podem ser realizados em diferentes escalas de tempo (desde uma janela de tempo mais imediata até outras mais longas incorporando algum tipo de planejamento ou de análise estratégica). Este recurso consiste no alcance de metas (objetivos) dentro de uma janela de tempo formada entre a sua estipulação e seu cumprimento. Para isso, a cognição elabora uma sequência de ações possíveis que são constan-temente reavaliadas sob o intento do sucesso.

Outro mecanismo fortemente relacionado com o contexto é o relacionado à promoção de interativida-de social. Esta interação serve para que um determi-nado personagem consiga mobilizar outros em prol do alcance de seu objetivo pessoal, ou ainda, em casos de cooperação, um objetivo social.

Page 6: VIDA ARTIFICIAL: CONCEITOS E APLICAÇÕES · para animação de personagens artificiais. Neste caso se procurava encontrar mecanismos para criar artifi-cialmente personagens 1 que

4.5 Atuação

Este aspecto de vida do personagem pode ser enten-dido como a sua capacidade em interagir com o am-biente externo. A interação entre o personagem e o ambiente pode ser simulada em experimentos gráfi-cos, que consistem em ambientes virtuais com repre-sentação gráfica bidimensional ou tridimensional de acordo com a necessidade.

Para o caso dos ambientes virtuais e personagens que atuem graficamente neste universo, tem-se a necessidade de implantar uma biblioteca de anima-ções, ou de possíveis ações. Alguns exemplos desta biblioteca seriam os movimentos de navegação e manipulação de objetos como andar, dançar, pegar, tocar, agarrar, entre outros.

4.6 Reprodução

Além da adaptação, outro importante aspecto de vida e intimamente ligado a adaptação é a reprodução. Esta é uma das características mais significativas da vida, permitindo tanto a perpetuação da espécie (na medida em que os seres envelhecem e morrem, mas deixam descendentes) quanto seu continuo aperfei-çoamento (pois no processo de reprodução são cria-dos novos seres parecidos com os pais, mas não totalmente – tal diferença promove em longas escalas de tempo uma adaptação da espécie ao meio ambien-te, ajudando a perpetuá-la).

Para implantar este aspecto em VA deve-se ba-sear nos modelos biológicos (seja o método de re-produção escolhida sexuada ou assexuada). Na sexu-ada ocorre uma combinação na transferência de ma-terial genético, enquanto que na assexuada o novo ser é originado apenas com base nos genes do seu pro-genitor. Além disto, há sempre alguma chance de haver alterações no novo código genético (algo como um erro no processo de cópia) que promove uma pequena variabilidade importante para explorar coi-sas novas. Estes recursos podem ser listados como: crossover, clonagem e mutação. Do ponto de vista de codificação genética há uma rica variedade de possi-bilidades, mas do ponto de vista biológico (que serve de referencia para a implantação dos modelos usados nas simulações) tem-se códigos tanto haploides (n) quanto diploides (2n).

5 Ferramentas para Simulações em Vida Artificial

Esta seção apresenta algumas das principais ferra-mentas computacionais usadas para simulações de sistemas de VA. O objetivo é apresentá-las e com isto dar condições para um melhor entendimento sobre como podem ser aplicadas para simular dife-rentes mecanismos incorporados a personagens vir-tuais nesta área.

De um ponto de vista geral, duas abordagens po-dem ser utilizadas para simular computacionalmente o comportamento de um ser vivo através de regras

procedimentais em um determinado período de tem-po: são elas as abordagens Bottom-up e Top-down.

Na abordagem “Bottom-up” (complexificação sucessiva), a mesma adotada pela natureza, os seres são construídos com mecanismos adaptativos, con-cebidos com o intuito de permitir aos seres se adapta-rem ao ambiente em que se encontram. Tais ambien-tes estão associados a regras, cuja observância de-termina o grau de adaptação dos seres e consequen-temente sua capacidade de sobrevivência e sua quali-dade de vida (conforme as condições que o ambiente oferece). Os sucessivos ajustes por que passam tais mecanismos, em decorrência de procedimentos adap-tativos evolucionários, permitem aos seres aprimorar suas capacidades e assim melhorar suas condições de vida e sobrevivência.

Na abordagem “Top-down” (refinamento suces-sivo) os seres são construídos a partir de um plane-jamento prévio, considerando o ponto de vista do criador de tudo o que precisam para serem bem suce-didos no ambiente. A solução é, portanto proposta de forma direta, sistemática e estruturada para resolver os problemas (forma adotada pela engenharia). O resultado não garante que esta seja a melhor forma para resolver um determinado problema proposto (Neves, 2003).

Uma breve comparação das duas abordagens permite dizer o seguinte: a) a primeira proposta deixa as soluções em aberto, que devem emergir a partir de reconfigurações e ajustes que ocorram naturalmente (podendo ou não atingir condições satisfatórias ou esperadas, mas com possibilidade de ir além e encon-trar soluções não trivialmente propostas pelo outro paradigma); b) já a segunda proposta garante (se bem construída) que o que foi concebido estará de fato disponível, mas se depara com procedimentos de projeto cuja complexidade é crescente, e que em função disto muitas vezes não permite uma solução adequada.

Programas em VA abordam as questões da adap-tação e da evolução da forma de vida em seu ambien-te através de métodos naturais para a solução de problemas. Algoritmos Genéticos (Michalewic, 1996; Mitchell, 1997), por exemplo, aplicam concei-tos de biologia e evolução (tais como hereditariedade e técnicas de cruzamento e mutação) na solução de problemas da ciência e engenharia.

Os Autômatos Celulares consistem em uma fer-ramenta computacional que pode ser utilizada tanto pela física para o estudo de fenômenos da natureza como pela sociologia para avaliação de comporta-mentos sociais.

Combinando critérios adaptativos e conceitos de inteligência artificial, a busca evolucionária pode ser expandida, levando a algoritmos mais eficientes que consumam menos recursos computacionais e levem a melhores soluções.

A seguir são descritas algumas das principais ferramentas usadas em VA.

Page 7: VIDA ARTIFICIAL: CONCEITOS E APLICAÇÕES · para animação de personagens artificiais. Neste caso se procurava encontrar mecanismos para criar artifi-cialmente personagens 1 que

5.1 Máquina de Estados Finito

Uma Máquina de Estados Finitos (MEF) (Kam, 1997; Gill, 1962) é uma máquina abstrata que consis-te de um conjunto de estados pré-definidos bem como de transições entre eles. A máquina serve as-sim para a representação de comportamento na me-dida em que regras sejam determinantes na sucessão dos estados. Cabe ao criador da MEF dar significado aos estados e transições e assim interpretar o funcio-namento da mesma.

Ao se construir a MEF são definidas as condi-ções que determinam quando e como devem ocorrer as transições de estado. A MEF também pode ser vista como uma função que mapeia uma sequência ordenada de eventos de entrada em uma sequência correspondente de eventos de saída, permitindo de alguma forma, o acompanhamento das condições do ambiente em que se encontra, enquanto respeitando também condições inerentes a ela (a topologia de seus estados). Desta forma permite que sejam reali-zadas ações resultantes de uma combinação das ca-racterísticas internas do ser que representa, com condições externas do mundo por ele habitado (per-cebidas por sensores e agindo como entradas da MEF). A MEF é composta por: (1) estado: informan-do a condição atual do sistema, e servindo para indi-retamente representar algo a respeito do seu passado (registro da sequencia de estados passados), o que dependendo da configuração da maquina pode se dar de forma explicita (estado único para cada situação vivenciada pelo sistema) ou implícita (estado como representação de situações prototípicas ou importan-tes); (2) transição: mudança de estado descrita por uma condição que precisa ocorrer para que a transi-ção aconteça e; (3) ação: descrição de uma atividade que dever ser realizada em um determinando mo-mento, seja na transição ou durante a permanência no estado.

Elas podem ser representadas como grafos nos quais os nós representam os estados e as arestas representam as possíveis transições de um estado para outro. Também podem ser representadas por meio de tabelas que contenham informações comple-tas para cada uma das situações possíveis.

Dentre as MEF de particular interesse para a VA estão aquelas que tratam de ajustes adaptativos po-dendo se adequar através de mecanismos de evolução que modifiquem seja a sua topologia, sejam as con-dições de transição (regras que controlam a transição de estados) ou as ações por elas propagadas. Assim, pode-se avaliar seu desempenho e propor mudanças sucessivas até a conversão para uma situação deseja-da.

5.2 Autômato Celular

O Autômato Celular (AC) foi inventado por Von Neuman de acordo com o livro editado por Burks (Neumann, 1996), onde o mesmo estudava os fenô-menos biológicos e da auto-reprodução. A idéia foi simplificada por outros autores como Arbib (1969) e Myhil (1964). Uma extensa compilação do assunto é

apresentada por Stephen Wolfram (1994). Os AC são simulações computacionais que emulam a maneira pela qual as leis comportamentais determinam o desenvolvimento espaço-temporal na interação dos múltiplos elementos de um sistema, incluindo muitos encontrados na natureza. Embora seja possível esten-der este conceito para comportamentos de sistemas naturais, reconhece-se que os AC normalmente tra-tam de problemas mais simples. É possível imaginar nosso mundo complexo e fascinante sendo criado por um conjunto de regras relativamente simples? Este tipo de simulação talvez nunca possa dar uma respos-ta definitiva para esta pergunta, mas pode dar uma idéia de como seria um mundo governado por regras simples, de quão poderosas elas podem ser para demonstrar fenômenos relativamente complexos, por exemplo, a observação de um fenômeno de emergên-cia (regras simples implicando em uma sucessão inesperada e interessante de eventos).

O AC pode ser visto com uma múltipla máquina de estados. Em uma representação binária, o número de estados é definido pelo número de bits avaliados no processo de decisão de cada elemento (também chamado de célula, e que corresponde a uma MEF). Tais células são acopladas umas às outras através de regras normalmente associadas a uma vizinhança espacial. Neste sentido o estado do conjunto de célu-las vizinhas é que determina, através da regra estabe-lecida, qual o próximo estado de cada célula. E isto se repete simultaneamente em todas as células. As condições de transição de estados podem ser vistas como regras que regem o comportamento geral do AC. Ou seja, são regras que regem ao comportamen-to do sistema (como se dá a evolução na sucessão de seus estados) (Adami, 1998; Neves, 2003).

E a eventual evolução destas regras (alterações nas mesmas) pode levar a uma sucessão de ACs representando a evolução deste sistema.

Exemplos

Considere que o valor de cada célula na posição i no instante t seja ai

(t). Uma regra serve para deter-minar seu valor no instante seguinte (t+1). Um exemplo muito simples seria a eq.(1):

ai(t+1) = ai-1

(t) + ai+1 (t) mod 2 (1)

De acordo com esta regra, o valor do estado fu-turo (t+1) de cada célula em particular é dado pela soma módulo 2 dos valores das células vizinhas à esquerda (ai-1) e à direita (ai+1) no passo do tempo presente (t).

Diferentes regras permitem representar uma enorme variedade de comportamentos distintos. Em uma grade de dimensão arbitrária de números biná-rios (0 e 1), o estado seguinte de cada célula é deter-minado pelo estado atual da própria célula e das células vizinhas próximas (n-1). Em um exemplo simples (Tabela 1), um AC com uma dimensão (li-nha), possui um repertório de 256 possíveis regras (das quais uma é apresentada na última coluna desta tabela), no caso de se avaliar apenas três células (a própria e as vizinhas imediatas) (Adami, 1998).

Page 8: VIDA ARTIFICIAL: CONCEITOS E APLICAÇÕES · para animação de personagens artificiais. Neste caso se procurava encontrar mecanismos para criar artifi-cialmente personagens 1 que

Tabela 1. Máquina de estados de AC (Adami, 1998).

Regra Vizinho à esquerda

Estado Atual

Vizinho à direita

Novo estado

0 0 0 0

0 0 1 1

0 1 0 1

0 1 1 1

1 0 0 1

1 0 1 0

1 1 0 0

1 1 1 0

A Figura 1 (a) mostra um exemplo de um simu-

lador de AC com uma condição inicial aleatória (células nos estados 0 e 1) enquanto a (b) tem apenas uma das células inicialmente em 1 (Neves, 2003). É interessante notar que independente da condição inicial, o padrão desenvolvido permanecerá o mes-mo. Embora este exemplo corresponda a um caso trivial (regra 0), o mesmo pode ser observado em algumas outras situações (regras).

(a)

(b)

Figura 1 – Padrão espaço-temporal de um AC unidimensional com k = 2 estados (0 ou 1) e N = 37 células.

As imagens mostram duas condições iniciais diferentes: (a) várias células cheias e (b) com uma única (Neves, 2005).

Padrões e suas Classificações

Os AC possuem um número finito de configura-ções possíveis. Por exemplo, para um AC cujas célu-las possam assumir um dentre k = 2 estados, e consti-tuído por n = 10 células, existirão um total de kn = 210 = 1024 combinações possíveis para serem visitadas (Lewin, 1993). Logo, à medida que o tempo passa, o AC terá que revisitar alguma configuração prévia. A partir daí, se as regras do AC forem determinísticas, o sistema segue um ciclo chamado de padrão, que se repetirá.

Assim, os AC foram classificados por Wolfram (1994) em quatro classes (Figura 2) com base nos padrões espaço-temporais gerados por sua evolução:

Classe I – Estado homogêneo no qual todas as células apresentam o mesmo estado (Figura 2a).

Classe II – Estado estável, sejam uma variação periódica observável ou com período igual a 0, ou seja, conjunto de estruturas estáveis (Figura 2b).

Classe III – Estado caótico ou desordenado, não possuindo um padrão reconhecível (Figura 2c).

Classe IV – Comportamento complexo. A evo-lução no tempo leva o AC a gerar estruturas comple-xas com evolução imprevisível, que podem se propa-gar, e assim criar e/ou destruir outras estruturas. Esta evolução pode terminar após tempos relativamente longos (Figura 2d).

(a)

(b)

(c)

(d)

Figura 2 – Padrão espaço-temporal de regras típicas em cada uma das quatro classes de Wolfram. Classe I (a), Classe II (b), Classe

III (c) e Classe IV (d) (Neves, 2005).

Como visto, os AC são modelos computacionais que são discretos no tempo e no espaço, cujas evolu-ções são regidas por regras simples. Mas tais regras podem descrever sistemas complexos que podem ser modificados com a alteração das mesmas. À medida que o sistema evolui dinamicamente, emergem com-portamentos complexos decorrentes dessas influên-cias mútuas. E tal característica é particularmente interessante para estudos de VA.

Uma forma de estudar a estabilidade dos AC é compará-los com as leis da natureza, introduzindo-se perturbações (mutação, destruição). A conversão de um estado para o outro pode acontecer (célula ativa para inativa) com a introdução de fatores externos (chamados de ruídos) que podem ser influenciados através do ambiente ao longo de varias gerações. Isto pode ser observado na Figura 3, quando durante a

Tempo

Espaço

Estado Inicial Regras

Page 9: VIDA ARTIFICIAL: CONCEITOS E APLICAÇÕES · para animação de personagens artificiais. Neste caso se procurava encontrar mecanismos para criar artifi-cialmente personagens 1 que

simulação um determinado padrão se altera em de-corrência da mudança da regra, podendo levar inclu-sive a sua a paralisação (morte de todas as células). A partir deste momento, é impossível voltar para qual-quer outro padrão sem a inicialização do sistema. Esta análise demonstra a alta dependência das regras como determinantes da evolução de estados (com-portamento) do AC.

Figura 3 – Com a introdução de perturbações ou ruídos (através das regras), pode-se alterar os padrões

Um interessante aspecto para ser analisado con-juntamente com os AC é o da possibilidade de se criar mecanismos de retro-alimentação, com o intuito de permitir a escolha de regras que levem a observa-ção de comportamentos reconhecidos como adequa-dos. Tais mecanismos serviriam para regular (adap-tar) o AC a uma certa realidade e assim favorecer a manutenção de certo padrão de comportamento.

Dimensões Espaço Temporais

Os AC podem ter uma ou mais dimensões espa-ciais. Para o caso de duas dimensões com quatro células vizinhas, e havendo dois estados possíveis para cada célula teremos 24 = 16 possibilidades de transição, totalizando 216 = 65536 regras possíveis. Percebe-se assim a imensa gama de possibilidades mesmo para uma situação de pequena ordem (vizi-nhança igual a quatro e dois estados possíveis apenas para cada célula). Normalmente uma regra dentre todas as possíveis é escolhida para a condução da simulação, caracterizando uma possível situação. Além disso, conjuntos de regras podem ser associa-das a uma de quatro classes possíveis conforme pre-viamente apresentado.

Um caso interessante de AC de 2 dimensões é o popular “Jogo da Vida”, criado pelo matemático John Holton Conway em 1970 (Neves, 2003), onde para cada célula, com vizinhança de 8 casas, conside-ra-se apenas os número de vizinhos “vivos” ou com valor binário 1. Neste ambiente pode-se observar padrões de comportamento interessantes gerados a partir de regras de evolução simples que representam a competição pela sobrevivência em uma população. As regras de evolução do “Jogo da Vida” são:

• Uma célula viva com 2 ou 3 vizinhos vivos permanece viva;

• Uma célula viva com menos de 2 vizinhos morre de solidão;

• Uma célula viva com mais de 3 vizinhos morre sufocada e

• Uma célula morta com 3 vizinhos vivos passa a viver.

Figura 4 – Padrão espacial do Jogo da Vida para um determinado instante da simulação.

O resultado visual do sistema (Figura 4) é com-plexo e os fenômenos observados imprevisíveis. Dependendo do tamanho da grade e das condições iniciais, o sistema pode demorar a se estabilizar. Observa-se neste caso uma grande sensibilidade às condições iniciais, de modo que a modificação de apenas um bit nas condições iniciais pode levar a desenvolvimentos espaço-temporais completamente diferentes. No entanto, reconhece-se o padrão forma-do em qualquer situação como pertencendo a uma mesma classe.

Comportamentos Naturais

Conforme o contexto acima, onde padrões surgem espontaneamente, suas regras se aplicam a vários fenômenos internos e externos dos seres vivos, como crescimento de plantas, formação de corais, regene-ração de tecidos, entre outros. A foto de uma concha marinha (Figura 5) mostra uma pigmentação similar à Figura 2c, que sugere que padrões naturais, inclusi-ve biológicos, podem ser gerados e controlados usando-se algoritmos ou regras simples.

Figura 5 – O padrão gerado pela Classe III (Figura 2 (c)) é similar à pigmentação de certas conchas marinhas encontradas na natureza

De forma ainda mais genérica pode-se fazer uma relação entre o comportamento observado em um AC e aquele observado em colônias de insetos, desde que sejam feitas as devidas associações entre os estados do AC e aquilo que seria a contrapartida na referida colônia. Neves (2003) dá como exemplo as socieda-des extremamente desenvolvidas de formigas. Uma formiga individualmente é uma criatura simples que pode desempenhar em média 40 funções específicas (como cavar, bloquear o sol, criar caminhos, entre outros), mas quando executadas no tempo correto, e em grupo, operam maravilhas, demonstrando como um conjunto de regras simples pode resolver proble-mas complexos (como encontrar o menor caminho entre um conjunto de pontos).

Page 10: VIDA ARTIFICIAL: CONCEITOS E APLICAÇÕES · para animação de personagens artificiais. Neste caso se procurava encontrar mecanismos para criar artifi-cialmente personagens 1 que

5.3 Algoritmos Genéticos

Os Algoritmos Genéticos (AG) desenvolvidos por John Holland em 1975, seus colegas e estudantes na Universidade de Michigan (Goldberg, 1989), junta-mente com Estratégias Evolucionária (EE) desenvol-vida por Rechenberg em 1960 e Programação Evolu-tiva (PE) desenvolvida por John Koza em 1992 (Ko-za, 1992), formam uma classe de algoritmos de pes-quisa baseados em evolução natural, chamados de Algoritmos Evolucionários (AE) (Ribeiro, 1994).

Os AGs são métodos que simulam através de al-goritmos (baseados nas teorias de Darwin e da gené-tica), os processos de evolução natural (de base bio-lógica), sendo adequados para resolver uma extensa gama de problemas (Futuyama, 1992). As etapas destes algoritmos podem ser resumidas em:

• Evolução: é o processo geral que permite o aprimoramento dos indivíduos de uma espé-cie, a partir de operações sobre os cromos-somos que representam o organismo, e não diretamente sobre o organismo em si. Assim sendo, o que acontecer com um organismo durante sua existência não irá se refletir so-bre os cromossomos. Mas os cromossomos definem a construção do organismo e terão reflexos diretos sobre todas as suas caracte-rísticas (decodificação dos cromossomos).

• Seleção Natural: esta etapa faz com que os personagens mais bem adaptados ao ambi-ente sobrevivam e reproduzam mais do que aqueles menos adaptados, preservando e disseminando assim seus cromossomos.

• Reprodução: é o ponto através do qual a evolução se caracteriza. Inicialmente ocorre a recombinação (ou cruzamento) onde os genes dos pais são combinados para formar um novo cromossomo (dos filhos) e podem sofrer mutações (onde os elementos do DNA podem ser modificados) que são cau-sadas por erros na cópia dos genes dos pais. Na vida real ela pode ser decorrência do processo de meiose ou de incidência de ra-diação. Processos de recombinação (cros-sover) também podem fazer com que os cromossomos dos filhos sejam bastante di-ferentes dos seus pais (por combinar materi-ais diferentes de dois genitores) (Barcellos, 2000; Obitko, 1998).

O objetivo de Holland não era projetar algorit-

mos para resolver problemas específicos, mas desen-volver métodos para representar mecanismos de adaptação natural nos sistemas de computador (Mit-chell, 1997). A ideia é baseada na teoria biológica dos sistemas naturais, ou seja, na sobrevivência dos melhores indivíduos (membros da população) adap-tados ao ambiente que poderiam sobreviver e se reproduzir em taxas maiores do que os indivíduos menos adaptados. Depois de muitas gerações, estes indivíduos adquirem características que lhes confe-rem uma maior adaptabilidade ao ambiente. Em um

ambiente competitivo isto desfavorece os indivíduos de gerações anteriores menos adaptados, com o que se observa uma evolução na população (Koza, 1992).

Os Algoritmos Evolutivos simulam um processo de aprendizagem coletiva (conjunto de soluções representadas por cromossomos), dentro de uma população de indivíduos, onde cada um representa não somente um ponto no espaço de solução poten-cial de um determinado problema (soluções para formar novas gerações com mais chance de reprodu-ção (Koza, 1992)), mas também um depósito tempo-ral de conhecimento sobre as leis do ambiente (Bäck, 1996).

Parâmetros dos AGs

A simulação de um AG se inicia com um número de indivíduos (população inicial) selecionados aleatori-amente onde os mesmos desempenham funções no ambiente. Durante o processo evolutivo, cada indivi-duo da população é avaliado para determinar o seu valor geral de aptidão (fitness) (única informação utilizada pelo AG). Baseado nestes valores, uma população de indivíduos é transformada em uma nova população (nova geração) mediante a aplicação sucessiva dos operadores de seleção (que privilegiam os mais bem adaptados – o método da roleta de Mon-te Carlo é adequado para tal, classificando os indivi-duos com base no seu fitness, permitindo assim que os melhores tenham mais chances de serem selecio-nados), cruzamento (quando os cromossomos de dois indivíduos selecionados são conjugados para formar o do novo individuo - a taxa de aprovação dos casais costuma ser alta, cerca de 80% a 95%) e mutação (que permite alterações aleatórias em pequenas por-ções do cromossomo criado - esta deve ser baixa para evitar distorções excessivas nos mesmos, costuman-do ser na faixa de 0.5% a 1%). O critério de parada pode ser, por exemplo, o número máximo de gera-ções (interações) ou o fato de se atingir certo nível de estabilidade (alterações muito pequena na população) (Koza, 1992; Obitko, 1998).

Populações muito grandes normalmente não au-mentam o desempenho do AG, ou seja, a velocidade com que se encontram as soluções. Na implementa-ção de um AG, um bom tamanho para a população é de 20 a 30, entretanto em determinados problemas, os tamanhos de 50 a 100 são indicados como melho-res. Mas o tamanho da população pode depender também do tamanho da série codificada (cromosso-mos) (Obitko, 1998).

Segundo Goldberg (1989) os AGs diferem da maioria dos métodos de busca e otimização por: (1) trabalhar em um espaço de soluções codificadas e não diretamente no espaço de busca; (2) trabalhar com um conjunto de pontos (população) e não em pontos isolados; (3) não necessitar de derivadas ou outro conhecimento auxiliar, pois utilizam informa-ções de custo ou recompensa e (4) usar regras de transição probabilística.

Page 11: VIDA ARTIFICIAL: CONCEITOS E APLICAÇÕES · para animação de personagens artificiais. Neste caso se procurava encontrar mecanismos para criar artifi-cialmente personagens 1 que

Definições

Todo organismo vivo é constituído de uma ou mais células. Em cada célula existe um conjunto de cro-mossomos (cadeias de DNA e servem como modelo para todo organismo) que no contexto do método computacional contém uma representação da possí-vel solução para o problema trabalhado (Bäck, 1996) (Figura 6). Os cromossomos são constituídos de genes (blocos de DNA). Os genes codificam uma determinada feição (como cor de olhos) e um conjun-to de genes relacionados com uma determinada fei-ção são chamados de alelos. A posição que o gene ocupa no cromossomo é denominada lócus (Gold-berg, 1989). Um conjunto de cromossomos que serve para representar uma espécie é chamado de genoma e um conjunto particular deste (representando um individuo) é chamado genótipo. O genótipo serve de referencia para o desenvolvimento do ser, que na natureza ocorre tanto na fase embrionária como no seu processo de crescimento (características físicas e mentais como cor dos olhos e inteligência). Nas simulações computacionais um tradutor pode ser usado para construir o fenótipo diretamente a partir da receita do genótipo (Obitko, 1998).

Figura 6 - Exemplo de Cromossomo.

Codificação

Segundo Banzhaf (1998) o sucesso de um AG vai depender da codificação adequada do problema. Os cromossomos dos AGs devem ser codificados com uma sequência de algum alfabeto finito (Fu-tuyama,1992).

Uma forma de codificação é a binária (0 e 1). O espaço de busca para esta codificação apresenta 2k possibilidades (pontos), sendo k o comprimento (número de genes) do cromossomo (Obitko, 1998).

Outra forma é permutação onde cada cromosso-mo é uma série de números que representa uma posi-ção e uma sequência. É útil para problemas de orde-nação. Este tipo de codificação pode ser usado em problemas como do Caixeiro Viajante onde este tem que visitar várias cidades e encontrar a sequência de cidades de forma que à distância percorrida seja a mais curta possível (Obitko, 1998).

A codificação de valores é a sequência que pode assumir qualquer forma relacionada com o problema como números reais, caracteres ou qualquer outro objeto (Obitko, 1998).

A codificação em Árvore é usada para desenvol-ver programas ou expressões (como a programação genética). Neste modelo, cada cromossomo é uma árvore de alguns objetos como funções ou comandos de uma linguagem de programação (Obitko, 1998).

Seleção

A seleção permite prospectar sucessivamente melho-res regiões do espaço que contem as soluções do problema (espaço de busca). Segundo a teoria de Darwin, são selecionados indivíduos da população para a reprodução dando preferência para os mais adaptados ao ambiente (Mitchell, 1997). Alguns exemplos de seleção são: seleção por roleta, classifi-cação, estado estacionário, entre outros.

Na seleção por roleta, cada indivíduo tem uma probabilidade de ser selecionado que é proporcional a sua aptidão. Considere um circulo dividido em n regiões (tamanho da população) (Figura 7). Após um giro da roleta, a posição de parada indicará o indiví-duo selecionado. Os indivíduos representados por setores maiores do circulo terão maior chance de ser selecionados. Como consequência, estes podem contribuir para gerar múltiplos descendentes ou mesmo serem replicados (dependendo da estratégia adotada) enquanto outros podem desaparecer.

Figura 7 - Amostragem estatística de populações.

Neste método por roleta, existem problemas co-mo a grande diferença entre os valores de adequação onde haverá indivíduos com poucas chances de se-rem selecionados.

Na seleção por classificação, primeiro é classifi-cada a população e depois é atribuído a cada indiví-duo um valor de adequação crescente determinado pela sua classificação no grupo (Obitko, 1998).

Na seleção por estado estacionário a ideia é que a nova população deve ter uma grande parte de indi-víduos que sobreviverão para a próxima geração. Em cada nova geração os melhores indivíduos são sele-cionados para a criação dos novos descendentes e os piores indivíduos são descartados acrescentando outros em seus lugares. O restante da população sobrevive para as próximas gerações (Obitko, 1998).

Com a criação de uma nova população por cru-zamento e mutação, tem-se uma grande chance de se perder os melhores indivíduos. No elitismo, são copiados os cromossomos dos melhores indivíduos para a nova população, aumentando o desempenho do AG e prevenindo a perda da melhor solução en-contrada. O restante da população é constituído da forma descrita acima (Obitko, 1998).

Cruzamento (Crossover)

O cruzamento opera de modo a criar novos cromos-somos a partir da combinação dos cromossomos dos pais. Uma forma é escolher aleatoriamente alguns pontos de cruzamento e copiar tudo o que vem antes desse ponto de um dos pais e tudo o que vem depois do outro (Obitko, 1998).

0 0 1 0 1

gene alelo

Page 12: VIDA ARTIFICIAL: CONCEITOS E APLICAÇÕES · para animação de personagens artificiais. Neste caso se procurava encontrar mecanismos para criar artifi-cialmente personagens 1 que

Para problemas de programação e otimização combinatória, os autores Goldberg (1989) e Starkwe-ather et. al (1991) descrevem vários tipos de opera-dores de crossover, sendo os principais: ponto de cruzamento único, dois pontos de cruzamento, cru-zamento uniforme, cruzamento aritmético.

Figura 8 - Cruzamento único em um AG simples

No ponto de cruzamento único, é escolhido um ponto de cruzamento e a série binária desde o inicio do cromossomo até o ponto de cruzamento é copiada do pai e o restante da mãe (Figura 8) (Obitko, 1998).

Nos dois pontos de cruzamento, a série binária desde o inicio do cromossomo até o primeiro ponto do cruzamento é copiada do pai. Do primeiro ponto de cruzamento até o segundo, é copiada da mãe e o restante é copiado novamente do pai (Figura 9) (Obitko, 1998).

Figura 9 - Cruzamento de dois pontos em um AG simples

No cruzamento uniforme, os bits são copiados aleatoriamente do pai ou da mãe (Figura 10) (Obitko, 1998).

Figura 10 - Cruzamento uniforme em um AG simples

No cruzamento aritmético é realizada uma ope-ração aritmética para se obter a nova geração (Figura 11) (Obitko, 1998).

Figura 11 - Cruzamento aritmético em um AG simples

Mutação

A hereditariedade confere estabilidade a sistemas biológicos, mas nenhum sistema composto de molé-

culas e sujeito ao impacto do mundo físico pode ser perfeito. Erros na cópia produzem sequências altera-das de DNA (mutações) que são perpetuadas. Muta-ção é frequentemente definida como uma mudança em alguns genes ou em um trecho da sequência de pares de base de um gene e às vezes o termo é usado de uma forma mais ampla de modo a incluir mudan-ças no número e estrutura dos cromossomos. A mu-tação é o cerne da evolução. Sem ela a vida não teria ido além de uma protobactéria (Barcellos, 2000).

No procedimento computacional a mutação é efetuada alterando-se o valor de um gene de um indivíduo sorteado aleatoriamente com uma determi-nada probabilidade. Desta forma os individuos sorte-ados tem alguns de seus genes alterados.

5.4 Redes Neurais

Outro recurso bastante utilizado no emprego de téc-nicas que auxiliem no controle de personagens virtu-ais são as Redes Neurais Artificiais (RNA). Em VA, especificamente, as RNAs são normalmente utiliza-das como mecanismos para extração de padrões. Essa extração pode ser aplicada ao personagem como processo de reconhecimento do ambiente virtual, em outras palavras, em sua percepção. A seguir serão apresentados alguns conceitos considerados relevan-tes.

De forma geral, as RNA são modelos computa-cionais cuja estrutura e funcionamento básico tem inspiração nas células neurais. Ela é formada por uma combinação de neurônios artificiais distribuídos em uma ou mais camadas e interligados através de sinapses. Nestas redes a principal característica é o grande número de elementos de processamento inter-ligados por conexões. Os neurônios artificiais são responsáveis pelo armazenamento e o processamento das informações (Ludwig Jr, 2007).

Talvez uma das definições mais aceitas seria que “uma rede neural é um processador paralelamente distribuído constituído de unidades de processamento simples, que têm a propensão natural para armazenar conhecimento experimental e torná-lo disponível para o uso” (Haykin, 2002). Sendo este processador paralelo e distribuído composto por um conjunto de neurônios dispostos em camadas de acordo com a arquitetura da rede, além de estarem conectados através de conexões sinápticas representadas por pesos que são uma referencia de sua importância.

De forma geral, segundo Braga, Carvalho e Lu-demir (2000) citado em (Karrer, 2005), as RNA são capazes de absorver dados, modificando assim seus parâmetros intrínsecos (pesos associados às cone-xões) e adaptando-se assim a série de elementos a ela apresentados, e que constituem situações do proble-ma sendo tratado. Essa adaptação caracteriza sua capacidade de aprendizagem, conferindo a ela uma maior capacidade na busca de respostas para o maior número possível de situações. Além do aprendizado, é esperado que uma RNA seja capaz de dar respostas coerentes mesmo para dados não previamente apre-

Page 13: VIDA ARTIFICIAL: CONCEITOS E APLICAÇÕES · para animação de personagens artificiais. Neste caso se procurava encontrar mecanismos para criar artifi-cialmente personagens 1 que

sentados a ela durante o treinamento, característica esta a que se dá o nome de generalização.

Alguns problemas são inviáveis de se resolver por algoritmos convencionais por se tratar de pro-blemas muito complexos, este é um fator importante para a utilização de RNA, que devido a sua capaci-dade de generalização, são capazes de manter os resultados desejáveis, suportando ruídos e imperfei-ções do ambiente (Braga, 2000 citado em Karrer, 2005).

Os Neurônios

O cérebro humano possui aproximadamente 10 bi-lhões de células nervosas chamadas neurônios. Os neurônios biológicos podem diferir em tamanho e aparência, mas apresentam algumas características em comum. Eles são formados por um corpo celular, um axônio tubular, pelos dendritos e pelos terminais sinápticos. O axônio é um tubo longo e fino que se divide em ramos finos e curtos ao final e que termi-nam em pequenos bulbos, esses bulbos são os termi-nais pré-sinápticos. Os dendritos são ramificações arbóreas que formam uma malha de filamentos muito finos ao redor do neurônio. Os dendritos recebem as mensagens dos neurônios adjacentes a ele, esses impulsos são transmitidos pelo axônio através dos terminais pós-sinápticos (Atkinson, 1995; Deiters, 1893 citado em Sabbatini, 2003). A Figura 12 a se-guir ilustra as partes de um neurônio biológico.

Figura 12 - (a) Esquema de um neurônio e (b) imagem real vista

de um microscópio (GUYTOHN; HALL, 2010)

A comunicação entre os neurônios é feita através das sinapses por neurotransmissores. Os estímulos recebidos por um neurônio (terminais pós-sinapticos) são conduzidos pelos dendritos ao soma, onde todos são combinados gerando então pulsos encaminhados através dos axônios até suas terminações pré-sinapticas. Diversos mecanismos de aprendizagem (memorização) estão ligados ao neurônio, indo desde o reforço Hebbiano (estimulação ou enfraquecimento de sinapses), até alterações topológicas (árvores dendritais e terminais sinapticos). Cabe ressaltar que como os terminais sinápticos não tocam os demais neurônios (há uma pequena lacuna entre eles e o corpo celular do próximo neurônio, que é chamada de fenda sináptica) a transmissão dos sinais elétricos que se propagam pelo neurônio é substituída neste momento pela transmissão de partículas químicas (neurotransmissores) que atravessam a fenda. (At-

lomspn, 1995; Cajal, 1891 citado em Sabbatini, 2003).

Os neurônios artificiais seguem os princípios de neurotransmissão do cérebro. É uma analogia entre as células nervosas vivas e processamento eletrônico, tendo como foco principal o aprendizado. Assim as entradas têm a mesma função dos dendritos, a sinap-se entre os neurônios naturais é simulada pelo peso que faz a conexão entre as entradas e o corpo celular artificial. Os estímulos captados pelas entradas são processados pela função Soma. A resposta a este estímulo é a função de transferência, que substitui o limiar de disparo do neurônio biológico (Tafner, 1998).

O primeiro modelo de neurônio artificial foi apresentado em 1943 por Warren McCulloch e Wal-ter Pitts (Hykin, 2002), o qual é conhecido por MCP, inicias dos nomes de seus criadores. Trata-se de um modelo computacional simples, ou seja, um disposi-tivo binário (Figura 13). Neste modelo, a saída pode ser pulso ou não pulso e as entradas podem ser exci-tatórias ou inibitórias. A comunicação entre as célu-las é realizada através de sinais de entrada que são armazenados nos neurônios, sendo que cada sinal é multiplicado por um número, que representa o peso sináptico (w1, w2, ...). Este peso influencia direta-mente na memorização e pode ser estabelecido por meio de treinamento.

Figura 13 - Modelo de Neurônio Artificial (TAFNER, 1998)

As entradas do neurônio são números binários e são combinadas pela soma ponderada dos sinais produzindo um nível de atividade e, uma resposta só é gerada em um neurônio se este nível de atividade ultrapassar um limite pré-determinado, ou seja, o limiar de disparo. Esta resposta ou sinal de saída se propaga pela rede. Assim sendo, os neurônios são ou não ativados dependendo da entrada e dos pesos sinápticos.

Classificação das Redes Neurais Artificiais

De forma geral, uma RNA possui uma camada de entrada, que é responsável pela recepção dos estímu-los exteriores, uma camada de saída, responsável pela apresentação da resposta da rede, podendo haver ainda camadas intermediárias. O uso de camadas ocultas possibilita a realização de procedimentos de decisão mais complexos. Por outro lado, o aprendi-zado neste tipo de RNA é mais trabalhoso (Ludwig Jr, 2007; Castro, 2008).

Uma RNA deve ser modelada de acordo com os problemas a serem solucionados. A decisão de como interconectar o neurônio é fator importante para o

Page 14: VIDA ARTIFICIAL: CONCEITOS E APLICAÇÕES · para animação de personagens artificiais. Neste caso se procurava encontrar mecanismos para criar artifi-cialmente personagens 1 que

sucesso do projeto de uma RNA, visto que, na grande maioria das vezes a organização é feita em camadas. Na modelagem são definidos fatores importantes como a quantidade de camadas, o número de neurô-nios em cada camada, o tipo de sinapse, entre outros (Ludwig Jr, 2007; Castro, 2008).

As conexões entre os neurônios dependem do ti-po de RNA que se pretende utilizar. Elas podem ser feitas entre neurônios da mesma camada ou entre camadas. As RNA podem ser classificadas como diretas, recorrentes ou com ciclos (Barreto, 2002).

Uma RNA direta ou Feedforward possui um grafo acíclico, pois seus neurônios não recebem realimentação em suas entradas. Este tipo de rede é o mais utilizado e é considerado um aproximador uni-versal de funções. Seu nível de decisão depende principalmente do número de neurônios, assim como da escolha do conjunto de exemplos.

Por outro lado, as RNA recorrentes são aquelas que apresentam ciclos, sendo, mais indicadas para problemas dinâmicos. Nestas redes, pelo menos um neurônio fornece o seu sinal de saída para a entrada de outro neurônio, ou seja, há pelo menos um ciclo de retro-alimentação. Os modelos de RNA recorren-tes de maior importância são os propostos por Hopfi-eld e as redes bi-direcional de Kosko. Hopfield é o modelo mais conhecido de redes com ciclos ou rea-limentação, cujo grafo de conectividade contém, ao menos, um ciclo (Barreto, 2002).

O que diferencia as RNA de outros algoritmos de processamento de informações, segundo Ludwig Jr (2007), é sua capacidade de “produzir saídas ade-quadas para entradas que não estavam presentes durante o treinamento”. As RNA podem ser projeta-das de forma a modificar seu peso sináptico em tem-po real, facilitando, desta forma, a representação de universos, onde as estatísticas mudam o tempo todo.

Treinamento de RNA

O treinamento de uma RNA é necessário para que esta tenha a capacidade de tratar as entradas a fim de chegar a soluções. Esta fase é chamada de aprendiza-do, o que, de forma geral, segundo Osório (1999) “é a capacidade de se adaptar, modificar e melhorar seu comportamento e suas respostas, sendo, portanto uma das propriedades mais importantes dos seres ditos inteligentes, sejam eles humanos ou não”.

Em uma RNA o aprendizado de determinada função decorre da aplicação de um conjunto de pro-cedimentos para adaptar seus parâmetros. Estes pa-râmetros são ajustados através de estímulos recebi-dos pela rede do ambiente no qual ela está operando. O tipo do processo de aprendizagem é definido pela forma como os ajustes são realizados nos parâmetros.

Para Karrer et. al. (2005), a mudanças nos parâ-metros da RNA como consequência de estímulos externos provoca também mudanças no comporta-mento dessa rede. A mudança gradual resulta em uma melhoria gradativa do desempenho, além de minimizar o erro do conjunto de treinamento e apro-ximar funções geradoras dos dados. Os erros são

minimizados ajustando-se, a cada iteração, os pesos que modificam a saída.

A adaptação dos parâmetros da RNA é obtida através de algoritmos de aprendizado, normalmente baseados em regras bem definidas para auxiliar na busca à solução de um determinado problema. Para isso, em um número finito de iterações do algoritmo, deve haver convergência para uma solução, a qual pode variar de acordo com o algoritmo ou o para-digma de aprendizado.

Existem diversos tipos de algoritmos de aprendi-zado para diferentes tipos de RNA. A principal dife-rença entre estes algoritmos é a forma como os pesos são modificados e o modo como a RNA se relaciona com o ambiente. Um método largamente usado para o treinamento destas redes é o de propagação reversa de erro (Backpropagation), que permite o ajuste sucessivo dos pesos sinápticos em função do erro observado na saída quando esta é comparada com valores esperados.

5.5 Sistemas de Produção

Os sistemas de produção correspondem a uma classe de RBS (Rule-Based Systems) que permite inserir comportamento em agentes para a obtenção de solu-ções de problemas (Champandard, 2003; Gutiérrez, 2008; Richt, 1993).

O sistema de produção utiliza uma base de dados composta por um conjunto de informações (ou esta-dos) e regras no contexto de um problema a ser re-solvido no mundo em que se encontra o agente. As regras são representadas por expressões lógicas e utilizam pares de condição-ação que, na maioria das vezes, possuem a seguinte forma:

Se <condição> Então <ação> onde se ocorrer a <condição> que representa as

premissas, então deverá ocorrer a <ação> que mani-pula os símbolos e representa o resultado ou a conse-quência.

O sistema de produção agrega ao modelo mais simples de um RBS, uma máquina de inferência que interage com a base de dados escolhendo qual das regras se ajusta melhor aos fatos armazenados e como executá-los, ou seja, agrega uma estratégia de controle que especifica quais regras e em que ordem são comparadas com a base de dados, oferecendo assim uma maneira de solucionar conflitos quando mais de uma regra pode ser aplicada ao mesmo tem-po (Figura 14).

Figura 14 – Sistema de Produção (baseado em Winston (1992))

Page 15: VIDA ARTIFICIAL: CONCEITOS E APLICAÇÕES · para animação de personagens artificiais. Neste caso se procurava encontrar mecanismos para criar artifi-cialmente personagens 1 que

5.6 Aprendizado por Reforço

Um sistema típico de Aprendizado por Reforço (AR) (Reinforcement Learning) (Sutton, 1998) serve basi-camente como mecanismo de apoio para o controle de um agente autônomo interagindo em um ambiente via percepção e ação, conforme Figura 15 a seguir:

Figura 15 - Modelo Clássico de Aprendizagem por Reforço (Sut-

ton; Barto, 1998)

O sistema aprende a fazer um mapeamento de relações entre situações em um ambiente dinâmico e as respectivas ações do agente nele inserido. Este ambiente deve ser pelo menos parcialmente observá-vel por meio de sensores do agente, ou estimado a partir de avalições que este possa fazer em um plano hipotético a partir daquilo que é conhecido (algo como uma simulação mental da situação analisada).

O agente interage com o ambiente em uma se-quência de passos (t=0,1,2,...), sendo que a cada passo t o agente recebe alguma representação do estado do ambiente através da sua percepção, deno-tado por s (onde S é o conjunto de estados possíveis), e seleciona uma ação, denotada por a(st) (onde A(st) é um conjunto de ações disponíveis no estado st). No momento seguinte, o agente recebe do ambiente uma recompensa numérica que é um reforço do tipo esca-lar (rt+1), que é resultado de toda a sequência de ações praticadas, entrando em um novo estado, st+1.

O agente procura alcançar seu objetivo atuando em um ambiente com incerteza das ações escolhidas que tem o poder de alterar o estado futuro do ambi-ente, afetando assim as opções e oportunidades que lhe estarão disponíveis em momentos futuros.

Mas essas ações não podem ser completamente previstas, pois o agente deve monitorar continuamen-te o ambiente e reagir de modo adequado. As metas devem ser explícitas para que o agente possa julgar seu progresso com base no que pode perceber do ambiente por meio de sensores. Com o passar do tempo, o agente pode usar sua experiência para me-lhorar seu desempenho.

Além do agente e do ambiente, um sistema de aprendizagem por reforço envolve mais quatro ele-mentos: política, função de recompensa, função de valor-estado e função de valor-ação.

• Política: determina o modo como o agente deve se comportar em cada momento para al-cançar seu objetivo. Ela mapeia os estados percebidos do ambiente para ações a serem praticadas em um valor πt(s,a). Assim, o agente modifica as probabilidades de seleção das ações como resultado de sua experiência.

• Função de Recompensa: a recompensa é o va-lor devolvido pelo ambiente (rt+1) ao agente depois da execução de uma ação em uma transição de estado (st para st+1). Expressa o nível de adequação da ação ao objetivo que o sistema deve alcançar. Esse método busca maximizar não apenas o reforço recebido em decorrência de uma ação, mas também aquele acumulado durante a execução total. Nos ca-sos mais simples, a função de recompensa é representada pela eq.(2):

Rt = rt+1 + rt+2 + rt+2 + ... + rt+n (2)

Se a interação do agente com o ambiente não terminar em um número pré-definido de passos (k) e continuar indefinidamente deve-se aplicar uma taxa de desconto, γ (entre 0 e 1), a partir da qual se pode calcular o valor presente de uma recompensa futura como sendo γk-1 vezes o valor que ela teria se fosse recebida imediatamente. Desse modo, pode-se redefinir a eq.(3) como:

�� � ∑ ��������� (3)

• Função valor-estado: é o mapeamento do es-tado em um valor que é obtido a partir do re-forço atual e dos reforços futuros. Especifica o que é bom a longo prazo. Se for considerado somente o estado s, a função é denotada por V(s). De outra forma, se for considerado o par estado-ação (s,a), ela é denotada por Q(s,a). Os reforços futuros mantêm dependência das ações futuras dependendo também da política π que o algoritmo de aprendizado por reforço segue. Em um processo de decisão markovia-no é definido pela função-estado Qπ(s,a) de-pendente da política π como a equação que pode ser definida pela eq.(4) e eq.(5):

Qπ(s,a) = Eπ{Rt | st = s, at = a} (4) Qπ(s,a) = Eπ{�� � ∑ ������

��� | st=s,at=a} (5)

Onde a função Qπ(s) é o valor esperado do re-torno para o estado st e ação at. Isto é, o soma-tório dos reforços aplicados a taxa de amorti-zação γ.

5.7 Método de Monte Carlo

O Método de Monte Carlo (MMC) é um método estatístico utilizado como apoio em simulações para retornar valores em uma taxa proporcional a sua ocorrência no ambiente simulado, servindo assim para obter aproximações numéricas de funções de distribuição de probabilidades. Ele pode ser utilizado para analisar uma decisão envolvendo riscos, ou seja, em situações nas quais há incerteza no valor espera-do. Ele utiliza a geração de números pseudo-aleatórios para atribuir valores as variáveis que se deseja investigar. Segundo Hammersley e Hands-comb (1964), o MMC é classificado como “parte da matemática experimental que está preocupada em experiências com números aleatórios”.

Page 16: VIDA ARTIFICIAL: CONCEITOS E APLICAÇÕES · para animação de personagens artificiais. Neste caso se procurava encontrar mecanismos para criar artifi-cialmente personagens 1 que

5.8 Método Bayesiano

O método bayesiano é uma das tentativas de modelar de forma matemática a inferência estatística que descreve como algum conhecimento a priori pode impactar na determinação da expectativa sobre algo que ocorre a posteriori. Ele computa incertezas pro-babilísticas, estabelecendo em linhas gerais uma dependência probabilística entre dois eventos, um a priori e outro a posteriori. As incertezas são modifi-cadas periodicamente, após cada observação de no-vos dados ou resultados, com o que o processo se atualiza constantemente a base dos novos conheci-mentos (observações feitas) (Russel, 2004). Esse método é representado pela eq.(6):

P(A|B) = P(B|A) . P(A) / P(B) (6) Onde: P(A) e P(B) são as probabilidades a priori

de A e B e; P(B|A) e P(A|B) são as probabilidades a posteriori respectivamente de B condicionada a A e de A condicionada a B. A regra de Bayes mostra como alterações nas probabilidades a priori (tendo em conta novas evidências) contribuem para rever as estimativas das probabilidades a posteriori. Isso permite que decisões em ambientes onde haja incer-tezas possam ser tomadas com um maior respaldo naquilo que é conhecido.

6 Exemplos de Aplicações em Vida Artificial

O grupo Cognitio da Escola Politécnica da USP tem trabalhado muitas das questões abordadas neste arti-go, tendo como foco principal de pesquisa tanto a ciência cognitiva (simulações de sistemas cognitivos) como a vida artificial e a computação evolucionaria. Os simuladores construídos para tratar destas ques-tões fazem normalmente uso de técnicas de computa-ção gráfica e de realidade virtual para representação visual dos ambientes e personagens, possibilitando boas formas de compreensão do que ocorre. (Netto, 2007). A seguir serão apresentados alguns trabalhos desenvolvidos no grupo.

6.1 Projeto WOXBOT

Esse projeto (Miranda, 2001) (Netto, 2007) tratou da simulação da evolução genética que permite um ajuste progressivo de personagens ao seu habitat. Observa-se aqui como seres de uma população, ao longo de gerações se adéquam para melhor sobrevi-ver no seu habitat. A adaptação aqui proposta é a de uma máquina de estados controladora do comporta-mento destes personagens. Trata, portanto da filogê-nese, ou seja, da formação ou desenvolvimento da espécie, na medida em que a adaptação é observada ao longo de gerações, ou seja, na espécie como um todo e não apenas em um de seus particulares indiví-duos. Do ponto de vista de escala de evolução pode-mos descrever este projeto como sendo um simulador de organismos vivos primitivos, pois não há aprendi-zado individual, mas apenas coletivo (espécie). Mas este projeto estabelece bases interessantes para tratar da questão da evolução por ilustrar um aspecto fun-

damental de como ela pode se manifestar para de-senvolver a vida. Naturalmente organismos mais complexos da escala animal também integram este grupo, possuindo sistemas muito mais sofisticados e em número muito maior, com o que se pode conse-quentemente observar diferentes especializações e propósitos (diferentes sistemas orgânicos).

O personagem foi dotado de um sistema sensori-al emulando a visão e de um sistema motor que per-mitisse seu deslocamento em uma arena. O propósito intrínseco deste personagem era o de ir ao encontro de pirâmides amarelas (simbolizando fontes de ener-gia) evitando o choque contra cubos vermelhos (re-presentando sorvedouros de energia). Os persona-gens são criados com uma quantidade inicial de energia, e permanecem vivos enquanto esta energia não se esgotar. A movimentação é controlada por um elemento de tomada de decisão, simulando uma mente virtual destes personagens. Tal mente deve ir se aperfeiçoando ao longo de gerações de modo a vir a atender ao propósito esperado, sem que se estabele-ça de forma prévia como vá fazer para atender a tal anseio intrínseco. O modelo proposto e usado para implantar tal mente foi o de uma MEF, controlada por dados provenientes do subsistema de visão, e cujas ações eram comandos para o subsistema motor. A MEF inicialmente atribuída a um personagem era qualquer uma dentre as possíveis máquinas represen-táveis com certo número de estados e transições entre os mesmos. O personagem colocado na arena era avaliado ao final de um período, observando-se a energia por ele acumulada, com o que eram classifi-cados entre melhores e piores. Tais personagens correspondiam a uma geração, ao final da qual seri-am criados novos personagens para substituí-los numa próxima geração, em um procedimento suces-sivo em busca de personagens bem adequados ao propósito estabelecido – sobreviver o maior tempo possível. Os personagens eram então escolhidos para um processo de reprodução que privilegiava aqueles melhores adaptados de certa geração, de modo que embora qualquer personagem pudesse ser seleciona-do para gerar descendentes, aqueles com maior pon-tuação teriam maior probabilidade de serem os elei-tos. O MMC foi usado para implantar tal conceito. Pode-se avaliar que é possível construir personagens que evoluem e fazem aquilo que deles se espera. A Figura 16 mostra sua interface gráfica.

Figura 16 - Estudo de Estratégias Evolucionárias no Comporta-

mento de Robôs

Page 17: VIDA ARTIFICIAL: CONCEITOS E APLICAÇÕES · para animação de personagens artificiais. Neste caso se procurava encontrar mecanismos para criar artifi-cialmente personagens 1 que

6.2 Projeto ALGA

Esse projeto envolvia um aquário como ambiente virtual e peixes que eram seus personagens (Figura 17) (Netto, 2007). Ele tratava da simulação do aprendizado, observando o indivíduo em particular. Neste caso foi proposto que o personagem seria ca-paz de tomar decisões usando para tal um raciocínio simulado, baseado na capacidade deste indivíduo de observar fatos e dar a eles diferentes graus de impor-tância, para poder então tomar suas decisões. O cará-ter linguístico desta proposta estava evidenciado tanto na representação do conhecimento que detinha do mundo, como também na capacidade de trocar este mesmo conhecimento com outros personagens através de um mecanismo de comunicação entre personagens, simulando o processo de fala e audição, acompanhados de suas respectivas interpretações. O estudo trata, portanto da ontogênese, ou de uma de suas manifestações – a do desenvolvimento do indi-víduo em decorrência da sua capacidade de aprendi-zado. Do ponto de vista da escala de desenvolvimen-to animal, esta simulação pode ser classificada como sendo aplicável a seres de uma complexidade inter-mediária, pois já possuem um aparato mental que lhes confere a capacidade de serem treinados indivi-dualmente para terem certos posicionamentos em determinadas situações. Mas este treinamento vai além daqueles de caráter puramente repetitivo (trei-namento motor), e passa a explorar uma mínima capacidade de raciocínio. O personagem pode obser-var fatos, e avaliá-los com base naquilo que sabe a respeito dos mesmos. E tal conhecimento é adquirido por um comportamento social no qual, os persona-gens ao serem colocados em contato uns com outros podem ensinar e aprender. O mais experiente passa para o outro alguns de seus conhecimentos. Conside-ra-se aqui conhecimento como a identificação de uma situação com a ação mais adequada para ser executada. Este projeto também possibilita a visuali-zação na Caverna Digital da Escola Politécnica (Fi-gura 18), possibilitando a imersão em um ambiente virtual.

Figura 17– Interface do Simulador (registro da evolução do apren-

dizado)

Figura 18 - Estudo de Linguagem dando Suporte ao Aprendizado

6.3 Projeto ALIVE

O projeto ALIVE (Neves, 2003) (Netto, 2007), é um estudo sobre laboratórios virtuais para simulação de VA, onde se demonstra que ferramentas de apoio integradas a um framework adequado permitem a rápida prototipação de experimentos em VA (Figuras 19 e 20). Neste sentido iniciou com o propósito de desenvolver um ambiente extensível e aberto para incorporação de novas funcionalidades na medida em que se fizessem necessárias para determinados expe-rimentos. A idéia era fornecer um ambiente para que cientistas de outras áreas como biólogos e ecologistas pudessem avaliar certos conceitos e, portanto não deveria exigir destes cientistas conhecimentos mais profundos de computação. O intuito foi fazer com que estes cientistas pudessem se concentrar na espe-cificação de certas funções que quisessem analisar, e dispor de um ambiente de simulação e apresentação gráfica para observar os resultados. Desta forma, e em consonância com as demais atividades do grupo, foi escolhida a linguagem JAVA para a programação e sua interface gráfica JAVA 3D para a representa-ção da cena e de seus personagens. Com isto é possí-vel realizar as simulações em um navegador (“browser”) na internet ampliando o escopo de uso desta ferramenta. Sobre o JAVA 3D foram criados um ambiente virtual genérico que pode ser refinado de acordo com as necessidades do experimento, e que conta com atributos para representar objetos físicos em um mundo virtual, e com isto simular leis físicas a que estes objetos estejam sujeitos, como gravidade ou colisão entre eles. Portanto é possível com esta plataforma fazer diversos estudos compor-tamentais dependendo de quais atributos sejam inte-grados aos personagens, bem como de quais métodos sejam implantados para tratar destes mesmos atribu-tos.

Um exemplo simulava o comportamento de se-res unicelulares, onde importava a sua adequação às condições ambientais representadas por diferentes concentrações de substâncias e pela disponibilidade de luzes em determinados comprimentos de onda aos quais eram mais sensíveis. Pode-se observar a evolu-ção genética da espécie que tentava sempre se ade-quar ao ambiente, mesmo que este sofresse modifi-cações. Assim por exemplo, em um dos casos come-çando com luz azul, sobreviviam dentre os persona-gens iniciais quase que somente aqueles sensíveis a este comprimento de onda, mas ao se mudar a radia-ção eletromagnética para vermelho, a evolução gené-tica permitia que a população também mudasse,

Page 18: VIDA ARTIFICIAL: CONCEITOS E APLICAÇÕES · para animação de personagens artificiais. Neste caso se procurava encontrar mecanismos para criar artifi-cialmente personagens 1 que

acompanhando as condições do ambiente em que viviam. Outro experimento tratou da capacidade dos seres de se reunirem em colônias para juntos se com-portarem como um ser mais forte e mais bem adapta-do ao ambiente. Neste caso também pode-se observar a formação de tais colônias, e como a dinâmica do ambiente se refletia sobre as mesmas, que podiam se reconfigurar em função das necessidades, se tornan-do maiores ou menores. Foi ainda observada em todas as simulações a capacidade de sustentação do ecossistema, ou seja, a longevidade das populações. Em muitos casos depois de atingir um equilíbrio com um número máximo de seres elas começavam a de-saparecer até a total extinção da espécie, o que sem dúvida pode ser de interesse para ecologistas verifi-carem o equilíbrio de ecossistemas e as condições que os mantêm vivos ou que os levam a uma pro-gressiva degradação culminando com sua extinção.

Por fim foi também realizada uma versão para RV, que pode ser executada na Caverna Digital da Escola Politécnica, com o que os cientistas ganham um maior envolvimento com o experimento, passan-do a participar do mesmo, por ficarem imersos no mundo virtual.

Figura 19 – Uma possível função vital implementada com RNA. Exemplos de sistema presa-predador e desenvolvimento de colô-

nias

Figura 20 – Exemplos de comportamento emergentes (cardume de

peixes e bando de pássaros)

6.4 Projeto V1V0

O projeto V1V0 (Figura 21) foi concebido para per-mitir a simulação de personagens humanos virtuais, com particular destaque para a questão do convenci-mento, ou seja, da influência que a opinião de um personagem tem sobre a de outro (Netto, 2007). Neste sentido o objetivo foi, quando comparado a outros trabalhos do grupo, de tratar questões cuja escala de tempo é bastante pequena. Cabe lembrar que um primeiro trabalho focou a evolução das espé-cies (genética) e outro a capacidade de aprendizado do indivíduo. Neste trabalho o foco está em conven-cer alguém a respeito de alguma coisa, fato cuja duração fica restrita a um ou poucos encontros. Além disto, é algo que ocorre apenas com os seres mais desenvolvidos da escala animal, em particular com os seres humanos. Por esta razão os personagens escolhidos foram os humanos virtuais. O projeto iniciou-se com a definição de um grupo social, cujas relações demandavam convencimentos mútuos. No entanto uma primeira questão tinha que ser resolvida – a de como identificar o interlocutor para saber então qual postura ter na relação, objetivando o su-cesso no processo de convencimento. Saber a priori a identidade de cada personagem tornava o problema menos interessante, pois então não haveria dúvida na postura a ser adotada. Por outro lado, desconhecer totalmente este fato também criava dificuldades. Assim optou-se por fazer uso de um estereótipo, que sugeria qual o papel do personagem na comunidade, mas deixando espaço para alguma dúvida ou incerte-za. A partir de então o projeto tomou outro rumo, o do uso de raciocínio probabilístico para dar subsídios para a consequente arguição em prol do convenci-mento. E para tal foram usados modelos Bayesianos.

Figura 21 - Avaliação de Cenários

6.5 Projeto OSACS

Paiva (2011) desenvolveu um modelo para analisar aspectos cognitivos como comunicação e aprendiza-do. O objetivo foi reproduzir alguns aspectos do comportamento humano em situações como a disse-minação de informações através de meios de comu-nicação em massa (rede social), considerando cená-rios de propaganda, jornalismo e publicidade. Os

Page 19: VIDA ARTIFICIAL: CONCEITOS E APLICAÇÕES · para animação de personagens artificiais. Neste caso se procurava encontrar mecanismos para criar artifi-cialmente personagens 1 que

agentes recebem as informações e após um meca-nismo de avaliação interna, decidem o que assimilar e o que transmitir utilizando uma MEF emocional. Eles recebem informações publicadas em meios de comunicação em massa, conversam com outros agen-tes e tomam decisões considerando não apenas fun-ções probabilísticas, mas também a influência do ambiente e da sociedade na qual estão inseridos. De fato isto foi feito atribuindo níveis de interesse e importância (ou impacto) para as informações, seja de forma geral, seja respeitando os perfis dos agentes (ex: interesse maior por esporte e menor por políti-ca). Foi então possível verificar que os agentes com seus interesses, perfis e personalidades atuam na disseminação da informação e como são por elas moldados, face às suas diferentes experiências. Além disto, as funções e a ponderação que os agentes con-sideram para avaliar o que assimilam e sobre o que vão falar dependem do histórico pessoal, assim como o número de amigos que possuem e o peso que dão a cada um deles. Foi possível visualizar a evolução do conhecimento dos agentes e a dinâmica do fluxo de informação que acontece na sociedade, além do nú-mero total de agentes que conhece cada um dos as-suntos (representados pelas cores) (Figura 22). Com esta avaliação pode-se, por exemplo, mostrar quais itens são mais comprados em função das diferentes estratégias de divulgação que podem ser adotadas em um plano de marketing, ou quais os meios mais efi-cientes para disseminação de notícias, considerando diferentes ferramentas como TV, web, SMS, em outras (todas naturalmente simuladas no contexto desta aplicação).

Figura 22 - Interface da simulação com 10 agentes

6.6 Projeto SOCIAIS

Esse projeto se propõe a estudar sociedades virtuais, procurando entender como se formam grupos sociais e como seus personagens interagem. Trata-se da combinação das áreas de sistemas multi-agentes, vida artificial e computação cognitiva, onde os agentes são concebidos com capacidades de comunicação e

tomada de decisão, e o que se observa é a dinâmica do seu comportamento social.

A finalidade é observar o comportamento coleti-vo de uma sociedade em diferentes cenários, e de avaliar o resultado decorrente das interações entre os mesmos conforme suas variadas características. Des-ta forma, trata-se da construção de um ambiente de simulação social simples habitado por agentes autô-nomos que possuem capacidade cognitiva permitindo a percepção do ambiente, a tomada de decisões, o diálogo com os outros participantes, o compartilha-mento ou a competição por recursos, em função do que foi aprendido por meio da observação e experi-mentação.

O objetivo central é entender as influências mú-tuas a que estão sujeitos os agentes nestas comunida-des, quando aqueles de uma comunidade interagem com os de outras comunidades em um processo de miscigenação cultural (Figura 23).

Figura 23 - Representação da mudança de participantes entre os

grupos.

6.7 Projeto NEUROROBOTS

Esse projeto (Netto, 2007) trata de neuro-evolução, ou seja, de mecanismos evolutivos aplicados a redes neurais com o intuito de criar sistemas bem adequa-dos ao seu propósito. Nestes casos tais sistemas nor-malmente integram controladores de personagens virtuais ou mesmo posteriormente de seus equivalen-tes reais – robôs cujo projeto e desenvolvimento faz uso de técnicas desta natureza. O objetivo neste caso é combinar procedimentos de aprendizado com ou-tros de evolução, para que redes neurais possam ser ajustadas da melhor maneira ao seu propósito. Estas técnicas são particularmente recomendáveis para configurar redes neurais em situações em que não se conhece bem a priori as condições em que elas irão operar, e quando procedimentos de aprendizado clássicos não apresentam bom desempenho.

Cabe ressaltar que o mecanismo de adaptação proposto é não apenas o clássico ajuste de pesos sinápticos, mas sim a combinação destes com suces-sivas reconfigurações topológicas da rede à procura de uma rede que desempenhe bem aquilo que dela se espera.

Como estudos de casos para avaliação foram usados: a) melhoria de sistemas de detecção / decisão

Page 20: VIDA ARTIFICIAL: CONCEITOS E APLICAÇÕES · para animação de personagens artificiais. Neste caso se procurava encontrar mecanismos para criar artifi-cialmente personagens 1 que

para procura de alimentos em agentes virtuais habi-tando um cenário onde alimentos estão espalhados de forma desconhecida a priori pelos agentes; b) contro-le do pendulo invertido, um problema de física que pode ser resolvido com um controlador adaptativo, e que neste caso foi construído a partir da técnica pro-posta.

6.8 Projeto MASTER-MIND

Esse projeto (Netto, 2007) avaliou o processo cogni-tivo envolvido no aprendizado. O objetivo foi enten-der como ocorre o aprendizado, particularmente nas situações em que ele decorre de uma observação de procedimentos realizados por terceiros. Nestes casos o aprendiz tenta então inferir regras para que possa repetir tais procedimentos em situações análogas. Este projeto se propôs a oferecer um suporte compu-tacional para acompanhamento deste processo, de modo que agentes virtuais, observando os humanos, pudessem criar modelos funcionalmente equivalentes àqueles desenvolvidos pelo humano durante sua aprendizagem. Com isto, na medida em que tais agentes também desenvolvem um método de apren-dizagem, pode-se estudá-los e assim propor estraté-gias corretivas ou de apoio para melhorar o aprendi-zado do aluno, que serviu de base para o agente vir-tual. Como plataforma para ensaio foi usado o jogo Master Mind (Figura 24).

Figura 24 – Interface do jogo MasterMind

6.9 Projeto GENPOLIS

Este projeto trata de simulação de transito em áreas metropolitanas e tem por objetivo propor e avaliar mecanismos de auxilio para cálculo da temporização de semáforos. Dada a complexidade de uma rede altamente interligada como as vias urbanas, o uso de computação evolucionária se mostra uma alternativa atraente para tentar resolver este problema. Neste sentido foram usados AG para encontrar parâmetros ótimos de temporização para controle dos semáforos (tempo de ciclo, proporção entre verde e vermelho, e atraso) para uma determinada situação (região da malha urbana em um cenário típico de ocupação). Cada valor atribuído ao conjunto de parâmetros é considerado como um individuo, e as sucessivas

gerações das populações do AG permite uma procura eficiente por indivíduos que representem boas solu-ções para este problema, ou seja, temporizações adequadas para minimizar os congestionamentos e aumentar a velocidade média de deslocamento dos veículos na região considerada. A Figura 25 a seguir apresenta a interface do simulador GenPolis.

Figura 25 – Interface do Simulador GenPolis

7 Considerações Finais

Este artigo apresentou conceitos de VA e discorreu sobre modelos e métodos adequados para realizar a simulação de algumas das características dos siste-mas que tem propriedades que os aproximem daquilo que reconhecemos como vida. Dada a complexidade destes fenômenos há uma necessidade de se poder ter representações gráficas para apresentar tais simula-ções, e neste contexto a RV pode contribuir muito para a realização de experimentos interessantes.

Este artigo teve como propósito discorrer de forma genérica sobre VA, mas tratando de alguns dos seus principais aspectos, seja do ponto de vista con-ceitual, seja do ponto de vista prático para a constru-ção de ferramentas adequadas para implantação de simuladores de VA.

Este artigo teve também por propósito apresentar tais ferramentas que podem ser usadas em diversas aplicações, sobretudo naquelas em que aspectos de adaptação e inteligência sejam abordados.

Agradecimentos

Agradecemos à Continental A.G. e ao CNPq pe-las bolsas de doutorado concedidas a Luciene Cristi-na Alves Rinaldi.

Agradecemos ainda a todos os alunos e mem-bros do Cognitio que participaram dos trabalhos aqui mencionados.

Page 21: VIDA ARTIFICIAL: CONCEITOS E APLICAÇÕES · para animação de personagens artificiais. Neste caso se procurava encontrar mecanismos para criar artifi-cialmente personagens 1 que

Referências Bibliográficas

Adami, C. (1998) “Introduction to Artificial Life”, Telos, Santa Clara.

Arbib, M. A. (1969) “Theories of Abstract Automa-ta” Prentice-Hall.

Atkinson, R. L.; Atkinson, R. C.; Smith, E. E.; Bem, D. J. (1995) “Introdução à Psicologia”. 11 ed. Artes Médicas, Porto Alegre.

Bäck, T. (1996) “Evolutionary Algorithms in Theory and Practice” Oxford University Press, New York.

Banzhaf, W.; Nordin, P.; Keller, R. E.; Francone, F. D. (1998) “Genetic Programming: an introduc-tion on the automatic evolution of computer programs and its applications” Morgan Kauf-mann, San Francisco.

Barcellos, J. C. H. (2000) “Algoritmos Genéticos Adaptativos: Um Estudo Comparativo”. Disser-tação de Mestrado em Engenharia de Sistemas Digitais, Politécnica, USP, São Paulo.

Barreto, J. M. (2002) “Introdução às Redes Neurais Artificiais”. Florianópolis: UFSC. Laboratório de Conexionismo e Ciências Cognitivas UFSC – Departamento de Informática e de Estatística, Florianópolis, 2002. Disponível em <http://www.inf.ufsc.br/~barreto/tutoriais/Survey.pdf >. Acesso em 15 mar 2008.

Bentley, P. J. (1999) “Evolutionary Design by Com-puters” Morgan Kauffmann, San Francisco.

Castro, F. C. C. de; Castro, M. C. F. de. (2008) “Re-des Neurais Artificiais” PUCRS. Disponível em: <http://www.ee.pucrs.br/~decastro/RNA_hp/pdf/RNA_C1.pdf>. Acesso em: 04 jun 2008.

Champandard, A. J. (2003) AI Game Development, Chapter 11: Ruled-Based Systems. New Riders Publishing.

Charniak, E.; Mcdermott, D. (1985) “Introduction to Artificial Intelligence” Addison-Wesley.

Cony, C. A.; Bicho, A. L.; Jung, C. R.; Magalhães, L. P.; Musse, S. R. (2007) “A perceptive model for virtual agents in crowds” Proceedings of Computer Graphics International (CGI), v. 1, Itaipava. p. 141-150 Disponível em: <http://www.lsi.usp.br/~rponeves/>. Acessado em: 08 abr. 2005.

Futuyama, D. J. (1992) “Biologia Evolutiva”. Tradu-ção: Fábio de Melo Sene, Sociedade Brasileira de Genética, Ribeirão Preto.

Gill, A. (1962) Introduction to the Theory of Finite-state Machines. McGraw-Hill.

Goldberg, D. E. (1989) “Genetic Algorithms in Search, Optimization, and Machine Learning” Addison-Wesley.

Gutiérrez, A.; Frédéric, V.; Thalmann, D. (2008) Stepping into Virtual Reality, Springer-Verlag, London, ISBN: 978-1-84800-116-9.

Guytohn, A. C.; Hall, J. E. (2010) Textbook of Med-ical Physiology. Saunders Press, 12th ed.

Hammersley, J. M.; Handscomb, D. C. (1964) Monte

Carlo Methods, London: Methuen. Haykin, S. (2002) “Redes Neurais” Bookman, 2ª

Edição, Brasil. Judson, H. F. (1979) “The Eighth Day of Creation:

Makers of the Revolution in Biology” Simon & Schuster, New York.

Kam, T.; Villa, T.; Brayton, R.; Sangiovanni-Vincentelli, A. (1997) Synthesis of Finite State Machines: Functional Optimization. Kluwer Ac-ademic Publishers, Boston.

Karrer, D.; Carreira, R. F.; Vasques, A. S.; Benzecry, M. de A. (2005) “Redes Neurais Artificiais: conceitos e aplicações”. In IX Encontro de En-genharia de Produção da UFRJ. Rio de Janeiro.

Koza, J. R. (1992) “Genetic Programming of Com-puters by Means of Natural Selection” MIT, Cambridge.

Langton, G. C. (1995) “Artificial Life: An Overview (Complex Adaptive System)” MIT Press.

Lewin, R. (1993) “Complexity, Life at the Edger of Chaos” University Press, Chicago.

Ludwig Jr, O.; Costa, E. M. M. (2007) “Redes Neu-rais: Fundamentos e Aplicações com Programas em C” Ciência Moderna, Rio de Janeiro.

Michalewic, Z. (1996) “Genetic Algorithms + Data Structures = Evolution programs”, Springer Ver-lag.

Miranda, F. R. et al. (2001) “An Artificial Life Ap-proach for the Animation of Cognitive Charac-ters”, Computer & Graphics, vol. 25, Elsevier Science, Amsterdam. p. 955-964.

Mitchell, M. (1997) “An Introduction to Genetic Algorithms” MIT Press.

Moore, W. J. (1989) “Life and Thought” Cambridge: Cambridge University Press.

Moore, W. J. (1997) “Schrödinger’s entropy and living organisms” Nature, v. 327. p. 561.

Murphy, M. P.; O’Neill, L. A. J. (1997) “O que é vida? 50 anos depois” Fundação Editora da UNESP, São Paulo.

Myhll, J. (1964) “The Abstract Theory of Self-Reproduction” In: Mesarovic, M. D. (Ed.). Views on General Systems Theory. Jhon Wiley & Sons Inc, New York. p. 106-118.

Netto, M. L. (2007) “Computação Evolutiva e Cog-nitiva: Simulação em Vida Artificial e Cogni-ção” Tese de Livre Docência em Neurocompu-tação Eletrônica e Sistemas Adaptativos, Poli-técnica, USP, São Paulo.

Netto, M. L. et al. (2004) “Evolutionary Learning Strategies for Artificial Life Characters” Recent Advances in Simulated Evolution and Learning, Singapore.

Neumann, J. Von. In: Burks A. W. (Ed.) (1996) “Theory of Self-Reproducing Automata" Uni-versity of Illinois Press. Urbana.

Page 22: VIDA ARTIFICIAL: CONCEITOS E APLICAÇÕES · para animação de personagens artificiais. Neste caso se procurava encontrar mecanismos para criar artifi-cialmente personagens 1 que

Neves, R. P. O. (2003) “A.L.I.V.E. Vida Artificial em Ambientes virtuais: Uma Plataforma Expe-rimental em Realidade Virtual para Estudos dos Seres Vivos e da Dinâmica da Vida”. Disserta-ção de Mestrado em Engenharia de Sistemas Eletrônicos, Politécnica, USP, São Paulo.

Neves, R. P. O. (2005) “Página do projeto Autômato Celular”

Obitko, M. (1998) “Algoritmos Genéticos”. Disponí-vel em: <http://cs.felk.cvut.cz/~xobitko/ga/>. Acessado em: 22 abr. 2005.

Osorio, F. (1999) “Redes Neurais – Do Aprendizado Natural ao Aprendizado Artificial” I Fórum de Inteligência Artificial, Canoas.

Paiva, D. C.(2011) Modelagem e simulação de agen-tes com aspectos cognitivos para avaliação de comportamento social. Tese (Doutorado) – Es-cola Politécnica, Universidade de São Paulo, São Paulo, 116 p.

Pauling, L. (1987) “Schrödinger’s contribution to chemistry and biology” Schrödinger: Centenary Celebration of Polymath. Kilmister, C. W. (Ed.) Cambridge University Press, Cambridge. p. 225-233.

Perutz, M. F. (1987) “Erwin Schrödinger’s What is Life and molecular biology” In: Kilmister, C. W. (Ed.) Schrödinger: Centenary Celebration of a Polymath. Cambridge University Press, Cam-bridge. p. 234-151.

Pletsch, E. (2006) “Modelagem de Percepção de Humanos Virtuais baseada em dados Geométri-cos e Ray-Casting” Dissertação (Mestrado em Computação Aplicada) - Universidade do Vale do Rio dos Sinos. Orientador: Soraia Raupp Musse.

Ray, T. S. (1992) "An Approach to the Synthesis of Life". In: Langton, C.G. et al. (ed.) Proceedings of Artificial Life II. Addison-Wesley, Redwood City, p. 371-408.

Ribeiro, R. J. L.; Treleaven, P. C.; Alipe, C. (1994) “Genetic-Algorithm Programming Environ-ments” Computer, Jun.

Rich, E.; Knight, K. (1993) Inteligência Artificial, ed. 2, São Paulo: Makron Books.

Russel, S., Norvig, P. (2004) “Inteligência Artificial” Elsevier, Editora Campus, Tradução da Segunda Edição, Brasil.

Sabbatini, R. M. E. (2003) “Neurônios e Sinapses: a história de sua descoberta”. Revista Cérebro & Mente, 25, maio. 2003.

Schuneider, E. D. (1987) “Schrödinger’s grand theme shortchanged” Nature, v. 328. p. 300

Sims, K. (1994) “Evolving 3D Morphlogy and Be-havior by Competition” Artificial Life.

Starkweather, T.; Mcdaniel, S.; Mathias, K.; Whitley, C. (1991) “A comparison of genetic sequencing operators”. International Conference on Genetic Algorithms, Los Altos. Morgan Kaufmann. p. 69-76.

Sutton, R. S.; Barto, A. G. (1998) Reinforcement Learning: An Introduction, MIT Press.

Tafner, M. A. (1998) “As redes neurais artificiais: aprendizado e plasticidade”. Cérebro Mente, São Paulo, v. 5.

Terzopoulos, D. (1999) “Artificial Life for Computer Graphics”, Communications of the ACM, vol. 42, nr. 8, EUA. p. 33-42.

Thalmann, N. M; Thalmann, D. (1994) “Artificial Life and Virtual Reality” John Wiley and Sons.

Weiss, G. (1999) “Multiagent Systems” MIT Press, Cambridge.

Winston, P. H. (1992) “Artificial Intelligence”, 3 ed., Pearson Education.

Wolfram, S. (1994) “Cellular Automata and Com-plexity: Collected Papers” Addison-Wesley.

Wooldridge, M. (2002) “An Introduction to MultiA-gent Systems” John Wiley & Sons, England.

Wooldridge, M., Jennings, N. (1995) “Intelligent Agents: Theory and Practice” Knowledge Engi-neering Review. Cambridge University Press. United Kingdom.

Wooldridge, M., Rao, A. (1999) “Foundations of Rational Agency” Kluwer, Dordrecht, Nether-lands.