• Nenhum resultado encontrado

2.4 Trabalhos Relacionados

3.2.4 Personagem

A classe Personagem é abstrata que implementa Cloneable, ela possui os atributos responsáveis por guardar a coordenada e o mapa completo da simulação. Nela também estão definidos os métodos pensar e clone, que serão implementados nas classes que herdam de Personagem. Na classe Personagem também está localizado o método agir, que vai designar a ação dos personagens dentro to mapa.

35 Figura 6 – Ações Possíveis para a Presa e para o Predador

Fonte: próprio autor

3.2.5

Arbusto

Os arbustos são personagens que possuem sua posição fixa, ou seja, não terão movimentação durante a simulação. Cada arbusto pode ser ou não venenoso, para cada simulação são adicionados três arbustos. Desses três, dois são definidos como venenosos e um como não venenoso.

A posição inicial dos arbustos é definida no início da simulação de forma aleatória, sendo a mesma até o final. Os arbustos não podem receber a mesma posição, devem ficar em três locais diferentes. Estes arbustos tem por objetivo dificultar a atuação do predador, sendo que o predador não sabe qual dos arbustos é venenoso.

A classe Arbusto herda de personagem, esta classe possui um atributo boleano que indica TRUE se o arbusto é venenoso e FALSE se o arbusto não é venenoso. No método responsável por determinar a movimentação do personagem é retornado o tipo nada, já que o arbusto não possui movimento.

3.2.6

Presa

A presa tem por objetivo fugir do predador, cada simulação terá uma presa apenas. Esta recebe a posição inicial aleatoriamente, sendo que a cada rodada a presa busca se esconder na posição do arbusto não venenoso. A presa possui a informação de qual arbusto não é venenoso. No momento em que a presa chega no arbusto que não é venenoso, ela permanece nessa posição até o fim da simulação.

36 A presa é definida pela classe Presa, ela herda da classe Personagem. A presa ainda possui outras derivações. As seguintes classes herdam de Presa: PresaArbusto, PresaFoge, PresaParada e PresaRandom.

3.2.6.1 Classe PresaArbusto

Esta será a presa utilizada no modelo final do projeto. Durante a simulação ela busca esconder-se atrás do arbusto não venenoso. Ela possui a informação da posição absoluta do arbusto não venenoso, e a cada iteração ela tenta ficar mais próxima do arbusto.

3.2.6.2 Classe PresaFoge

Esta presa é utilizada principalmente em simulações com mais de um predador, podendo ser utilizada também para esse modelo. A diferença é que o objetivo dela é apenas fugir do predador e não esconder-se como no caso da PresaArbusto.

3.2.6.3 Classe PresaParada

Diferentemente das duas presas citadas anteriormente, esta recebe uma po- sição inicial e permanece nela até o final. Isso diminui a dificuldade que o predador tem de encontrar e capturar a presa. Porém, em alguns casos quando utiliza-se posi- ções estáticas, os resultados são menores quando são utilizadas posições dinâmicas. Isso ocorre porque, em determinado momento da simulação, os predadores serão orientados a não moverem-se ou realizar movimentos inúteis em looping (FRISKE, 2013).

3.2.6.4 Classe PresaRandom

Essa presa troca de posição de forma aleatória. Sendo assim, ela pode torna- se uma presa fácil de ser capturada. Levando em conta que com essa presa não existe a preocupação de saber em qual posição o presador está, sua movimentação pode levá-la ao predador, aumentando as chances de ser capturada.

3.2.7

Predador

O predador tem por objetivo capturar a presa. Cada simulação terá um predador, sendo sua posição inicial obtida de forma aleatória. A cada rodada o predador busca

37 aproximar-se da presa para capturá-la. Quando ele atinge a posição em que a presa se encontra a simulação termina, sendo que a presa foi capturada.

O predador possui as informações sobre a posição da presa até o momento em que ela esconde-se no arbusto não venenoso. Desse momento em diante o predador não possui mais a informação da posição atual da presa. Ele também não possui a informação de qual dos arbustos é venenoso, sendo que ao atingir um arbusto venenoso a simulação acaba com o predador não capturando a presa.

O predador é representado pela classe Predador, que herda de personagem. Ele obtém seus movimentos através da árvore de expressões.

3.3

Interface

A aplicação possui duas tela. A primeira é utilizada para escolher os parâmetros que serão utilizados na evolução do agente. A segunda é utilizada para a partir do agente evoluído, realizar os testes de desempenho do agente, simulando as ações do agente para diferentes cenários.

A Figura 7 refere-se a tela utilizada na evolução do agente. Nela podem ser selecionados os parâmetros que definem o ambiente bem como a forma que os personagens interagem dentro do ambiente.

No campo população, deve ser informado o tamanho da população. Ele re- presenta qual o número de indivíduos que compõe a população. Sendo assim, se for definido o valor 100 para esse campo, será gerada uma população inicial de 100 indivíduos, e a cada evolução após aplicar os operadores genéticos, deve ser gerado uma nova população com o mesmo número de indivíduos.

O campo gerações é utilizado para definir o número máximo de gerações que serão evoluídas. Sendo que essa quantidade pode não ser totalmente utilizada, devido ao fato de que a evolução para no momento em que a evolução atual atinge uma solução que satisfaça o problema.

O campo mutação, define qual será a taxa de mutação aplicada a cada indiví- duo. Isso define o percentual de características que serão alteradas em cada evolução do agente. Isso permite que a população mantenha diversidade, sendo que a solução não fica presa à um solução local.

No campo tamanho, será definido qual é o tamanho do mapa, nele podem ser informadas a posição x e y, que definem a quantidade de linhas e colunas do mapa. Para obter resultados fidedignos, é importante que todas as evoluções possuam um

38 Figura 7 – Tela para Realizar a Evolução do Predador

Fonte: próprio autor

mapa de mesmo tamanho.

No campo percepção é definido se o predador irá possuir percepção absoluta ou percepção relativa. Também pode ser selecionada a opção percepção relativa com a utilização de variáveis de memória. Sendo que na percepção absoluta esta disponível ao predador a posição exata da presa. Já na percepção relativa, o predador possui a informação da presa até o momento em que ela se esconde no arbusto. Com a utilização da percepção relativa com variáveis de memória, são utilizadas variáveis que guardam estados anteriores em que a presa percorreu para ajudar na captura por parte do predador.

No campo tipo da presa pode ser escolhido a forma que a presa interage com o ambiente. Sendo que pode ser selecionada a opção de posição fixa para a presa, a forma de movimentação aleatória dentro do mapa. Também existe a possibilidade de adicionar inteligência para ela fugir do predador, e por fim a presa utilizada para realizar

39 os teste, em que ela nasce em uma posição aleatória do mapa e a cada movimento ela converge para a direção do arbusto que não é venenoso, com o objetivo de esconder-se do predador.

Figura 8 – Tela para Realizar os Testes da Evolução do Predador

Fonte: próprio autor

A Figura 8 é utilizada para realizar os testes do problema. O bloco de dados denominado controle apenas apresenta as opções escolhidas na evolução representada na Figura 7. Sendo que o campo cenário define o tamanho do mapa, o campo presa define o tipo de presa e o campo percepção define a percepção que o predador terá sobre o ambiente.

No bloco simulação deve ser informado o número de simulações que serão realizadas. Cada simulação gera posições aleatória para cada personagem, isso permite que tenha-se uma gama grande de testes. Além disso, cada simulação é repetida 10 vezes, e ao fim é informada a média de capturas da simulação.

Ao fim dos testes, pode ser visualizado a quantidade de vezes em que a presa foi capturada e a quantidade de vezes em que o predador foi morto. No caso do

40 predador morrer, também são apresentados os valores de quantas vezes o predador morreu por encostar em um predador venenoso e a quantidade de vezes em que a simulação acabou por exceder o número máximo de passos. Para essa aplicação a quantia máxima de passos foi definida em 1000.

No próximo capítulo serão apresentados os resultados que foram obtidos com a execução dos testes na aplicação que foi modelada e implementada. Com a inserção do predador evoluído em diversos ambientes de simulação será possível verificar eficácia da técnica de programação genética recorrente.

4 RESULTADOS

Um conjunto de testes foram executados para analisar o desempenho do predador dentro do mapa. Os resultados são apresentados utilizando diferentes carac- terísticas do cenário. Primeiramente, Na Seção 4.1 serão apresentados os resultados obtidos com população de 100 indivíduos e, na Seção 4.2 será apresentado o desem- penho do predador quando a evolução possuí população com 200 indivíduos. Já na Seção 4.3 será realizado um comparativo entre os resultados obtidos na Seção 4.1 e na Seção 4.2, e posteriormente na Seção 4.4 serão apresentadas considerações a respeito dos resultados obtidos.

Os resultados são analisados com: a) Predador com Percepção Absoluta do Ambiente; b)Predador com Percepção Relativa do Ambiente e c) Predador com Percepção Relativa do Ambiente Utilizando variáveis de Memória. Isso nos permite comparar em que situações o predador obteve melhores taxas de captura, bem como verificar se a técnica abordada pelo projeto obteve bons resultados.

A taxa de mutação foi definida em 5%, isso permitirá que a população mantenha diversidade durante as evoluções. Com isso o predador conseguirá capturar a presa em diferentes cenários que forem gerados aleatoriamente. Isso porque não ficará preso em uma solução local.

Essa taxa de mutação foi escolhida após a realização de testes iniciais. Com esse percentual de mutação foram obtidos os melhores resultados. A partir dessa análise foi obtido a taxa que melhor se encaixou ao problema, a qual foi utilizada no restante dos testes.

Ao utilizar taxas de mutação menores do que 5% o predador não conseguia solucionar problemas em que o mapa variava muito. Isso acontece porque a varia- ção entre os indivíduos da população foi muito baixa. Com taxa de mutação muito baixa, a população teve pouca diversidade, isso tornou o predador incapaz de resolver problemas que fugiam muito do normal.

Já quando foram utilizadas taxas de mutação acima de 5%, o predador obteve menor taxa de captura do que quando eram utilizadas taxas de 1%. O predador acabava percorrendo o mapa com muita aleatoriedade, e na maioria das vezes acabava morrendo por exceder o número máximo de rodadas.

Para a realização dos testes para obtenção dos resultados foi utilizado um notebook com processador Intel Core i5 (2, 50GHz) e memória de 4 GB. O tempo utilizado para cada evolução variou de 1 hora, nas evoluções de 1000 gerações, a 12

42 horas, nas evoluções com 5000 gerações.

Foram realizadas evoluções de 1000 gerações até 5000 gerações. Em cada evolução foram aplicados 5000 testes com cenários gerados aleatoriamente. Foi deter- minado 1000 rodadas como sendo o número máximo para o predador capturar a presa. Como existem variações entre cada simulação, a grande quantidade de repetições nos teste garante maior precisão no percentual de capturas.

4.1

Resultados da Evolução do Predador com Popula-

Documentos relacionados