Você está na página 1de 59

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
Y
Y
Y
Y
Y
 Y Y  Y  Y  Y
  Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y

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
Y
Y
Y
Y
Y
 Y Y  Y  Y  Y
  Y
Y
Y
Y
Y
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.Y
Y
Y
Y
Y
Belém
2010
 Y YY YY 

Lilian de Jesus Chaves Dias


Pedro Victor Pontes Pinheiro
Roberto Yuri da Silva Franco

Y
 Y Y  Y  Y  Y
  Y
Y
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:

 Y
Prof. Otávio Noura Teixeira, M.Sc.± Orientador.
Centro Universitário do Estado do ParáY
Y
 Y
Prof. Polyana Santos Fonseca, M.Sc.
Centro Universitário do Estado do Pará

 Y
Prof. Marcos Paulo Alves de Sousa, Dr.
Centro Universitário do Estado do Pará

Belém
2010
Dedico este trabalho à minha mãe, e a todos
que me ajudaram durante este processo.

Lilian de Jesus Chaves Dias

Dedico este trabalho a todos que me ajudaram


e a todos que prezam pelaciência e pela razão.

Pedro Victor Pontes Pinheiro

Dedico 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


Y Y
 YY  Y

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


................................ ................................ ................................ ................................ ....................... 12


Y
Y   ................................ ................................ ................................ ................................ .........12
1.1. CONTEXTO ................................ ................................ ................................ ................................ ............ 12
1.2. DESCRIÇÃO DO PROBLEMA E JUSTIFICATIVA ................................ ................................ ............... 13
1.3. OBJETIVOS DO TRABALHO ................................ ................................ ................................ ................ 14
Y !"#$Y %&' ................................ ................................ ................................ ................................ .....14
(Y !"#$)Y) *+,"*$) ................................ ................................ ................................ ........................... 14
1.4. METODOLOGIA................................ ................................ ................................ ................................ .....15
1.5. ESTRUTURA DO TRABALHO ................................ ................................ ................................ .............. 16
Y
(Y Y
  ................................ ................................ ................................ ................. 17
2.1. INTRODUÇÃO................................ ................................ ................................ ................................ ........17
2.2. IMPLEMENTAÇÃO DE UM ALGORITMO GENÉTICO ................................ ................................ .......17
((Y $-","*&./$Y-$Y %$0$))$0$ ................................ ................................ ................................ ............... 17
2.2.1.1. CODIFICAÇÃO BINÁRIA ................................ ................................ ................................ ................ 17
2.2.1.2. CODIFICAÇÃO POR PERMUTAÇÃO ................................ ................................ .............................. 18
2.2.1.3. CODIFICAÇÃO POR VALORES ................................ ................................ ................................ ......18
2.2.1.4. ÁRVORES ................................ ................................ ................................ ................................ .........19
(((Y1!$-$)Y- Y ' ./$ ................................ ................................ ................................ .............................. 19
2.2.2.1. ROLETA ................................ ................................ ................................ ................................ ............ 20
2.2.2.2. TORNEIO ................................ ................................ ................................ ................................ .......... 21
2.2.2.3. ELITISMO ................................ ................................ ................................ ................................ .........21
((Y %23&0 4!$................................ ................................ ................................ ................................ .......... 21
2.2.3.1. CRUZAMENTO PARCIALMENTE MAPEADO (PMX) ................................ ................................ ...22
((5Y2!&./$ ................................ ................................ ................................ ................................ ............... 23
((6Y&%70 !%$)Y- Y20Y '8$%"!0$Y 41!"*$ ................................ ................................ ............................... 24
2.2.5.1. Tamanho da População ................................ ................................ ................................ ....................... 24
2.2.5.2. Taxa de Elitismo ................................ ................................ ................................ ................................ .24
2.2.5.3. Taxa de Cruzamento ................................ ................................ ................................ ........................... 24
2.2.5.4. Taxa de Mutação................................ ................................ ................................ ................................ .24
2.2.5.5. Cálculo de Aptidão ................................ ................................ ................................ ............................. 25
2.2.5.6. Tamanho do Cromossomo ................................ ................................ ................................ ................... 25
2.2.5.7. Número Máximo de Gerações ................................ ................................ ................................ ............. 25
Y
Y YY9 ................................ ................................ ................................ .............................. 26
3.1. INTRODUÇÃO................................ ................................ ................................ ................................ ........26
3.2. CONCEITOS ................................ ................................ ................................ ................................ ........... 26
(Y' 0 4!$)Y- Y20Y9$8$ ................................ ................................ ................................ ......................... 26
((Y"$)Y- Y9$8$) ................................ ................................ ................................ ................................ ......27
3.3. O PARADIGMA DO DILEMA DO PRISIONEIRO ................................ ................................ ................. 27
Y"' 0&Y-$Y%")"$4 "%$Y&%&Y-2&)Y ))$&) ................................ ................................ ............................ 28
3.3.1.1. Tipos de Estratégias ................................ ................................ ................................ ............................ 29
(Y"' 0&Y-$Y%")"$4 "%$Y&%&Y  ))$&) ................................ ................................ ................................ ..30
Y
5Y  Y '8$%"!0$Y 41!"*$Y*$0Y4! %&./$Y$*"&'Y&%&Y  ))$&) ................................ ..................... 32
4.1. CODIFICAÇÃO DO CROMOSSOMO ................................ ................................ ................................ ....32
5Y $-","*&./$Y-$Y 4:!"$ ................................ ................................ ................................ ...................... 33
5(Y $-","*&./$Y-$Y 4:!"$ ................................ ................................ ................................ ...................... 33
4.2. FUNÇÃO DE AVALIAÇÃO................................ ................................ ................................ .................... 34
4.3. MÉTODOS DE SELEÇÃO ................................ ................................ ................................ ...................... 35
4.4. MÉTODO DE CRUZAMENTO ................................ ................................ ................................ ............... 35
4.5. MUTAÇÃO COM MEMÓRIA................................ ................................ ................................ ................. 35
Y
6Y   YY  ................................ ................................ ................................ ...................... 37
5.1. O PROBLEMA DO CAIXEIRO VIAJANTE ................................ ................................ ............................ 37
5.2. AVALIAÇÃO DO NpSIGA APLICADO AO PROBLEMA DO CAIXEIRO VIAJANTE ........................ 37
5.3. PARÂMETROS DOS TESTES ................................ ................................ ................................ ................ 38
5.4.DESCRIÇÃO DOS TESTES REALIZADOS ................................ ................................ ............................ 38
5.5. ANÁLISE DOS RESULTADOS OBTIDOS ................................ ................................ ............................. 49
Y
;Y   <Y ................................ ................................ ................................ ..................... 50
6.1. PRINCIPAIS CONTRIBUIÇÕES ................................ ................................ ................................ ............. 50
6.2. CONCLUSÕES ................................ ................................ ................................ ................................ ........50
6.3. TRABALHOS FUTUROS ................................ ................................ ................................ ........................ 52
=  Y  ................................ ................................ ................................ .......... 53

>Y ................................ ................................ ................................ ................................ ...................... 55


>Y ................................ ................................ ................................ ................................ ...................... 56
Y

Este trabalho apresenta um estudo extensivo sobre Algoritmo Genético com Teoria
dos Jogos para N-pessoas, o que aumenta a variabilidade da população e diminui a
probabilidade do algoritmo ficar preso em um ótimo local. Os indivíduos da população
apresentam dois cromossomos, sendo: um para a solução do problema em questão, que no
caso desse trabalho são instâncias do Problema do Caixeiro Viajante (PCV); e o outro para a
codificação genética do comportamento, necessária para definir a estratégia a ser utilizada por
eles durante as disputas dos jogos. Para a realização dos experimentos, o processo de
implementação foi definido e construído cronologicamente da seguinte forma:
Implementaçãodo algoritmo genético clássico (AG); Combinação do AG com a fase de
interação social (SIGA), utilizaçãodo Paradigma do Dilema do Prisioneiro Clássico (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 paraa instância denominada de BR-26, que define a
distância entre todas as capitais brasileiras interligadas por estradas. Os resultados
encontrados demonstram a viabilidade da metodologia e, ainda, apontam para muitas outras
possibilidades de aplicação e expansão.

&'&#%&)*?&# : NpSIGA, Computação Evolucionária, Algoritmos Genéticos, Teoria dos


Jogos N-Jogadores, Paradigma do Dilema do Prisioneiro.
Y  Y

Neste capítulo são apresentados os principais assuntos para a melhor compreensão do


contexto do trabalho e sua metodologia de desenvolvimento.

Y  >Y

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:

V  
               
                 
             !
 " #      "    
    $ % 

&  '  (    )  *  $      
     $        #
 
$#   +
       # 
! ," 
13


- 
.     $  # 
/( ,  # 
#
 +      0     
      1   2+   ' #   

2
34  
(TEIXEIRA, 2007)

(Y  YY YY9  Y

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

A interação social entre uma população ocorre por meio de situações de conflito de
interesse entre diferentes indivíduos, a qual gera um ambiente de jogo que tem suas regras,
ganhos e recursos definidos. Aos jogadores, cada indivíduo, cabe estabelecer uma estratégia
que de acordo com ela lhe retribuirá algum ganho pela disputa.
Um dos principais paradigmas da Teoria dos Jogos é o Dilema do Prisioneiro, onde
dois indivíduos-jogadores, os prisioneiros, têm duas opções de jogo: Colaborar, ou Trair seu
companheiro, sem saber de imediato a ação tomada pelo outro. Neste caso clássico, o ganho
dos jogadores é computado de maneira simples, pois como há somente dois jogadores e duas
opções para cada, gera-se uma matriz de possibilidades de quatro ganhos diferentes para cada
partida. Esta situação, porém, não reflete as disputas que ocorrem na natureza. 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.

Y9YY  @Y

Y9Y Y

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.

(Y9Y A Y

1.Y Compreender a forma de atuação dos Algoritmos Genéticos e sua implementação,


variações e conceitos;

2.Y Compreender a atuação e definições de Teoria dos Jogos integrando-a a


implementação do Algoritmo Genético, acrescentando uma nova etapa antes da
reprodução do AG;

3.Y Compreender o conceito de Teoria dos Jogos para N-Pessoas, de forma que possibilite
o agrupamento de mais jogadores na etapa de interação social;
15

4.Y Desenvolver o algoritmo com Interação Social para N-Pessoas;

5.Y 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.Y 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.Y Analisar os resultados obtidos nos testes.

5Y Y

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

6Y YY  @Y

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.
Y
17

(Y Y
 Y

(Y  Y

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:
³‘  
  .
Os algoritmos genéticos foram originados de estudos de autômatos celulares de John
Holland, da Universidade de Michigan, publicados em 1975 no livro: ³    


   ´ e inspirados na teoria da evolução de Charles Darwin, apresentado na
obra ³A origem das espécies´, publicado em 1859 (STEMMER, [s.d]).

((Y  YYY Y


 Y

((Y  YY Y

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.

((Y  Y  Y

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.

(((Y  YY Y

Esse tipo de codificação é muito utilizado para problemas de ordenação como, por
exemplo, o %$' 0&Y -$Y &"B "%$Y "&&4! . 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 153264798
Cromossomo B 856723149
Figura 2.2 ± Exemplo codificação por permutação.
Fonte: OBTIKO (1998)

((Y  YY Y

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


 V
 

   

  

B B R 

 ttiitt

i  
lii !"l
t:#B#V $

%& #'ti  V $ tii !    l !  l& 'l
ii((i"l"(tíi)tt !
ilii

ã ã    

* ii !  "   (  "  'jt  !
 +     li&&  & !  ( it tili)  i
&+j& !&(ti

 B



,/ - tilt.ll
i&  lii !"
t:#B#V $

ã ã ã 
 
 
 

 %&M /00V   'jti" l ! ( l ii"í it


 !ilit&ll 
l !ti'l

 1   2l'& V $   3%#45M 0#B6#    
l !("!tiiill !tll ii"í
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.

(((Y Y

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  , 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

((((Y Y

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 à e
executado  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.

(((YY

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

((Y C  Y

Y É 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.

((Y C  Y    Y  Y>Y

Y Existem tipos de cruzamentos onde há combinação entre métodos conhecidos, como é


o caso do cruzamento parcialmente mapeado ou ÷
     

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

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

Figura 2.8 ± Cruzamento por PMX.

Este método garante com que os filhos gerados possuam uma sequência de caracteres
distintos, ou seja, nenhum valor de seu alelo é repetido, fazendo do PMX uma técnica para ser
utilizada na resolução de problemas onde tem de haver um controle na permutação do
cromossomo (SIVANANDAM, DEEPA,2008).

((5Y Y

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

((6Y DYYY Y


 Y

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

((6Y  @Y Y Y

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.

((6(Y > YYY

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

((6Y > YY C  Y

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

((65Y > YY Y

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

((66Y YY   Y

A função de avaliação, também chamada de  , 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   (STEMMER,[s.d]).
No capítulo 4, será explicada detalhadamente a função utilizada neste trabalho.

((6;Y  @YY Y

Representa o número de informações que o cromossomo contém, sendo que o


tamanho e essas informações dependem do problema utilizado.

((6EY FY>YY <Y

Representa quantas vezes o conjunto de processos principais do AG (cálculo de


 , 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).
Y
26

Y YY9Y

Y  Y

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:

5 
% 
    
+           % 6    #   
 1 +$##
 # 

$#  #  
         +  +     $
 # +


             
$#  
# #4 #% 
 
 (
$    ,    +   
  4  
  
 
 #  
     # +   
  #+ 

  + +
# ,#1  
$  +#
    
 #     4   
  7(Darwin, 1994, 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).

(Y  Y

(Y YYY9Y

YYYYYYYY A seguir são apresentados os principais componentes de um jogo computacional


segundo TEIXEIRA (2007):
1. 8 4! Y &*"$4&'GY é 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. &*"$4&'"-&- GYdizer 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. 4! %&.H ): as ações individuais de cada agente afetam as decisões dos demais;
4. $0$%!&0 4!$Y )!%&!18"*$GY 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.

((YYY9Y

YYYYYYYY Abaixo, são descritos os tipos de jogos de acordo com Luce  . (1957,  BRITO,
2004):
1. 9$8$)Y$0&C %$GYocorre 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. 9$8$)Y*$0Y)$0&Y-", % 4! Y- Y3 %$GYa 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. 9$8$)Y /$ $$ %&!"#$)GY não existe qualquer tipo de comunicação entre os
participantes, cada agente precisa maximizar o seu ganho independente de
outro jogador;
4. 9$8$)Y  ))$&)GYcaracteriza jogos onde mais de dois jogadores participam.

YY   YY YY Y

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 

2, e
mais tarde batizado com este nome por Allan Tucker. Consiste em uma análise do
comportamento entre dois ou mais jogadores perante um conflito.
Simula a seguinte situação: os jogadores são criminosos colocados em selas diferentes
e sem comunicação entre si. É assim realizada uma proposta a cada um, separadamente,
daxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx seg

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


iti:itt!ii&7i8i
 &  i !;   i  ' 'i  i !; 
7  i lt t ' i lt 1it   + it l
&iiiti)l7'iiti!t
ltj&iiit !il3%#45M0#B6# 

x x      
    
 




# 1il  9iii    ( ti) t"(   t'l 
&tt6'l
V


6'l
V6'l9&t1il9iii9
t:3#1R *V 
 
 j&   i ti  tt it: 
  6i 1t'li(tt
&7  l 'ti   "l  6 R %  9 " &i  &it l +
65:5R ;:


ë   

ë 
  


ë 




9    tt ! ll  "l  &7 
lit'i:

VY 6:tt !Ê j&'ti)i7;

VY R: j&'';
29

VY P: punição (÷ ) recebida pelos jogadores se ambos traírem;

VY S: pagamento do otário ( Ã


), 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:

VY 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;

VY O resultado das iterações ocorridas anteriormente é a única informação que os


jogadores podem obter;

VY Nenhum jogador pode se recusar a jogar ou obrigar a outro jogador a desistir de


participar de uma disputa;

VY Os valores de pagamento para os pares de comportamento não podem ser alterados;

VY Os jogadores só podem se comunicar durante as disputas;

YYY 
 Y

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 ( ), em que a
cada disputa será sorteada aleatoriamente uma das estratégias, cooperar ou trair, a ser
utilizada pelo jogador; a quarta chama-se  !  (TFT), uma estratégia simples, que

3
Maiores detalhes podem ser vistos em LUCE  ., 1985,  TEIXEIRA, 2007.
30

simula o seguinte comportamento: no primeiro encontro com o adversário, o jogador desta


estratégia coopera, porém, a partir da segunda disputa com o mesmo jogador, passa a aplicar a
estratégia que foi escolhida pelo adversário na rodada anterior entre eles (AXELROD, 1984,
BRITO, 2004).

(Y YY Y  Y  Y

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-Pessoas


Fonte: YAO, DARWEN (1994).

A contabilização dos pontos se diferencia da que ocorre no dilema de duas pessoas. A


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

 
ð  (1)
 

   
ð  
 
(2)
31

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

5Y  Y Y


 Y Y  Y  Y  Y 
 

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.Y Gerar população inicial


2.Y Avaliar cada um dos indivíduos da população ( )
3.Y Repetir até i gerações
3.1.YRepetir n disputas
3.1.1.Y Selecionar N indivíduos da população aleatoriamente
3.1.2.Y Repetir m rodadas
3.1.2.1.Y Obter o comportamento dos indivíduos
3.1.2.2.Y 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.YRepetir até o número de descendentes ser igual à quantidade desejada
3.2.1.Y Selecionar um par de indivíduos de acordo com método de seleção
previamente descrito
3.2.2.Y Realizar operação de cruzamento nos indivíduos
3.2.3.Y Avaliar os descendentes
3.3.YRealizar operação de mutação nos indivíduos
3.4.YSelecionar um número de melhores indivíduos dentre todos até o momento, de
acordo com a taxa de elitismo, e substituir os piores indivíduos
4.Y Caso a população atinja o critério de parada, é finalizado o processo, caso contrário
repete a partir do item 3.1
5.Y O melhor indivíduo é a solução do problema
Tabela 4.1 - Pseudocódigo do NpSIGA.
Y

5Y  YY 

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

5Y  YY IY

O cromossomo dos indivíduos possui uma codificação por permutação e tem como
base o Problema do Caixeiro Viajante aplicado nas 26 cidades-capitais do Brasil, onde cada
gene representa uma cidade visitada pelo caixeiro.

1 19 7 24 12 22 6 13 23 10 18 24 20 14 3 5 16 9 17 11 21 25 4 15 8 2 1
Tabela 4.2. Codificação do Genótipo

Observa-se que os valores do primeiro e do último gene são iguais, e ao longo do


cromossomo nenhum valor deve se repetir, totalizando em um cromossomo com 27 posições.
Tais características retratam a seguinte situação: um caminho iniciado na cidade X percorre
uma determinada rota e retorna a primeira cidade sem visitar o mesmo ponto mais de uma
vez.

5(Y  YY IY

Na representação do comportamento de cada indivíduo, codifica-se um cromossomo


de tamanho 2, de acordo com a tabela a seguir:

Tabela 4.3. Codificação do Fenótipo


Fonte: YASOJIMA, LOBATO (2009).

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


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

34

Assim, fixando o número das estratégias na população inicial é possível acompanhar a


propagação delas ao longo da execução do AG.
A estratégia do tipo TFT é codificada, por padrão, armazenando em memória a
estratégia de cada indivíduo com quem competiu ao longo de sua participação no algoritmo,
para que assim, aplique-a quando se encontrarem de novo. Porém, quando se aumenta o
número de jogadores, tal funcionalidade se torna inviável, pois o indivíduo não consegue
decidir sua estratégia quando compete com mais de uma pessoa ao mesmo tempo.
Acrescenta-se assim, o conceito de tolerância, o qual é representado por uma taxa.
Esta taxa é usada pelo TFT para determinar se ele irá trair ou cooperar. Se, em uma rodada, o
número de indivíduos que traem supera o valor da taxa de tolerância, então o TFT também
trai, caso contrário ele coopera (MANHART, 2007).

5(Y YY   

Sabendo que cada indivíduo tem dois tipos distintos de cromossomos, o cálculo da
função de avaliação do algoritmo torna-se a seguinte:

 
    
      

 (3)

Os valores de alfa e beta refletem a influência que é gerada pelos   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   "# 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   "# 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  disputas e rodadas, parâmetros estes fixados antes da execução.
É importante ressaltar que a função apresenta a diferença entre as   dos
cromossomos, pois é aplicado a um problema de minimização.
Y
35

5Y
YY Y

No NpSIGA, o torneio decide qual indivíduo é selecionado baseado no valor da  


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

55Y
YY C  

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.

56Y Y YI Y

O operador de mutação no NpSIGA é baseado em uma memória que armazena a melhor


  encontrada até o processo acontecer.
É realizada em vários pontos do cromossomo, calculados a partir das fórmulas a seguir:
36

q     (4)


    (5)


  
  
 
(6)



   
     
 
  (7)

Onde N, representa o número de trocas que serão realizadas na mutação; Tx, taxa de até
no máximo 50% da proporção; Proporção do valor analisado para o melhor  ; 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

6Y   YY  Y

Neste capítulo é apresentado o problema sobre o qual o NpSIGA foi avaliado, os


principais testes realizados e suas análises.

6YY YY >Y 9 Y

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.

6(Y   YY  Y  Y Y YY >Y

 9 Y

Para aplicar o NpSIGA ao problema do caixeiro viajante foramutilizados os dados de


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

6Y DYYY

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


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

65Y  YYY C 

Para a realização dos testes buscou-se a definição de valores fixos para os parâmetros
a seguir:
VY Torneio: tamanho 2;
VY Valores de Pagamentos: T = 30; R = 25; P = 15; S = 10;
VY Taxa de Tolerância TFT = 25%;
VY Taxa de Mutação = 5%;
VY Taxa de Elitismo = 2%;
VY 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

66Y  YY YY

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   "# de cada geração. Vale ressaltar que a   "# é 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:

VY Melhor indivíduo encontrado e a geração em que aparece;


VY Gráfico:   
÷
 $ %&
"#;
VY 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 %"0 "%$Y ! )! 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:

VY Disputas: 100;
VY Rodadas: 10;
VY Peso   solução: 1;
VY Peso   competição: 1;




i& V !l&itttV:2
 * i& V < '  t& !   "lti"  2 
ii & +  "i'ili   ! i  "l  V; $V    l7
 ti V & !
V 



i&   !l&itttV:%52
  
V


  !  l&it %52 i&   t     t& !
ii2("i'iliii"l
V$
 #l7lti ; & !


 


i& 
 !l&itttV:*%52 j&

 #   t& !  l&it *%52   j& i& 
 i
l7t   %52 ("&i   l7 l !   íi 
V & !
 !'t""i'iliV$;V






i&   !l&itttV:*%52Vj&

 9 V j&  *%52 i&   ti&i  "i'ili i 
V$ $ V
('t"l7l ! & !V 

#j  j ili)tl&it%52*%52&it
"l:
VY 1it:V ;
VY R:V ;
VY 9 l !:V;
VY 9 ti !:  ;







i&   !l&ittt :%52

   ! %52 i&   t  l7lt  VV   & !
V ; "i'iliV V






i&  !l&ittt :*%52 j&

9  j&  *%52 i&  t  "i'ili  V
; V 
l7lt $ & !
$$




i& ; !l&ittt :*%52Vj&

 Vj&i& "i'ilitV $ Vl7
lt & ! V

 #   "  j li)  + t  %52   *%52   &it
=t:
VY 1it:V ;
VY R:V ;
VY 9 l !:V;
VY 9 ti !:  ;






i& $ !l&ittt
:%52

 9tt
l&it%52i& $'t"ltíi V V

& !V;"i'ili
 V



i&   !l&ittt
:*%52 j& 

   =t  *%52 i&   't"  & "i'ili 

l7lt ;$ ;& !V;V





i& V  !l&ittt
:*%52Vj& 

 
 9Vj&i& V *%52t"i'ili $ V 
l7"l 
& ! $ 

*„ j t<ttlitii
tttl"i'ili'"ttti#"l=t!
&it:

VY 6liti:V >;
VY 1it:V ;
VY R:V ;
VY 9 l !:V;
VY 9 ti !:  ;



;



i& VV !l&ittt :%52

 "tlitil&it%52i& VV't"l7lt
 $V& !
 "i'iliV
  



i& V  !l&ittt :*%52 j&

#l&it*%52i& V 't" l7lt V V& !

"i'ili $   
$



i& V
 !l&ittt :*%52Vj& 

 li)  tt  l&it *%52  V j& i& V
  l7
lti & ! 't""i'ili $ ;;

 t'l V  &i t  il !  t   tt t
títl

jð" jj  
  j  '  " "
ð"

'   "  j'""j  "jjj ð" jj    "'" 
  V V < > < < V 
V  V; $V 
 ã V V  > V  V  ; 

 V$
 
 x V V  > V  V  V 
 V$;V

  V V V > V  V   V  V$ $ V

  V    > V  V  VV  V ;  V V



  V    > V  V  $ 
$$ V
; V
  V   V > V  V   V V $ V
  V    > V  V  V V
 V;
 V
  V    > V  V  ;$ ; V;V
 

  V   V > V  V  
 $  $ V 
  V    V > V  V  $V
  V
  
 ã V    V > V  V  V V
 $   
 x V   V V > V  V    $ ;;

6'l V1&itt


49

66Y YY YY

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

;Y   <Y Y

;Y  Y   <Y

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


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

;(Y  <

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

;Y  @YY

Como trabalhos futuros pode-se citar:


VY Implementar um método de busca local no cromossomo, para guiar o processo
de evolução do Algoritmo Genético;
VY Analisar os dados gerados na etapa de Interação Social, observando a
propagação das estratégias no decorrer dos testes;
VY 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;
VY Efetuar testes do NpSIGA para diferentes instâncias do Problema do Caixeiro
Viajante;
VY Realizar testes variando as configurações dos parâmetros principais do
NpSIGA e analisar os resultados.
53

=  Y Y

BRITO, F. H. @&JK$# Y $%4 "$GY 0Y 4$#$Y 01!$-$Y - Y  ' ./$Y &%&Y $)Y '8$%"!0$)Y
 41!"*$)Y &) &-$Y 0Y  $%"&Y -$)Y 9$8$)Y #$'2*"$4L%"$)Y Y )!%&!18"&)Y #$'2*"$4L%"&).
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. 9  GY $0$Y%$8%&0&%. 6 ed. Prentice-Hall, 2005.

FINK, E. C; GATES, S; HUMES, B. D; &0 Y ? $%MY $"*)GY 4*$0' ! Y 4,$%0&!"$4NY


 & ! -Y&0 )NY&4-Y '&M %Y&0 ). Sage Publications Inc., 1998.

GUTIN, G.,PUNNEN, A, P. ? Y %&# '"48Y &' )0&4Y %$' 0Y &4-Y !)Y &%"&!"$4).
Dordrecht: Kluwer Academic Publishers, 2002. vol. 12.

MANHART, K. $$ %&!"$4Y "4Y (Y &4-Y  %)$4Y %")$4 %O)Y "' 00&Y &0 )GY A
Simulation Study. 2007. University Bern, Munich

MITCHELL, M. 4Y4!%$-2*!"$4Y!$Y 4 !"*Y '8$%"!?0). MIT Press, 1999.

OBTIKO, M. 4!%$-2*!"$4Y !$Y  4 !"*Y '8$%"!?0Y J"!?Y 9&#&Y ' !) Czech Technical
University, 1998. Disponível em: <http://www.obitko.com/tutorials/genetic-algorithms/>.
Acessado em: 09 de novembro 2010.

RAPOPORT, A.  %)$4Y&0 Y? $%MYY $4* !)Y&4-Y '"*&!"$4). The University of


Michigan Press, 1970.

SIVANANDAM, S. N; DEEPA, S. N. 4!%$-2*!"$4Y!$Y 4 !"*Y '8$%"!?0)YSpringer. 2008.

STEMMER, M. R. '8$%"!0$)Y  41!"*$). DAS / CTC / Universidade Federal de Santa


Catarina. Santa Catarina, [s.d]. 56 slides: color.
54

TEIXEIRA, O. N. $02!&./$Y #$'2*"$4L%"&GY -$)Y &) *!$)Y ,"'$):,"*$)Y PY "0' 0 4!&./$Y


-$)Y &'8$%"!0$)Y 8 41!"*$)Y &'"*&-$)Y 4&Y )$'2./$Y -$Y %$' 0&Y -$Y *&"B "%$Y #"&&4! Y
)"01!%"*$. 2003. Trabalho de conclusão de curso ± Universidade Federal do Pará ± Belém.

TEIXEIRA, O. N. %$$)!&Y - Y 0Y $#$Y '8$%"!0$Y  41!"*$Y &) &-$Y 4&Y  $%"&Y -$)Y
9$8$). 2005. Dissertação (Mestrado em Engenharia Elétrica) ± Universidade Federal do Pará
± Belém.

TEIXEIRA, O. N. '8$%"!0$Y 41!"*$Y*$0Y4! %&./$Y$*"&'Y 2'$)&. 2007. Qualificação


(Doutorado em Engenharia Elétrica) ± Universidade Federal do Pará ± Belém.

YAO, X; DARWEN, P. 4Y B %"0 4!&'Y)!2-MY$,Y  %)$4Y"! %&! -Y%")$4 %O)Y-"' 00&Y


8&0 ).Australia: Informatica, 1994.

YASOJIMA, C. T. K; LOBATO, W. A. da Luz. %$$)!&Y - Y 20&Y $#&Y  !&? 2%+)!"*&Y


@+%"-&Y *$0Y :8"*&Y 2'$)&Y&) &-&Y 0Y '8$%"!0$)Y  41!"*$)Y *$0Y 4! %&./$Y$*"&'.
2009. Trabalho de Conclusão de Curso (Graduação em Bacharelado em Ciência da
Computação) - Centro Universitário do Pará - Belém.
Y
55

>Y Y
Y
Tabela de Valores dos Parâmetros dos Testes realizados
Y
Quantidade Taxa Peso de   Jogos
Métodos
Popu- Joga- Cruza- Com- de
Gerações Mutação Elitismo Solução Disputas Rodadas seleção
lação dores mento petição

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


Y
Y
Y
Y
Y
Y



 

 1i !ltttti !V



 j 

 
VY 1it:V ;
VY R:V ;
VY 9 l !:V;
VY 9 ti !:V;
VY Ml7 :  
Y 2 !:
 
VY Vi'ili:
$ 




 
;




   j
VY 1it:V ;
VY R:V ;
VY 9 l !:V;
VY 9! ti !:V;
VY Ml7" :

Y 2 !:
V$

VY Vi'ili: 





 
$



   j
VY 1it:V ;
VY R:V ;
VY 9# l !:V;
VY 9$ ti !:V;
VY Ml7% :
$$V
Y 2 !:


VY Vi'ili:
$ 



Você também pode gostar