View
660
Download
2
Category
Preview:
DESCRIPTION
Este trabalho de conclusão de curso 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.
Citation preview
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 pela ciência e pela razão.
Pedro Victor Pontes Pinheiro
Dedico esse trabalho as pessoas que
contribuíram para que este momento fosse
possível.
Roberto Yuri da Silva Franco
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.....28TABELA 3.2. TABELA DE PAGAMENTOS PARA DILEMA DO PRISIONEIRO PARA N-PESSOAS.......30TABELA 4.1. PSEUDOCÓDIGO DO NPSIGA...................................................................................................32TABELA 4.2. CODIFICAÇÃO DO GENÓTIPO..................................................................................................33TABELA 4.3. CODIFICAÇÃO DO FENÓTIPO..................................................................................................33
LISTA DE FIGURAS
FIGURA 2.1. EXEMPLO DE CODIFICAÇÃO BINÁRIA..................................................................................18FIGURA 2.2. EXEMPLO CODIFICAÇÃO POR PERMUTAÇÃO.....................................................................18FIGURA 2.3. EXEMPLO DE CODIFICAÇÃO DE VALORES..........................................................................18FIGURA 2.4. EXEMPLO DE CODIFICAÇÃO EM ÁRVORE............................................................................19FIGURA 2.5. EXEMPLO DE ROLETA PARA PROBLEMAS DE MAXIMIZAÇÃO......................................20FIGURA 2.6. EXEMPLO DE TORNEIO EM PROBLEMAS DE MINIMIZAÇÃO...........................................21FIGURA 2.7. CRUZAMENTO DE UM PONTO DE CORTE.............................................................................22FIGURA 2.8. CRUZAMENTO POR PMX...........................................................................................................23FIGURA 2.9. MUTAÇÃO OCORRENDO NO 2° E 5° GENE.............................................................................23FIGURA 4.1. CRUZAMENTO ENTRE FENÓTIPO............................................................................................35FIGURA 4.2 – MUTAÇÃO BASEADA EM MEMÓRIA REALIZANDO 3 TROCAS. TIPO...........................36FIGURA 5.1. EXECUÇÃO DO ALGORITMO NO TESTE 1: AG.....................................................................40FIGURA 5.2. EXECUÇÃO DO ALGORITMO NO TESTE 1: SIGA..................................................................40FIGURA 5.3. EXECUÇÃO DO ALGORITMO NO TESTE 1: NPSIGA PARA 4 JOGADORES......................41FIGURA 5.4. EXECUÇÃO DO ALGORITMO NO TESTE 1: NPSIGA PARA 16 JOGADORES....................42FIGURA 5.5. EXECUÇÃO DO ALGORITMO NO TESTE 2: SIGA..................................................................43FIGURA 5.6. EXECUÇÃO DO ALGORITMO NO TESTE 2: NPSIGA PARA 4 JOGADORES......................43FIGURA 5.7. EXECUÇÃO DO ALGORITMO NO TESTE 2: NPSIGA PARA 16 JOGADORES....................44FIGURA 5.8. EXECUÇÃO DO ALGORITMO NO TESTE 3: SIGA..................................................................45FIGURA 5.9. EXECUÇÃO DO ALGORITMO NO TESTE 3: NPSIGA PARA 4 JOGADORES......................45FIGURA 5.10. EXECUÇÃO DO ALGORITMO NO TESTE 3: NPSIGA PARA 16 JOGADORES..................46FIGURA 5.11. EXECUÇÃO DO ALGORITMO NO TESTE 4: SIGA................................................................47FIGURA 5.12. EXECUÇÃO DO ALGORITMO NO TESTE 4: NPSIGA PARA 4 JOGADORES....................47FIGURA 5.13. EXECUÇÃO DO ALGORITMO NO TESTE 4: NPSIGA PARA 16 JOGADORES..................48FIGURA 6.1 - GRÁFICO DE SUPERFÍCIE DO TESTE 4 DA GERAÇÃO 1 À 2426.......................................51FIGURA 6.2 - GRÁFICO DE SUPERFÍCIE DO TESTE 4 DA GERAÇÃO 2427 À 5000.................................51
SUMÁRIO
RESUMO...............................................................................................................................................................12
1. INTRODUÇÃO.................................................................................................................................................121.1. CONTEXTO....................................................................................................................................................121.2. DESCRIÇÃO DO PROBLEMA E JUSTIFICATIVA....................................................................................131.3. OBJETIVOS DO TRABALHO.......................................................................................................................141.3.1. Objetivo Geral.............................................................................................................................................141.3.2. Objetivos Específicos..................................................................................................................................141.4. METODOLOGIA............................................................................................................................................151.5. ESTRUTURA DO TRABALHO....................................................................................................................16
2. ALGORITMOS GENÉTICOS........................................................................................................................172.1. INTRODUÇÃO...............................................................................................................................................172.2. IMPLEMENTAÇÃO DE UM ALGORITMO GENÉTICO...........................................................................172.2.1. Codificação do Cromossomo......................................................................................................................172.2.1.1. CODIFICAÇÃO BINÁRIA.......................................................................................................................172.2.1.2. CODIFICAÇÃO POR PERMUTAÇÃO...................................................................................................182.2.1.3. CODIFICAÇÃO POR VALORES............................................................................................................182.2.1.4. ÁRVORES.................................................................................................................................................192.2.2. Métodos de Seleção.....................................................................................................................................192.2.2.1. ROLETA....................................................................................................................................................202.2.2.2. TORNEIO..................................................................................................................................................212.2.2.3. ELITISMO.................................................................................................................................................212.2.3. Cruzamento.................................................................................................................................................212.2.3.1. CRUZAMENTO PARCIALMENTE MAPEADO (PMX).......................................................................222.2.4. Mutação.......................................................................................................................................................232.2.5. Parâmetros de um Algoritmo Genético....................................................................................................242.2.5.1. Tamanho da População..............................................................................................................................242.2.5.2. Taxa de Elitismo........................................................................................................................................242.2.5.3. Taxa de Cruzamento..................................................................................................................................242.2.5.4. Taxa de Mutação........................................................................................................................................242.2.5.5. Cálculo de Aptidão.....................................................................................................................................252.2.5.6. Tamanho do Cromossomo.........................................................................................................................252.2.5.7. Número Máximo de Gerações...................................................................................................................25
3. TEORIA DOS JOGOS.....................................................................................................................................263.1. INTRODUÇÃO...............................................................................................................................................263.2. CONCEITOS...................................................................................................................................................263.2.1. Elementos de um Jogo................................................................................................................................263.2.2. Tipos de Jogos.............................................................................................................................................273.3. O PARADIGMA DO DILEMA DO PRISIONEIRO.....................................................................................273.3.1. Dilema do Prisioneiro para duas Pessoas.................................................................................................283.3.1.1. Tipos de Estratégias...................................................................................................................................293.3.2 Dilema do Prisioneiro para N-Pessoas.......................................................................................................30
4. NpSIGA (Algoritmo Genético com Interação Social para N-Pessoas).........................................................324.1. CODIFICAÇÃO DO CROMOSSOMO..........................................................................................................324.1.1. Codificação do Genótipo............................................................................................................................334.1.2. Codificação do Fenótipo.............................................................................................................................334.2. FUNÇÃO DE AVALIAÇÃO..........................................................................................................................344.3. MÉTODOS DE SELEÇÃO.............................................................................................................................354.4. MÉTODO DE CRUZAMENTO.....................................................................................................................354.5. MUTAÇÃO COM MEMÓRIA.......................................................................................................................35
5. AVALIAÇÃO DO NpSIGA.............................................................................................................................375.1. O PROBLEMA DO CAIXEIRO VIAJANTE.................................................................................................375.2. AVALIAÇÃO DO NpSIGA APLICADO AO PROBLEMA DO CAIXEIRO VIAJANTE..........................375.3. PARÂMETROS DOS TESTES......................................................................................................................38
5.4. DESCRIÇÃO DOS TESTES REALIZADOS.................................................................................................385.5. ANÁLISE DOS RESULTADOS OBTIDOS..................................................................................................49
6. CONSIDERAÇÕES FINAIS...........................................................................................................................506.1. PRINCIPAIS CONTRIBUIÇÕES...................................................................................................................506.2. CONCLUSÕES...............................................................................................................................................506.3. TRABALHOS FUTUROS..............................................................................................................................52REFERÊNCIAS BIBLIOGRÁFICAS................................................................................................................53
ANEXO A..............................................................................................................................................................55ANEXO 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ção
do algoritmo genético clássico (AG); Combinação do AG com a fase de interação social
(SIGA), utilização do Paradigma do Dilema do Prisioneiro Clássico (2-pessoas); 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 para a 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 esta
alicerçada em duas idéias principais: (a) modelagem de sistemas e processos naturais
com objetivo de simulá-los em computadores; (b) estudo de fenômenos biológicos,
processos e até mesmo de modelos teóricos para desenvolvimento de sistemas
computacionais e algoritmos capazes de solucionar problemas complexos.
2. Vida Artificial e Geometria Fractal da Natureza: analisa organismos vivos na
tentativa de sintetizá-los as criaturas e seus comportamentos computacionalmente,
como forma de aumentar a compreensão sobre a natureza, gerar modelos artificiais
13
que possibilitem novas formas de vida e o desenvolvimento de novas tecnologias, tais
como: robôs-humanóides;
3. Computação com Significado Natural: objetiva utilizar mecanismos naturais,
cadeias de DNA e técnicas de engenharia genética, como novos paradigmas de
computação, de forma que possam a vir suplementar e/ou complementar os
computadores atuais baseados em tecnologia de silício e na Máquina de Von
Neumann, tais como: Computação Molecular e Computaçã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,
14
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.
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. Dentro da
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;
15
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;
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 1 5 3 2 6 4 7 9 8
Cromossomo B 8 5 6 7 2 3 1 4 9
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).
Cromossomo A 1.2324 5.3243 0.4556 2.3293 2.4545
19
Cromossomo B ABDJEIFJDHDIERJFDLDFLFEGT
Cromossomo C (atrás), (atrás), (direita), (frente), (esquerda)
Figura 2.3 – Exemplo de codificação de valores.
Fonte: OBTIKO (1998)
Segundo Obtiko (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. ÁRVORES
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 A Cromossomo B
( + x ( / 5y )) ( do until step wall )
Figura 2.4 – Exemplo de codificação em árvore.
Fonte: OBTIKO (1998)
2.2.2. MÉTODOS DE SELEÇÃO
Segundo MITCHELL (1999), o objetivo da seleção é escolher indivíduos mais aptos
para a reprodução, com a finalidade de que estes gerem uma prole com melhor fitness para a
solução de determinado problema.
De acordo com Goldberg (1989, apud YASOJIMA, LOBATO, 2009), o operador de
seleção é uma versão artificial do processo de seleção natural, onde a escolha dos indivíduos
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 tornarem-
se 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ética1.
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, da
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
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
seguinte 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, DARWEN (1994).
Cada jogador pode expressar dois tipos de comportamento diferentes: Cooperar
(Cooperate ou C) e Trair (Defect 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):
T> R>P>S (1 )
R> T>S2
(2 )
T+S2
>P(3)
Para cada par de comportamentos, são calculados os valores de ganhos conforme
listados abaixo:
· T: tentação (Temptation) o que cada jogador receberá, caso traia sozinho;
· R: recompensa (Reward) que cada jogador recebe quando ambos cooperarem;
29
· 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:
· 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;
· O resultado das iterações ocorridas anteriormente é a única informação que os
jogadores podem obter;
· Nenhum jogador pode se recusar a jogar ou obrigar a outro jogador a desistir de
participar de uma disputa;
· 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 simula o
seguinte comportamento: no primeiro encontro com o adversário, o jogador desta estratégia
3 Maiores detalhes podem ser vistos em LUCE et al., 1985, apud TEIXEIRA, 2007.
30
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-se obter
uma generalização aplicável à N-Pessoas como a seguir:
Tabela 3.2 - Tabela de Pagamentos para Dilema do Prisioneiro para N-PessoasFonte: 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):
J c=R ×(Nc−1)(N−1)
(1)
Jd=[T × Nc+ (N−Nc−1 ) ]
(N−1) (2)
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
31
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 N-PESSOAS)
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 inicial2. Avaliar cada um dos indivíduos da população (fitness)3. Repetir até i gerações
3.1. Repetir n disputas3.1.1. Selecionar N indivíduos da população aleatoriamente3.1.2. Repetir m rodadas
3.1.2.1. Obter o comportamento dos indivíduos3.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 desejada3.2.1. Selecionar um par de indivíduos de acordo com método de seleção
previamente descrito3.2.2. Realizar operação de cruzamento nos indivíduos3.2.3. Avaliar os descendentes
3.3. Realizar operação de mutação nos indivíduos3.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íduos4. Caso a população atinja o critério de parada, é finalizado o processo, caso contrário
repete a partir do item 3.15. 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 1Tabela 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ótipoFonte: 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):
39
ALL−D :39
ALL−C :29
TFT :19
Aleatório
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:
FitnessTotal=( α × fitnessSoluçã o )−(β ×fitnessCompeti çã o) (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
N=Tx ×tamanhoCromossomo (4)
Tx=Proporção ×0,5 (5)
Proporção= DiferençamelhorFitnessSolução
(6)
Diferença=fitnessSoluçãoAnalizado−melhorFitnessSolução (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 foram utilizados 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:
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:
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:
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;
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
fitness 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 maior com 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:
Disputas: 100;
Rodadas: 10;
Peso fitness solução: 1;
Peso fitness 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:
Disputas: 1000;
Rodadas: 100;
Peso fitness solução: 1;
Peso fitness 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:
Taxa de elitismo: 10%;
Disputas: 1000;
Rodadas: 100;
Peso fitness solução: 1;
Peso fitness 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.
FiguraPeso da Fitness Joga-
doresTaxa de Elitismo
JogosMelhor Fitness
Obtido na Geração
Varia-bilidade
Solução
CompetiçãoDisputa
sRodadas
5.1 1 1 - 2% - - 25165 2319 1748,1405.2 1 1 2 2% 100 10 24079 336 1836,4045.3 1 1 4 2% 100 10 21696 2243 1871,4365.4 1 1 16 2% 100 10 24520 1056 1898,2135.5 1 0,5 2 2% 100 10 21160 1279 1913,3325.6 1 0,5 4 2% 100 10 29802 2388 1453,7015.7 1 0,5 16 2% 100 10 22245 401 1940,8915.8 1 0,5 2 2% 1000 100 21513 1766 2039,5015.9 1 0,5 4 2% 1000 100 27827 1713 2544,0235.10 1 0,5 16 2% 1000 100 26342 4824 5998,0195.11 1 0,5 2 10% 1000 100 29081 3269 1365,4965.12 1 0,5 4 10% 1000 100 22101 3052 2804,0625.13 1 0,5 16 10% 1000 100 20409 4499 4847,734
Tabela 5.1. Dados gerais dos testes
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:
· 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;
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:
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.
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
Quantidade Taxa Peso de Fitness Jogos Métodos de
seleçãoPopu-lação
GeraçõesJoga-dores
MutaçãoCruza-mento
Elitismo SoluçãoCom-
petiçãoDisputas Rodadas
100 5000 4 5% 85% 2 1 1 1000 100 Torneio
100 5000 4 5% 85% 2 1 0.5 1000 100 Torneio
100 5000 4 5% 85% 2 1 1 100 10 Torneio
100 5000 4 5% 85% 2 1 0.5 100 10 Torneio
100 5000 16 5% 85% 2 1 1 1000 100 Torneio
100 5000 16 5% 85% 2 1 0.5 1000 100 Torneio
100 5000 16 5% 85% 2 1 1 100 10 Torneio
100 5000 16 5% 85% 2 1 0.5 100 10 Torneio
100 5000 2 5% 85% 2 1 1 1000 100 Torneio
100 5000 2 5% 85% 2 1 0.5 1000 100 Torneio
100 5000 2 5% 85% 2 1 1 100 10 Torneio
100 5000 2 5% 85% 2 1 0.5 100 10 Torneio
100 5000 X 5% 85% 2 1 X X X Torneio
100 5000 2 5% 85% 10 1 0.5 1000 100 Torneio
100 5000 4 5% 85% 10 1 0.5 1000 100 Torneio
100 5000 16 5% 85% 10 1 0.5 1000 100 Torneio
56
ANEXO B
Descrição de resultados de testes com peso competição 1.
Teste 5:
SIGA
· Disputas: 1000;
· Rodadas: 100;
· Peso fitness solução: 1;
· Peso fitness competição: 1;
· Melhor fitness: 22609
o Geração: 3464
· Variabilidade: 3084,35
57
NpSIGA com 4 jogadores
· Disputas: 1000;
· Rodadas: 100;
· Peso fitness solução: 1;
· Peso fitness competição: 1;
· Melhor fitness: 30009
o Geração: 3183
· Variabilidade: 5550,236
58
NpSIGA com 16 jogadores
· Disputas: 1000;
· Rodadas: 100;
· Peso fitness solução: 1;
· Peso fitness competição: 1;
· Melhor fitness: 35881
o Geração: 33
· Variabilidade: 3084,35
Recommended