algoritmo genÉtico com interaÇÃo social n-pessoas (npsiga)

80
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)

Upload: pedro-victor-pontes-pinheiro

Post on 27-Jun-2015

661 views

Category:

Documents


2 download

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.

TRANSCRIPT

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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.

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

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

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

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,

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

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;

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

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.

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

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.

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

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.

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

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

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

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

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

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).

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

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.

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

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).

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

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.

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

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.

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

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).

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

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;

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

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.

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

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;

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

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.

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

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

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

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.

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

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.

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

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

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

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.

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

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:

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

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.

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

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).

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

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.

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

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;

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

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

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

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.

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

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;

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

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.

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

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;

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

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.

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

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;

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

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.

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

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

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

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.

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

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.

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

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

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

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.

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

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.

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

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.

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

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

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

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

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

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

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

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