Carvalho Márcia Braga De

78
 Universidade Estadual de Campinas FACULDADE DE ENGENHARIA ELÉTRICA E DE COMPUTAÇÃO Departamento de Telemática Aplicações de Meta-heurística Genética e Fuzzy no Sistema de Colônia de Formigas para o Problema do Caixeiro Viajante Márcia Braga de Carvalho Orientador: Prof. Dr. Ak ebo Y amakami Dissertação apresentada à Faculdade de Enge- nharia Elétrica e de Computação como parte dos requisitos exigidos para obtenção do título de Mestre em Engenharia Elétrica. Banca Examinadora: Prof. Dr. Ané si o dos Santos Jú ni or FEEC / UNICAMP Prof. Dr. Tak aaki Ohishi FEEC / UNICAMP Pro fa. Dra. Tati ane Regina Bon m FAC / Campinas Campinas, SP 27 de Julho de 2007

description

Sistemas de Distribuição de Energia Elétrica

Transcript of Carvalho Márcia Braga De

  • Universidade Estadual de CampinasFACULDADE DE ENGENHARIA ELTRICA E DE COMPUTAO

    Departamento de Telemtica

    Aplicaes de Meta-heurstica Gentica e Fuzzy no Sistemade Colnia de Formigas para o Problema do Caixeiro

    Viajante

    Mrcia Braga de CarvalhoOrientador: Prof. Dr. Akebo Yamakami

    Dissertao apresentada Faculdade de Enge-nharia Eltrica e de Computao como parte dosrequisitos exigidos para obteno do ttulo deMestre em Engenharia Eltrica.

    Banca Examinadora:

    Prof. Dr. Ansio dos Santos Jnior FEEC / UNICAMPProf. Dr. Takaaki Ohishi FEEC / UNICAMPProfa. Dra. Tatiane Regina Bonfim FAC / Campinas

    Campinas, SP

    27 de Julho de 2007

  • FICHA CATALOGRFICA ELABORADA PELA BIBLIOTECA DA REA DE ENGENHARIA E ARQUITETURA - BAE - UNICAMP

    C253aCarvalho, Mrcia Braga de Aplicaes de meta-heurstica gentica e fuzzy no sistema de colnia de formigas para problema do caixeiro viajante / Mrcia Braga de carvalho. --Campinas, SP: [s.n.], 2007.

    Orientador: Akebo Yamakami Dissertao (Mestrado) - Universidade Estadual de Campinas, Faculdade de Engenharia Eltrica e de Computao.

    1. Algoritmo de formiga. 2. Algoritmos genticos. 3. Conjuntos difusos. 4. Problema do caixeiro viajante. I. Yamakami, Akebo. II. Universidade Estadual de Campinas. Faculdade de Engenharia Eltrica e de Computao. III. Ttulo.

    Ttulo em Ingls: Aplications of Genetic and Fuzzy Metaheuristic in the Ant Colony System for the Traveling Salesman Problem.

    Palavras-chave em Ingls: Ant algorithms, Genetic algorithm, Fuzzy set theory, Traveling salesman problem

    rea de concentrao: AutomaoTitulao: Mestre em Engenharia EltricaBanca examinadora: Tatiane Regina Bonfim, Ansio dos Santos Jnior e Takaaki OhishiData da defesa: 27/07/2007Programa de Ps-Graduao: Engenharia Eltrica

  • ResumoDentre as vrias tcnicas heursticas e exatas existentes para a resoluo de proble-

    mas combinatrios, os algoritmos populacionais de otimizao por colnia de formigase genticos tm se destacado devido sua boa performance. Em especial os algoritmosde colnia de formigas so considerados atualmente como uma das tcnicas mais bemsucedidas para a resoluo de vrios problemas combinatrios, dentre eles o problema docaixeiro viajante. Neste trabalho apresentado um algoritmo hbrido que trabalha comas meta-heursticas de sistema de colnia de formigas e gentico conjuntamente aplicadosno problema do caixeiro viajante simtrico. Alm disso, apresentamos uma proposta parao algoritmo de formigas quando temos incertezas associadas aos parmetros do problema.Os resultados obtidos com as metodologias propostas apresentam resultados satisfatriospara todas as instncias utilizadas.

    Palavras-chave: Otimizao por Colnia de Formigas, Algoritmo Gentico, Teoria dosConjuntos Fuzzy, Problema do Caixeiro Viajante.

    AbstractAmongst the several existing heuristical and accurate techniques for the resolution of

    combinatorial problems, the population algorithms ant colony optimization and genetichave been detached due to their good performance. In special the ant colony algorithmsare considered currently as one of the techniques most succeeded for the resolution ofsome combinatorial problems, amongst them the travelling salesman problem. In thiswork is presented a hybrid algorithm which works with the ant colony system and geneticmetaheuristics jointly applied in the symmetric travelling salesman problem. Moreover,we presented a proposal for the ant algorithm when we have uncertainties associated toproblem parameters. The results gotten with the methodology proposals present resultedsatisfactory for all the used instances.

    Keywords: Ant Colony Optimization, Genetic Algorithm, Fuzzy Set Theory, TravelingSalesman Problem.

    iv

  • Dedicatria

    A minha av Margarida Neres Braga (in memorian)e a minha tia Joelma Souza Braga (in memorian),que embora no estejam mais presentes, continuamdentro do meu corao.

    Ao meu noivo Maurcio, pelo amor, carinho e apoionos momentos difceis ao longo desta caminhada.

    v

  • Agradecimentos

    Agradeo a Deus em primeiro lugar, por tudo o que tem me proporcionado.

    Ao meu orientador, o professor Akebo Yamakami, pela orientao, oportunidade e moti-vao nos momentos de dificuldade.

    minha amada me, Jussara, um exemplo vivo de uma verdadeira lutadora a quem eudevo tudo. A sua criao e educao me fizeram chegar at aqui.

    Ao meu noivo Maurcio, meu grande amor e companheiro. Agradeo por tudo que fezpor mim nestes anos. Sem o seu carinho e compreenso teria sido muito mais difcil. Suapresena em minha vida mais um presente de Deus.

    toda minha famlia, por sempre me apoiarem e torcerem muito por mim.

    todos os amigos da FEEC, especialmente as colegas que participaram diretamentecomigo desta jornada: Ingrid, Polyane e Priscila.

    s minhas amigas da Bahia que sempre torceram por mim: Gleice, Ariana, Aline, Julianae a querida Jucy.

    Aos professores da banca: Ansio dos Santos Jnior, Takaaki Ohishi e Tatiane ReginaBonfim, por terem lido o meu trabalho e pelas valiosas correes e sugestes.

    todos os colegas que prestigiaram minha defesa.

    todos os professores e funcionrios da Faculdade de Engenharia Eltrica - UNICAMP.

    CAPES, pelo apoio financeiro.

    vi

  • Sumrio

    Resumo e Abstract iv

    Lista de Figuras ix

    Lista de Tabelas xi

    Lista de Abreviaturas xii

    1 Introduo 1

    2 O Problema do Caixeiro Viajante 5

    2.1 Descrio do problema do caixeiro viajante . . . . . . . . . . . . . . . . . . 52.2 Formulao Matemtica . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62.3 Complexidade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62.4 Mtodos para Resoluo do TSP . . . . . . . . . . . . . . . . . . . . . . . 7

    3 Otimizao por Colnia de Formigas 9

    3.1 Consideraes Iniciais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93.2 Inteligncia por Colnia: Formigas reais e artificiais . . . . . . . . . . . . . 10

    3.2.1 Estigmergia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143.2.2 Auto-organizao . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

    3.3 Ant Colony System para o Problema do Caixeiro Viajante . . . . . . . . . 153.3.1 Algoritmo ACS para o TSP . . . . . . . . . . . . . . . . . . . . . . 19

    3.4 Algumas contribuies importantes e suas aplicaes . . . . . . . . . . . . 20

    4 Algoritmo Gentico 22

    4.1 Conceitos Bsicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224.1.1 Operadores Genticos . . . . . . . . . . . . . . . . . . . . . . . . . . 25

    vii

  • SUMRIO viii

    4.1.2 Mecanismos de Seleo . . . . . . . . . . . . . . . . . . . . . . . . . 274.1.3 Algoritmo Gentico . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

    5 Algoritmo Hbrido 29

    5.1 Introduo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295.2 Implementao de um Algoritmo Hbrido ACS+AG-TSP . . . . . . . . . . 30

    5.2.1 Estrutura do Algoritmo Hbrido ACS+AG-TSP . . . . . . . . . . . 315.2.2 Algoritmo ACS+AG-TSP . . . . . . . . . . . . . . . . . . . . . . . 33

    6 Experimentos Computacionais 34

    6.1 Parmetros do Algoritmo Hbrido ACS+AG-TSP . . . . . . . . . . . . . . 356.2 Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

    6.2.1 Instncia eil51 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366.2.2 Instncia brazil58 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 386.2.3 Instncia eil76 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406.2.4 Instncia kroA100 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 426.2.5 Instncia bier127 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 446.2.6 Instncia pr226 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

    7 Extenso do Ant Colony System para o Problema do Caixeiro Viajante

    com Parmetros Incertos 48

    7.1 Conjuntos fuzzy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 497.2 Nmeros fuzzy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

    7.2.1 Operaes com nmeros fuzzy triangulares . . . . . . . . . . . . . . 507.3 Teoria da Possibilidade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 517.4 Estrutura do Algoritmo ACS com Incertezas . . . . . . . . . . . . . . . . . 537.5 Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

    7.5.1 Instncia eil51 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 567.5.2 Instncia eil76 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

    8 Consideraes Finais e Perspectivas Futuras 59

    A 61

    Bibliogrfia 63

  • Lista de Figuras

    3.1 Caminho dividido igualmente no 1o experimento . . . . . . . . . . . . . . . 113.2 Relao entre percentual de formigas no caminho durante o tempo. . . . . 123.3 Caminho no 2o experimento com trilhas longas e curtas. . . . . . . . . . . 123.4 Comportamento das formigas aps o surgimento de um obstculo entre o

    ninho e a fonte de alimento. . . . . . . . . . . . . . . . . . . . . . . . . . . 133.5 Estrutura de ns interligados por arcos utilizado no TSP. . . . . . . . . . . 16

    4.1 Exemplo de cromossomo com codificao binria. . . . . . . . . . . . . . . 244.2 Exemplo de crossover de 1 ponto . . . . . . . . . . . . . . . . . . . . . . . 254.3 Exemplo de crossover de 2 pontos . . . . . . . . . . . . . . . . . . . . . . . 254.4 Exemplo de crossover Uniforme . . . . . . . . . . . . . . . . . . . . . . . . 264.5 Exemplo de crossover OX . . . . . . . . . . . . . . . . . . . . . . . . . . . 264.6 Exemplo de mutao inversiva . . . . . . . . . . . . . . . . . . . . . . . . . 274.7 Exemplo de seleo por Roleta . . . . . . . . . . . . . . . . . . . . . . . . . 27

    5.1 Exemplo de um Cromossomo representando um tour do TSP . . . . . . . . 315.2 Exemplo de crossover entre dois pais #P1 e #P2 . . . . . . . . . . . . . . 325.3 Exemplo de mutao em um tour do TSP . . . . . . . . . . . . . . . . . . 32

    6.1 Grfico de Convergncia obtido pelo ACS+AG-TSP para o grafo eil51 . . . 376.2 Grfico de comparao do desempenho dos melhores resultados obtidos

    pelo ACS+AG-TSP, ACS e AG para a instncia eil51 . . . . . . . . . . . . 376.3 Grfico de Convergncia obtido pelo ACS+AG-TSP para o grafo brazil58 . 396.4 Grfico de comparao do desempenho dos melhores resultados obtidos

    pelo ACS+AG-TSP, ACS e AG para a instncia brazil58 . . . . . . . . . . 406.5 Grfico de Convergncia obtido pelo ACS+AG-TSP para o grafo Eil76 . . 41

    ix

  • LISTA DE FIGURAS x

    6.6 Grfico de comparao do desempenho dos melhores resultados obtidospelo ACS+AG-TSP, ACS e AG para a instncia Eil76 . . . . . . . . . . . . 42

    6.7 Grfico de Convergncia obtido pelo ACS+AG-TSP para o grafo kroA100 . 436.8 Grfico de comparao do desempenho dos melhores resultados obtidos

    pelo ACS+AG-TSP, ACS e AG para a instncia kroA100 . . . . . . . . . . 436.9 (a) Grfico de Convergncia obtido pelo algoritmo ACS e (b) pelo algoritmo

    ACS+AG-TSP para o grafo bier127 . . . . . . . . . . . . . . . . . . . . . . 456.10 Grfico de comparao do desempenho dos melhores resultados obtidos

    pelo ACS+AG-TSP, ACS e AG para a instncia bier127 . . . . . . . . . . 456.11 Grfico de Convergncia obtido pelo ACS+AG-TSP para o grafo pr226 . . 476.12 Erros mdios encontrados pelo algoritmo ACS+AG-TSP . . . . . . . . . . 47

    7.1 Nmero fuzzy triangular . . . . . . . . . . . . . . . . . . . . . . . . . . . . 517.2 Funes de pertinncia a(x) e b(x) . . . . . . . . . . . . . . . . . . . . . 527.3 Possibilidade Poss(a, b) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 527.4 Exemplo de um problema do TSP com custos fuzzy . . . . . . . . . . . . . 537.5 Funo de pertinncia associado ao custo mnimo do grafo da Figura 7.4 . 547.6 Probabilidade dos ns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 547.7 Comparao das probabilidades fuzzy . . . . . . . . . . . . . . . . . . . . . 557.8 (a) Caminho timo com grau de possibilidade 1, (b) caminho com grau de

    possibilidade 0,9902, (c) caminho com grau de 0,9804 e (d) caminho comgrau de possibilidade 0,9706 de ser melhor que a soluo tima . . . . . . 57

    A.1 (a) Soluo para o grafo eil51 com o AG com erro de 0, 7% e (b) com osalgoritmos ACS e ACS+AG-TSP soluo tima encontrada 426 . . . . . . 61

    A.2 (a) Soluo para o grafo kroA100 com o ACS com erro de 0, 17% e (b) como algoritmo ACS+AG-TSP soluo tima encontrada 21282 . . . . . . . . 61

    A.3 Soluo para o grafo eil76, (a) com o AG (erro de 2, 42%) , (b) com o ACS(erro de 0, 9%) e (c) com o algoritmo proposto neste trabalho (soluotima encontrada 538) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

    A.4 (a) Soluo para o grafo bier127 com o ACS com erro de 0, 78% e (b) como algoritmo hbrido soluo tima encontrada 118282 . . . . . . . . . . . . 62

  • Lista de Tabelas

    3.1 Algumas aplicaes de algoritmos ACO em problemas de otimizao com-binatria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

    6.1 Problemas simtricos do Caixeiro Viajante utilizados neste trabalho . . . . 356.2 Resultados obtidos pelo ACS, AG e ACS+AG-TSP para o grafo eil51 . . . 366.3 Resultados obtidos pelo ACS, AG e ACS+AG-TSP para o grafo brazil58 . 386.4 Resultados obtidos pelo ACS, AG e ACS+AG-TSP para o grafo Eil76 . . . 406.5 Resultados obtidos pelo ACS, AG e ACS+AG-TSP para o grafo kroA100 . 426.6 Resultados obtidos pelo ACS, AG e ACS+AG-TSP para o grafo bier127 . . 446.7 Resultados obtidos pelo ACS, AG e ACS+AG-TSP para o grafo pr226 . . 46

    7.1 Resultados obtidos pelo ACS-Fuzzy para a instncia eil51 . . . . . . . . . . 567.2 Resultados obtidos pelo ACS-Fuzzy para a instncia eil76 . . . . . . . . . . 58

    xi

  • Lista de Abreviaturas

    ACO - Optimization Colony System - Otimizao por Colnia de Formigas.TSP - Problem Traveling Salesman - Problema do Caixeiro Viajante.ACS - Ant Colony System - Sistema de Colnia de Formigas.AS - Ant System - Sistema de Formiga.AG - Genetic Algorithm - Algoritmo Gentico.MMAS - Ant System Max-Min - Sistema de Formigas Max-Min.HAS - Ant System Hibrid - Sistema de Formiga Hbrido.

    xii

  • Captulo 1

    Introduo

    O problema do caixeiro viajante pode ser definido como um dos problemas mais proe-minentes da rea de otimizao combinatria. A relevncia desse problema se deve arazes histricas, j que este foi um dos primeiros problemas de otimizao para os quaisse conjecturou a classificao hard [15] e o primeiro descrito no livro Computers andIntractability [17]. A prtica tambm contribui para sua popularidade, j que inmerassituaes em cincia e engenharia podem ser formuladas como instncias deste problema.

    Embora este seja um problema simples de descrever, ele muito difcil de resolver eem muitos casos encontrar a soluo tima global uma tarefa praticamente impossvel.Um dos motivos que sua soluo torna-se mais complexa medida que se aumenta onmero de ns do grafo, quando somente atravs de heursticas possvel obter soluesaproximadas [24]. Conseqentemente, surge a necessidade de contornar essa complexidadee uma das maneiras explorar metodologias de computao natural.

    Dentre os algoritmos inspirados nessa metodologia, podemos citar os Algoritmos Ge-nticos e os Algoritmos de Otimizao por Colnia de Formigas.

    A maioria dos novos algoritmos so baseados em processos biolgicos ou naturais, comopor exemplo, os algoritmos genticos e os algoritmos baseados em colnia de formigas.

    Os algoritmos genticos so algoritmos populacionais baseados na evoluo naturaldas espcies. Neste contexto, os indivduos (solues de um problema) so submetidosa processos de mutao, reproduo, competio e seleo. A reproduo permite atransmisso de informaes genticas dos pais para os filhos, enquanto a mutao modificaparte gentica dos indivduos com um nico objetivo de aumentar a diversidade da po-pulao. Esse mecanismo repetido por vrias geraes, fazendo com que a cada geraosomente indivduos mais aptos sejam selecionados para fazerem parte da prxima gerao.

    1

  • 2O algoritmo de colnia de formigas foi proposto no incio da dcada de 90, e baseou-senas atividades cotidianas das colnias de formigas reais. Foi verificado que as formigas, medida que se movimentam, liberam um composto qumico conhecido como feromnio.Quanto maior essas quantidades de feromnio, mais propensas as formigas estaro deseguir esta trilha. Desta forma, o mtodo de otimizao por colnia de formigas mostrouser bastante eficiente para a soluo de diversos problemas combinatrios, destacando-seentre eles o problema do caixeiro viajante.

    O problema do caixeiro viajante aparece em uma srie de aplicaes prticas comopor exemplo, roteamento de veculos [2], problemas de perfurao [26], entre outros.

    Em situaes reais comum encontrarmos incertezas nas informaes associadas pois,por exemplo, se falarmos sobre a temperatura de um copo, para uma pessoa a temperaturapode ser extremamente agradvel e para outra, muito quente ou fria; isso s vai dependerdo ponto de vista do observador. Desta forma, as tomadas de decises baseiam-se noconhecimento individual, sem ter certeza sobre as informaes [27].

    Entretanto, essas incertezas podem ser modeladas e tratadas de uma forma mais ro-busta utilizando a teoria dos conjuntos nebulosos [33], [14] e [27].

    O marco inicial da teoria fuzzy foi o artigo Fuzzy Sets, publicado em 1965 pelo mate-mtico Lotfi Asker Zadeh [33], com a principal inteno de dar tratamento matemtico acertos termos lingsticos subjetivos. Este foi o primeiro passo no sentido de se programare armazenar conceitos vagos em computadores, tornando possvel a produo de clculoscom informaes imprecisas, a exemplo do que faz o ser humano.

    O tratamento de incertezas em problemas de grafos fuzzy ainda est na sua fase inicial,tanto na parte terica quanto na prtica. Isso se deve s diferentes abordagens que umproblema de grafos fuzzy pode ter, pois os nveis de incertezas podem estar associa-das tanto na estrutura (ns e/ ou arestas) quanto nos parmetros (custo, capacidade,demanda) [32].

    Motivao

    Encontrar o menor caminho para o problema do caixeiro viajante envolve uma buscaem um espao que cresce de forma fatorial conforme se aumenta o nmero de ns.

    O nmero de rotas possveis em um grafo completo do problema do caixeiro viajante da ordem (n 1)! [18]. Assim, por exemplo, em um grafo completo com 20 ns

  • 3possvel obter 1,21 x 1017 rotas possveis, tornando-se numa busca exaustiva invivel paraencontrar o caminho com menor custo. Supondo que temos um computador bastanteveloz, capaz de fazer 1 bilho de adies por segundos, desta forma ele seria capaz decalcular 53 milhes de rotas por segundo. Contudo essa imensa velocidade pouco diantedas rotas que ele tem que analisar e isso pode levar at cerca de 73 anos. Cabe considerarque um grafo com 20 ns bastante pequeno se comparado com muitos problemas reaisexistentes.

    Diante disto, proposta uma meta-heurstica para encontrar solues aproximadassatisfatrias, tentando contornar essa complexidade.

    Dentre as meta-heursticas existentes escolhemos a de otimizao por colnia de for-migas e o algoritmo gentico, mais precisamente um novo algoritmo hbrido denominadoACS+AG-TSP (Ant Colony System + Genetic - Travelling Salesman Problem) que tra-balha com os algoritmos de Sistema de Colnia de Formigas e Gentico conjuntamentepara resolver o problema do caixeiro viajante.

    Quando se trabalha com grafos nos quais so associados custos fuzzy as suas arestas,sua complexidade aumenta. Desta forma propomos um algoritmo ACS-Fuzzy e verificar-mos que possvel tambm resolver o problema do caixeiro viajante com o algoritmo desistema de colnia de formigas, quando se tem incertezas nos parmetros.

    Objetivos

    Neste trabalho feito um estudo do algoritmo de colnia de formigas e do algoritmo ge-ntico e, a partir de testes com esses modelos, sugerido um novo algoritmo. O algoritmohbrido proposto nesta dissertao trabalha com as heursticas de colnia de formigas egentico, cujo principal objetivo encontrar a melhor soluo para o problema do caixeiroviajante simtrico, visando contornar a complexidade do problema. Tambm propostoum algoritmo ACS com parmetros fuzzy para o problema do caixeiro viajante, baseadona Teoria da Possibilidade. Esse algoritmo tem por objetivo mostrar que possvel trataro problema do caixeiro viajante com parmetros incertos.

  • 4Organizao do Trabalho

    O trabalho est organizado da seguinte maneira: no Captulo 2 conceituado o pro-blema do caixeiro viajante, so apresentadas sua formulao matemtica, complexidadee alguns mtodos de resoluo. O Captulo 3 faz uma apresentao sobre o algoritmode otimizao por colnia de formigas, sua idia principal e seu funcionamento. O Ca-ptulo 4 rev os princpios de algoritmos genticos. A seguir, no Captulo 5 propostoum algoritmo hbrido que visa encontrar a melhor soluo para o problema do caixeiroviajante. No Captulo 6 so apresentados os experimentos e resultados obtidos para cadaum dos mtodos propostos. No Captulo 7 apresentada uma extenso do algoritmo deformigas para problemas com parmetros incertos. Finalmente, no Captulo 8 so feitasas consideraes finais deste trabalho e algumas propostas para trabalhos futuros.

    No final da dissertao esto includos anexos com os grafos utilizados neste trabalho.

  • Captulo 2

    O Problema do Caixeiro Viajante

    O Problema do Caixeiro Viajante (TSP) um problema clssico da Otimizao Com-binatria [22] e tem sido estudado por diversos pesquisadores de diferentes reas. Isso sedeve ao fato de possuir diversas aplicaes prticas. O TSP pertence a uma classe de pro-blemas no determinsticos de tempo no polinomial, classificado como NP - difcil [17].Por isso, a resoluo do TSP, utilizando mtodos heursticos, ganhou maior importncia,principalmente quando aplicado a problemas de grande porte.

    Este captulo tem por objetivo conceituar o problema do TSP, apresentando sua for-mulao matemtica, complexidade e mtodos de resoluo utilizando o algoritmo decolnia de formigas e o algoritmo Gentico, visto que neste trabalho o objeto de anlise um algoritmo hbrido ACS + AG aplicado ao TSP.

    2.1 Descrio do problema do caixeiro viajante

    Seja um conjunto de pontos representando n cidades. O problema do Caixeiro Viajanteconsiste na determinao de uma rota que inicia em uma cidade, passa por cada cidadedo conjunto apenas uma vez, e retorna cidade inicial da rota perfazendo uma distnciatotal mnima. Esta rota denominada ciclo Hamiltoniano de custo mnimo.

    A representao deste problema pode ser feita atravs de um grafo completo G =(V,A), onde V o conjunto de vrtices representando as cidades e A o conjunto de arcosou arestas que conectam cada par de cidades i, j V . A cada aresta atribudo um valorcij, que a distncia da cidade i para a cidade j. Para o TSP simtrico, essa distncia cij independente da direo dos arcos, ou seja cij = cji, e para o TSP assimtrico cij 6= cji.

    5

  • 2.2 Formulao Matemtica 6

    2.2 Formulao Matemtica

    A formulao matemtica para o problema normalmente referenciada na literaturausando minimizao na funo objetivo, embora esta formulao seja a mesma tanto paraMin (minimizao), quanto para Max (maximizao).

    Funo objetivo: Minni=1

    nj=1

    cij.xij

    Sujeito a:ni=1

    xij = 1, j = 1, ..., n (2.1)

    nj=1

    xij = 1, i = 1, ..., n (2.2)

    iS

    jS

    xij |S| 1, S V, S 6= (2.3)

    xij {0, 1}, i, j = 1, ..., n (2.4)

    onde cij e xij so, respectivamente, os custos e as variveis de deciso associados desig-nao do elemento i posio j. A varivel xij = 1 indica que a cidade j visitada logoaps a cidade i, caso contrrio xij = 0.

    A funo objetivo representa a minimizao do somatrio das distncias entre as ci-dades da rota, a varivel n representa o nmero total de cidades no problema, S umsubconjunto do conjunto V = {1, 2, ..., n}, e o smbolo | | denota a cardinalidade do con-junto. As restries (2.1) e (2.2) garantem que cada cidade i n ser designada paraexatamente uma cidade j. A restrio (2.3) garante a no existncia de infactibilidade ea restrio (2.4) define x como uma varivel binria.

    2.3 Complexidade

    Problemas como o do Caixeiro Viajante so extremamente complexos quando da ten-tativa de obteno de uma soluo tima.

    Os problemas de otimizao combinatria podem ser classificados segundo sua com-plexidade em, P , NP , NP -difcil e NP -completo, sendo que o problema do caixeiro

  • 2.4 Mtodos para Resoluo do TSP 7

    viajante pertence a classe NP -difcil. Os problemas NP -difcil so caracterizados porhaver reduo polinomial a partir de todo o problema pertencente classe NP .

    A classe NP (NonDeterministic Polinomial Time) so aqueles problemas que podemser resolvidos por algoritmos no-determinsticos em tempo polinomial.

    Problemas P (Polinomial time) formada pelo conjunto de todos os problemas quepodem ser resolvidos por um algoritmo determinstico em tempo polinomial.

    2.4 Mtodos para Resoluo do TSP

    Embora o problema do caixeiro viajante possa ser descrito de maneira simples, ele per-tence classe dos problemas NP -difceis, tornando-o intratvel para obteno da soluopor mtodos exatos para problemas de grande porte.

    Atualmente existe um nmero muito grande de problemas que podem ser modeladoscomo um problema do caixeiro viajante. Com isso, abordagens exatas e de aproximaescomo as heursticas e metaheursticas, tm sido buscadas para a resoluo de instnciasde grande porte desse problema, tanto para o caso do TSP simtrico quanto para oassimtrico.

    Tcnicas que so freqentemente utilizadas para resolver mtodos exatos do TSP sobranch-and-bound e branch-and-cut.

    Os mtodos heursticos embora no garantam encontrar solues necessariamente ti-mas, eles permitem encontrar boa aproximao para problemas reais e com maior rapidezque os exatos. Por isso o problema do TSP tem sido utilizado nos ltimos anos como basede comparao para melhorias em diversas tcnicas de otimizao, tais como AlgoritmosGenticos, Colnia de formigas, Busca Tabu, Busca Local, Redes Neurais, dentre outras.

    A resoluo do problema do caixeiro viajante, utilizando-se a heurstica de Colnia deFormigas, pode ser encontrada em [9]. A idia desta heurstica foi inspirada na observaodas colnias de formigas reais e baseia-se na capacidade das formigas encontrarem umcaminho mnimo entre a colnia e a fonte de alimento. Neste artigo, so mostradascomparaes entre a heurstica de otimizao de colnia de formigas e os mtodos deotimizao global, como: Simulated Annealing, Rede Elstica e Algoritmos Genticos,sendo que os resultados da heurstica de Colnia de Formigas foram melhores que os trsmtodos para as matrizes de custos consideradas. Alm disso, a heurstica proposta aplicada com a tcnica de melhoria 3-opt, reduzindo os erros mdios que se encontravam

  • 2.4 Mtodos para Resoluo do TSP 8

    nos grafos considerados.Outros trabalhos semelhantes, que utilizam a heurstica podem ser encontrados em

    [31], [12], [10] entre outros.O trabalho de Pilat e White (2002) mostra a aplicao de um mtodo hbrido de

    Algoritmos Genticos aplicado ao mtodo de Colnias de Formigas para o problema doCaixeiro Viajante simtrico. Os Algoritmos Genticos so utilizados para determinarquais formigas artificiais servem para melhorar as solues para o problema.

    No trabalho de Merz e Freisleber (1997) apresentada a aplicao de AlgoritmosGenticos para o problema do Caixeiro Viajante simtrico, com aplicao da tcnica deBusca local 2-opt para a rota encontrada, com o objetivo de encontrar melhores rotaspara as prximas geraes. Os resultados encontrados no banco de dados do TSPLIB(http://www.iwr.uni-heidelberg.de/groups/comopt/software/TSPLIB95/) mostram queesta tcnica capaz de obter solues na maioria dos casos citados.

    Affenzeller e Wagner (2003) mostra uma tcnica para determinar boas solues parao TSP com o uso de Algoritmos Genticos atravs das comparaes entre o fitness denovas solues com o fitness da populao e dos fitness dos novos indivduos e de seuspais. Os resultados para alguns problemas do TSPLIB so melhores do que os resultadosencontrados com a aplicao de Algoritmos Genticos da forma tradicional.

    O trabalho de Sari, Sherali e Bhootra (2005) mostra uma nova formulao para oproblema do Caixeiro Viajante assimtrico, criando restries para a criao de sub-rotas.Os resultados para alguns problemas do TSPLIB mostram que esta nova formulaopermite a obteno de solues timas em todos os casos testados.

    Os Algoritmos Genticos representam, atualmente, uma poderosa ferramenta parabusca de solues de problemas com alto nvel de complexidade. Dentre alguns trabalhosque utilizam algoritmos genticos para o TSP tem-se, [20] entre outros.

  • Captulo 3

    Otimizao por Colnia de Formigas

    Neste captulo sero apresentadas algumas noes importantes para a compreensoda meta-heurstica de Otimizao por Colnia de Formigas (Ant Colony Optimization- ACO), seu funcionamento e o algoritmo estudado, o Ant Colony System, de modoa facilitar a compreenso deste trabalho. Para estudos mais aprofundados do assunto,consultar [3] e [13]. Este captulo est organizado da seguinte maneira:

    Na seo 3.1 feita uma breve introduo sobre a meta-heurstica ACO e so apre-sentadas algumas diferenas entre o algoritmo inicial, o Sistema de Formigas (AntColony - AS ) e o Sistema de Colnia de Formigas (Ant Colony System - ACS );

    Na seo 3.2 so apresentadas algumas caractersticas que conferem as semelhanasentre as formigas reais e as artificiais, bem como algumas idias que foram transfe-ridas das colnias de formigas reais para as formigas artificiais;

    Na seo 3.3 descrito o processo de construo do algoritmo ACS e apresentadaa descrio detalhada de seu funcionamento;

    Na seo 3.4 so apresentadas algumas contribuies e aplicaes da meta-heursticaACO;

    3.1 Consideraes Iniciais

    Ant Colony Optimization uma meta-heurstica cuja fonte de inspirao o compor-tamento de colnias de formigas, baseado na observncia de que as formigas so capazes

    9

  • 3.2 Inteligncia por Colnia: Formigas reais e artificiais 10

    de encontrar o menor caminho entre o ninho e a fonte de alimento. Esses comportamentosso explorados em colnias artificiais de formigas para obteno de solues aproximadasaos problemas de Otimizao Combinatria, como por exemplo o problema do caixeiroviajante. O primeiro algoritmo de ACO, chamado Sistema de Formigas - AS, propostoinicialmente por Dorigo em meados dos anos 90, foi aplicado ao problema do CaixeiroViajante. Posteriormente, Dorigo e Gambardella (1997), propuseram o algoritmo deno-minado Ant Colony Systems - ACS para melhorar o desempenho do AS. Segundo eles oACS difere em dois aspectos importantes do AS.

    1. Em ACS o feromnio adicionado somente aos arcos que pertencem a melhor soluoglobal. J em AS esse feromnio adicionado a todos os arcos da rede.

    2. Em ACS, que cada vez que uma formiga usa o arco (i, j) para mover-se da cidadei, para a cidade j, remove-se uma quantidade do feromnio desse arco, segundo aequao 3.4, j em AS esse processo de evaporao do feromnio no ocorre.

    3.2 Inteligncia por Colnia: Formigas reais e artificiais

    As idias utilizadas na meta-heurstica ACO provm da observao das colnias deformigas reais. Existem caractersticas que conferem semelhanas entre as formigas reaise as artificiais. Algumas dessas semelhanas sero abordadas ao longo deste texto.

    A meta-heurstica ACO prev uma colnia de agentes independentes entre si, em si-nergia na busca de boas solues. Tal cooperao entre os agentes ocorrem pela leitura eescrita em um ambiente compartilhado, em busca do menor caminho entre uma origem(ninho) e um destino (alimento).

    As formigas artificiais so agentes que se movem de cidade para cidade em um grafodo TSP. Podemos citar trs idias do comportamento natural das formigas que foramtransferidas para a colnia de formigas artificiais.

    A preferncia para trajetos com nvel elevado de feromnio.

    A taxa de crescimento mais elevado da quantidade de feromnio em alguns trajetosmais curtos.

    A deposio do feromnio medeia uma comunicao entre as formigas.

  • 3.2 Inteligncia por Colnia: Formigas reais e artificiais 11

    A estas formigas artificiais foram dadas algumas potencialidades que no tem as con-trapartes naturais, mas que foram observadas para serem bem sucedidas nas aplicaesdo TSP: as formigas artificiais so dotadas de uma memria denominada lista tabu paramemorizar as cidades j visitadas.

    Essa memria esvaziada no comeo de cada nova viagem, e atualizada adicionandoa cidade inicial corrente ao conjunto das cidades j visitadas. Essa memria muitoimportante no TSP, pois evita que uma cidade seja visitada duas vezes, define o conjuntode cidades que uma formiga, localizada na cidade i, ainda tem para visitar e permite que aformiga calcule o comprimento do tour e retroceda o caminho para depositar o feromnio.

    A seguir sero mostrados dois experimentos com formigas reais realizados por [8], queserviu de inspirao criao do mtodo de Otimizao de Colnia de Formigas. Estaexperincia consistiu na submisso de uma colnia de formigas Iridomyrmex humilis auma fonte de alimento atravs de dois caminhos distintos. No primeiro caso, o caminhoentre o ninho e a fonte de alimento dividido em duas partes iguais, como pode ser vistona figura 3.1 abaixo.

    Figura 3.1: Caminho dividido igualmente no 1o experimento

    No inicio as formigas so liberadas e procuram a fonte de alimento atravs de umcaminho aleatrio, mas rapidamente converge para uma das pontes. A explicao paratal comportamento est relacionada ao feromnio depositado pelas formigas durante asua locomoo. Entretanto, algumas formigas ainda fazem um caminho aleatrio, paraprocurar novos caminhos que ainda possam ser descobertos. Na figura 3.2, apresentado opercentual de formigas seguindo cada um dos caminhos em um espao de tempo definido.

  • 3.2 Inteligncia por Colnia: Formigas reais e artificiais 12

    Figura 3.2: Relao entre percentual de formigas no caminho durante o tempo.

    J o segundo experimento tinha como objetivo verificar como as formigas se compor-tariam a mudanas no ambiente global, visto que isto normalmente ocorre entre o ninhoe o formigueiro. Para isto foi desenvolvido um novo caminho entre o ninho e a fonte dealimento. Neste caminho existem duas partes mais longas e duas partes mais curtas, con-forme figura 3.3. Inicialmente, quando apresentados os dois caminhos ao mesmo tempo,as formigas s podem percorrer os caminhos mais longos. Aps a deposio de feromnioneste pior caminho e consequentemente fixao da trilha, so liberados os caminhos maiscurtos para serem percorridos.

    Figura 3.3: Caminho no 2o experimento com trilhas longas e curtas.

    Neste experimento, Deneubourg concluiu que as formigas no trocam de caminhoimediatamente quando apresentado o novo(menor) caminho, porm quando este encon-trado, ele tende a ser cada vez mais utilizado e, com o passar do tempo, todas as formigaspassam a percorr-lo.

    As formigas so insetos sociais que possuem um sistema complexo de organizao e

  • 3.2 Inteligncia por Colnia: Formigas reais e artificiais 13

    diviso de tarefas, cuja principal funo garantir a sobrevivncia do formigueiro. Elasso capazes de encontrar o menor percurso entre a fonte de alimento e o ninho, sem usarsugestes visuais ou qualquer outro tipo de controle centralizado [9].

    Essas funcionalidades so obtidas por um processo de estigmergia e auto-organizaoem que agentes simples so capazes de emergir comportamentos complexos e direcionadoa um objetivo. Por isso elas utilizam uma substncia chamada feromnio, que umaestrutura qumica de comunicao e sinalizao.

    Ao se deslocarem, as formigas tendem a seguir trilhas com maior nvel dessa substn-cia. Ao seguir tais caminhos, deposita-se mais feromnio, o que torna o caminho maisatraente na medida em que mais formigas escolhem a mesma trilha. Individualmente umaformiga pode no produzir boas solues para o problema em questo, mas atravs dacooperao so capazes de encontrar boas solues. Esse comportamento foi apresentadono experimento feito por [9] e pode ser visto na Figura 3.4.

    Figura 3.4: Comportamento das formigas aps o surgimento de um obstculo entre oninho e a fonte de alimento.

    Na figura 3.4(A), as formigas reais seguem um trajeto entre o ninho e a fonte dealimento. Na ilustrao (B), um obstculo aparece no caminho: as formigas escolhemde forma aleatria o caminho a direita ou a esquerda com a mesma probabilidade. Nailustrao (C), o feromnio depositado no menor caminho mais rapidamente. Na ilus-trao (D), todas as formigas escolhem o caminho com maior nvel de feromnio, queconseqentemente o caminho mais curto.

  • 3.2 Inteligncia por Colnia: Formigas reais e artificiais 14

    3.2.1 Estigmergia

    O processo de estigmergia um processo que explica a coordenao de tarefas nareconstruo de ninhos de cupins (para maiores detalhes consultar [3]). Um exemplobastante evidente da estigmergia a busca por alimentos realizada pelas formigas. Ainterao dos insetos para produzir um sistema auto-organizado pode ocorrer de duasformas distintas:

    Direta: Ocorre atravs do contato tctil entre os animais por suas antenas ou man-dbulas, do contato visual ou mesmo quimicamente pelos odores de outros insetos,como no caso das formigas, com o feromnio.

    Indireta: Esta forma de comunicao ocorre quando um indivduo de uma popula-o altera seu meio prximo, fazendo com que o ambiente local onde ele est sejamodificado, e que outros indivduos que estejam no mesmo meio, em um momentoposterior, tenham suas decises afetadas por esta modificao individual.

    3.2.2 Auto-organizao

    A auto-organizao um mecanismo dinmico no qual uma estrutura global bem defi-nida surge a partir de iteraes de componentes de baixo nvel, no caso as formigas. Paraque esse processo de auto-organizao ocorra necessrio que algumas regras especifiquemas formas de interaes dos componentes com o meio local onde esto localizados, semreferncia a todo o sistema.

    Este conjunto de regras podem ser resumidos em quatro grupos bsicos (para maioresdetalhes consultar [3]:

    1. Auto-alimentao positiva(amplificao): A amplificao, que preferncia no casodas formigas, dos melhores caminhos faz com que estes se tornem caminhos prefe-renciais na busca.

    2. Auto-alimentao negativa: Utilizado para contrabalanar o efeito da alimentaopositiva, fazendo com que caminhos pouco utilizados sejam esquecidos com o passardo tempo.

    3. Aleatoriedade: A auto-organizao surge da amplificao das flutuaes, que per-mitem a localizao de novas solues superando minmos locais.

  • 3.3 Ant Colony System para o Problema do Caixeiro Viajante 15

    4. Um nico individuo pode produzir uma estrutura organizada atravs de uma trilhaestvel de feromnio. Entretanto, esta estrutura no ser otimizada; para que umsistema auto-organizado encontre boas solues necessrio que mltiplos indiv-duos interajam entre si a partir dos seus resultados e atravs do ambiente comum.

    3.3 Ant Colony System para o Problema do Caixeiro

    Viajante

    Aqui apresentado o esquema do algoritmo de sistema de colnia de formigas para oproblema do caixeiro viajante proposto por [9].

    A primeira meta-heurstica de otimizao por colnia de formigas foi o AS [11]. Poste-riormente [9] propuseram o algoritmo ACS para o TSP. O sistema de colnia de formigas uma forma de resoluo de problemas que simulam o comportamento de um grupo deformigas na busca pelo menor caminho.

    Em um sistema de colnia de formigas - ACS, duas tarefas so principais:

    A construo de uma representao do problema de uma forma verstil, normal-mente uma estrutura na forma de um grafo e que permita uma regra probabilsticade transio entre os ns baseada na trilha de feromnios e no valor de cada arco;

    O desenvolvimento de uma heurstica para transio de ns que possa avaliar aqualidade dos caminhos tomados.

    O problema do TSP busca o caminho que minimize o trajeto entre os diversos nsinterligados atravs de arcos em uma estrutura semelhante a um grafo, como pode servisto na Figura 3.5.

    Para cada arco (i, j) do grafo, definida uma varivel ij, conhecida como trilhaartificial de feromnio. Inicialmente este ij igual para todos os arcos da rede. Cadaformiga k constri uma soluo a partir de um dos ns do grafo de forma randmica.Assim ,a varivel ij incrementada conforme o passar das formigas e decrementadaa cada ciclo. A intensidade da trilha de feromnio definir a utilidade da trilha paraas formigas, isto , quanto maior a quantidade de feromnio, melhor esta trilha e asformigas tendem a utilizar esse percurso em detrimento dos outros.

    A cada n, a formiga artificial executa uma funo estocstica para calcular a pro-babilidade de utilizao dos arcos. Inicialmente a funo probabilstica foi desenvolvida

  • 3.3 Ant Colony System para o Problema do Caixeiro Viajante 16

    Figura 3.5: Estrutura de ns interligados por arcos utilizado no TSP.

    relacionando-se apenas com o processo de estigmergia, ocasionado pelo acumulo de fe-romnio pelas trilhas. Desta forma, a funo continha apenas um termo relacionado deposio do feromnio, como apresentado na equao (3.1).

    pkij = [ij] (3.1)

    Esta abordagem, apesar de obter alguns resultados para alguns problemas especficos,no obtinha bons resultados para diversas instncias do TSP e ainda no tinha uma grandeconfiabilidade dos resultados. Por isso decidiu-se pela implementao de um segundotermo que seria um valor heurstico relacionado natureza do problema e que permitiriauma maior explorao. Esta nova frmula apresentada na equao (3.2).

    u = argmax{[ij] [ij]}, se q q0; (3.2)onde q uma varivel aleatria uniformemente distribuda entre [0, 1], q0 um par-

    metro ajustvel entre (0 q0 1), e os parmetros e controlam a intensidade doferomnio ij, e a qualidade da aresta ij, respectivamente.

    A equao (3.2) foi normalizada dividindo-se os termos desta equao pelo somatriode todas as probabilidades possveis. Assim, obteve-se uma frmula probabilstica ondecada formiga k constri o seu caminho movendo-se atravs de uma sequncia de locaisvisinhos, onde os movimentos so selecionados segundo uma distribuio de probabilidadesdada pela equao (3.3):

    pkij =[ij]

    [ij]lJki [ij]

    [ij] (3.3)

  • 3.3 Ant Colony System para o Problema do Caixeiro Viajante 17

    onde:

    pkij : a probabilidade da formiga k, que se encontra na cidade i, escolher on j como prximo n a ser visitado;ij : quantidade de feromnio existente no arco (i, j). Inicialmente, adota-seum mesmo valor 0 para todos os arcos da rede;ij : funo heurstica que representa a atratividade do arco (i, j). No caso doproblema do caixeiro viajante, adota-se o inverso 1/dij do valor da distnciaentre os ns i e j;Jki : conjunto de pontos ainda no visitados pela formiga k, que se encontraatualmente no ponto i; : um parmetro que pondera a importncia relativa da trilha de feromnio,ij na deciso de movimentao da formiga. : valor heuristicamente escolhido, que pondera a influncia relativa da dis-tncia ij entre os ns i e j no processo de deciso.

    Podemos observar que se = 0 , as formigas seguiro a heurstica do vizinho maisprximo para dar o prximo passo, enquanto que se = 0, as formigas selecionaro umcaminho com maior nvel de feromnio e pode ocorrer uma estagnao com o passar dasgeraes, levando o algoritmo a pontos sub-timos. No caso do ACS o valor de iguala 1.

    A equao (3.3) mostra que a preferncia da formiga por um determinado caminho maior para os caminhos com maior nvel de feromnio e com menor distncia. Aatualizao do feromnio realizada local e globalmente.

    A atualizao local realizada de acordo com a euqao3.4 para evitar uma arestamuito forte que est sendo escolhida por todas as formigas, e ela motivada pela evapo-rao do feromnio no caminho por onde cada formiga k passar. Esse processo aumentao poder de explorao das formigas.

    ij = (1 ) ij + 0, 0 = (n.Lnn)1 (3.4)onde n o nmero de ns do grafo, Lnn um valor heurstico de menor caminho encon-

    trado por alguma formiga e um parmetro que determina a velocidade da evaporaodo feromnio.

  • 3.3 Ant Colony System para o Problema do Caixeiro Viajante 18

    J na atualizao global pretendido recompensar as arestas que pertencem a rotasmais curtas. Uma vez que as formigas artificiais terminam seus trajetos, a melhor formigadeposita feromnio em arestas visitadas que pertencem a seu trajeto e as outras arestaspertencem inalteradas. Essa atualizao dada pela equao (3.5). Assim, a cada arco(i, j) da rede, adiciona-se uma quantidade de feromnio proporcional ao tamanho darota obtida, ou seja, quanto mais curta a rota, maior ser a quantidade de feromniodepositada.

    ij = (1 ) ij + 4ij, [0, 1] (3.5)

    onde,

    ij =

    {1Lk, se (i, j) usado0, caso contrrio

    (3.6)

    O primeiro termo das equaes (3.4) e (3.5) responsvel pela evaporao do ferom-nio. O parmetro utilizado para que os caminhos que so menos freqentados sejamesquecidos com o passar do tempo. O segundo termo da equao (3.5) responsvel poraumentar a concentrao de feromnio apenas nos arcos visitados pela melhor formiga,onde Lk a distncia total percorrida na rota construda pela melhor formiga da iterao.Quanto menor a rota, maior a quantidade de feromnio depositada.

    Esse procedimento se repete at que um nmero mximo de iteraes tenha sidoalcanado ou caso no se verifique mais melhorias nas solues encontradas.

  • 3.3 Ant Colony System para o Problema do Caixeiro Viajante 19

    3.3.1 Algoritmo ACS para o TSP

    Algoritmo 3.3.1: Algoritmo ACS - TSP

    Inicializao:

    Para cada aresta (i, j) do grafo, estabelece-se um nvel inicial de feromnio.Para cada formiga k, escolhe-se um n aleatrio para iniciar o percurso.Loop

    para t indo de 1 at um nmero mximo de iteraes faa,para k indo de 1 at m faa, (m = nmero de formigas)Cada formiga k constri um caminho selecionando a prxima cidade a servisitada segundo a regra determinstica ou probabilstica influenciadapelo nvel de feromnio ij e da mtrica heurstica de afinidade ij,

    j = argmax{[ij] [ij]}, se q q0;

    pkij(t) =[ij(t)][ij ]lJk

    i[il(t)][il] , se q > q0;

    Aps cada transio da formiga k, aplique a regra de atualizao local, moti-vada pela evaporao do feromnio,

    ij(t) (1 ) ij(t) + 0

    fim-do-para

    Para cada soluo, calcule a distncia Lk(t) do caminho descoberto pelaformiga k,Se Lk(t) < L ento S Sk(t) ;Para cada aresta (i, j), atualize o feromnio ij(t), (i, j) Lk, de acordo como processo de deposio e evaporao de feromnio.

    ij(t) (1 ) ij(t) + ij(t), onde ij(t) = 1/Lk

    fim-do-para

    fim-do-Loop

    Retorne a melhor soluo S.

  • 3.4 Algumas contribuies importantes e suas aplicaes 20

    3.4 Algumas contribuies importantes e suas aplica-

    es

    Pesquisas sobre algoritmos de ACO, e sobre algoritmos de formigas, produziram umgrande nmero de aplicaes bem sucedidas aos problemas de otimizao combinatorial,tais como problemas de ordenao seqencial [16], roteamento de veculos [5], entre outros.Tambm foram propostos diversos algoritmos baseado no algoritmo original; na Tabela3.1 encontram-se alguns deles, para maiores detalhes consultar [13].

    Problema Nome do Algoritmo Autores Ano

    AS Dorigo,et.al 1991Caixeiro Ant-Q Gambardella, et.al. 1995Viajante ACS Dorigo e Gambardella 1996

    MMAS Sttzle e Hoss 1997ASrank Bullnheimer 1997

    AS-QAP Maniezzo,et.al 1994Atribuio HAS-QAP Gambardella 1997Quadrtica MMAS-QAP Sttzle e Hoss 1998

    ANTS-QAP Maniezzo 1998

    Escalonamento AS-FSP Sttzle 1997

    Roteamentode AS-VRP Bullnheimer,et.al. 1999

    Veiculos

    Roteamento derede orientada ANT-NET Di Caro e Dorigo 1997

    conexo

    Ordenao HAS-SOP Dorigo e Gambardella 2000Seqencial

    Atribuio de ANTS-FAP Maniezzo,et.al. 1999freqncia

    Cobertura ACS-SCP Hadji,et.al. 2000

    Tabela 3.1: Algumas aplicaes de algoritmos ACO em problemas de otimizao combi-natria

  • 3.4 Algumas contribuies importantes e suas aplicaes 21

    O ANTS (Approximated Non-Deterministic Tree Search) uma extenso proposta por[21], do ACO original. Trata-se de uma hibridao entre o ACO e os algoritmos de buscaem rvores. As principais diferenas implementadas foram os parmetros de atratividadee o mecanismo de incremento da trilha de feromnio.

    O Max-Min foi proposto por [30]. Neste algoritmo foi implementada uma forma agres-siva de incremento de feromnio, na qual apenas o melhor caminho obtido em um cicloteria sua trilha de feromnio acrescida. O Max-Min utiliza mtodos de busca local, utili-zando para isso um mtodo chamado de correlao distncia-fitness.

    A primeira alterao do AS para a resoluo do problema do caixeiro viajante foiproposto por [9]. O algoritmo chamado ACS mostrou ser eficiente e verstil, obtendo umasoluo para o problemas do caixeiro viajante, superior na mdia s solues encontradaspor redes neurais, algoritmos genticos e algoritmos de simulated annealing.

    Finalmente em 1999, Dorigo e Sttzle consagraram a famlia de algoritmos ACO comoum conjunto de mtodos eficientes para a resoluo de vrios problemas de otimizaocombinatria NP -hard, tanto estticos quanto dinmicos, relacionando diversas imple-mentaes, referncias e aplicaes eficientes.

  • Captulo 4

    Algoritmo Gentico

    Neste captulo so fornecidos alguns conceitos bsicos sobre os algoritmos genticos(seo 4.1), bem como seus operadores, alguns mecanismos de seleo, e sua estruturabsica. A inteno aqui no de oferecer um texto completo sobre os algoritmos genticos,mas apenas disponibilizar algumas informaes sobre os principais conceitos utilizadosnesta dissertao, de modo a facilitar a compreenso do mtodo proposto. Para umestudo mais aprofundado sobre os algoritmos genticos, consultar [19] e [24].

    4.1 Conceitos Bsicos

    Os algoritmos genticos foram introduzidos nos anos 60 por John Holland e consoli-dado em 1975 com a finalidade de formalizar matematicamente e explicar os processosde adaptao em sistemas naturais para, posteriormente, desenvolver sistemas artificiaissimulados em computador que retenham os mesmos mecanismos originais encontrados emsistemas naturais.

    A terminologia utilizada no desenvolvimento dos algoritmos genticos foi baseada nateoria da evoluo natural e da gentica proposta por Darwin em 1859.

    Uma das principais caractersticas dos AGs de no encontrarem uma nica soluo(indivduo), mas uma populao deles, caracterizando-se como mtodo estocstico debusca e seleo. Segundo [24], para percorrer este espao de busca necessrio manterequilbrio entre dois pontos conflitantes:

    Explotao: consiste no aproveitamento das melhores solues;

    Explorao: consiste na explorao do espao de busca.

    22

  • 4.1 Conceitos Bsicos 23

    Diversos estudos comprovaram que os algoritmos genticos mantm um equilbrio no-tvel nos pontos de contraste apresentados anteriormente e, portanto, conseguem fazero aproveitamento de melhores solues e explorao do espao de busca. Embora sejamidentificadas etapas no-determinsticas em seu desenvolvimento, os algoritmos genticosno so mtodos de busca totalmente aleatrios, e sim mtodos que relacionam variaesaleatrias com seleo polarizada pelos valores de adequao (fitness) atribudos a cadaindivduo.

    Os AGs so capazes de desenvolver solues para problemas do mundo real, tais comoproblemas de busca, de otimizao entre outros problemas complexos de engenharia. Em-bora eles no garantam eficincia total na obteno da soluo, geralmente garantem umaboa aproximao. Eles utilizam os conceitos da evoluo biolgica, tais como: genes,cromossomos, cruzamento, mutao e seleo. Desta forma as espcies evoluem aleato-riamente via operadores, estando sujeitas seleo natural. Assim os indivduos maisadaptados sobrevivem e se reproduzem, propagando o seu material gentico para as pr-ximas geraes.

    A seguir, apresentamos uma descrio mais detalhada das partes constituintes de umalgoritmo gentico.

    Codificao: A escolha da representao (codificao) dos cromossomos uma etapabastante importante na construo do algoritmo gentico, pois deve permitir uma repre-sentao da soluo completa do problema, sem dificultar a medida da funo de fitnessou a aplicao dos operadores genticos. Os algoritmos genticos clssicos adotam acodificao binria, isto , cada gene (bit) pode assumir valores 0 ou 1.

    A motivao para o uso dessa codificao vem da teoria dos esquemas [19]. Hollandargumenta que seria benfico para o desempenho do algoritmo maximizar o paralelismoimplcito inerente ao algoritmo gentico. Entretanto esta representao no a mais ade-quada a diversos problemas de otimizao, tais como o problema do caixeiro viajante, poistem se mostrado ineficiente. Contudo outros tipos de codificao podem ser utilizadas,como por exemplo, codificao inteira, real e mista.

    Cromossomo: a estrutura nucleoprotica dentro da clula que armazena o DNAdos seres vivos. Dentro de cada cromossomo, o DNA fica como uma fita enrolada emespiral. Em algoritmos genticos, um cromossomo haplide (apenas uma cadeia de DNArepresenta o cromossomo) geralmente corresponde a uma cadeia de bits que representa

  • 4.1 Conceitos Bsicos 24

    um candidato soluo do problema (vide Figura 4.1).

    Figura 4.1: Exemplo de cromossomo com codificao binria.

    Gene: Seqncia pequena de bases hidrogenadas capaz de definir uma caractersticado ser vivo. Em AGs, um parmetro codificado no cromossomo, ou um elemento dovetor que representa o cromossomo.

    Alelo: Representa uma das formas alternativas de um gene, nos AGs representa osvalores que o gene pode assumir. Por exemplo, um gene que representa o parmetro corde um objeto poderia ter o alelo de cor azul, preto, verde, etc.

    Individuo: Formado pelo cromossomo e sua aptido.

    Populao: Solues que representam os cromossomos, ou conjunto de indivduosque evoluem por meio de operadores genticos.

    Fentipo: a manifestao do gentipo no comportamento, fisiologia e morfologiado indivduo, como um produto de sua interao com o ambiente.

    Gentipo: Estrutura de dados que representa uma soluo candidata um determi-nado problema.

    Funo de Avaliao (fitness): A funo de avaliao associa a cada indivduo dapopulao uma medida de aptido. Ela deve ser escolhida de forma a medir o desempenhode cada indivduo como soluo do problema.

  • 4.1 Conceitos Bsicos 25

    4.1.1 Operadores Genticos

    Os operadores genticos freqentemente utilizados nos AGs clssicos so o crossovere a mutao. Estes operadores representam o ncleo de um AG. O objetivo deles pro-duzir novos cromossomos que possuam propriedades genticas superiores s encontradasnos pais. A seguir apresentamos alguns desses operadores e seus principais aspectos.

    Crossover : consiste na troca aleatria de material gentico entre dois cromossomos(strings - sries) selecionados. Entretanto existem alguns tipos de crossover, tais como:

    Crossover de um ponto: escolhe-se dois indivduos da populao (pais), seleciona-sealeatoriamente o ponto de corte e efetua a troca de modo a gerar dois filhos (verfigura 4.2).

    Figura 4.2: Exemplo de crossover de 1 ponto

    Crossover de dois pontos: seleciona-se dois indivduos da populao (pais), escolhe-se aleatoriamente dois pontos de cortes e efetua-se a troca de modo a gerar doisfilhos (ver figura 4.3).

    Figura 4.3: Exemplo de crossover de 2 pontos

    Crossover Uniforme: para cada gene no primeiro filho decidido (com algumaprobabilidade fixa p) qual pai vai contribuir com seu valor para aquela posio (verfigura 4.4).

  • 4.1 Conceitos Bsicos 26

    Figura 4.4: Exemplo de crossover Uniforme

    Crossover OX: escolhe-se dois indivduos pais da populao para gerar dois filhos.Primeiro copia-se um trecho de um dos indivduos pais para um filho e o restantedo cromossomo do novo indivduo filho preenchido com as informaes do outroindivduo pai, na mesma sequncia para evitar valores repetidos nos genes (figura4.5).

    Figura 4.5: Exemplo de crossover OX

    Mutao: gerao de um novo indivduo (filho) partindo de um nico pai. O operadorde mutao modifica aleatoriamente um ou mais genes de um cromossomo. A probabili-dade de ocorrncia de mutao em um gene normalmente pequena. A idia apenas decriar uma variabilidade extra na populao, mas sem destruir o processo j obtido com abusca. Existem alguns operadores de mutao, entretanto nos restringiremos apenas aosoperadores abaixo.

    Mutao Inversiva: bastante utilizada e pode ser feita atravs de uma simples trocade posio entre genes de um mesmo cromossomo. Este tipo de mutao, usandocodificao inteira, muito comum em problemas tradicionais como o problema doCaixeiro Viajante (ver figura 4.6).

    Mutao Uniforme: bastante utilizado em problemas com codificao em pontoflutuante, assim como a mutao gaussiana. Este operador seleciona aleatoria-mente um componente k {1, 2, ..., n} do cromossomo x = [x1, ..., xp], e alterao gene na posio k, de tal forma que o indivduo criado aps mutao seja x =

  • 4.1 Conceitos Bsicos 27

    Figura 4.6: Exemplo de mutao inversiva

    [x1, ..., xk, ...xp], onde xk um nmero aleatrio (com distribuio de probabilidade

    uniforme) no intervalo [xkmin, xkmax], onde xkmin e xkmax so, respectivamente, oslimites inferior e superior do gene na posio k.

    4.1.2 Mecanismos de Seleo

    O processo de seleo num AG pode ser definido como sendo uma escolha probabilsticade cromossomos de uma populao tendo como base as suas aptides (fitness), ou seja,quanto maior for a aptido de um indivduo, maior ser a chance dele ser selecionado paraa prxima gerao. Existem diferentes estratgias de seleo, abaixo citaremos algumasdessas.

    Roleta: muito utilizado no AG clssico, esse mtodo de seleo atribui a cada indiv-duo da populao uma probabilidade de passar para a prxima gerao proporcionala seu valor de fitness, ou seja, quanto maior o fitness de um indivduo, maior a pro-babilidade dele passar para a prxima gerao. Entretanto, a grande desvantagemdesse mtodo a possibilidade da perda do melhor indivduo da populao atual,ou seja, que ele no passe para a prxima gerao. A figura 4.7 mostra a idia dessemecanismo de seleo.

    Figura 4.7: Exemplo de seleo por Roleta

  • 4.1 Conceitos Bsicos 28

    Elitista: so selecionados uma porcentagem dos melhores indivduos da populaoatual.

    Bi-classista: so selecionados os P% melhores indivduos e os (1 P )% pioresindivduos.

    Ranking: esta estratgia utiliza as posies dos indivduos quando ordenados deacordo com o fitness para determinar a probabilidade de seleo atravs de mapea-mentos lineares ou no-lineares.

    Torneio: duas solues so indicadas aleatoriamente e a melhor selecionada seum nmero aleatrio r [0, 1] for menor que o parmetro p [0, 1] previamentedeterminado; caso contrrio, a outra soluo escolhida.

    4.1.3 Algoritmo Gentico

    A estrutura de um AG baseada nos conceitos de reproduo celular e evoluo natu-ral, podendo ser descrito em quatro elementos bsicos: uma populao de solues, umafuno de desempenho, operadores genticos e processo de seleo. A estrutura de umAG simples, facilmente encontrado na literatura, mostrada abaixo.

    Algoritmo 4.1.3: Algoritmo Gentico Clssico

    Incio

    t = 0;Inicializa_Populao (P, t);Avalia (P, t);enquanto t 6= d; % critrio de parada no atingido;faa

    t = t+ 1;seleo_dos_pais (P, t);reproduo (crossover) (P, t);mutao (P, t);avaliao (P, t);

    Fim

    Fim

  • Captulo 5

    Algoritmo Hbrido

    Neste captulo apresentado um algoritmo hbrido de sistema de colnia de formigas egentico para resolver o problema do caixeiro viajante. Esse novo algoritmo desenvolvidoneste trabalho denominamos de ACS+AG-TSP, pois ele trabalha conjuntamente comas meta-heursticas de ACS e AG, com o objetivo de obter melhores resultados que osalgoritmos ACS e AG individualmente.

    Inicialmente feita uma breve introduo justificando a utilizao das meta-heursticasde ACS e AG, posteriormente apresentamos a estrutura do algoritmo hbrido e seu funci-onamento.

    5.1 Introduo

    Modelos baseados em sistemas naturais objetivando resolver problemas de explosocombinatria demonstrou ser uma estratgia bastante eficiente. A meta-heurstica deColnia de Formigas, que surgiu a partir da observao de que formigas artificiais socapazes de encontrar o menor caminho entre o formigueiro e fonte de alimento, tm sidoaplicada com sucesso em diversos problemas, entre eles destacamos o problema do caixeiroviajante [12], pois tem apresentado resultados bastante satisfatrios.

    Os algoritmos genticos so mtodos heursticos, no especficos, utilizados principal-mente na explorao do espao de solues de problemas de otimizao discreta. Eles sogeralmente aplicados em problemas cuja complexidade dificulta, ou at mesmo impede autilizao de mtodos exatos, j que so capazes de fornecer solues quase timas emtempo de execuo aceitvel.

    29

  • 5.2 Implementao de um Algoritmo Hbrido ACS+AG-TSP 30

    O problema do caixeiro viajante um problema que envolve uma busca em um espaoque cresce fatorialmente conforme se aumenta o nmero de vrtices do grafo, e portanto,ele intratvel por meio de buscas exaustivas ou por mtodos exatos.

    Baseando-se em tcnicas da computao natural, um algoritmo hbrido denominadoACS+AG-TSP, que trabalha conjuntamente com as meta-heursticas de ACS e AG, proposto para resolver o problema do caixeiro viajante, cujo objetivo explorar o espaode busca de solues de maneira eficiente, visando encontrar boas solues de forma acontornar a questo da complexidade.

    5.2 Implementao de um Algoritmo Hbrido ACS+AG-

    TSP

    Dado G : (V,A) um grafo onde V um conjunto de vrtices e A um conjunto dearcos ou arestas associados a um custo cij, deseja-se encontrar a rota de menor custo,passando por cada vrtice uma nica vez.

    Devido a caracterstica inerente a este tipo de problema, e considerando as similarida-des e diferentes caractersticas entre o algoritmos ACS e o AG, foi desenvolvido um novoalgoritmo hbrido que combina a capacidade de busca das duas meta-heursticas, paraser mais rpido, melhorar a capacidade de busca e tentar contornar a complexidade doproblema.

    Na abordagem ACS+AG-TSP h um processo de cooperao entre os algoritmos ACSe o AG. Esse processo se d atravs de uma migrao das solues encontradas. Amigrao fornece uma capacidade adicional de intensificao para ambos os algoritmos.Neste aspecto, o ACS sustenta o AG, exportando solues potenciais para sua populao,e o AG sustenta o ACS reforando alternativas de buscas potenciais para as formigasartificiais.

    A estratgia de migrao implementada a seguinte: sempre que o algoritmo deformigas, o ACS, no consegue sair de um ponto timo local, ele exporta uma quantidadepr-determinada de solues (melhores caminhos encontrados pelas formigas) encontradasat o momento, para formar a populao inicial do algoritmo gentico. Neste momentoas iteraes do ACS so interrompidas e o AG tem incio para encontrar uma melhorsoluo que a do ACS. Uma vez que essa soluo encontrada, o algoritmo ACS adicionaferomnio nesse novo caminho, reforando as alternativas de buscas para as formigas

  • 5.2 Implementao de um Algoritmo Hbrido ACS+AG-TSP 31

    artificiais.

    5.2.1 Estrutura do Algoritmo Hbrido ACS+AG-TSP

    O algoritmo hbrido proposto neste trabalho combina as meta-heursticas de colniade formigas e o algoritmo gentico. O algoritmo de formigas utilizado na implementaodo algoritmo hbrido apresentado no captulo 3, na subseo 3.3.1, e o algoritmo genticoutilizado ser descrito abaixo:

    Representao: Cada cromossomo representa um grafo e seus genes representam osns associados aos custos das arestas que ligam esses ns. No algoritmo gentico desen-volvido para o algoritmo hbrido, cada cromossomo Ci = (ci1, ci2, ci3, ..., cin) representaum circuito (tour do caixeiro viajante) e n representa o nmero de cidades (Figura 5.1).

    Figura 5.1: Exemplo de um Cromossomo representando um tour do TSP

    Inicializao: A populao inicial do algoritmo gentico dada pelos caminhos per-corridos pelas formigas no algoritmo ACS quando este no obtm melhorias.

    Funo de Avaliao (Fitness): a funo de avaliao associa a cada indivduo dapopulao uma medida de aptido. Ela deve ser escolhida de forma a medir o desempenhode cada indivduo como soluo do problema. Neste algoritmo adotou-se um fitness igualao custo do circuito, ou seja, o custo de cada viagem.

    fitness(Ci) =ni=1

    ci

    Variabilidade Gentica: Segundo Michalewicz (1996), a variabilidade de uma popu-lao cai conforme o fitness aumenta. Isso ocorre porque a chance dos indivduos geraremdescendentes maior para aqueles que possuem fitness maiores. Com isso, o algoritmoutiliza os seguintes mecanismos para injetar variabilidade na populao:

  • 5.2 Implementao de um Algoritmo Hbrido ACS+AG-TSP 32

    Seleo Bi-Classista: preservada P% dos melhores indivduos e (100 - P%) dos pioresindivduos da populao.

    Imigrao: em cada gerao, injetada uma porcentagem de novos indivduos, geradosde forma aleatria.

    Crossover OX: O crossover feito escolhendo-se dois indivduos pais #P1 e #P2da populao para gerar dois indivduos filhos #F1 e #F2. Primeiro sorteado aleatori-amente um trecho de cada um dos pais; depois copiado o trecho do pai #P1 para o filho#F2 e o do pai #P2 para o filho #F1; o restante do cromossomo do filho #F1 e #F2 preenchido com as informaes do outro pai #P2 e #P1 respectivamente, na mesmaseqncia para evitar valores repetidos nos genes (Figura 5.2).

    Figura 5.2: Exemplo de crossover entre dois pais #P1 e #P2

    Mutao Inversiva: O operador de mutao utilizado foi a mutao inversiva, onde escolhido aleatoriamente um indivduo da populao, seleciona dois pontos aleatriosdo cromossomo e seus genes so permutados (Figura 5.3).

    Figura 5.3: Exemplo de mutao em um tour do TSP

  • 5.2 Implementao de um Algoritmo Hbrido ACS+AG-TSP 33

    5.2.2 Algoritmo ACS+AG-TSP

    Algoritmo 3.2.1: Algoritmo Hbrido ACS+AG-TSP

    pop Populao recebida pelo ACS; L* menor distncia encontrada pelo ACScgen fitness do AG S* melhor soluo (ciclo) encontradaInicializao 1: Algoritmo ACS

    Para cada aresta (i, j) do grafo, estabelea um nvel inicial de feromnio ij;t 1;enquanto t iterao, faapara cada formiga k, faaescolhe-se um n aleatrio para iniciar o percurso.construa uma soluo aplicando uma regra construtiva probabilstica influenciadapelo nvel de feromnio das arestas e uma mtrica heurstica de afinidade aresta;aps ter completado o ciclo, atualize o feromnio motivado pela evaporao;calcule a distncia Lk(t) do caminho.

    se Lk(t) < L ento S Sk(t) e L Lk(t)atualize o nvel de feromnio de acordo com uma regra de atualizao;

    fim-para

    se L no melhorar por n (estagnao) iterao ento,Inicializao 2: Algoritmo Gentico

    pop S;i 1;enquanto i gerao ou L cgen, faapop seleo(pop);pop crossover (pop);pop mutao (pop);calcula fitness de pop;atualiza pop;i i + 1;se L > cgen, pareatualize o nvel de feromnio de acordo com uma regra de atualizao;

    fim-enquanto

    fim-enquanto

    t t+1;Retorne a melhor soluo.

  • Captulo 6

    Experimentos Computacionais

    Neste captulo so apresentados e discutidos os resultados obtidos com a aplicao dosalgoritmos de colnia de formigas e genticos no problema do caixeiro viajante. Foramutilizados alguns grafos para avaliar o desempenho do algoritmo gentico, do algoritmode formigas e do algoritmo hbrido proposto, o ACS+AG-TSP.

    Para cada grafo foram realizados 10 experimentos, obtendo o melhor valor dentre osexperimentos, sua mdia e o pior valor. Todas as instncias utilizadas foram retiradas dabase de dados TSPLIB1, que um repertrio pblico de instncias para o problema docaixeiro viajante na Internet onde, alm das instncias, consta tambm o melhor valorconhecido para algumas delas.

    Todos os grafos utilizados nos testes so completos e simtricos, e o tamanho dasinstncias variam de 51 a 226 cidades. Na tabela 6.1 encontram-se as descries dosproblemas simtricos do caixeiro viajante utilizados neste trabalho.

    Devido ao fato do algoritmo hbrido ACS+AG-TSP trabalhar com dois algoritmosACS e AG, ele consome mais tempo de processamento que os algoritmos ACS e AG pararealizar cada experimento, mediante a igualdade dos parmetros. Desta forma, a fimde obter uma comparao mais precisa, cada experimento do ACS e do AG foi testadoutilizando o mesmo tempo de processamento consumido pelo ACS+AG-TSP. Por meiode grficos gerados para cada instncia possvel avaliar o desempenho do algoritmohbrido proposto e saber os melhores resultados encontrados ao longo dos experimentos.No Apndice A encontram-se alguns grafos obtidos pelos algoritmos.

    Para a implementao dos algoritmos e realizao dos testes foi utilizada a ferramenta1http://www.iwr.uni-heidelberg.de/groups/comopt/soft/TSPLIB95/TSPLIB.html

    34

  • 6.1 Parmetros do Algoritmo Hbrido ACS+AG-TSP 35

    MatLabr 7.0 na seguinte plataforma: Processador Pentium IV com 3.0Ghz e 1024 dememria RAM.

    Instncia Nmero de cidades Descrio do problema

    eil51 51 problema de 51 cidades (Christofides/Eilon)brazil58 58 problema de 58 cidades no Brazil (Ferreira)eil76 76 problema de 76 cidades (Christofides/Eilon)

    kroA100 100 problema de 100 cidades A (Krolak/Felts/Nelson)bier127 127 problema de 127 cidades em Augsburg (Reinelt)pr226 226 problema de 226 cidades (Padberg/Rinaldi)

    Tabela 6.1: Problemas simtricos do Caixeiro Viajante utilizados neste trabalho

    6.1 Parmetros do Algoritmo Hbrido ACS+AG-TSP

    Os seguintes parmetros foram calibrados e utilizados para todos os experimentos:

    1. ACS

    Nmero de formigas: 20; = 1, = 2, = 0, 1, q0 = 0, 9;Critrio de parada: nmero de iteraes ou encontrar a melhor soluo conhecida;

    2. AG

    Tamanho da populao de cromossomos: 60;Taxa de crossover: 60%;Taxa de mutao: 5%;Critrio de parada: nmero de geraes ou encontrar melhor soluo que a encon-trada pelo ACS;

  • 6.2 Resultados 36

    6.2 Resultados

    6.2.1 Instncia eil51

    O grafo eil51 representa todas as conexes entre as 51 cidades de Christofides/Eilon,com as respectivas distncias geogrficas entre elas. Este um grafo completo com 51 nse 1275 arestas, que possui em torno de 3,04 x 1064 solues possveis.

    Para avaliar o desempenho do algoritmo hbrido proposto neste trabalho, foi necessrioimplementar e anlisar os resultados (Tabela 6.2) obtidos pelos algoritmos ACS e o AG.

    Os resultados obtidos pelas heursticas esto exibidos na Tabela 6.2. Em negritoso indicados os resultados dos algoritmos que atingiram a melhor soluo conhecida e,em parnteses, encontra-se o erro encontrado por cada algoritmo. A convergncia doalgoritmo hbrido e a comparao do desempenho dos melhores resultados obtidos pelosalgoritmos ACS+AG-TSP, ACS e AG, esto exibidos respectivamente nos grficos dasFiguras 6.1 e 6.2.

    Algoritmo Melhor sol. Melhor sol. Mdia das Pior sol.conhecida encontrada solues encontrada

    ACS 426(0,0%) 426,8(0,18%) 430(0,94%)AG 426 429(0,7%) 435(2,11%) 440(3,28%)

    ACS+AG-TSP 426(0,0%) 426,4(0,09%) 427(0,23%)

    Tabela 6.2: Resultados obtidos pelo ACS, AG e ACS+AG-TSP para o grafo eil51

    Tanto o algoritmo hbrido quanto o algoritmo de formigas conseguiram encontrar amelhor soluo conhecida, enquanto que o algoritmo gentico obteve uma soluo com errode 0,7% da soluo tima. Entretanto, o algoritmo ACS+AG-TSP obteve um desempenhomelhor que os algoritmos ACS e AG, pois sua mdia das solues est prximo da soluotima; isso pode ser observado tambm nos erros mdios dos algoritmos, conforme mostraa Tabela 6.2. A mdia de grande importncia na anlise dos resultados pois mostra acapacidade geral do algoritmo, quanto mais prximo este nmero estiver do valor timomelhor a performance do algoritmo.

    Esta diferena nos resultados dos algoritmos pode ser explicada pelo fato do algoritmoACS+AG-TSP trabalhar com um processo de cooperao entre os algoritmos ACS e AG,

  • 6.2 Resultados 37

    Figura 6.1: Grfico de Convergncia obtido pelo ACS+AG-TSP para o grafo eil51

    Figura 6.2: Grfico de comparao do desempenho dos melhores resultados obtidos peloACS+AG-TSP, ACS e AG para a instncia eil51

  • 6.2 Resultados 38

    o que faz com que ele consiga manter a diversidade dos caminhos, permitindo-lhe obtermelhor desempenho nos problemas.

    Quanto a convergncia do algoritmo hbrido ACS+AG-TSP, a Figura 6.1 mostra aevoluo do custo do melhor indivduo, evidenciando o processo de cooperao entre osalgoritmos ACS e AG, e a contribuio do algoritmo gentico no algoritmo de formigas,ajudando-o a sair de mnimos locais.

    Na Figura 6.2 encontram-se os resultados detalhados de todas as rodadas realizadascom essa instncia. Nela fica evidente a superioridade do algoritmo proposto ao longo dosexperimentos, pois ele conseguiu encontrar solues melhores que a dos outros algoritmosem 90% dos resultados. Os resultados da tcnica proposta neste trabalho mostraram-sesuperiores aos algoritmos ACS e AG quando aplicados individualmente.

    O tempo mdio consumido em cada rodada para os algoritmos foi de 25 segundos.

    6.2.2 Instncia brazil58

    Este grafo foi retirado da base de dados do TSPLIB e representa todas as possveisconexes entre as 58 cidades no Brazil - Ferreira, com suas respectivas distncias geo-grficas. Assim como todos os outros grafos aqui estudados, este um grafo completoformado por 58 cidades e 1653 arestas, que possui em torno de 4, 05 x 1076 candidatos asoluo. A principal caracterstica deste grafo a existncia de poucos pontos de mni-mos locais. Esse fato influncia diretamente na qualidade das solues e favorvel aoalgoritmo gentico.

    Os resultados obtidos com esta instncia esto exibidos na Tabela 6.3

    Algoritmo Melhor sol. Melhor sol. Mdia das Pior sol.conhecida encontrada solues encontrada

    ACS 25395(0,0%) 25517(0,48%) 25643(0,97%)AG 25395 25395(0,0%) 25578(0,78%) 25966(2,24%)

    ACS+AG-TSP 25395(0,0%) 25398(0,01%) 25405(0,04%)

    Tabela 6.3: Resultados obtidos pelo ACS, AG e ACS+AG-TSP para o grafo brazil58

    Ambos os algoritmos conseguiram encontrar boas solues, pois todos encontraram a me-lhor soluo conhecida, entretanto, por uma pequena diferena, o ACS+AG-TSP obteve

  • 6.2 Resultados 39

    um melhor desempenho. Enquanto ele conseguiu encontrar a mdia das solues com umerro mdio bem pequeno, de 0, 01%, o ACS encontrou uma mdia com erro de 0, 48% e oAG com 0, 78%.

    Figura 6.3: Grfico de Convergncia obtido pelo ACS+AG-TSP para o grafo brazil58

    Em relao a convergncia do algoritmo hbrido (Figura 6.3) podemos observar que eleconseguiu encontrar a soluo tima com menos avaliaes, apesar do grafo ser um poucomaior que o anterior. O tempo mdio consumido pelo algoritmo para realizar cada expe-rimento foi de 10 segundos. Neste tempo, o algoritmo hbrido ACS+AG-TSP executou500 geraes do AG e 300 iteraes do ACS. Na figura 6.3 temos uma melhor visualiza-o da convergncia do algoritmo para esta instncia (cabe ressaltar que este grfico foiescolhido, pois nele temos uma melhor visualizao da convergncia do algoritmo paraesta instncia, apesar de dentre os 10 experimentos obtivemos convergncias bem maisrpidas que a apresentada).

    Na Figura 6.4, possvel observar que a soluo tima encontrada vrias vezespelos algoritmos ACS+AG-TSP, ACS e AG, entretanto possvel notar que o algoritmogentico encontrou alguns valores distantes da soluo tima e que o algoritmo ACS+AG-TSP obteve melhor desempenho no conjunto dos 10 experimentos.

  • 6.2 Resultados 40

    Figura 6.4: Grfico de comparao do desempenho dos melhores resultados obtidos peloACS+AG-TSP, ACS e AG para a instncia brazil58

    6.2.3 Instncia eil76

    A instncia eil76 um grafo completo com 76 ns e 2850 arestas e tambm foi retiradada base de dados TSPLIB. Ela representa todas as ligaes possveis entre as 76 cidadesde Christofides/Eilon e possui em torno de 2, 48 x 10109 solues possveis. Os resultadosobtidos pelos algoritmos esto exibidos na Tabela 6.4.

    Algoritmo Melhor sol. Melhor sol. Mdia das Pior sol.conhecida encontrada solues encontrada

    ACS 543(0,9%) 547,3(1,72%) 549(2,04%)AG 538 551(2,42%) 564,7(4,96%) 573(6,5%)

    ACS+AG-TSP 538(0,0%) 540(0,37%) 543(0,9%)

    Tabela 6.4: Resultados obtidos pelo ACS, AG e ACS+AG-TSP para o grafo Eil76

    Pela anlise da Tabela 6.4 possvel concluir que, para os experimentos realizadoscom este grafo, o algoritmo ACS+AG-TSP obteve as melhores solues, encontrando a

  • 6.2 Resultados 41

    soluo tima e erro mdio das solues superior aos algoritmos ACS e AG.A convergncia do algoritmo hbrido e o comportamento das melhores solues esto

    exibidos nos grficos das Figuras 6.5 e 6.6, respectivamente.

    Figura 6.5: Grfico de Convergncia obtido pelo ACS+AG-TSP para o grafo Eil76

    No grfico da Figura 6.5 vemos que o algoritmo de formigas conseguiu convergir maisrpido para a soluo tima e que a soluo tima foi encontrada pelo algoritmo gentico.

    Em comparao com os melhores resultados por experimento, ficou evidente no his-tograma da Figura 6.6, que novamente o algoritmo proposto neste trabalho conseguiuencontrar melhores solues que os algoritmos ACS e AG quando aplicados individual-mente, pois ele conseguiu encontrar a soluo tima e um valor mdio bem mais prximoda soluo que os outros dois algoritmos.

    O tempo mdio consumido em cada rodada pelos algoritmos foi de 1 minuto e 35segundos. Neste tempo, o ACS executou 300 iteraes e o AG 600 geraes no algoritmoACS+AG-TSP.

  • 6.2 Resultados 42

    Figura 6.6: Grfico de comparao do desempenho dos melhores resultados obtidos peloACS+AG-TSP, ACS e AG para a instncia Eil76

    6.2.4 Instncia kroA100

    Tambm retirado do TSPLIB, este um grafo completo composto de 100 ns e 4950arestas. Ele possui em torno de 9, 33 x 10155 solues possveis.

    Na Tabela 6.5 esto os resultados obtidos para esta instncia. Fazendo uma anlisedesses resultados pode-se perceber que ambos os algoritmos (ACS, AG e ACS+AG-TSP)conseguiram boas solues, encontrando valores bem prximos do valor timo com errosabaixo de 1%. Entretanto apenas o algoritmo hbrido conseguiu encontrar a melhorsoluo conhecida, mostrando-se ser mais eficiente.

    Algoritmo Melhor sol. Melhor sol. Mdia das Pior sol.conhecida encontrada solues encontrada

    ACS 21320(0,17%) 21471(0,88%) 21597(1,48%)AG 21282 21395(0,53%) 21679(1,86%) 21970(3,23%)

    ACS+AG-TSP 21282(0,0%) 21291(0,04%) 21307(0,12%)

    Tabela 6.5: Resultados obtidos pelo ACS, AG e ACS+AG-TSP para o grafo kroA100

  • 6.2 Resultados 43

    Figura 6.7: Grfico de Convergncia obtido pelo ACS+AG-TSP para o grafo kroA100

    Figura 6.8: Grfico de comparao do desempenho dos melhores resultados obtidos peloACS+AG-TSP, ACS e AG para a instncia kroA100

  • 6.2 Resultados 44

    Em relao a convergncia do algoritmo hbrido (Figura 6.7), ficou evidente a coo-perao entre os algoritmos ACS e AG. A melhor soluo conhecida foi encontrada peloalgoritmo de formigas.

    No grfico da Figura 6.8 encontram-se os resultados do desempenho dos algoritmos nas10 rodadas. Nele podemos ver que os melhores resultados dentre todos os testes foramdo algoritmo hbrido, encontrando o melhor valor conhecido vrias vezes ao longo dosexperimentos, e que os resultados do AG ao longo das rodadas foram os piores.

    O tempo consumido em cada rodada, para cada um dos algoritmos, foi em mdia de4 minutos e 40 segundos. Neste tempo o algoritmo ACS+AG-TSP executou 500 geraesdo AG e 300 iteraes do ACS.

    6.2.5 Instncia bier127

    O grafo bier127 um grafo completo com 127 ns representando todas as conexes daregio de Augsburg na Alemanha. Ele possui em torno de 2,37 x 10211 possveis solues.

    Na 6.9 (a) e (b) encontram-se os grficos de convergncia dos algoritmos ACS eACS+AG-TSP, respectivamente. Nele percebemos que o algoritmo ACS+AG-TSP ob-teve um desempenho melhor que o algoritmo ACS, conseguindo encontrar a soluo tima,enquanto que o algoritmo ACS apresentou dificuldades de convergncia.

    Em relao aos resultados (Tabela 6.6), o mtodo proposto foi mais eficiente e con-seguiu encontrar bons resultados. O algoritmo ACS obteve resultados melhores que oAG, j que o melhor valor encontrado pelo ACS foi com erro de 0,78% do valor timo,enquanto que no AG esse erro foi superior a 2%. A superioridade nos valores encontradospelo algoritmo hbrido pode ser visto na mdia das solues e at mesmo no pior valor en-contrado pelos algoritmos, pois os erros do algoritmo ACS+AG-TSP so todos inferioresa 1%.

    Algoritmo Melhor sol. Melhor sol. Mdia das Pior sol.conhecida encontrada solues encontrada

    ACS 119206(0,78%) 120418,8(1,8%) 121332(2,58%)AG 118282 120884(2,19%) 124816,7(5,52%) 126240(6,72%)

    ACS+AG-TSP 118282(0,0%) 118958(0,57%) 119458(0,99%)

    Tabela 6.6: Resultados obtidos pelo ACS, AG e ACS+AG-TSP para o grafo bier127

  • 6.2 Resultados 45

    Figura 6.9: (a) Grfico de Convergncia obtido pelo algoritmo ACS e (b) pelo algoritmoACS+AG-TSP para o grafo bier127

    Figura 6.10: Grfico de comparao do desempenho dos melhores resultados obtidos peloACS+AG-TSP, ACS e AG para a instncia bier127

  • 6.2 Resultados 46

    Em relao a Figura 6.9 (b), percebe-se que houve um processo de cooperao grandeentre os algoritmos, chegando rapidamente a soluo tima. Na Figura 6.10 encontram-seos melhores valores encontrados pelos algoritmos ao longo dos experimentos. Os melhoresvalores encontrados em todos os experimentos foram os do algoritmo ACS+AG-TSP.

    Por se tratar de um grafo maior, o tempo mdio consumido para a realizao de cadaexperimento foi de aproximadamente 19 minutos. Nesse tempo, enquanto que o ACSrealizou 700 iteraes o AG realizou 600 geraes no algoritmo proposto (ACS+AG-TSP).

    6.2.6 Instncia pr226

    O grafo pr226, tambm disponvel no repertrio TSPLIB, representa todas as ligaespossveis entre 226 cidades de (Padberg/Rinaldi). Este um grafo completo, bem maiorque os grafos anteriores, que possui 25425 arestas e em torno de 1,25 x 10433 soluespossveis. Os resultados obtidos com esta instncia esto exibidos na Tabela 6.7.

    Algoritmo Melhor sol. Melhor sol. Mdia das Pior sol.conhecida encontrada solues encontrada

    ACS 81243(1,08%) 81997(2,02%) 82490(2,63%)AG 80369 81904(1,9%) 83680,5(4,12%) 84782(5,49%)

    ACS+AG-TSP 80369(0,0%) 80505,9(0,17%) 80644(0,34%)

    Tabela 6.7: Resultados obtidos pelo ACS, AG e ACS+AG-TSP para o grafo pr226

    Analisando os resultados da Tabela 6.7, verifica-se que mais uma vez os resultadosencontrados pelo algoritmo ACS+AG-TSP foram melhores que os dos outros dois algo-ritmos, comprovando a eficincia e superioridade do mtodo proposto.

    Em relao a convergncia do algoritmo hbrido para o grafo pr226, percebe-se naFigura 6.11 que a convergncia foi rpida e que houve uma cooperao grande entre osalgoritmos. O tempo mdio consumido pelos algoritmos para realizar cada experimentofoi de 21 minutos. Nesse tempo, o algoritmo ACS+AG-TSP executou 700 iteraes doACS e 600 geraes do AG.

    Na Figura 6.12 esto os erros encontrados pelo algoritmo ACS+AG-TSP, em todos osgrafos utilizados neste trabalho.

    Os erros apresentados na Figura 6.12 mostram resultados satisfatrios para os proble-mas utilizados, pois os erros mdios so todos inferiores a 2%.

  • 6.2 Resultados 47

    Figura 6.11: Grfico de Convergncia obtido pelo ACS+AG-TSP para o grafo pr226

    Figura 6.12: Erros mdios encontrados pelo algoritmo ACS+AG-TSP

  • Captulo 7

    Extenso do Ant Colony System para

    o Problema do Caixeiro Viajante com

    Parmetros Incertos

    Neste captulo apresentamos uma extenso do algoritmo de formigas para um grafocom estrutura crisp e parmetros representados por nmeros fuzzy. Inicialmente sofornecidas algumas noes bsicas da teoria fuzzy e da teoria da possibilidade. Paramaiores esclarecimentos sobre a teoria fuzzy consultar [14] e [27].

    No captulo 3 foi feito um estudo do algoritmo ACS com parmetros bem definidos.Neste captulo, o principal objetivo fazer um estudo sobre o algoritmo ACS com par-metros incertos, j que em situaes reais comum encontrarmos incertezas associadas sinformaes dos problemas.

    Ao trabalhar com informaes incertas, uma unidade deixa de ser representada porum nmero e passa a ser representada por um conjunto de valores. Considere, por exem-plo, um grafo G(N,A), onde N o conjunto de vrtices representando as cidades, A o conjunto de arcos que conectam cada par de cidades com custos entre a cidade (n)i e a cidade j dado pelo tempo de translado que uma pessoa leva para atravessar essascidades. Esse tempo pode ser considerado um parmetro sujeito a incertezas, devido aocongestionamento, condies da rodovia, condies climticas e at mesmo disposio domotorista. Desta forma, o uso da teoria clssica torna-se invivel pela sua ineficincia notratamento de informaes imprecisas. Entretanto, essas incertezas podem ser modeladase tratadas de uma forma mais robusta utilizando a teoria dos conjuntos nebulosos ([33],

    48

  • 7.1 Conjuntos fuzzy 49

    [14] e [27]).Em problemas de grafos, as incertezas podem estar presentes em diversos nveis: na

    estrutura do grafo (quando no possvel determinar com certeza se uma aresta estconectada a um n, ou at mesmo, se aquela aresta existe), nos parmetros (quando nose sabe exatamente quanto vale o peso das arestas) e os dois casos ocorrendo ao mesmotempo.

    Neste captulo vamos analisar e propor um algoritmo do tipo ACS-Fuzzy aplicando-oem alguns exemplos do TSP.

    7.1 Conjuntos fuzzy

    Um conjunto fuzzy pode ser visto como uma generalizao de um conjunto clssico,possibilitando atribuir um grau de pertinncia para cada elemento, e portanto, a funode pertinncia do conjunto fuzzy mapeia cada elemento do universo de discurso a seuespao de escala.

    A(x) =

    {1, se x A0, se x / A (7.1)

    Um subconjunto fuzzy A em X definido por uma funo de pertinncia A queassocia cada ponto de X a um nmero real no intervalo [0, 1], com o valor de A em xrepresentando o grau de pertinncia de x em A. Desta forma, quanto mais prximo ovalor de A(x) estiver da unidade, maior ser o grau de pertinncia de x em A (Figura7.1).

    Definio 7.1 Um conjunto fuzzy A dito ser normal se sua funo de pertinncia (A)possui pelo menos um valor tal que A(x) = 1. Caso contrrio o conjunto denominadosubnormal.

    Definio 7.2 O suporte de um conjunto fuzzy A, denotado por Supp(A), formadopelos elementos que possuem valores de pertinncia no nulos, dados por:

    Supp(A) = {x X | A(x) > 0}

    Definio 7.3 Um conjunto fuzzy dito convexo se sua funo de pertinncia tal que

  • 7.2 Nmeros fuzzy 50

    A[hx1 + (1h)x2] hA(x1) + (h 1)A(x2),

    onde quaisquer x1, x2 Supp(A) e h [0, 1].

    7.2 Nmeros fuzzy

    A lgica fuzzy um meio de aproximar a preciso matemtica clssica e a imprecisodo mundo real. A teoria fuzzy consegue manipular e operar quantidades exatas e inexatas(quantificadores atravs de valores lingsticos). Existe uma grande variedade de tiposde nmeros fuzzy [27]. Entretanto, neste trabalho, vamos tratar apenas nmeros fuzzytriangular.

    Definio 7.4 Um nmero fuzzy A um conjunto fuzzy no espao dos nmeros reais Rcom funo de pertinncia A : R [0, 1].

    Exemplo 7.5 Um nmero fuzzy triangular, dado por:

    a = [ai, am, as]

    onde, am o valor modal do nmero fuzzy triangular (valor mximo da funo de perti-nncia associada), ai o valor inferior e as o valor superior. Sua funo de pertinncia definida de acordo com a Equao 7.2.

    A(x) =

    xaiamai , se x [ai, am]asxasam , se x [am, as]

    0, caso contrrio

    (7.2)

    A representao grfica de um nmero fuzzy triangular do tipo a = [ai, am, as] apresentada pela Figura 7.1.

    7.2.1 Operaes com nmeros fuzzy triangulares

    Para as operaes definidas abaixo, considere a = [ai, am, as] e b = [bi, bm, bs] nmerosfuzzy quaisquer:

  • 7.3 Teoria da Possibilidade 51

    Figura 7.1: Nmero fuzzy triangular

    Adio: a b = [ai + bi, am + bm, as + bs];

    Subtrao: a b = [ai bs, am bm, as bi];

    Multiplicao: ab = [Min{aibi, aibs, asbi, asbs}, ambm,Max{aibi, aibs, asbi, asbs}];

    Diviso: ab= [Min{ai

    bi, aibs, asbi, asbs}, am

    bm,Max{ai

    bi, aibs, asbi, asbs}];

    Inversa: a1 = [Min{ 1ai, 1as}, 1

    am,Max{ 1

    ai, 1as}], (note que a

    b= a.b1)

    7.3 Teoria da Possibilidade

    Seja um grafo G(N,M), no qual N denota o conjunto de ns, e M o conjunto de arcosque tm associado um custo representado por um nmero fuzzy cij Rn. Sejam doisnmeros fuzzy t1 e t2, t1 6= t2. Podemos dizer que t1 tem um grau de possibilidade de sermenor do que t2 dado por [32]:

    w = Poss(ijt1

    cij ijt2

    cij) = sup min(uv){t1(u), t2(v)} (7.3)

    Para encontrar uma soluo fuzzy utilizando a teoria de possibilidade, neces