CENTRO UNIVERSITÁRIO DO ESTADO DO PARÁ ÁREA DE CIÊNCIAS EXATAS E TECNOLOGIA CURSO DE BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO

Lilian de Jesus Chaves Dias Pedro Victor Pontes Pinheiro Roberto Yuri da Silva Franco

ALGORITMO GENÉTICO COM INTERAÇÃO SOCIAL N-PESSOAS (NpSIGA)

Belém 2010

CENTRO UNIVERSITÁRIO DO ESTADO DO PARÁ ÁREA DE CIÊNCIAS EXATAS E TECNOLOGIA CURSO DE BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO

Lilian de Jesus Chaves Dias Pedro Victor Pontes Pinheiro Roberto Yuri da Silva Franco

ALGORITMO GENÉTICO COM INTERAÇÃO SOCIAL N-PESSOAS (NpSIGA)

Trabalho de conclusão de curso para obtenção de grau em Bacharelado em Ciência da Computação do Centro Universitário do Estado do Pará ± CESUPA Orientador: Prof. Otávio Noura Teixeira, M.Sc.

Belém 2010

CENTRO UNIVERSITÁRIO DO ESTADO DO PARÁ Lilian de Jesus Chaves Dias Pedro Victor Pontes Pinheiro Roberto Yuri da Silva Franco

ALGORITMO GENÉTICO COM INTERAÇÃO SOCIAL N-PESSOAS (NpSIGA)
Trabalho de conclusão de curso para obtenção de grau em Bacharelado em Ciência da Computação do Centro Universitário do Estado do Pará ± CESUPA. Data da defesa: 29 / 11 /2010 Conceito: ______________ Banca Examinadora: ______________________________________________________________________ Prof. Otávio Noura Teixeira, M.Sc.± Orientador. Centro Universitário do Estado do Pará ______________________________________________________________________ Prof. Polyana Santos Fonseca, M.Sc. Centro Universitário do Estado do Pará ______________________________________________________________________ Prof. Marcos Paulo Alves de Sousa, Dr. Centro Universitário do Estado do Pará

Belém 2010

Dedico este trabalho à minha mãe, e a todos que me ajudaram durante este processo. Lilian de Jesus Chaves Dias

Dedico este trabalho a todos que me ajudaram e a todos que prezam pelaciência e pela razão. Pedro Victor Pontes Pinheiro Dedico possível. Roberto Yuri da Silva Franco esse trabalho as pessoas que

contribuíram para que este momento fosse

Agradeço à minha mãe, Inalda Maria Chaves Dias por ter me incentivado, mais uma vez, durante todo o desenvolvimento deste trabalho. Obrigado aos meninos do LCN: Walter Lobato, Hitoshi Seki e Rodrigo Cavalcante, que colaboraram com ideias e soluções durante a implementação do protótipo. Ao Oziel Carneiro, que ajudou no esclarecimento sobre a roleta. Agradeço, também, ao companheirismo dos integrantes da Fábrica de Software, com os quais tive o prazer de trabalhar. Aos professores do CESUPA, agradeço pelas lições aprendidas. Ao Otávio Noura, nosso orientador, que possibilitou a conclusão deste trabalho. Sem esquecer todas as pessoas com quem tive contato ao longo de minha graduação, meus queridos amigos de classe que durante quatro anos criamos uma ligação a qual não queremos perder nesta nova jornada individual que cada um terá, e que possibilitaram experiências únicas. Agradeço aos meus companheiros de Trabalho de Conclusão, Pedro e Roberto, pois sem eles este trabalho não seria realizado. Lilian de Jesus Chaves Dias

Agradeço primeiramente aos meus companheiros de equipe Lilian Dias e Roberto Franco, pois sem o esforço e a ajuda de cada um este trabalho não teria sido possível. Obrigado por todo o trabalho duro e os momentos de descontração. Ao nosso professor orientador Otávio Noura por ter não só nos ajudado nas mais diversas dúvidas e nos mais diversos momentos, mas também pela motivação e pelas ideias. Agradeço aos meus pais por sempre cuidarem de mim e me darem tudo que preciso para viver satisfeito nessa vida. Agradeço a todos os professores do CESUPA pelo excelente trabalho realizado na minha graduação e a todos os meus amigos de sala por toda a diversão e todo o conhecimento compartilhado. A todos os integrantes da FabSoft e do LCN que ajudaram a enriquecer meu conhecimento e pela experiência de trabalhar com vocês. Pedro Victor Pontes Pinheiro

Agradeço primeiramente a Deus por ter dado a possibilidade de viver, pensar e conviver com essas pessoas que fazem a alegria da minha vida. Agradeço a toda minha família, pela confiança e apoio que me deram durante esses 21 anos de minha existência. À minha mãe Margarete Franco por ter me colocado no mundo, pelos seus ensinamentos e por estar ao meu lado sempre me apoiando em todos os momentos. Ao meu pai Roberto Tocantins que durante a sua caminhada, me mostrou que o importante dessa vida é ser feliz. Aos meus irmãos Roberto Allen e Karen Franco, por me aturar todos os dias. Aos meus avós, Francisca e Walter Aguiar, por terem cuidado de mim durante minha infância e sempre rezar por mim. Aos meus sobrinhos Samia e Salim Franco que criam momentos divertidos. À minha namorada Bárbara Oliveira pelo companheirismo e apoio que tem me dado ao longo desse ano. Aos meus amigos que fazem a alegria de cada dia, e ajudam em momentos difíceis. Em especial ao Pedro e a Lilian que se doaram para a conclusão desse trabalho. Ao Professor Otávio Noura por ter nos guiado em todos os momentos. A todos os professores e amigos que contribuíram para a conclusão desse trabalho. E a todos que não foram diretamente citados, mas contribuíram na minha vida, o meu muito obrigado. Roberto Yuri da Silva Franco

LISTA DE TABELAS
TABELA 3.1. TABELA DE PAGAMENTOS DO DILEMA DO PRISIONEIRO PARA DUAS PESSOAS ....28 TABELA 3.2. TABELA DE PAGAMENTOS PARA DILEMA DO PRISIONEIRO PARA N -PESSOAS .......30 TABELA 4.1. PSEUDOCÓDIGO DO NPSIGA ................................ ................................ .............................. 32 TABELA 4.2. CODIFICAÇÃO DO GENÓTIPO ................................ ................................ ............................ 33 TABELA 4.3. CODIFICAÇÃO DO FENÓTIPO ................................ ................................ ............................. 33

LISTA DE FIGURAS
FIGURA 2.1. EXEMPLO DE CODIFICAÇÃO BINÁRIA ................................ ................................ .............. 18 FIGURA 2.2. EXEMPLO CODIFICAÇÃO POR PERMUTAÇÃO ................................ ................................ .18 FIGURA 2.3. EXEMPLO DE CODIFICAÇÃO DE VALORES ................................ ................................ ......18 FIGURA 2.4. EXEMPLO DE CODIFICAÇÃO EM ÁRVORE ................................ ................................ ........19 FIGURA 2.5. EXEMPLO DE ROLETA PARA PROBLEMAS DE MAXIMIZAÇÃO ................................ ....20 FIGURA 2.6. EXEMPLO DE TORNEIO EM PROBLEMAS DE MINIMIZAÇÃO ................................ .........21 FIGURA 2.7. CRUZAMENTO DE UM PONTO DE CORTE ................................ ................................ .........22 FIGURA 2.8. CRUZAMENTO POR PMX ................................ ................................ ................................ ......23 FIGURA 2.9. MUTAÇÃO OCORRENDO NO 2° E 5° GENE ................................ ................................ ........23 FIGURA 4.1. CRUZAMENTO ENTRE FENÓTIPO ................................ ................................ ....................... 35 FIGURA 4.2 ± MUTAÇÃO BASEADA EM MEMÓRIA REALIZANDO 3 TROCAS. TIPO ......................... 36 FIGURA 5.1. EXECUÇÃO DO ALGORITMO NO TESTE 1: AG ................................ ................................ ..40 FIGURA 5.2. EXECUÇÃO DO ALGORITMO NO TESTE 1: SIGA ................................ .............................. 40 FIGURA 5.3. EXECUÇÃO DO ALGORITMO NO TESTE 1: NPSIGA PARA 4 JOGADORES ..................... 41 FIGURA 5.4. EXECUÇÃO DO ALGORITMO NO TESTE 1: NPSIGA PARA 16 JOGADORES ................... 42 FIGURA 5.5. EXECUÇÃO DO ALGORITMO NO TESTE 2: SIGA ................................ .............................. 43 FIGURA 5.6. EXECUÇÃO DO ALGORITMO NO TESTE 2: NPSIGA PARA 4 JOGADORES ..................... 43 FIGURA 5.7. EXECUÇÃO DO ALGORITMO NO TESTE 2: NPSIGA PARA 16 JOGADORES ................... 44 FIGURA 5.8. EXECUÇÃO DO ALGORITMO NO TESTE 3: SIGA ................................ .............................. 45 FIGURA 5.9. EXECUÇÃO DO ALGORITMO NO TESTE 3: NPSIGA PARA 4 JOGADORES ..................... 45 FIGURA 5.10. EXECUÇÃO DO ALGORITMO NO TESTE 3: NPSIGA PARA 16 JOGADORES ................. 46 FIGURA 5.11. EXECUÇÃO DO ALGORITMO NO TESTE 4: SIGA ................................ ............................. 47 FIGURA 5.12. EXECUÇÃO DO ALGORITMO NO TESTE 4: NPSIGA PARA 4 JOGADORES ................... 47 FIGURA 5.13. EXECUÇÃO DO ALGORITMO NO TESTE 4: NPSIGA PARA 16 JOGADORES ................. 48 FIGURA 6.1 - GRÁFICO DE SUPERFÍCIE DO TESTE 4 DA GERAÇÃO 1 À 2426 . ................................ ....51 FIGURA 6.2 - GRÁFICO DE SUPERFÍCIE DO TESTE 4 DA GERAÇÃO 24 27 À 5000. .............................. 51

SUMÁRIO
RESUMO................................ ................................ ................................ ................................ ....................... 12 1. INTRODUÇÃO ................................ ................................ ................................ ................................ .........12 1.1. CONTEXTO ................................ ................................ ................................ ................................ ............ 12 1.2. DESCRIÇÃO DO PROBLEMA E JUSTIFICATIVA ................................ ................................ ............... 13 1.3. OBJETIVOS DO TRABALHO ................................ ................................ ................................ ................ 14 1.3.1. Objetivo Geral ................................ ................................ ................................ ................................ .....14 1.3.2. Objetivos Específicos ................................ ................................ ................................ ........................... 14 1.4. METODOLOGIA................................ ................................ ................................ ................................ .....15 1.5. ESTRUTURA DO TRABALHO ................................ ................................ ................................ .............. 16 2. ALGORITMOS GENÉTICOS ................................ ................................ ................................ ................. 17 2.1. INTRODUÇÃO................................ ................................ ................................ ................................ ........17 2.2. IMPLEMENTAÇÃO DE UM ALGORITMO GENÉTICO ................................ ................................ .......17 2.2.1. Codificação do Cromossomo ................................ ................................ ................................ ............... 17 2.2.1.1. CODIFICAÇÃO BINÁRIA ................................ ................................ ................................ ................ 17 2.2.1.2. CODIFICAÇÃO POR PERMUTAÇÃO ................................ ................................ .............................. 18 2.2.1.3. CODIFICAÇÃO POR VALORES ................................ ................................ ................................ ......18 2.2.1.4. ÁRVORES ................................ ................................ ................................ ................................ .........19 2.2.2. Métodos de Seleção ................................ ................................ ................................ .............................. 19 2.2.2.1. ROLETA ................................ ................................ ................................ ................................ ............ 20 2.2.2.2. TORNEIO ................................ ................................ ................................ ................................ .......... 21 2.2.2.3. ELITISMO ................................ ................................ ................................ ................................ .........21 2.2.3. Cruzamento................................ ................................ ................................ ................................ .......... 21 2.2.3.1. CRUZAMENTO PARCIALMENTE MAPEADO (PMX) ................................ ................................ ...22 2.2.4. Mutação ................................ ................................ ................................ ................................ ............... 23 2.2.5. Parâmetros de um Algoritmo Genético ................................ ................................ ............................... 24 2.2.5.1. Tamanho da População ................................ ................................ ................................ ....................... 24 2.2.5.2. Taxa de Elitismo ................................ ................................ ................................ ................................ .24 2.2.5.3. Taxa de Cruzamento ................................ ................................ ................................ ........................... 24 2.2.5.4. Taxa de Mutação................................ ................................ ................................ ................................ .24 2.2.5.5. Cálculo de Aptidão ................................ ................................ ................................ ............................. 25 2.2.5.6. Tamanho do Cromossomo ................................ ................................ ................................ ................... 25 2.2.5.7. Número Máximo de Gerações ................................ ................................ ................................ ............. 25 3. TEORIA DOS JOGOS ................................ ................................ ................................ .............................. 26 3.1. INTRODUÇÃO................................ ................................ ................................ ................................ ........26 3.2. CONCEITOS ................................ ................................ ................................ ................................ ........... 26 3.2.1. Elementos de um Jogo ................................ ................................ ................................ ......................... 26 3.2.2. Tipos de Jogos ................................ ................................ ................................ ................................ ......27 3.3. O PARADIGMA DO DILEMA DO PRISIONEIRO ................................ ................................ ................. 27 3.3.1. Dilema do Prisioneiro para duas Pessoas ................................ ................................ ............................ 28 3.3.1.1. Tipos de Estratégias ................................ ................................ ................................ ............................ 29 3.3.2 Dilema do Prisioneiro para N-Pessoas ................................ ................................ ................................ ..30 4. NpSIGA (Algoritmo Genético com Interação Social para N-Pessoas) ................................ ..................... 32 4.1. CODIFICAÇÃO DO CROMOSSOMO ................................ ................................ ................................ ....32 4.1.1. Codificação do Genótipo ................................ ................................ ................................ ...................... 33 4.1.2. Codificação do Fenótipo ................................ ................................ ................................ ...................... 33 4.2. FUNÇÃO DE AVALIAÇÃO................................ ................................ ................................ .................... 34 4.3. MÉTODOS DE SELEÇÃO ................................ ................................ ................................ ...................... 35 4.4. MÉTODO DE CRUZAMENTO ................................ ................................ ................................ ............... 35 4.5. MUTAÇÃO COM MEMÓRIA................................ ................................ ................................ ................. 35 5. AVALIAÇÃO DO NpSIGA ................................ ................................ ................................ ...................... 37 5.1. O PROBLEMA DO CAIXEIRO VIAJANTE ................................ ................................ ............................ 37 5.2. AVALIAÇÃO DO NpSIGA APLICADO AO PROBLEMA DO CAIXEIRO VIAJANTE ........................ 37 5.3. PARÂMETROS DOS TESTES ................................ ................................ ................................ ................ 38

5.4.DESCRIÇÃO DOS TESTES REALIZADOS ................................ ................................ ............................ 38 5.5. ANÁLISE DOS RESULTADOS OBTIDOS ................................ ................................ ............................. 49 6. CONSIDERAÇÕES FINAIS................................ ................................ ................................ ..................... 50 6.1. PRINCIPAIS CONTRIBUIÇÕES ................................ ................................ ................................ ............. 50 6.2. CONCLUSÕES ................................ ................................ ................................ ................................ ........50 6.3. TRABALHOS FUTUROS ................................ ................................ ................................ ........................ 52 REFERÊNCIAS BIBLIOGRÁFICAS ................................ ................................ ................................ .......... 53 ANEXO A ................................ ................................ ................................ ................................ ...................... 55 ANEXO B ................................ ................................ ................................ ................................ ...................... 56

RESUMO Este trabalho apresenta um estudo extensivo sobre Algoritmo Genético com Teoria dos Jogos para N-pessoas, o que aumenta a variabilidade da população e diminui a probabilidade do algoritmo ficar preso em um ótimo local. Os indivíduos da população apresentam dois cromossomos, sendo: um para a solução do problema em questão, que no caso desse trabalho são instâncias do Problema do Caixeiro Viajante (PCV); e o outro para a codificação genética do comportamento, necessária para definir a estratégia a ser utilizada por eles durante as disputas dos jogos. Para a realização dos experimentos, o processo de implementação foi definido e construído cronologicamente da seguinte forma: Implementaçãodo algoritmo genético clássico (AG); Combinação do AG com a fase de interação social (SIGA), utilizaçãodo Paradigma do Dilema do Prisioneiro Clássico (2pessoas); Aplicação do conceito de N-pessoas, onde os indivíduos possuem uma taxa de tolerância à traição. Além disso, foram ainda implementadas as seguintes funcionalidades: em cada geração, a população é composta por indivíduos únicos; elitismo; a possibilidade dos pais selecionados para cruzamento não gerarem descendentes e, assim, posteriormente, sofrerem ou não mutação; uma mutação com memória a qual pode ou não ocorrer. Finalmente, foram realizados 16 testes paraa instância denominada de BR-26, que define a distância entre todas as capitais brasileiras interligadas por estradas. Os resultados encontrados demonstram a viabilidade da metodologia e, ainda, apontam para muitas outras possibilidades de aplicação e expansão. Palavras-chave: NpSIGA, Computação Evolucionária, Algoritmos Genéticos, Teoria dos Jogos N-Jogadores, Paradigma do Dilema do Prisioneiro.

1. INTRODUÇÃO Neste capítulo são apresentados os principais assuntos para a melhor compreensão do contexto do trabalho e sua metodologia de desenvolvimento. 1.1. CONTEXTO Os seres humanos se intitulam seres racionais por serem dotados de inteligência, utilizando-a para gerar conhecimento sobre como explicar e manipular os eventos naturais e do universo (YASOJIMA, LOBATO, 2009). Percebeu-se então, que o ser humano havia desenvolvido a máquina mais poderosa de todas: o cérebro. Seu funcionamento foi fonte inspiradora para a concepção de um dos primeiros computadores digitais, conhecido como Máquina de Von Neumann. A partir de então, cientistas passaram a simular processos naturais usando um cérebro artificial, os quais chamaram de computador. Para alguns visionários tais experiências levarão a criação de novas formas de inteligência que deverão superar a dos humanos (BRITO, 2004). Com as análises dos resultados das experiências, concluiu-se que a biologia tem muito a contribuir para o desenvolvimento da computação. Pensando nisso, Seymour Cray, o ³pai do supercomputador´, propôs dois caminhos para uma revolução tecnológica: (i) construção de elementos computacionais inspirados na biologia; (ii) utilização de dispositivos biológicos na computação de informação. E, seguindo suas afirmações, surgiu a área da Computação Natural (CN), que consiste no estudo e construção de um sistema computacional que se inspire ou utilize algum mecanismo natural ou biológico (YASOJIMA, LOBATO, 2009). A CN está subdividida em três subáreas:

1. Computação Bio-inspirada: é a abordagem mais antiga e popular da CN e estaalicerçada em duas idéias principais: (a) modelagem de sistemas e processos naturais com objetivo de simulá-los em computadores; (b) estudode fenômenos biológicos,processos e até mesmo de modelos teóricos paradesenvolvimento de sistemascomputacionais e algoritmos capazes desolucionar problemas complexos.

2. Vida Artificial e Geometria Fractal da Natureza :analisa organismos vivosna tentativa de sintetizá-los as criaturas e seus comportamentoscomputacionalmente, como forma de aumentar a compreensão sobre anatureza, gerar modelos artificiais que possibilitem novas formas de vida eo desenvolvimento de novas tecnologias, tais como: robôs-humanóides;

13

3. Computação com Significado Natural:objetiva utilizar mecanismosnaturais, cadeias de DNA e técnicas de engenharia genética, como novosparadigmas decomputação, de forma que possam a vir suplementar e/ou complementar os computadores atuais baseados em tecnologia de silício ena Máquina de Von Neumann, tais como: Computação Molecular eComputação Quântica.

(TEIXEIRA, 2007) 1.2. DESCRIÇÃO DO PROBLEMA E JUSTIFICATIVA No processo de evolução, cada indivíduo já nasce com seu material genético, o genótipo, que só sofre modificação através de mutação. O ambiente também influencia no indivíduo através da sua interação com a sociedade, ele agrega determinadas características comportamentais que muitas vezes melhora o valor do seu genótipo. A esse tipo de manifestação se dá o nome de fenótipo. Durante o processo de sobrevivência, vários indivíduos buscam por recursos específicos, o que gera um ambiente repleto de conflitos como, por exemplo, a procura por um apartamento, a disputa de uma vaga de emprego, os relacionamentos, a busca por comida, etc., onde somente o indivíduo que obtiver o melhor desempenho, combinando suas habilidades de adaptação ao meio e alguma característica, que pode ou não ser provinda de seu material genético, consegue destacar-se obtendo o recurso disputado. A Teoria dos Jogos aparece como a configuração do ambiente de conflito entre os indivíduos em sociedade, onde eles interagem de diversas maneiras de acordo com seus próprios interesses, visando sempre a maximização de seu ganho, e a minimização do ganho de seus oponentes (YASOJIMA, LOBATO, 2009). No contexto de Algoritmos Genéticos (AG), o indivíduo não sofre influência do ambiente, somente seu material genético é analisado, podendo gerar seu extermínio pelo fato de não apresentar um genótipo favorável para a resolução do problema, sua sobrevivência. Essa situação não representa o que ocorre na natureza, se fosse assim, uma pessoa com deficiência visual nunca poderia participar de uma olimpíada, ou quem nascesse sem uma perna não poderia andar novamente. A inserção de uma etapa de interação social, antes da seleção dos indivíduos para reprodução, faz com que um indivíduo com desempenho abaixo do esperado possa evoluir, através do conceito de fenótipo, de uma maneira que o seu comportamento e adaptabilidade o tornem mais competitivo para geração de descendentes.

14

A interação social entre uma população ocorre por meio de situações de conflito de interesse entre diferentes indivíduos, a qual gera um ambiente de jogo que tem suas regras, ganhos e recursos definidos. Aos jogadores, cada indivíduo, cabe estabelecer uma estratégia que de acordo com ela lhe retribuirá algum ganho pela disputa. Um dos principais paradigmas da Teoria dos Jogos é o Dilema do Prisioneiro, onde dois indivíduos-jogadores, os prisioneiros, têm duas opções de jogo: Colaborar, ou Trair seu companheiro, sem saber de imediato a ação tomada pelo outro. Neste caso clássico, o ganho dos jogadores é computado de maneira simples, pois como há somente dois jogadores e duas opções para cada, gera-se uma matriz de possibilidades de quatro ganhos diferentes para cada partida. Esta situação, porém, não reflete as disputas que ocorrem na natureza. Den da tro Teoria dos Jogos, existe uma vertente chamada de N-Pessoas (NP) que implementa disputas para mais de dois jogadores, simultaneamente, aumentando o grau de complexidade da computação dos ganhos de cada indivíduo. Desta forma, a inserção de uma disputa NP torna a matriz de ganho do Dilema do Prisioneiro complexa e mais próxima do que ocorre na natureza. A seguir, são mostrados os objetivos a serem alcançados neste trabalho. 1.3. OBJETIVOS DO TRABALHO 1.3.1. OBJETIVO GERAL O objetivo geral deste trabalho é realizar um estudo extensivo a respeito de Algoritmo Genético com Teoria dos Jogos para N-Pessoas, e com isso gerar uma nova meta-heurística de busca inspirada na natureza. 1.3.2. OBJETIVOS ESPECÍFICOS 1. Compreender a forma de atuação dos Algoritmos Genéticos e sua implementação, variações e conceitos; 2. Compreender a atuação e definições de Teoria dos Jogos integrando-a a implementação do Algoritmo Genético, acrescentando uma nova etapa antes da reprodução do AG; 3. Compreender o conceito de Teoria dos Jogos para N-Pessoas, de forma que possibilite o agrupamento de mais jogadores na etapa de interação social;

15

4. Desenvolver o algoritmo com Interação Social para N-Pessoas; 5. Implementar os seguintes algoritmos: Algoritmo Genético, Algoritmo Genético com Interação Social (SIGA) e o novo Algoritmo com Interação Social para N-Pessoas (NpSIGA); 6. Realizar os testes dos algoritmos em duas fases: (1) testes de validação, como forma de definir os valores dos seus parâmetros de avaliação; (2) testes comparativos com os parâmetros definidos nos testes de validação; 7. Analisar os resultados obtidos nos testes. 1.4. METODOLOGIA Para elaboração deste trabalho foram realizadas pesquisas bibliográficas em cima dos principais temas: Algoritmos Genéticos e Teoria dos Jogos. Isto foi necessário para um melhor embasamento teórico sobre os assuntos e como base para realizar as tarefas necessárias no cumprimento dos objetivos propostos. Tendo definido a pesquisa bibliográfica, foram realizadas reuniões para escolha do tipo de problema que seria abordado pelo algoritmo. De posse do problema, a implementação do protótipo pode ser iniciada, primeiramente pela codificação do algoritmo genético e depois pela inserção da interação social no AG. Na primeira etapa, foram decididos os métodos de seleção e cruzamento utilizados no Algoritmo Genético, além da codificação do cromossomo e da função de avaliação, voltados para o Problema do Caixeiro Viajante (PCV). Na segunda etapa, foram implementados a codificação do fenótipo para cada indivíduo da população, o que caracteriza a interação social, e a lógica de simulação do ambiente de jogo utilizando o Paradigma do Dilema do Prisioneiro Iterado (DPI) para duas pessoas, todo esse processo foi adicionado antes da etapa de seleção do AG. Logo após o desenvolvimento do ambiente para dois jogadores, foi implementado o ambiente de disputa para múltiplos jogadores. Para o desenvolvimento do protótipo foi utilizada a linguagem de programação JAVA e para a análise da eficácia do algoritmo foram analisados os gráficos gerados a partir de cada teste para dois e múltiplos jogadores.

16

1.5. ESTRUTURA DO TRABALHO O trabalho está dividido em seis capítulos que exploram os fundamentos necessários para entender o projeto, sua implementação e os resultados analisados. O capítulo dois descreve o funcionamento e formas de desenvolver Algoritmos Genéticos, além de exemplos de sua implementação. O capítulo três fundamenta os conceitos de Teoria dos Jogos, suas principais estratégias e paradigmas, assim como as definições para NP. O capítulo quatro aborda o protótipo do algoritmo modelado a partir do Algoritmo Genético com Interação Social (SIGA), passando pelo desenvolvimento da sua estrutura e pela implementação de NpSIGA no contexto. O capítulo cinco mostra a avaliação, parâmetros e descrição dos testes baseado no Problema do Caixeiro Viajante, assim como descrição e analise dos resultados obtidos. O capítulo seis trata das considerações finais do trabalho e trabalhos futuros.

17

2. ALGORITMOS GENÉTICOS 2.1. INTRODUÇÃO Neste capítulo são apresentados alguns tópicos para melhor compreensão da teoria, funções e implementações de algoritmos genéticos, que segundo STEMMER[s.d], são métodos adaptativos que podem ser usados para resolver problemas de busca e otimização, e é uma parte da computação evolucionária dentro da inteligência artificial, que iniciou em 1960 por Rechenberg em seu trabalho ³Estratégias de Evolução´, de título original: ³Evolutions Strategien´. Os algoritmos genéticos foram originados de estudos de autômatos celulares de John Holland, da Universidade de Michigan, publicados em 1975 no livro: ³Adaption in Natural and Artificial Systems´ e inspirados na teoria da evolução de Charles Darwin, apresentado na obra ³A origem das espécies´, publicado em 1859 (STEMMER, [s.d]). 2.2. IMPLEMENTAÇÃO DE UM ALGORITMO GENÉTICO 2.2.1. CODIFICAÇÃO DO CROMOSSOMO Segundo YASOJIMA, LOBATO (2009), a codificação do cromossomo é como os parâmetros (cromossomos, indivíduos) são utilizados no algoritmo genético. Sua representação pode ser feita de quatro maneiras, que são: Codificação binária, Codificação por permutação, Codificação por valores e Árvores. 2.2.1.1. CODIFICAÇÃO BINÁRIA A codificação mais utilizada é a codificação binária, devido a facilidade de utilização, que se deve principalmente a fatores históricos, pois John Holland ao inventar os AG, priorizou esse tipo de codificação, onde os cromossomos são representados por bits. Na figura 2.1 abaixo temos um exemplo de codificação binária.

18

Figura 2.1 ± Exemplo de Codificação Binária. Fonte: OBTIKO (1998)

A capacidade de representar muitos cromossomos com um pequeno número de alelos pode ser vista como a principal vantagem para utilizar esse tipo de codificação. Segundo TEIXEIRA (2003), esta codificação não é natural e não pode ser utilizada em vários problemas, podendo sofrer com ordenações aleatórias. 2.2.1.2. CODIFICAÇÃO POR PERMUTAÇÃO Esse tipo de codificação é muito utilizado para problemas de ordenação como, por exemplo, o Problema do Caixeiro Viajante. A capacidade de representar muitos cromossomos com um pequeno número de alelos pode ser vista como principal vantagem de utilização dessa técnica. Nesta codificação, cada cromossomo é um conjunto de números que representa uma posição em uma sequência como pode ser observado na Figura 2.2. Cromossomo A Cromossomo B 153264798 856723149

Figura 2.2 ± Exemplo codificação por permutação. Fonte: OBTIKO (1998)

2.2.1.3. CODIFICAÇÃO POR VALORES Para problemas que utilizam valores complexos, aplica-se a codificação por valores, pois a codificação binária não oferece suporte a uma modelagem complexa de informações. Nesta codificação, os cromossomos podem ser representados por uma sequência qualquer, relacionada ao problema como, por exemplo: caracteres, números ou outro tipo de objeto (Figura 2.3).

19

Cromossomo A Cromossomo B Cromossomo C
 

1.2324 5.3243 0.4556 2.3293 2.4545 AB R

(atrás), (atrás), (direita), (frente), (esquerda)

Fi ura 2.3 ± Exemplo de codificação de valores.
£¢¡

Fonte: OB

O (1998)

Segundo Obti o (1998), esta codificação pode ser a solução para alguns problemas especiais, porém é necessário desenvolver métodos específicos de cruzamento e mutação para manipular os cromossomos codificados. 2.2.1.4. ÁRVORE Na codificação em árvores, cada cromossomo é uma árvore de objetos, que são funções ou comandos de uma linguagem de programação, e é muito utilizado para criar programas e expressões, ou seja, programação genética. Cromossomo B

Cromossomo A

( + x ( / 5y ))
Fonte: OB

( do until step wall )
O (1998)

Figura 2.4 ± Exemplo de codificação em árvore.
£¢¡

2.2.2. MÉTODOS DE SELE

O

Segundo M CHELL (1999), o objetivo da seleção é escol er indivíduos mais aptos para a reprodução, com a finalidade de que estes gerem uma prole com mel orfit solução de determinado problema. De acordo com Goldberg (1989, seleção é uma versão artificial do processo de seleção natural, onde a escol a dos indivíduos 
© ¨§ ¦¦¥¤

para a

YASOJIMA, LOBATO, 2009), o operador de

20

mais aptos ocorre da comparação de sua modelagem, feita a partir de sequências de caracteres que caracterizam a representação cromossômica de cada criatura. 2.2.2.1. ROLETA Um dos métodos de seleção mais utilizados, a Roleta Simples, simula o jogo o qual uma pessoa gira uma roda divida proporcionalmente de acordo com os itens nela contidos. No modelo computacional, cada indivíduo tem uma determinada proporção calculada a partir de sua fitness, o que pode variar de acordo com o problema a ser solucionado. Por exemplo, em problemas de minimização, os indivíduos de menor valor detêm as maiores proporções, pois possuem soluções boas para o problema, o inverso pode ser observado para problemas de maximização, como mostrado na Figura 2.5.

Figura 2.5 ± Exemplo de Roleta para problemas de Maximização. Fonte: Adaptado de <http://www.edc.ncl.ac.uk/highlight/rhjanuary2007g02.php/>

Após a distribuição de proporção da população, um valor aleatório é escolhido, sendo este o ponto de seleção que irá definir quem será selecionado para o processo de reprodução. Percebe-se que o método da Roleta dá preferência a indivíduos de maior proporção para o cruzamento, deixando uma pequena probabilidade para os menos aptos(MITCHELL, 1999).

21

2.2.2.2. TORNEIO Este método consiste em selecionar uma determinada quantidade de indivíduos aleatórios da população, e realizar torneios entre eles. O ganhador é encontrado de acordo com o melhor valor de sua função de avaliação para resolver o problema. O número de indivíduos que competirão pode variar de acordo com a variável k e executado n vezes ao decorrer do programa, esses valores são determinados antes de sua execução. Somente um indivíduo pode ganhar, tornando-se um dos integrantes da etapa de cruzamento. Através deste método, os melhores indivíduos da população ganham somente os torneios os quais participam, aumentando a probabilidade de criaturas menos aptas tornaremse progenitores para a próxima geração, diminuindo assim, uma rápida convergência genética(MITCHELL, 1999).

Figura 2.6 ± Exemplo de Torneio em Problemas de Minimização.

2.2.2.3. ELITISMO Muitos estudos comprovam uma significante melhora na resolução de problemas quando é usado o Elitismo como método auxiliador dos métodos de seleção convencionais, pois impõe que um determinado número de melhores indivíduos permaneça para a próxima geração, fazendo com que eles não sejam descartados por terem realizado mutação ou cruzamento (MITCHELL, 1999). 2.2.3. CRUZAMENTO É o processo de combinação entre dois cromossomos, chamados de pais, escolhidos através de um método de seleção, em que seus códigos genéticos são misturados a fim de gerarem dois novos indivíduos mais aptos, chamados de filhos.

22

O cruzamento é realizado a partir da escolha de um, ou mais pontos de corte ou pontos de cruzamento. O exemplo da Figura 2.7 demonstra um cruzamento com um ponto de corte, onde o ponto que corta cada pai é replicado em um dos filhos(MITCHELL, 1999).

Figura 2.7 ± Cruzamento de Um Ponto de Corte.

2.2.3.1. CRUZAMENTO PARCIALMENTE MAPEADO (PMX) Existem tipos de cruzamentos onde há combinação entre métodos conhecidos, como é o caso do cruzamento parcialmente mapeado ou Partially Matched Crossover (PMX) em inglês, que combina as técnicas de cruzamento de dois pontos com inversão genética 1. Nele são selecionados dois pontos de corte aleatoriamente dentro do cromossomo modelado de cada um dos pais, esses pontos sofrerão inversão genética, fazendo com que o Pai 1 receba os caracteres entre os pontos de corte do Pai 2, e vice-versa. Os demais alelos recebem os valores do seu respectivo pai, substituindo caracteres repetidos de acordo com a inversão sofrida pelos pontos de corte, como mostra a Figura 2.8. Nela, o Filho 2 quando herda o caractere 5, verifica que já o possui na sua sequência, então procura dentro da tabela gerada pelos caracteres invertidos um novo número correspondente a ele, achando, como no exemplo, a representação de número 6. Porém este valor também já está mapeado, o que gera outra verificação, a qual retorna o valor numérico 8, que ainda não foi mapeado neste novo cromossomo, sendo assim acrescido no segundo filho.

1

Para maiores informações sobre inversão, consulte SIVANANDAM, DEEPA, 2008. (p. 86 -88).

23

Figura 2.8 ± Cruzamento por PMX.

Este método garante com que os filhos gerados possuam uma sequência de caracteres distintos, ou seja, nenhum valor de seu alelo é repetido, fazendo do PMX uma técnica para ser utilizada na resolução de problemas onde tem de haver um controle na permutação do cromossomo (SIVANANDAM, DEEPA,2008). 2.2.4. MUTAÇÃO Ao longo das gerações em um AG, indivíduos tendem a ficar cada vez mais parecidos, e é fundamental, para o processo evolutivo, que exista sempre um grau de heterogeneidade na população (TEIXEIRA, 2007). A mutação tem o objetivo de fornecer essa variabilidade a mais, pois cria uma nova versão do indivíduo ao alterar aleatoriamente uma parte de seu material genético, assim fornecendo novos pontos de busca para a solução do problema (SIVANANDAM, DEEPA, 2008).

Figura 2.9 ± Mutação ocorrendo no 2° e 5° gene.

A figura acima exemplifica esse processo, onde os valores dos dois genes selecionados (4 e 3) invertem suas posições. O indivíduo agora segue na população com seu novo material genético.

24

2.2.5. PARÂMETROS DE UM ALGORITMO GENÉTICO Para a execução de um algoritmo genético é necessária a definição de certos parâmetros, os quais serão apresentados nesta seção. Os valores desses parâmetros são essenciais para o bom funcionamento do AG e variam conforme o tipo de problema abordado. 2.2.5.1. TAMANHO DA POPULAÇÃO Define o número de indivíduos permitidos dentro da população. Se a população é constituída de poucos indivíduos isso ocasiona numa baixa exploração de soluções e caso esse número seja alto o tempo de processamento tende a aumentar. 2.2.5.2. TAXA DE ELITISMO Estabelece quantos indivíduos considerados bons da população de uma geração anterior devem substituir os piores indivíduos da população da geração atual (TEIXEIRA, 2007). 2.2.5.3. TAXA DE CRUZAMENTO A taxa de cruzamento define a probabilidade de um casal de indivíduos gerarem descendentes. Quando os indivíduos não geram descendentes, então os filhos são iguais aos pais e são adicionados na nova população, caracterizando assim uma situação de clonagem. Normalmente esta taxa varia de um valor médio alto, em torno de 50% a 80% (TEIXEIRA, 2005). 2.2.5.4. TAXA DE MUTAÇÃO A taxa de mutação define a probabilidade de a mutação ocorrer. Geralmente essa taxa é definida com um valor bem baixo, pois caso contrário o AG passa ter um comportamento randômico na geração de indivíduos após o cruzamento.

25

2.2.5.5. FUNÇÃO DE AVALIAÇÃO A função de avaliação, também chamada de fitness, representa a adaptabilidade do indivíduo, ou seja, o quão bom ele é. Deve ser planejado corretamente para poder representar de forma consistente uma boa solução para o problema, pois ela influencia diretamente na seleção dos indivíduos para geração de descendentes. Através desta função é possível verificar a convergência genética da população, caracterizada por ser uma progressão do valor obtido pelo cálculo da função de avaliação até certo grau de uniformidade, ou seja,indivíduos com o mesmo fitness (STEMMER,[s.d]). No capítulo 4, será explicada detalhadamente a função utilizada neste trabalho. 2.2.5.6. TAMANHO DO CROMOSSOMO Representa o número de informações que o cromossomo contém, sendo que o tamanho e essas informações dependem do problema utilizado. 2.2.5.7. NÚMERO MÁXIMO DE GERAÇÕES Representa quantas vezes o conjunto de processos principais do AG (cálculo de fitness, seleção, cruzamento e mutação) será executado. Esse valor pode variar de 50 a até 500 gerações. Existem casos em que podem se usar mais de 500 gerações (MITCHELL, 1999).

26

3. TEORIA DOS JOGOS 3.1. INTRODUÇÃO Segundo TEIXEIRA (2007), a Teoria dos Jogos define uma situação de conflito de interesse entre agentes racionais, a qual simula a luta pela existência de diversos seres vivos, definido por Darwin como transcrito a seguir:
[...] todos os seres vivos estão expostos a uma rigorosa competição. Nada mais fácil do que admitir a verdade da luta universal pela existência; por outro lado, nada mais difícil do que trazer em mente, o tempo todo, esta conclusão. Contudo, se assim não se fizer, ou seja, se não se cogitar tanto dessa ideia até que ela fique assim por dizer arraigada em nossa mente, estou convencido de que nos parecerão obscuros ou serão inteiramente mal interpretados todos os fatos relacionados com a economia da natureza, com a distribuição, com a raridade, a abundância, a extinção e a variação. A natureza nos parece brilhante e jubilosa quando em situação de superabundância de alimentos; então não vemos, ou não nos passa pela ideia, que as aves cantando alegremente ao nosso redor vivem geralmente de insetos ou sementes, e que assim estão constantemente destruindo a vida; ou comumente nos esquecemos de como é frequente serem esses pássaros canoros, e também seus ovos e filhotes, destruídos pelos animais predadores; tampouco trazemos continuamente na mente a lembrança de que, embora o alimento esteja então abundante, nem sempre tal circunstância ocorre durante sucessivas estações do ano(Darwin,

1994, apud TEIXEIRA, 2007).

Computacionalmente,

caracteriza-se

por

jogo

a

representação

formal

do

comportamento estratégico das situações descritas acima, porém sem definir como os indivíduos modelados devem se comportar ou tomar decisões (TEIXEIRA, 2003). 3.2. CONCEITOS 3.2.1. ELEMENTOS DE UM JOGO A seguir são apresentados os principais componentes de um jogo computacional segundo TEIXEIRA (2007): 1. Agente Racional: é qualquer indivíduo ou grupos de indivíduos modelados, com capacidade de decisão para afetar as escolhas dos demais. É também denominado de Jogador;

27

2. Racionalidade: dizer que os agentes são racionais significa que cada indivíduo emprega a decisão mais adequada para alcançar o seu objetivo, seja este qual for; 3. Interações: as ações individuais de cada agente afetam as decisões dos demais; 4. Comportamento Estratégico: cada jogador, ao tomar sua decisão, leva em consideração o fato de que está interagindo com outros agentes, e que a sua decisão implicará em consequências para as decisões dos demais jogadores, e vice-versa. 3.2.2. TIPOS DE JOGOS Abaixo, são descritos os tipos de jogos de acordo com Luce et al. (1957,apud BRITO, 2004): 1. Jogos Soma-Zero: ocorre quando os ganhos de um jogador são iguaisà perda do outro, e a soma dos ganhos líquidos de ambos tem de ser igual a zero, ou seja, um participante ganha e o outro perde; 2. Jogos com soma diferente de zero: a soma dos ganhos dos participantes não precisa ser igual a zero, sendo assim, normalmente quando um jogador perde recebe um valor mínimo de pagamento; 3. Jogos Não-Cooperativos: não existe qualquer tipo de comunicação entre os participantes, cada agente precisa maximizar o seu ganho independente de outro jogador; 4. Jogos N-Pessoas: caracteriza jogos onde mais de dois jogadores participam. 3.3. O PARADIGMA DO DILEMA DO PRISIONEIRO O dilema do prisioneiro é um problema não cooperativo com soma diferente de zero da teoria dos jogos que foi idealizado em 1950 pelos matemáticos da RAND Corporation2, e mais tarde batizado com este nome por Allan Tucker. Consiste em uma análise do comportamento entre dois ou mais jogadores perante um conflito. Simula a seguinte situação: os jogadores são criminosos colocados em selas diferentes e sem comunicação entre si. É assim realizada uma proposta a cada um, separadamente, daxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx seg
2

A RAND Corporation é uma instituição sem fins lucrativos, que realiza pesquisas que contribuem na tomada de decisões e na implementação de políticas do setor público e privado.

28

uinte maneira: caso um denuncie o outro, e este não assuma, o primeiro ganharia um prêmio e o segundo uma punição; caso os dois confessem, ambos receberiam uma punição; caso nenhum dos dois delatasse o outro, ambos seriam soltos. Diante das opções descritas pelos guardas, os prisioneiros teriam de fazer sua escolha, sem saber de imediato a decisão tomada pelo outro jogador, criando assim, uma situação de dilema (YASOJIMA, LOBATO, 2009). 3.3.1. DILEMA DO PRISIONEIRO PARA DUAS PESSOAS O Dilema do Prisioneiro para duas pessoas é caracterizado através de uma tabela de pagamento, apresentada na Tabela 3.1.

Tabela 3.1 ± Tabela de Pagamentos do Dilema do Prisioneiro para duas Pessoas. Fonte: YAO, DAR EN (1994).

Cada jogador pode expressar dois tipos de comportamento diferentes: Cooperar (C t ou C) e Trair (D f t ou D). A tabela acima é montada de forma a representar os 


ganhos por eles obtidos, e os valores de T, R, S e P, devem seguir as seguintes relações (TEIXEIRA, 2007): 

    Para cada par de comportamentos, são calculados os valores de ganhos conforme listados abaixo: y y T: tentação (Tempt ti ) o que cada jogador receberá, caso traia sozinho; R: recompensa (Reward) que cada jogador recebe quando ambos cooperarem; 
  

 

29

y y

P: punição (Punishment) recebida pelos jogadores se ambos traírem; S: pagamento do otário (Sucker), quem coopera sozinho. Segundo as características do dilema do prisioneiro, este pode ser simétrico, onde os

valores de pagamento são os mesmos para qualquer jogador, ou assimétrico, quando há variações no pagamento. Também pode ser iterado, caracterizado por ocorrer mais de uma rodada no mesmo jogo. Quando o jogador, além dos comportamentos de cooperar e trair puder optar por não escolher nenhum desses, caracteriza um dilema com movimentos múltiplos (TEIXEIRA, 2007) 3. Segundo TEIXEIRA (2007), não é permitido mutação nas estratégias dos jogadores, ou seja, a configuração inicial de cada uma não pode ser alterada durante as simulações e devem obedecer a algumas regras:
y

Não é permitido aos jogadores estabelecerem acordos prévios, ou seja, o oponente poderá cooperar ou trair independente da escolha do outro e não há como ter certeza do que este poderá fazer;

y

O resultado das iterações ocorridas anteriormente é a única informação que os jogadores podem obter;

y

Nenhum jogador pode se recusar a jogar ou obrigar a outro jogador a desistir de participar de uma disputa;

y y

Os valores de pagamento para os pares de comportamento não podem ser alterados; Os jogadores só podem se comunicar durante as disputas;

3.3.1.1. TIPOS DE ESTRATÉGIAS Dentro do Paradigma do Dilema do Prisioneiro (PDP), existem vários tipos de estratégias, dentre essas as utilizadas neste trabalho são quatro: a primeira é sempre cooperar (ALL-C), ou seja, a cada disputa o participante com essa estratégia sempre coopera com seu adversário; a segunda é a de sempre trair (ALL-D), em todas as disputas que participar o jogador sempre irá trair o outro; a terceira chama-se estratégia aleatória (Random), em que a cada disputa será sorteada aleatoriamente uma das estratégias, cooperar ou trair, a ser utilizada pelo jogador; a quarta chama-se TIT-FOR-TAT (TFT), uma estratégia simples, que
3

Maiores detalhes podem ser vistos em LUCE et al., 1985, apud TEIXEIRA, 2007.

30

simula o seguinte comportamento: no primeiro encontro com o adversário, o jogador desta estratégia coopera, porém, a partir da segunda disputa com o mesmo jogador, passa a aplicar a estratégia que foi escolhida pelo adversário na rodada anterior entre eles (AXELROD, 1984, apud BRITO, 2004). 3.3.2. DILEMA DO PRISIONEIRO PARA N-PESSOAS A abordagem do Dilema do Prisioneiro para mais de duas pessoas, proporciona uma aplicabilidade mais fiel às situações que ocorrem no mundo real, pois simulam melhor os eventos que ocorrem na natureza (YAO, DARWEN, 1994). Ao analisar a tabela de pagamento para disputas de duas pessoas, consegue obter -se uma generalização aplicável à N-Pessoas como a seguir:

Tabela 3.2 - Tabela de Pagamentos para Dilema do Prisioneiro para N-Pessoas

Fonte: YAO, DARWEN (1994).

A contabilização dos pontos se diferencia da que ocorre no dilema de duas pessoas. A tabela 3.2, apresenta os valores de pagamento que um jogador A ganha quando escolhe trair ou cooperar. Percebe-se então, uma relação entre o número de jogadores que participam da disputa e a quantidade de traidores e cooperadores que nela estavam influenciando no valor de ganho do jogador em questão de acordo com as seguintes fórmulas (MANHART, 2007):

(1) 

(2)

31

Onde, Jc representa o valor de ganho caso o jogador escolha cooperar; Jd caso escolha trair; R recebe o pagamento oferecido pela recompensa de cooperar; T o pagamento oferecido pela tentação de trair; Nc é o número de jogadores presentes na disputa que cooperaram; e N o número total de jogadores simultâneos na partida. De posse dos parâmetros, é possível quantificar o ganho de cada jogador ao longo de uma disputa quando há múltiplos adversários em conflito.

32

4. NpSIGA (ALGORITMO GENÉTICO COM INTERAÇÃO SOCIAL PARA NPESSOAS) Neste capítulo são abordadas as principais características a respeito do funcionamento e implementação do algoritmo NpSIGA, tomando como base o pseudocódigo apresentado na tabela 4.1. 1. Gerar população inicial 2. Avaliar cada um dos indivíduos da população (fitness) 3. Repetir até i gerações 3.1. Repetir n disputas 3.1.1. Selecionar N indivíduos da população aleatoriamente 3.1.2. Repetir m rodadas 3.1.2.1. Obter o comportamento dos indivíduos 3.1.2.2. De acordo com a estratégia do indivíduo durante a partida, utilizar a fórmula de pagamento do jogo para alterar a sua adaptabilidade 3.2. Repetir até o número de descendentes ser igual à quantidade desejada 3.2.1. Selecionar um par de indivíduos de acordo com método de seleção previamente descrito 3.2.2. Realizar operação de cruzamento nos indivíduos 3.2.3. Avaliar os descendentes 3.3. Realizar operação de mutação nos indivíduos 3.4. Selecionar um número de melhores indivíduos dentre todos até o momento, de acordo com a taxa de elitismo, e substituir os piores indivíduos 4. Caso a população atinja o critério de parada, é finalizado o processo, caso contrário repete a partir do item 3.1 5. O melhor indivíduo é a solução do problema Tabela 4.1 - Pseudocódigo do NpSIGA.

4.1. CODIFICAÇÃO DO CROMOSSOMO Cada indivíduo apresenta dois cromossomos: um modelando a solução para o problema, ou seja, seus genes; e o outro modela sua estratégia, ou seja, seu comportamento. Foi feito o uso também de um identificador para auxiliar ao longo da execução na identificação de cada novo ser gerado.

33

4.1.1. CODIFICAÇÃO DO GENÓTIPO O cromossomo dos indivíduos possui uma codificação por permutação e tem como base o Problema do Caixeiro Viajante aplicado nas 26 cidades-capitais do Brasil, onde cada gene representa uma cidade visitada pelo caixeiro. 1 19 7 24 12 22 6 13 23 10 18 24 20 14 3 5 16 9 17 11 21 25 4 15 8 2 1
Tabela 4.2. Codificação do Genótipo

Observa-se que os valores do primeiro e do último gene são iguais, e ao longo do cromossomo nenhum valor deve se repetir, totalizando em um cromossomo com 27 posições. Tais características retratam a seguinte situação: um caminho iniciado na cidade X percorre uma determinada rota e retorna a primeira cidade sem visitar o mesmo ponto mais de uma vez. 4.1.2. CODIFICAÇÃO DO FENÓTIPO

Na representação do comportamento de cada indivíduo, codifica-se um cromossomo de tamanho 2, de acordo com a tabela a seguir:

Tabela 4.3. Codificação do Fenótipo Fonte: YASOJIMA, LOBATO (2009).

Na

população inicial cada indivíduo teria seu comportamento codificado

aleatoriamente, porém a população deve estar de acordo com a seguinte proporção sugerida por BRITO (2004): 
  ×

34

Assim, fixando o número das estratégias na população inicial é possível acompanhar a propagação delas ao longo da execução do AG. A estratégia do tipo TFT é codificada, por padrão, armazenando em memória a estratégia de cada indivíduo com quem competiu ao longo de sua participação no algoritmo, para que assim, aplique-a quando se encontrarem de novo. Porém, quando se aumenta o número de jogadores, tal funcionalidade se torna inviável, pois o indivíduo não consegue decidir sua estratégia quando compete com mais de uma pessoa ao mesmo tempo. Acrescenta-se assim, o conceito de tolerância, o qual é representado por uma taxa. Esta taxa é usada pelo TFT para determinar se ele irá trair ou cooperar. Se, em uma rodada, o número de indivíduos que traem supera o valor da taxa de tolerância, então o TFT também trai, caso contrário ele coopera (MANHART, 2007). 4.2. FUNÇÃO DE AVALIAÇÃO Sabendo que cada indivíduo tem dois tipos distintos de cromossomos, o cálculo da função de avaliação do algoritmo torna-se a seguinte: 

­ 

­ 

(3)

Os valores de alfa e beta refletem a influência que é gerada pelos fitness genótipo e fenótipo na solução do problema. Sua alteração gera mudanças diretas no comportamento do algoritmo, sendo assim possível observar a atuação do Algoritmo Genético com variáveis da Interação Social e vice-versa. A fitnessSolução representa o valor de avaliação correspondente ao cromossomo do genótipo, que no caso do PCV é dada pela distância total entre as cidades percorridas em uma determinada rota. A fitnessCompetição representa a pontuação alcançada pelo indivíduo depois da etapa da Interação Social, de acordo com sua estratégia. A etapa da Interação Social simula o jogo entre um número determinado de jogadores, durante n disputas e m rodadas, parâmetros estes fixados antes da execução. É importante ressaltar que a função apresenta a diferença entre as fitness dos cromossomos, pois é aplicado a um problema de minimização.

35

4.3. MÉTODOS DE SELEÇÃO

No NpSIGA, o torneio decide qual indivíduo é selecionado baseado no valor da fitness total e apenas seleciona indivíduos diferentes, ou seja, o mesmo indivíduo pode participar do mesmo torneio várias vezes, porém, será selecionado apenas uma vez para o cruzamento. O Elitismo, de até 10%, foi implementado para que uma lista com os melhores da geração anterior substituíssem os piores da geração atual, na mesma proporção, fazendo com que sejam repassados adiante, sem serem afetados por mutação ou cruzamento. Sendo assim, caso encontre uma solução ótima, ela permanecerá até ser substituída por outra melhor, no decorrer da execução do algoritmo. 4.4. MÉTODO DE CRUZAMENTO O cruzamento usado no cromossomo genótipo é o PMX, pois mantém os alelos distintos entre si, e gera soluções válidas para o problema escolhido. Aplica-se nos fenótipos o seguinte método:

Figura 4.1 - Cruzamento entre Fenótipo.

Por apresentar cromossomos de tamanho pequeno, um processo complexo não é necessário para realizar um cruzamento entre as codificações. Esta implementação tem por objetivo simular uma influência do comportamento provindo de gerações anteriores, possibilitando um estudo sobre o processo de propagação das estratégias geradas pelos indivíduos. 4.5. MUTAÇÃO COM MEMÓRIA O operador de mutação no NpSIGA é baseado em uma memória que armazena a melhor fitness encontrada até o processo acontecer. É realizada em vários pontos do cromossomo, calculados a partir das fórmulas a seguir:

36 

­   ­  ­ 
­ ­ 

(4) (5) (6)
­ 

­ 

(7)

Onde N, representa o número de trocas que serão realizadas na mutação; Tx, taxa de até no máximo 50% da proporção; Proporção do valor analisado para o melhor fitness; Diferença, a subtração entre os valores descritos. Após a obtenção do número de trocas, o algoritmo seleciona, aleatoriamente, a quantidade de genes que sofrerão mutação ao longo do cromossomo. Este método apresenta um aumento na variabilidade da população, pois um determinado número de genes são trocados simultaneamente em um indivíduo, gerando soluções ótimas ou saindo de ótimos locais. Este processo ocorre para todos os indivíduos da população. Vale ressaltar que o último gene não participa dos processos de troca, porém caso o primeiro gene tenha sido alterado é necessário uma atualização do último gene para o mesmo valor do primeiro. A figura 4.2 a seguir, exemplifica esse processo, onde é realizado 3 trocas em um cromossomo.

Figura 4.2±Mutação baseada em memória realizando 3 trocas.

37

5. AVALIAÇÃO DO NpSIGA Neste capítulo é apresentado o problema sobre o qual o NpSIGA foi avaliado, os principais testes realizados e suas análises. 5.1. O PROBLEMA DO CAIXEIRO VIAJANTE

O problema do caixeiro viajante ou PCV, é um famoso problema de otimização combinatória, que consiste em um caixeiro viajante que inicia sua jornada em uma determinada cidade e deve percorrer um conjunto de outras cidades para depois retornar a sua localização inicial, sendo que este caminho deve ser o que possui a menor distância total percorrida e cada cidade deve ser visitada exatamente uma vez (GUTIN, PUNNIN, 2002). Uma forma de se obter a solução ótima para o problema é realizar uma busca através de todas as rotas possíveis, para eventualmente encontrar a de valor mínimo. Porém, a partir de um número de cidades o problema passa ter um número muito grande de rotas, assim, tornando o processo inviável (TEIXEIRA, 2005). Devido a isso, outras formas de solucionar o PCV são estudadas, dentre elas está o uso de algoritmos genéticos. 5.2. AVALIAÇÃO DO NpSIGA APLICADO AO PROBLEMA DO CAIXEIRO VIAJANTE

Para aplicar o NpSIGA ao problema do caixeiro viajante foramutilizados os dados de 26 cidades-capitais do Brasil interligadas por vias rodoviárias. Estes dados foram retirados do Departamento de Infraestrutura e Transporte (DNIT). O uso desses dados é justificado pelo fato de existirem outros trabalhos de pesquisa que os usam, o que se torna fundamental para a análise dos resultados deste trabalho. Para a análise dos resultados foi adotado como ótimo conhecido para este problema o valor de 20048,o qual foi o melhor valor encontrado por BRITO (2004).

38

5.3. PARÂMETROS DOS TESTES

Os parâmetros utilizados pelo algoritmo são os seguintes4:
y y y y y y y y y y y y
y

Tamanho da população; Número de gerações; Métodos de Seleção: Torneio; Taxa de Mutação; Taxa de Cruzamento; Taxa de Elitismo; Pagamentos para os Indivíduos: T, R, P e S; Número de Disputas; Número de Rodadas; Peso da Fitness Solução; Peso da Fitness Competição; Número de Jogadores; Taxa de Tolerância do TFT.

5.4. DESCRIÇÃO DOS TESTES REALIZADOS

Para a realização dos testes buscou-se a definição de valores fixos para os parâmetros a seguir:
y y y y y y

Torneio: tamanho 2; Valores de Pagamentos: T = 30; R = 25; P = 15; S = 10; Taxa de Tolerância TFT = 25%; Taxa de Mutação = 5%; Taxa de Elitismo = 2%; Número de Gerações = 5000.

A descrição de todos os testes realizados com seus respectivos valores pode ser encontrada na tabela do anexo A.

4

As definições destes parâmetros são explicadas nos capítulos anteriores deste trabalho.

39

5.5. DESCRIÇÃO DOS RESULTADOS OBTIDOS

Para fazer as devidas considerações a respeito do algoritmo foram definidos os seguintes itens para comparação: melhor indivíduo encontrado e a variabilidade da população. A variabilidade foi mensurada por meio da média aritmética dos desvios padrões referentes às fitnessSolução de cada geração. Vale ressaltar que a fitnessSolução é a representação da distância total em quilômetros da rota das cidades descrita no cromossomo do indivíduo. Todos os testes realizados apresentam as seguintes informações:

y y y

Melhor indivíduo encontrado e a geração em que aparece; Gráfico: Fitness Melhor Pior e Média x Geração; Média dos desvios padrões de cada geração;
!

A seguir serão apresentados alguns dos testes efetuados e os valores dos parâmetros adotados para cada um, outros testes realizados podem ser encontrados no Anexo B deste trabalho. O primeiro teste consiste em informações referentes à execução do AG simples, SIGA e NpSIGA para 4 e 16 jogadores. Para esse teste, são definidos os seguintes parâmetros para os algoritmos com interação social: Disputas: 100; Rodadas: 10; Peso fitness solução: 1; Peso fitness competição: 1;

y y y y

40

Figura 5.1. Execução do algoritmo no teste 1: AG

Na figura 5.1, pode-se perceber a estagnação do processo evolutivo do AG nas primeiras gerações. A variabilidade nessa execução possui um valor de 1748,14 e a melhor fit ess encontrada foi de 25165, na geração 2319.
"

Figura 5.2. Execução do algoritmo no teste 1: SIGA

41

A execução do algoritmo SIGA (figura 5.2), mostra que o processo de estagnação ocorreu mais rápido se comparado com o AG,porém sua variabilidade foi maiorcom valor de 1836,404. O melhor resultado foi de 24079 na geração 336.

Figura 5.3. Execução do algoritmo no teste 1: NpSIGA para 4 jogadores

O processo de estagnação do algoritmo NpSIGA para 4 jogadores (figura 5.3), foi semelhante ao do SIGA, porém, convergindo para uma melhor solução e com mínimo de 21696 na geração 2243. A execução obteve uma variabilidade de 1871,436.

42

Figura 5.4. Execução do algoritmo no teste 1: NpSIGA para 16 jogadores

Para 16 jogadores, o NpSIGA (figura 5.4) atingiu uma variabilidade maior de 1898,213, porém obteve uma melhor solução de 24520 na geração 1056. O segundo teste foi realizado entre os algoritmos SIGA e NpSIGA com os seguintes valores: y y y
y

Disputas: 100; Rodadas: 10; Peso fit ess solução: 1; Peso fit ess competição: 0,5;
$ #

43

Figura 5.5. Execução do algoritmo no teste 2: SIGA

A execução do SIGA (figura 5.5), mostra um melhor resultado de 21160 na geração 1279, com variabilidade de 1913,332.

Figura 5.6. Execução do algoritmo no teste 2: NpSIGA para 4 jogadores.

Para 4 jogadores, o NpSIGA (figura 5.6) apresentou uma variabilidade de 1453,701 e melhor resultado de 29802 na geração 2388.

44

Figura 5.7. Execução do algoritmo no teste 2: NpSIGA para 16 jogadores

Com 16 jogadores (figura 5.6), a variabilidade aumentou para 1940,891, com o melhor resultado de 22245 na geração 401. O terceiro teste realiza comparações entre o SIGA e o NpSIGA com os seguintes parâmetros: y y y y Disputas: 1000; Rodadas: 100; Peso fit ess solução: 1; Peso fit ess competição: 0,5;
& %

45

Figura 5.8. Execução do algoritmo no teste 3: SIGA

Para o teste 3, o algoritmo SIGA (figura 5.8) obteve um resultado mínimo de 21513 na geração 1766, e uma variabilidade de 2039,501.

Figura 5.9. Execução do algoritmo no teste 3: NpSIGA para 4 jogadores.

Com esses parâmetros, o NpSIGA (figura 5.9) obteve uma grande variabilidade, de 2544,023, e com melhor resultado de 27827 na geração 1713.

46

Figura 5.10. Execução do algoritmo no teste 3: NpSIGA para 16 jogadores.

Para 16 jogadores (figura 5.10), o NpSIGA apresentou uma variabilidade de 5998,019, com melhor valor de 26342 na geração 4824. No quarto teste optou-se por um aumento na taxa de elitismo como uma maneira de tentar controlar a variabilidade observada no teste anterior. Os valores dos parâmetros s o os ã seguintes:

y y y y y

Taxa de elitismo: 10%; Disputas: 1000; Rodadas: 100; Peso fit ess solução: 1; Peso fit ess competição: 0,5;
( '

47

Figura 5.11. Execução do algoritmo no teste 4: SIGA.

Com a nova taxa de elitismo, o algoritmo SIGA (figura 5.11) obteve melhor resultado de 29081 na geração 3269, e variabilidade de 1365,496.

Figura 5.12. Execução do algoritmo no teste 4: NpSIGA para 4 jogadores.

O algoritmo NpSIGA (figura 5.12), obteve melhor resultado de 22101, na geração 3052 com variabilidade de 2804,062.

48

Figura 5.13. Execução do algoritmo no teste 4: NpSIGA para 16 jogadores.

Ao realizar o teste do algoritmo NpSIGA com 16 jogadores (figura 5.13), o melhor resultado foi de 20409, na geração 4499, e obteve uma variabilidade de 4847,734. A tabela 5.1 a seguir mostra uma compilação de todos dados dos testes mostrados neste capítulo. Peso da Fitness Joga- Taxa de Jogos Mel or Obtido na Solução Competição dores Elitismo Disputas Rodadas Fitness Geração 1 1 2% 25165 2319 1 1 2 2% 100 10 24079 336 1 1 4 2% 100 10 21696 2243 1 1 16 2% 100 10 24520 1056 1 0,5 2 2% 100 10 21160 1279 1 0,5 4 2% 100 10 29802 2388 1 0,5 16 2% 100 10 22245 401 1 0,5 2 2% 1000 100 21513 1766 1 0,5 4 2% 1000 100 27827 1713 1 0,5 16 2% 1000 100 26342 4824 1 0,5 2 10% 1000 100 29081 3269 1 0,5 4 10% 1000 100 22101 3052 1 0,5 16 10% 1000 100 20409 4499
Tabela 5.1. Dados gerais dos testes

Figura 5.1 5.2 5.3 5.4 5.5 5.6 5.7 5.8 5.9 5.10 5.11 5.12 5.13

Variabilidade 1748,140 1836,404 1871,436 1898,213 1913,332 1453,701 1940,891 2039,501 2544,023 5998,019 1365,496 2804,062 4847,734

49

5.5. ANÁLISE DOS RESULTADOS OBTIDOS

Com base nos testes descritos na seção anterior, e em outros testes realizados com os três tipos de algoritmos, pode-se verificar que os algoritmos que usam a etapa da interação social tendem a possuir uma variabilidade maior entre seus indivíduos. Esta sofre influência do número de disputas e rodadas, a taxa de elitismo, a execução da mutação com memória, e os valores de alfa e beta. Ao comparar os resultados entre 2 pessoas e N pessoas, este último obteve maior variabilidade melhorando a possibilidade de encontrar soluções fora do padrão de estagnação da população, porém esta alta variabilidade gera involuções na população. Para altas injeções de variabilidade, há uma maior chance de execuções para N jogadores obter resultados piores que de 2. Com relação aos melhores indivíduos encontrados, todos os algoritmos utilizados provaram ser capazes de encontrar soluções entre 20409 e 30000. Não foi possível, através dos testes realizados, identificar uma maior ocorrência de melhores soluções para os algoritmos, no entanto, é possível aumentar as ocasiões de melhores resultados para N jogadores ao se utilizar diferentes maneiras de explorar a variabilidade da população.

50

6. CONSIDERAÇÕES FINAIS

6.1. PRINCIPAIS CONTRIBUIÇÕES

Podem-se destacar como principais contribuições deste trabalho:
y

O estudo da evolução e variabilidade da população usando teoria dos jogos para duas e N-Pessoas; O estudo do jogo do Dilema do Prisioneiro para N-Pessoas aplicado na resolução do Problema do Caixeiro Viajante; A implementação de uma forma de prover variabilidade no Algoritmo Genético, através de um método de mutação diferenciado; A implementação de cruzamento entre os fenótipos;

y

y

y

6.2. CONCLUSÕES

A interação social para N-Pessoas permite uma melhor simulação do processo de evolução que ocorre na natureza. Todos os indivíduos da população passam a ter maior oportunidade de gerar descendentes e, pelos resultados analisados, o algoritmo é capaz de gerar maior variabilidade da população. No entanto, necessita de métodos para controlar as altas taxas de variação, ou de ajuste nos parâmetros de execução. Este trabalho apresenta um número grande de parâmetros, que necessitam ser analisados minuciosamente. Os principais fatores observados que influenciam diretamente no comportamento do algoritmo são: o número de disputas e rodadas, a taxa de elitismo, a execução da mutação com memória, e os valores de alfa e beta. Foram realizadas apenas 16 execuções do NpSIGA modificando tais valores, mostrando que ainda há abordagens não exploradas a serem analisadas e que uma mínima variância nos valores acima causa consequências ainda imprevisíveis, tornando sua imediata aplicação em problemas reais inviável. Dentre o espaço amostral gerado, o aumento da taxa de elitismo mostrou controlar a grande variabilidade causada pelo uso da Teoria dos Jogos para N-Pessoas, atuando positivamente na obtenção de uma solução e na manutenção da diversidade da população.

51

Com a implementação da mutação com memória, percebeu-se que o algoritmo genético consegue um aumento de sua variabilidade sem nenhum outro artifício. Pensando em melhorar a visualização da variabilidade gerada pelo algoritmo NpSIGA, gerou-se o gráfico de superfície na figura 6.1 e 6.2, obtidos com os dados do teste quatro.

Figura 6.1 - Gráfico de superfície do teste 4 da geração 1 à 2426

Figura 6.2- Gráfico de superfície do teste 4 da geração 2427 à 5000

52

Nesses gráficos temos o eixo y composto pelas fitness dos indivíduos obtidos ao longo das gerações (eixo x). O eixo z é composto pelos diversos indivíduos da população. O ruído obtido torna visível a heterogeneidade da população causada pelo NpSIGA, fazendo com que não haja convergência.

6.3. TRABALHOS FUTUROS

Como trabalhos futuros pode-se citar:
y

Implementar um método de busca local no cromossomo, para guiar o processo de evolução do Algoritmo Genético; Analisar os dados gerados na etapa de Interação Social, observando a propagação das estratégias no decorrer dos testes; Implementar mecanismo de propagação do comportamento entre as gerações, analisando uma possível evolução da Interação Social durante a execução do NpSIGA; Efetuar testes do NpSIGA para diferentes instâncias do Problema do Caixeiro Viajante; Realizar testes variando as configurações dos parâmetros principais do NpSIGA e analisar os resultados.

y

y

y

y

53

REFERÊNCIAS BIBLIOGRÁFICAS BRITO, F. H. Hawk-Dove Torneio: Um novo método de Seleção Para os Algoritmos Genéticos Baseado em Teoria dos Jogos Evolucionários e Estratégias Evolucionárias. 2004. Trabalho de Conclusão de Curso (Graduação em Bacharelado em Ciência da Computação) ± Centro Universitário do Pará - Belém. DEITEL, H. M., DEITEL P. J. JAVA: Como Programar. 6 ed. Prentice-Hall, 2005. FINK, E. C; GATES, S; HUMES, B. D; Game Theory Topics: Incomplete Information, Reapeted Games, and N-Player Games. Sage Publications Inc., 1998. GUTIN, G.,PUNNEN, A, P. The Traveling Salesman Problem and Its Variations. Dordrecht: Kluwer Academic Publishers, 2002. vol. 12. MANHART, K. Cooperation in 2- and N-Person Prisoner's Dilemma Games: A Simulation Study. 2007. University Bern, Munich MITCHELL, M. An Introduction to Genetic Algorithms. MIT Press, 1999. OBTIKO, M. Introduction to Genetic Algorithm with Java Applets. Czech Technical University, 1998. Disponível em: <http://www.obitko.com/tutorials/genetic-algorithms/>. Acessado em: 09 de novembro 2010. RAPOPORT, A. N-Person Game Theory - Concepts and Applications. The University of Michigan Press, 1970. SIVANANDAM, S. N; DEEPA, S. N. Introduction to Genetic Algorithms. Springer. 2008. STEMMER, M. R. Algoritmos Genéticos. DAS / CTC / Universidade Federal de Santa Catarina. Santa Catarina, [s.d]. 56 slides: color.

54

TEIXEIRA, O. N. Computação evolucionária: dos aspectos filosóficos à implementação dos algoritmos genéticos aplicados na solução do problema do caixeiro viajante simétrico. 2003. Trabalho de conclusão de curso ± Universidade Federal do Pará ± Belém. TEIXEIRA, O. N. Proposta de Um Novo Algoritmo Genético Baseado na Teoria dos Jogos. 2005. Dissertação (Mestrado em Engenharia Elétrica) ± Universidade Federal do Pará ± Belém. TEIXEIRA, O. N. Algoritmo Genético com Interação Social Nebulosa. 2007. Qualificação (Doutorado em Engenharia Elétrica) ± Universidade Federal do Pará ± Belém. YAO, X; DARWEN, P. An experimental study of N-person iterated prisoner's dilemma games.Australia: Informatica, 1994. YASOJIMA, C. T. K; LOBATO, W. A. da Luz. Proposta de uma Nova Metaheurística Híbrida com Lógica Nebulosa Baseada em Algoritmos Genéticos com Interação Social. 2009. Trabalho de Conclusão de Curso (Graduação em Bacharelado em Ciência da Computação) - Centro Universitário do Pará - Belém.

55

ANEXO A Tabela de Valores dos Parâmetros dos Testes realizados Métodos de PopuJogaCruzaComGerações Mutação Elitismo Solução Disputas Rodadas seleção lação dores mento petição 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 5000 4 4 4 4 16 16 16 16 2 2 2 2 X 2 4 16 5% 5% 5% 5% 5% 5% 5% 5% 5% 5% 5% 5% 5% 5% 5% 5% 85% 85% 85% 85% 85% 85% 85% 85% 85% 85% 85% 85% 85% 85% 85% 85% 2 2 2 2 2 2 2 2 2 2 2 2 2 10 10 10 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0.5 1 0.5 1 0.5 1 0.5 1 0.5 1 0.5 X 0.5 0.5 0.5 1000 1000 100 100 1000 1000 100 100 1000 1000 100 100 X 1000 1000 1000 100 100 10 10 100 100 10 10 100 100 10 10 X 100 100 100 Torneio Torneio Torneio Torneio Torneio Torneio Torneio Torneio Torneio Torneio Torneio Torneio Torneio Torneio Torneio Torneio Quantidade Taxa Peso de Fitness Jogos

56

ANE O B Descrição de resultados de testes com peso competição 1. Teste 5: SIGA y y y y y Disputas: 1000; Rodadas: 100; Peso fit ess solução: 1; Peso fit ess competição: 1; Melhor fit ess: 22609 o Geração: 3464 y Variabilidade: 3084,35
1 0 )

57

NpSIGA com 4 jogadores y y y y y Disputas: 1000; Rodadas: 100; Peso fit ess solução: 1; Peso fit ess competição: 1; Melhor fit ess: 30009 o Geração: 3183 y Variabilidade: 5550,236
4 3 2

58

NpSIGA com 16 jogadores y y y y y Disputas: 1000; Rodadas: 100; Peso fit ess solução: 1; Peso fit ess competição: 1; Melhor fit ess: 35881 o Geração: 33 y Variabilidade: 3084,35
7 6 5

Sign up to vote on this title
UsefulNot useful