Um protótipo para o ensino da seleção natural utilizando algoritmo genético para a evolução de...

20
Um protótipo para o ensino da seleção natural utilizando algoritmo genético para a evolução de criaturas Willian Eiji Yassue 1 Mauro Miazaki 1 (orientador) Andres Jessé Porfirio 2 (co-orientador) 1 Departamento de Ciência da Computação (DECOMP) Universidade Estadual do Centro-Oeste (UNICENTRO) Rua Camargo Varela de Sá, 3 – CEP 85.040-080 Guarapuava – PR – Brasil – Telefone: (42) 3629-8100. 2 Universidade Tecnológica Federal do Paraná (UTFPR) Rua Presidente Zacarias de Góes, 875 - CEP 85015-430 Guarapuava - PR – Brasil – Telefone: (42) 3621-6850 {eiji.yassue, maurom}@gmail.com, [email protected] Abstract. The discoveries of Charles Darwin in 1859 revolutionized several field. Among them, the computer science was benefited from several key concepts to solve problems using algorithms inspired by the theory of evolution. In this work, we used the Genetic Algorithm in the evolution of the behavior of creatures in an artificial environment with the goal of developing a prototype of a simulator of natural selection as a tool to support the learning and teaching of Darwinian theory. Key-words: Genetic Algorithm, natural selection Resumo. As descobertas de Charles Darwin em 1859 revolucionaram várias áreas. Entre elas, a computação foi beneficiada por vários conceitos chaves para solucionar problemas utilizando algoritmos inspirados na teoria da evolução. Neste trabalho, foi utilizado o Algoritmo Genético na evolução do comportamento de criaturas em um ambiente artificial com o objetivo de desenvolver um protótipo de um simulador da seleção natural como ferramenta de suporte ao ensino e aprendizagem da teoria darwinista. Palavras-chave: Algoritmo Genético, seleção natural 1. Introdução A teoria da seleção natural proposta pelo biólogo e naturalista Charles Darwin em 1859 [DARWIN, 2009], revolucionou o pensamento da sociedade, meios religiosos e científicos ao propor a teoria da evolução ao publicar o livro “A origem das espécies”. A computação foi beneficiada com o surgimento de novos conceitos, métodos e técnicas inspiradas no evolucionismo. Os Algoritmos Evolutivos, nos quais o Algoritmo Genético (AG) se enquadra, são exemplos de modelos computacionais inspirados no evolucionismo. Com o propósito de desenvolver um simulador didático da seleção 1

Transcript of Um protótipo para o ensino da seleção natural utilizando algoritmo genético para a evolução de...

Um protótipo para o ensino da seleção natural utilizandoalgoritmo genético para a evolução de criaturas

Willian Eiji Yassue1

Mauro Miazaki1 (orientador)

Andres Jessé Porfirio 2 (co-orientador)

1Departamento de Ciência da Computação (DECOMP)Universidade Estadual do Centro-Oeste (UNICENTRO)

Rua Camargo Varela de Sá, 3 – CEP 85.040-080Guarapuava – PR – Brasil – Telefone: (42) 3629-8100.

2Universidade Tecnológica Federal do Paraná (UTFPR)Rua Presidente Zacarias de Góes, 875 - CEP 85015-430Guarapuava - PR – Brasil – Telefone: (42) 3621-6850

{eiji.yassue, maurom}@gmail.com, [email protected]

Abstract. The discoveries of Charles Darwin in 1859 revolutionized severalfield. Among them, the computer science was benefited from several keyconcepts to solve problems using algorithms inspired by the theory ofevolution. In this work, we used the Genetic Algorithm in the evolution of thebehavior of creatures in an artificial environment with the goal of developinga prototype of a simulator of natural selection as a tool to support thelearning and teaching of Darwinian theory.

Key-words: Genetic Algorithm, natural selection

Resumo. As descobertas de Charles Darwin em 1859 revolucionaram váriasáreas. Entre elas, a computação foi beneficiada por vários conceitos chavespara solucionar problemas utilizando algoritmos inspirados na teoria daevolução. Neste trabalho, foi utilizado o Algoritmo Genético na evolução docomportamento de criaturas em um ambiente artificial com o objetivo dedesenvolver um protótipo de um simulador da seleção natural comoferramenta de suporte ao ensino e aprendizagem da teoria darwinista.

Palavras-chave: Algoritmo Genético, seleção natural

1. Introdução

A teoria da seleção natural proposta pelo biólogo e naturalista Charles Darwin em 1859[DARWIN, 2009], revolucionou o pensamento da sociedade, meios religiosos ecientíficos ao propor a teoria da evolução ao publicar o livro “A origem das espécies”. Acomputação foi beneficiada com o surgimento de novos conceitos, métodos e técnicasinspiradas no evolucionismo. Os Algoritmos Evolutivos, nos quais o AlgoritmoGenético (AG) se enquadra, são exemplos de modelos computacionais inspirados noevolucionismo. Com o propósito de desenvolver um simulador didático da seleção

1

natural, neste trabalho será utilizado o AG como mecanismo de evolução docomportamento das populações ao longo de gerações.

Segundo Darwin (2009), suas teorias mostram a evolução e concepção da lutapela sobrevivência sobre dois princípios: a evolução biológica, na qual todas as formasde vida estão em constante evolução, e a seleção natural, que promove a variabilidadeentre seus descendentes, permitindo a sobrevivência dos melhores e/ou mais adaptados,promovendo o melhoramento e aprimoramento genético, e a modificação entre asespécies.

A teoria moderna da evolução mescla as ideias de Darwin sobre seleção naturalcom as experiências de Mendel sobre princípios básicos da herança genética, criando osalicerces da genética populacional. Esse princípio diz que a variabilidade entre osindivíduos de uma população é resultado da reprodução sexuada a partir de mecanismosgenéticos como mutação e cruzamento de genes [REZENDE, 2005].

Cientistas da computação, matemáticos e engenheiros estão sempre em busca denovas ideias para resolver problemas complexos em que a ciência atual não tem ummétodo satisfatório. Neste contexto, a natureza tem se mostrado inspiradora para odesenvolvimento de pesquisas em torno de modelos computacionais inteligentes com referências aos princípios naturais. Por exemplo, a capacidade de processamento dosistema nervoso central de animais superiores inspirou a criação de Redes Neurais, e oprocesso natural de evolução é referência para Algoritmos Evolutivos [TANOMARU,1995].

Baseado na teoria Darwiniana, cientistas e pesquisadores inspirados em váriosmecanismos de evolução criaram diversos métodos de busca e otimização paraproblemas complexos que são intratáveis com métodos clássicos [GONÇALVES,2013]. Assim, surgiu a Computação Evolutiva, cujos métodos são os chamadosAlgoritmos Evolutivos ou Evolucionários, que são baseados nos princípios da evoluçãobiológica, como a seleção natural de Charles Darwin e a herança genética de GregorMendel.

Os Algoritmos Evolutivos são modelos computacionais com processosadaptativos de otimização, propondo um modelo com populações que evoluem paramelhorar qualitativamente uma solução em um determinado problema [TANOMARU,1995]. Com grande quantidade de métodos e paradigmas, destacam-se três categoriasque são a Programação Evolutiva, proposto por Fogel et al em 1966, EstratégiasEvolutivas, proposto inicialmente por Ingo Rechenberg em 1973, e os AlgoritmosGenéticos, introduzidos por John Holland em 1975 [SILVA, 2001].

O Algoritmo Genético foi apresentado por John Holland em seu trabalho“Adaptation in natural and articial systems” em 1975 com objetivo de formalizarmatematicamente e explicar os conceitos neo-darwinista da teoria da evolução formando um alicerce para pesquisas e em diversas aplicações [REEVES, 2013], sendoo método mais difundido e estudado entre os Algoritmos Evolutivos. Destacam-setambém pela flexibilidade e simplicidade de sua implementação e a eficácia emencontrar uma solução em um grande espaço de busca [TANOMARU, 1995].

Nos últimos 25 anos, as indústrias dos jogos se concentraram na tecnologia

2

gráfica, permitindo os resultados mais realistas com gráficos 3D e engines avançadas.Recentemente, técnicas sofisticadas de IA começaram a ser aplicadas em conjunto deuma variedade de engines gráficas, físicas e de áudio. O foco do mercado atual éelaborar jogos com personagens com comportamentos mais realistas que podemaprender e se adaptar de acordo com a situação, ao invés de melhor resolução gráfica.Os Algoritmos Genéticos possuem várias aplicações em jogos para otimização, busca decaminhos, evolução de comportamento, aprendizado e desenvolvimento de estratégias.Também apresentam potencial para atuar em áreas em que técnicas tradicionaisutilizadas em jogos possuem deficiências [CROCOMO, 2013].

Assim, este trabalho tem como objetivo desenvolver um protótipo para aaprendizagem da seleção natural, servindo como material auxiliar de ensino. Utilizado oAG como mecanismo de evolução do comportamento de cada indivíduo. As vantagens edesvantagens de simuladores didáticos e simuladores de jogos que utilizam AGs serãoexploradas para o desenvolvimento das abordagens adotadas no protótipo a serdesenvolvido neste trabalho, além de novas abordagens próprias. A ênfase destetrabalho está na implementação dos mecanismos de seleção natural propostos porDarwin, na implementação do AG, e no projeto da interface gráfica envolvendoelementos visuais e de obtenção de informações da simulação.

2. Materiais

Nesta sessão serão abordados os componentes que contribuem no desenvolvimentodeste trabalho:

IDE Netbeans: é um ambiente de desenvolvimento gratuito para váriossistemas, com suporte para diversas linguagens de programação [ORACLECORPORATION, 2013]. Para o desenvolvimento deste trabalho, será utilizada a IDENetbeans 7.3 com suporte à linguagem de programação Java.

Java: a linguagem Java é consolidada no mercado e entre os programadores.Dispõem de vários recursos e documentação clara e bem definida para o auxilio nodesenvolvimento desta proposta.

Macromedia Fireworks 8: este editor de imagens da Macromedia contémrecursos poderosos para a manipulação de imagens, que foram utilizados no protótipo[ENTERBRAIN, 2013].

RPG Maker VX Ace: é uma ferramenta para criação de jogos no estilo Role-Playing Game (RPG) e disponibiliza inúmeros recursos para a criação. A ferramentainspirou o desenvolvimento do ambiente no estilo RPG e com alguns materiais para acriação dos cenários [ADOBE SYSTEM, 2013].

NPCs evolutivos: no trabalho desenvolvido por Crocomo, Miazaki e Simões(2007), foi desenvolvido um jogo com o propósito de utilizar AG para possibilitar aevolução e adaptação dos comportamentos de agentes controlados pelo computador(Non-Player Characters – NPCs). Um exemplo de tela do ambiente de jogo pode servisualizado na Figura 1. O jogador controla um personagem onívoro (criatura azul naFigura 1) com o objetivo de sobreviver em um ambiente com potenciais predadores. Ocomputador controla duas populações NPCs, uma com personagens herbívoros e outra

3

com carnívoros (criaturas verdes e vermelhas, respectivamente). O AG é auxiliado poruma tabela de navegação que contém todos os estados possíveis, fornecendo ummovimento para cada estado do agente (mais detalhes na Seção 2.7). Os conceitos eideias propostos para utilizar AG em NPCs foram úteis no desenvolvimento do trabalhoproposto.

Figura 1: Tela do jogo com NPCs evolutivos desenvolvido por Crocomo,Miazaki e Simões (2007)

Natural Selection: desenvolvido pela University of Colorado at Boulder (2013),este é um simulador gratuito, simples e interessante que incorpora de forma didáticaassuntos como evolução, genética e seleção natural. O usuário controla um ambientepovoado inicialmente por coelhos de cor branca, com a possibilidade de interagir comfatores de seleção e ambiente. O objetivo é habitar o planeta. A interface simplesincentiva o usuário a explorar as ferramentas e painéis disponíveis, como gráficos quemostram as informações da população em tempo real, permitindo aprendizado porexperimentação. Na Figura 2, são mostrados exemplos de telas deste simulador.

Figura 2: Exemplos de telas do simulador Natural Selection

3. Métodos

3.1. Algoritmo Evolutivo

Os Algoritmos Evolutivos ou Evolucionários são modelos computacionais baseados emmecanismos naturais de evolução para resolver determinados problemas. Apesar dagrande variedade de modelos computacionais, todos têm em comum o conceito deevolução das espécies descrito por Charles Darwin e a utilização de operadoresgenéticos inspirados em fenômenos naturais como seleção, mutação e cruzamento[LINDEN, 2006].

4

A estrutura do Algoritmo Evolutivo é semelhante ao processo de evoluçãonatural. A partir de uma população composta de indivíduos (cromossomos), utilizando-se operadores genéticos, são gerados novos indivíduos (filhos) que tendem a ser maisbem adaptados ao ambiente (solução de um problema) do que a geração anterior. Apartir da nova geração, repete-se o processo para criar a geração seguinte, e assim ocorresucessivamente. Os operadores genéticos são aproximações computacionais defenômenos comuns na natureza, como a reprodução na forma sexuada (variabilidade), amutação genética (mutação), a recombinação genética (cruzamento) ou qualquer outrocomportamento natural que os programadores possam reproduzir [LINDEN, 2006].

3.2. Algoritmo Genético

Para resolver um determinado problema, um Algoritmo Genético trabalha com umapopulação representando as possíveis soluções, que evolui sob condições dosoperadores probabilísticos. Na metáfora biológica, há uma tendência dos indivíduosrepresentarem soluções gradativamente melhores a medida que o processo evolutivoprogride [TANOMARU, 1995].

A avaliação é a maneira como as criaturas interagem no ambiente, ou seja,utilizando a sua heurística de navegação para sobrevivência e consequentementebuscando o acasalamento. Neste trabalho, a cada período de 150 dias é feita areprodução para todas as populações. A cada par de criaturas, é gerada uma novacriatura, que é adicionada à população (não sobrescreve os pais). Desta forma, serãointroduzidas novas criaturas no ambiente. Biologicamente, os animais selecionam seusparceiros com o objetivo de propagação de seus genes e melhoramento de seusdescendentes através da fusão dos seus materiais genéticos [KREBS; DAVIES, 1996].Analogamente na computação, o melhoramento é feito pelo algoritmo genético querepresenta o processo de seleção e a formação de um novo indivíduo com métodos decruzamento e mutação, como é mostrado na Figura 3.

Figura 3: Fluxograma do AG

Os operadores de cruzamento ou (em inglês: crossover) e mutação são osprincipais mecanismos para a exploração de grandes regiões de busca. A reproduçãofunciona através da combinação de partes diferentes de seus pais para criar seusdescendentes (indivíduo). Esses descendentes herdam as características de seus pais

5

através da herança.

O cruzamento é a combinação do material genético de dois pais. Neste trabalho,é utilizado o crossover uniforme. Para cada posição do cromossomo, é escolhidoaleatoriamente um bit de qualquer um dos pais. Isto significa que cada bit é herdado deforma independente de qualquer outro bit. A sua configuração ocorre através daespecificação de um valor de probabilidade chamado taxa de cruzamento [WHITLEY,2013].

Para cada par de pais, é gerada uma mascará com bits aleatórios, de acordo coma taxa de cruzamento. Por exemplo, se esta taxa for de 80%, isto significa que cada bitna máscara possui 80% de chance de ter valor 1 e 20% de chance de ter valor 0. Se o bitda máscara for 1, então o bit do pai1 é copiado para o filho. Caso seja 0, é copiado o bitdo Pai2.

Figura 4: Exemplo do operador de cruzamento

O operador de mutação é responsável por alterar o material genético doindivíduo, melhorando a diversidade do cromossomo. Geralmente, é utilizada uma taxade mutação para configurar seu funcionamento, que é um valor entre 0 e 1 e define aprobabilidade de ocorrer a mutação em um bit [GONÇALVES, 2013].

Figura 5: Exemplo do operador de mutação

6

Para cada gene no cromossomo, é sorteado um valor entre 0 e 1. E caso estejadentro do intervalo da taxa de mutação (valor entre 0 e o valor da taxa), é feita a troca.Isto significa que o gene 0 é trocado por 1 e vice-versa.

O critério de seleção dos parceiros é de grande importância no AlgoritmoGenético, pois influencia significativamente na formação das próximas gerações. Ocritério de seleção deve privilegiar os cromossomos associados com o melhor fitness[HOLLAND, 2013]. Neste trabalho, foi utilizado o método roleta de seleção (em inglês:roulette wheel), é simples e muito utilizado. Sua abordagem utiliza uma roleta fictíciaonde o tamanho da roleta é a soma de todos os fitness dos indivíduos e cada indivíduoreceberá uma área proporcional ao seu fitness. Então, quanto maior é o fitness, maior achance de ser escolhido [HOLLAND, 1992].

Figura 6: Exemplo do método roleta

A função de avaliação ou fitness é um valor que denomina a qualidade de umindividuo (solução) no problema. Esse valor determina a seleção dos pais, sendo aforma que diferencia soluções boas das ruins [LINDEN, 2006]. Também representa ograu de adaptabilidade do individuo ao ambiente [BARCELLOS, 2013].

O fitness deste trabalho é uma aproximação biológica da forma que alguns gru-pos avaliam para encontrar o chefe ou a criatura alfa. Muitos casos envolvem avaliaçãode força, exibição ou a capacidade de luta [KREBS; DAVIES, 1996]. Para este trabalhofoi considerada a soma dos atributos de ataque e defesa.

3.3. Características de uma Árvore

As árvores no ambiente artificial são consideradas o alimento para criaturasherbívoras e onívoras. Sua representação é de grande importância para o equilibro edesenvolvimento do ecossistema artificial. As características definidas são a capacidadetotal, que foi considerada em 150 unidades de comida, e a produção média de comidapor dia, que é um valor aleatório entre 0 e 1 representa a regeneração do recurso.

3.4. Características de uma Criatura

Os principais componentes do simulador são as criaturas, esses seres quehabitam o ambiente virtual sofrendo mudanças. Todos apresentam as mesmascaracterísticas como ataque, defesa e visão.

O ambiente contém plantas e seis tipos de criaturas: marrons, vermelhos,verdes, cinzas, amarelos e azuis.

7

Segundo Snustad e Simmons (2001), na natureza existem muitas característicasque variam continuadamente, como tamanho do corpo, altura, peso, habilidade, entreoutros. Neste trabalho, cada criatura contém um tipo associado que lhe permite umdeterminado comportamento.

Herbívoros são animais que obtêm energia comendo vegetais. O consumopadrão das criaturas herbívoras é de 20 unidades de comida. Todas as criaturaspertencentes a este tipo gastam 0.5 unidade de energia a cada movimento. É levado emconsideração que a abundância de plantas no ambiente é propícia ao seudesenvolvimento. No entanto, caso ocorra a interação com outras espécies que tambémse alimentam de plantas, ocorre a competição entre as populações pelo recurso, o quepode levar à extinção dos menos aptos.

Carnívoros alimentam-se de herbívoros e de outros carnívoros. O consumopadrão para todas as criaturas carnívoras é de 100 unidades de comida, ou seja, o hábitode predador dessa criatura faz a obtenção total de comida. O gasto de energia a cada diasdeste tipo é de 0.3 unidades de energia. A sobrevivência destas criaturas é diretamenterelacionada com o desenvolvimento de outras populações e é importante para o controlepopulacional e manutenção do equilíbrio do ecossistema. O mecanismo de canibalismoestá presente para qualquer criatura que represente essa população.

Onívoros são animais que têm hábitos de alimentação generalizados. Então, eleatua como carnívoro em algumas vezes e em outras vezes como herbívoro. O consumopadrão para os onívoros é de 50 unidades de comida. O seu gasto é de 0.55 unidades deenergia a cada movimento. Então, sua grande vantagem é a flexibilidade na busca peloalimento, que aumenta as chances de sua sobrevivência.

Em relação à reprodução, neste trabalho foi utilizada a reprodução sexuada.Porém, não é considerada a representação sexual (sexo masculino ou feminino) e otempo de maturação. A reprodução sexuada é promissora na transmissão do materialgenético, apresentando uma melhor variabilidade em relação à reprodução assexuada[KREBS; DAVIES, 1996]. A reprodução assexuada gera um descendente com umacópia genética idêntica ao do genitor, não apresentando variabilidade, ou seja, nãoevolui. Já a reprodução sexuada, apresenta melhor variabilidade genética, pois dependeda recombinação dos genes dos pais [ORR, 1986].

Outra característica importante em uma criatura é o seu campo de visão, ou seja,até qual distância no ambiente a criatura consegue detectar o que está a sua volta. Esteatributo influencia diretamente no resultado da tabela de navegação. Por padrão, todasas criaturas têm 1 unidade de visão, ou seja, conseguem enxergar uma casa em suasproximidades. Para nesta versão do protótipo foi definido o valor de 1 unidade, quefuncionou satisfatoriamente. A definição em um valor comum para todas as populaçõese para que nenhuma criatura tenha vantagem em relação aos demais.

As criaturas possuem atributos que representam as habilidades de ataque edefesa. Todas as criaturas possuem valores para esses atributos, que são importantespara a sua sobrevivência no ambiente. Esses valores definem o sucesso ou fracasso dopredador em abater uma presa. A atribuição das habilidades na primeira geração sãoinicializadas aleatoriamente. Então, a criatura com uma pontuação baixa tende a sereliminada nos próximos dias. Os valores dos atributos de ataque e defesa são definidos

8

no cromossomo e, portanto, são passados para as próximas gerações.

O tempo de sobrevivência é o número de dias em que a criatura está noambiente. A sobrevivência é a consequência de dois fatores, que são a energia e a fome.Durante a criação, cada criatura obtém 100% de energia e de comida. A cada dia éconsumida uma determinada quantia de energia e comida, definido pelo tipo (herbívoro,carnívoro ou onívoro). Caso a energia ou a comida se esgote, a criatura morrerá.

3.5. A Arquitetura do Cromossomo

O cromossomo é uma estrutura de dados, computacionalmente representado por umvetor ou cadeia de valores binários, que define as características da criatura.Tradicionalmente, o genótipo é representado por vetor binário, no qual cada elementodo conjunto é determinado pela presença (1) ou pela ausência (0) desta característica. Avantagem desta representação é sua fácil utilização e manipulação [REZENDE, 2005].

Cada criatura contém em sua estrutura um cromossomo, que é divido em trêspartições: controle de navegação, Atributos e variação anatômica.

Figura 7: Representação da estrutura do cromossomo da criatura

A parte do cromossomo responsável pelo controle de navegação representa osmovimentos em todos os estados possíveis da criatura. A configuração é feita durante acriação do cromossomo.

Os Atributos representam as características da criatura como ataque, defesa,visão e o consumo.

A partição do cromossomo da variação anatômica representa as variações que ascriaturas podem adquirir a partir de operações de mutação e cruzamento para obtervantagem no ambiente. Para cada característica anatômica, é preciso que os dois genesrepresentantes sejam dominantes para ativar a variação. A evolução de algumas armascomo cornos e chifres evoluíram em resposta à eficiência no ataque e defesa [KREBS;DAVIES, 1996]. Três variações anatômicas podem ser ativadas:

Os chifres permitem o acréscimo no valor de ataque da criatura. Esse acréscimoé de 30% do valor do ataque, permitindo uma vantagem em relação a outras criaturas.

Os espinhos permitem aumento de 30% no valor da defesa da criatura.

A mandíbula permite a melhor captação dos recursos, significando aumento de20% no consumo da criatura, independente do tipo. Porém, a mandíbula é indicada para

9

as criaturas herbívoras e onívoras, sendo essa variação um agregador no consumo.

3.6. Tipos de Cenários

Na biologia evolutiva, um fator importante é a capacidade de adaptação, que é a atuaçãoda seleção natural sobre a variação genética, moldando a população para se adequar aum ambiente. Essa adaptação é para evitar a predação e extinção da população[FUTUYMA, 2006].

Mudanças geológicas influenciaram na distribuição e no desenvolvimentoevolutivo de várias populações. Efeitos do ambiente influenciam nos limites definidosde tolerância de cada espécie que terá de se adaptar ou será extinto [ORR, 1986].

Neste trabalho, foram definidos quatro tipos de cenários, que contêmcaracterísticas definidas e especificas para cada tipo de criatura.

Floresta tropical (Figura 8) é um bioma com clima único, com precipitação anualentre 200 a 1000 centímetros por ano e com temperatura média de 27ºC. É uma florestacom grande diversidade de fauna e flora. Inclusive, a flora é caracterizada peladensidade e heterogeneidade/variedade das espécies [ENGER; ROSS; BAILEY, 2012].Para representa esta região, o ambiente terá disponível 20% de vegetação do ambientetotal e as criaturas verdes e marrons terão vantagem em que não terão desconto de 0.1 acada movimento.

Figura 8: Ilustração da floresta tropical

Floresta Nevada (Figura 9) é uma região com baixas temperaturas que nãosupera mais de 21ºC [RAVEN, EVERT, EICHHORN, 2007]. Para representar estaregião, o ambiente terá disponível 15% de vegetação do ambiente total e as criaturasbrancas e azuis terão vantagem em que não terão desconto de 0.1 a cada movimento.

Figura 9: Ilustração da floresta nevada

10

Savana (Figura 10) é uma região com predominância de gramíneas,apresentando pequenos grupos de árvores ou arbustos. As estações de secas e úmidassão claras e distintas. Podem receber uma precipitação anual de 100 centímetros dechuva e estações de seca de mais de 3 meses [ENGER; ROSS; BAILEY, 2012]. Pararepresenta esta região, o ambiente terá disponível 5% de vegetação do ambiente total eas criaturas vermelhas e amarelas terão vantagem pois não terão desconto de 0.1 a cadamovimento.

Figura 10: Ilustração da savana

Os Campos ou Pradarias (Figura 11) são um bioma composto de poucos agrupamentosde árvores ou arbustos e com a predominância de gramíneas. A precipitação pluvial éde moderada a baixa [RAVEN, EVERT, EICHHORN, 2007]. Para representa estaregião, o ambiente terá disponível 10% de vegetação do ambiente total e nenhumacriatura terá vantagem neste cenário.

Figura 11: Ilustração do campo aberto

3.7. Ambiente

O ambiente virtual é onde as criaturas habitam e interagem com outras populações emdiferentes cenários. As dimensões de todos os cenários foram definidas estaticamentena proporção de 800x600 e cada posição é formada por 32x32 pixels.

A população inicial de cada tipo foi definida em 5 criaturas. Cada dia noambiente é o equivalente a um movimento das criaturas, sendo que a cada 150 dias éfeita a reprodução e a introdução de novas criaturas.

3.8. Movimentos

O movimento da criatura é determinado pela tabela de navegação, que utiliza a partiçãodo controle de navegação do cromossomo para associar um movimento a cada possívelestado de detecção de objetos a sua volta. A criatura tem 7 movimentos possíveis para odeslocamento, sendo resumida em duas primitivas:

11

Aproximar de um objeto: a criatura identifica um objeto em sua área de visão ese aproxima do objeto.

Afastar de um objeto: a criatura detecta um objeto em sua área de cobertura ese afasta do objeto.

Considerando-se que os possíveis objetos que podem ser detectados no ambientepor uma criatura são árvore, aliado e inimigo, a partir das duas primitivas podem sergerados 6 possíveis movimentos. O sétimo movimento é a movimentação aleatória, naqual uma direção qualquer é escolhida para a criatura se locomover, sendo essemovimento exclusivo para o estado em que não há nenhuma árvore, aliado ou inimigo.

A necessidade da criação do sétimo movimento foi devido a alguns casosdurante a exploração da criatura em que havia uma tendência a um determinadomovimento no estado em que não havia objeto em sua vizinhança. Nos casos em que afalta de uma situação para alterar o estado da criatura o deixava em movimentocontínuo na espera da mudança de estado, em muitos dos casos acabavam sendoeliminados por fome. Para evitar essa situação, foi feita a movimentação aleatória, quemostrou resultados agradáveis, mostrando um comportamento mais realista e esperado.Por exemplo, no estado em que a criatura não tem nenhum objeto em sua área de visão eno cromossomo é definido um determinado movimento e caso esse estado continue naspróximas iterações, essa tendência prejudica a navegação da criatura, criando umasituação inadequado no ponto de vista do usuário.

Figura 12: Ilustração dos movimentos (a) Aproximar de uma planta. (b) Afastarde uma planta. (c) Aproximar de uma criatura aliada. (d) Afastar de uma criatura

aliada. (e) Aproximar de uma criatura inimiga. (f) Afastar de uma criaturainimiga. (g) Andar aleatoriamente no cenário

3.9. Tabela de navegação

A tabela de navegação é a representação da decisão do movimento, considerando o quea criatura enxerga em sua visão (detecta em sua área de cobertura local). A tabela denavegação de cada criatura é definida a partir da partição de seu cromossomocorrespondente ao controle de navegação [SIMÕES, 2003].

12

Neste trabalho, há três possibilidades de detecção no perímetro da criatura. Ainterpretação sobre o significado do que foi detectado pode variar entre os tipos decriaturas. Essas três possibilidades de detecção são:

Reconhecimento de uma árvore: Para os herbívoros e os onívoros, representauma fonte de alimento. No entanto, para os carnívoros é apenas um obstáculo.

Reconhecimento de uma criatura aliada: Para os herbívoros, os aliados sãooutras criaturas do mesmo tipo (vivendo em harmonia). Neste trabalho, foidesconsiderada a luta entre herbívoros por falta de alimento (recursos), como podeocorrer na natureza. Já os carnívoros e onívoros não reconhecem nenhum aliado, mesmosendo da mesma raça (instinto predador). Neste trabalho, o comportamento de aliançaentre predadores foi desconsiderado, mesmo sendo comum na natureza. Por exemplo: écomum encontrar espécies que sobrevivem em grupos, como lobos.

Reconhecimento de uma criatura inimiga: Para os herbívoros, os inimigos sãoos carnívoros e onívoros. Já para os carnívoros e onívoros, são todas as criaturas,mesmo sendo de mesmo tipo.

A escolha do movimento depende se foi ou não detectada alguma coisa em seucampo de visão, sendo atribuído 1 caso ocorra detecção, senão é atribuído 0. Sendoassim, são possíveis 8 combinações (estados). E para cada situação existem 7possibilidades de movimentos possíveis citados anteriormente, definido pelo AG.

Por exemplo, uma criatura enxerga apenas o inimigo em sua área de coberturaEntão, é consultada a tabela de navegação para obter o movimento referido. Diante dasituação em que não há nenhuma árvore e aliado por perto, mas há um inimigo, éverificada a tabela de navegação desta criatura para essa situação. Neste caso, é omovimento 3 (Afastar de uma criatura aliada), conforme pode ser visto na Figura 13.Então, a criatura interpreta como afastar do inimigo.

Figura 13: Exemplo de tabela de navegação. O cromossomo de navegação é apartição do cromossomo da criatura correspondente ao controle de navegação

4. Resultados

Foram realizados diversos experimentos buscando a melhor combinação entre osparâmetros do Algoritmo Genético. Para todos os resultados a seguir, o programa foi

13

executado com os mesmos parâmetros 100 vezes para cada tipo de população, sendodesconsiderados os fatores de ambiente. Portanto, os dados são resultantes da média de100 execuções. Inicialmente, foram atribuídos para o ataque e a defesa o valor 1 paratodas as criaturas. Esta inicialização foi utilizada para melhor visualizar a evolução dosatributos e a influência das taxas de mutação e de cruzamento ao longo das gerações.Com base nos resultados obtidos, foram gerados gráficos mostrando a evolução doataque+defesa. São mostrados os dados da melhor criatura e da média da população acada geração. Nos gráficos, as gerações são apresentadas no eixo horizontal e aspontuações, no eixo vertical.

A seguir, são apresentados os resultados da busca pela taxa mais adequada demutação (Seção 4.1) e de cruzamento (Seção 4.2) para este trabalho. Em seguida, éapresentada e comentada a interface gráfica de interação com o usuário que foiimplementada (Seção 4.3).O objetivo deste experimento foi compreender o comportamento do operador genéticode cruzamento. Para isso, a mutação e os demais parâmetros foram estabelecidos comvalores fixos.

4.1. Operador de mutação

Para este experimento, foi definida uma taxa de cruzamento de 50%. No operador decrossover uniforme utilizado, é uma taxa neutra, já que a recombinação dos genes é feitaproporcionalmente. Analisando as curvas nos gráficos, pode-se visualizar que os herbí-voros conseguiram alcançar sua melhor pontuação com a taxa de 10% (Figuras 14(a) e(b), linha ciano claro). Nesses gráficos, quanto maior o valor que a curva atinge, maior apontuação atingida. Portanto, o melhor herbívoro de cada geração atingiu um fitness(ataque+defesa) superior a 14, aproximadamente a partir da geração 22. Já a média dapontuação da população, atingiu valores de fitness superiores a 9, aproximadamente apartir da geração 30. Também é possível visualizar nesses gráficos que a partir de taxasmaiores que 10% há uma queda substancial de desempenho. Pode-se também ressaltarque para as taxas mais altas, ocorre uma evolução mais rápida nas primeiras gerações.Porém, não chegam a gerar as pontuações mais altas a longo prazo. Por exemplo, pode-se comparar as curvas das taxas de 10% e de 28%. Nas primeiras gerações, a curva dataxa de 28% cresce mais rápida que a de 10%. Porém, algumas gerações depois, a curvade 28% tende a se estabilizar e a curva de 10% aumenta mais, estabilizando-se em umpatamar mais alto.

Os carnívoros alcançaram valores bem mais baixos, obtendo o melhor desempe-nho (pico) com a taxa de 30% (Figuras 14(c) e (d)). Nas primeiras gerações, pode-se ob-servar um aumento do fitness. Porém, após poucas gerações, ocorre uma rápida queda.Um dos principais motivos para esta queda é a dependência dos carnívoros em relação àsobrevivência de outras populações, ou seja, disponibilidade de alimento. Além disso, aconfiguração inicial do cromossomo ocorre com valores aleatórios. Portanto, as primei-ras gerações encontram-se a princípio ineficientes em relação à caça e ao ambiente, oca-sionando alta taxa de mortalidade.

Em relação aos onívoros (Figuras 14(e) e (f)), pode-se notar uma correlação en-tre o aumento da taxa de mutação e um melhor desempenho nas curvas correspondentes,apresentando valores cada vez maiores e crescimento cada vez mais rápido nas primei-ras gerações. Porém, a maioria das curvas apresentou um desempenho bastante próximo.

14

Ainda assim, pode-se destacar que a curva de melhor desempenho foi a da taxa de 30%.

Figura 14: Curvas de Fitness (ataque+defesa) ao longo das gerações (média de100 execuções) considerando vários valores de taxa de mutação: (a) melhorherbívoro; (b) média da população dos herbívoros; (c) melhor carnívoro; (d)

média da população dos carnívoros; (e) melhor onívoro; e (f) média dapopulação dos onívoros.

4.2. Operador de cruzamento

O objetivo deste experimento foi compreender o comportamento do operador genéticode cruzamento. Para isso, a mutação e os demais parâmetros foram estabelecidos comvalores fixos. Foram testados os valores de cruzamento de 0% a 100%, com intervalosde 5%. A partir dos resultados obtidos anteriormente, foram fixados os valores de taxade mutação para cada tipo: 10% para herbívoros, 30% para carnívoros e 30% para oní-

15

voros. Pode-se visualizar nos gráficos das Figuras 15(a), (b), (e) e (f) que não houve di-ferença significativa entre as curvas definidas pelos vários valores de taxa de cruzamen-to para os herbívoros e onívoros. De forma similar aos resultados na mutação, os carní-voros nestes experimentos (Figuras 15(c) e (d)) também apresentaram curvas com umpico e uma queda acentuada, sendo que o pico alcançou baixa pontuação. Os motivospara isso são os mesmos apresentados anteriormente para a taxa de mutação. Pode-senotar que as curvas apresentam valores bem próximos nas primeiras gerações e valoresum pouco mais variados depois do pico.

Figura 15: Curvas de Fitness (ataque+defesa) ao longo das gerações (média de100 execuções) considerando vários valores de taxa de cruzamento: (a) melhor

herbívoro; (b) média da população dos herbívoros; (c) melhor carnívoro; (d)média da população dos carnívoros; (e) melhor onívoro; e (f) média da

população dos onívoros.

16

4.3. Interface gráfica do usuário

O objetivo da interface gráfica é possibilitar a interação do usuário com o simulador,mostrando ao usuário as possíveis escolhas que podem ocasionar várias mudanças nasobrevivência das populações. Pode-se optar entre cenários diferentes que podemoferecer abundância ou escassez de recursos, o que traz vantagens ou desvantagens àscriaturas, influenciando suas capacidades de sobrevivência.

Na tela de seleção, o usuário interage com a interface com a possibilidade deescolha dentre vários cenários e criaturas disponíveis. Para cada opção, terá detalhes quedescrevem suas características, como mostra a Figura 16.

Figura 16: Tela de seleção do ambiente e das criaturas

Na tela da simulação (Figura 17), o usuário tem a disposição o ambiente e doispainéis que mostram determinadas informações. No painel esquerdo, o usuário obtém asinformações da criatura e de sua respectiva população. O painel direito contém algunsgráficos que o usuário poderá utilizar para compreender alguns comportamentos, comoa dinâmica de populações.

17

Figura 17: Tela de seleção do ambiente e das criaturas

5. Conclusão

A proposta deste trabalho foi o desenvolvimento de um protótipo utilizando AlgoritmoGenético capaz de evoluir o comportamento das criaturas. Isto possibilitou adquirir co-nhecimentos sobre AG, método de navegação e alguns conceitos biológicos. A relevân-cia do estudo de AG na sua estrutura, nas diversas técnicas e na configuração de seusparâmetros possibilitou obter os resultados desejados. A técnica de navegação emprega-da neste trabalho, baseada na navegação de robôs em ambientes dinâmicos através dautilização de uma tabela de controle evoluída por AG, mostrou-se como um método al-ternativo para a adaptação e a navegação de agentes controlados pelo computador, pro-porcionando resultados adequados.

Os resultados do AG foram satisfatórios para os herbívoros e onívoros. Comopode ser observado nas Figuras 14 e 15, a evolução do cromossomo ocorreu através dooperador de mutação. Os valores de taxa de mutação que se mostraram mais adequadosforam de 10% para os herbívoros e de 30% tanto para carnívoros quanto para onívoros.Pelos experimentos executados, pode-se notar que o crossover influenciou pouco naevolução das criaturas deste trabalho.

Para os carnívoros, o resultado não atendeu as expectativas. Isso se deve a diver-sos fatores, como a dependência dos carnívoros em função da sobrevivência de outraspopulações. No começo da execução, a configuração inicial do cromossomo é com valo-res aleatórios. Desta forma, as primeiras populações naturalmente se apresentam imatu-ras (inadequadas) ao ambiente e à caça. Por isso, os carnívoros se apresentam ineficien-tes no início e acabam apresentando uma alta taxa de mortalidade.

A abordagem utilizando o método de navegação em conjunto com o AG é umaforma interessante para a navegação de agentes controlados pelo computador. Porém, é

18

pouco utilizado em jogos e simuladores, em razão de outros algoritmos mais viáveis eeficientes. Entretanto, é um algoritmo indicado para a navegação em ambientes dinâmi-cos, sendo aplicados para a navegação de robôs.

A principal dificuldade na realização deste trabalho foi na compreensão do fun-cionamento do método de navegação, nos ajustes da configuração do algoritmo genéticoe no equilíbrio do ambiente. Para este trabalho, todos os objetivos estabelecidos na pro-posta foram alcançados atendendo assim as expectativas.

6. Trabalhos Futuros

Como possíveis trabalhos futuros, pode-se apontar: • Adicionar outros assuntos relacionados.• Criar vários cenários e criaturas mais próximos da realidade. Por exemplo, criarvários cenários representando as regiões brasileiras com a flora e fauna típicas.• Aumentar as dimensões do ambiente para que o mesmo suporte mais criaturas.O tamanho atual do ambiente é insuficiente quando há diversas populações interagindo.• Utilizar outras abordagens para a navegação dos agentes controlados pelo com-putador.• Testar com diversas variações no valor de visão.

7. Referências

ADOBE SYSTEM, Adobe Fireworks 8. Disponível em: <http://www.adobe.com/sup-port/documentation/en/fireworks/documentation.html>. Acesso em 16 maio 2013.

BARCELLOS, J. Algoritmo genético adaptativos: Um estudo comparativo. Disponí-vel em: Acesso em: 03 abril 2013.

CROCOMO, M. K.; MIAZAKI, M.; SIMÕES, E. V. Algoritmos evolutivos para aprodução de NPCs com comportamentos adaptativos. In: SBGames 2007 - VI Sim-pósio Brasileiro de Jogos para Computador e Entretenimento Digital, 2007, São Leopol-do, RS. Proceedings of the VI Brazilian Symposium on Computer Games and DigitalEntertainment. Porto Alegre: SBC, 2007. p. 44-53.

CROCOMO, M; SIMÕES, E; Algoritmo Evolutivo para Aprendizado On-line em JogosEletrônicos. Disponível em:<http://www.sbgames.org/papers/sbgames08/computing/full/ct22_08.pdf>. Acesso em:04 maio 2013

DARWIN, C. A origem das espécies: por meio da seleção natural – Traduzido por An-dré Campos Mesquita. São Paulo- SP, Editora escala, 2009.

ENGER, E; ROSS, F; BAILEY, D.; Concept in Biology. New York – NY, McGraw-HillCompanies Inc., Décima Quarta Edição, 2012.

ENTERBRAIN, RPG Maker Ace VX Ace. Disponível em: <http://www.rpg-makerweb.com/products/rpg-maker-vx-ace/>. Acesso em: 04 maio 2013.

FUTUYMA, D. Biologia Evolutiva. Ribeirão Preto, SP: FUNPEC – Editora, SegundaEdição, 2002.

GONÇALVES, A..Aplicações de técnicas de aprendizagem de máquina. Disponível

19

em: <www2.dc.uel.br/nourau/document/?view=684 >. Acesso em: 15 maio 2013.

HOLLAND, J.. Genetic Algorithms. Disponível em:<http://www2.econ.iastate.edu/tesfatsi/holland.gaintro.htm>. Acesso em: 15 maio 2013.

KREBS, J.; DAVIES, N.. Introdução à Ecologia Comportamental. São Paulo – SP,Atheneu Editora São Paulo ltda, Terceira Edição, 1996.

LINDEN, R.. Algoritmos genéticos – Uma importante ferramenta da InteligênciaComputacional. Rio de Janeiro, RJ: BRASPORT Livros e Multimídia Ltda, 2006.

ORACLE CORPORATION, NetBeans. Disponível em: <http://netbeans.org/>. Acessoem: 16 maio 2013.

ORR, R. T.. Biologia dos Vertebrados. São Paulo, SP: Editora Roca Ltda. PrimeiraEdição, 1986.

RAVEN, P; EVERT, R; EICHHORN, S..Biologia Vegetal. Rio de Janeiro – RJ, EditoraGuanabara Koogan ltda, Sétima edição, 2007.

REEVES, C.. Genetic Algorithms. Disponível em:<http://homes.ieu.edu.tr/~agokce/Courses/Genetic%20algorithms%20Colin%20reeves%20chapter%203.pdf>. Acesso em: 1 abril 2013.

REZENDE, S.. Sistemas inteligentes – Fundamentos e aplicações. Barueri – SP,Editora Manole Ltda, Primeira Edição, 2005.

SILVA, L.. Engenharia Imunológica: Desenvolvimento e aplicação de ferramentascomputacionais inspiradas em sistemas imunológicos artificiais. Disponível em:<http://www.dca.fee.unicamp.br/~vonzuben/research/lnunes_dout/tese/cap_0.pdf>.Acesso em: 02 abril 2013.

SIMÕES, E. D. V., Robótica Evolutiva. In Sociedades Artificiais: A nova fronteira dasmáquinas. Editora ARTMED, Porto Alegre – RS, pp. 251-275. 2003

SNUSTAD, D.; SIMMONS J.. Fundamentos de genética – Tradizido por Paulo Ar-mando Motta. Rio de Janeiro, RJ. Editora Guanabara Koogan S.A. Segunda Edição,2001.

TANOMARU, J. Motivação, fundamentos e aplicações de algoritmos genéticos.Anais do II Congresso Brasileiro de Redes Neurais, 1995.

UNIVERSITY OF COLORADO AT BOULDER. Natural Selection, Disponível em:<http://phet.colorado.edu/en/simulation/natural-selection>. Acesso em: 25 fev. 2013.

WHITLEY, D.. A Genetic Algorithm Tutorial. Disponível em: < http://www.cs.colos-tate.edu/~genitor/MiscPubs/tutorial.pdf >. Acesso em: 1 abril 2013.

20