UFRJ - COPPE Implementação e Comparação de Algoritmos para   Solução do Problema do Caixeiro Viajante Marcelo Beckmann
Em pauta O Problema do caixeiro viajante Algoritmos Implementação Experimentos e resultados Demonstração Conclusões
O problema do caixeiro viajante O problema do caixeiro viajante é representado matematicamente por um grafo hamiltoniano, onde se aplicam as seguintes restrições: O vendedor deve estar somente em  uma cidade; Todas as cidades devem ser visitadas  somente uma vez; A rota de visitas termina na cidade de  origem; Função de custo padrão:
Algoritmos Algoritmo Genético (Heurística) Cicle crossover (CX) Seleção por roda da roleta Elitismo Mutação por inversão de genes
Algoritmos Colônia de Formigas (Meta Heurística) O rastro de feromônio atua como um bias que influencia a decisão de uma formiga a ir pelo caminho A, B, C, D ou E.
Algoritmos AG com operador Inver Over “ Algoritmo evolucionário puro= Sem busca local, evita ótimos locais e com alta pressão de seleção.”  [Tao & Michalewicz, 1998]. Cada indivíduo compete somente indivíduos de sua geração;  Há somente um operador de variação (adaptativo); O número de vezes que o operador é aplicado a um indivíduo durante a geração é variável.
Algoritmos Seja, p = Um seletor de probabilidade entre 0 e 1 c =  Uma cidade selecionada randomicamente S’  = Um indivíduo selecionado randomicamente da população Para o indivíduo  S’  = (2 3 9 4 1 5 8 6 7)  e  c  = 3. Se rand() <  p , então selecione (randomicamente)  c’  de  S’ ,  (8 por exemplo), e inverta: (2  3 9  4 1 5  8  6 7)    (2  3 8  5 1  4 9  6 7). Se não, selecione outro indivíduo (randomicamente) da população, digamos  (1 6 4  3 5  7 9 2 8).  Busque neste indivíduo para a cidade  c’,  qual é “próxima” a  c  neste novo indivíduo: Você achará a cidade  5 .  Então o segmento para inversão em  S’  começa em 3 e termina em 5, e o novo indivíduo será  S’    (2  3 5  1 4 9 8 6 7).
Implementação Desenvolvido em Java; Arquitetura orientada a objetos permite a reutilização de código e a adição ou modificação de operadores; Abre arquivos com extensão .tsp; Seleção e/ou sorteio de pontos no grafo; Parametrização e acompanhamento de execução; Salvamento e recuperação do grafo, parâmetros e estado da aplicação;
Experimentos e resultados Bases de dados da TSPLIB A TSPLIB é um repositório de dados com várias fontes e tipos de exemplos relacionados ao problema do caixeiro viajante (Travel Sallesman Problem) [G. Reinelt. TSPLIB, 1991]; Os arquivos fornecidos seguem uma padronização específica,  com extensão .tsp, onde o ótimo global e o melhor caminho é conhecido. Comparação de resultados Os algoritmos implementados serão comparados com os resultados obtidos por [ Burkowski, Forbes, 2003]  com o operador Inver Over.
Experimentos e resultados Algoritmo Genético População inicial: 600, máxima: 300, CX: 0.5, Mutação: 0.1
Experimentos e resultados Algoritmo de Colônia de Formigas Número de formigas=200,   = 0.1,   =2,  q0=0.8,    =0.1
Experimentos e resultados
Experimentos e resultados
Conclusões Em relação ao AG-CX, a implementação ACO apresentou os melhores resultados e o melhor desempenho em todos os problemas; O ACO apresentou convergência prematura, mesmo assim apresentou resultados relativamente próximos dos obtidos pelo AG-IO. Em todos os problemas o  ACO obteve o melhor tempo de resposta; O AG-CX implementado se mostrou pouco escalável e bastante sensível ao aumento no número de vértices
Referências Burkowski, Forbes, Proximity and Priority: Applying a Gene, Expression Algorithm to the Traveling Salesperson Problem, Dept.Computer Science –Waterloo University– Canada, 2003 Tao & Michalewicz, Evolutionary algorithms for the TSP,  Proceedings of the 5th Parallel Problem Solving from Nature Conference , Lecture Notes in CS, #1498, Springer-Verlag, 1998 G. Reinelt. TSPLIB - A Traveling Salesman Problem Library.  ORSA Journal on Computing 3 , 376 - 384, 1991 See also:  http://www.iwr.uni-heidelberg.de/groups/comopt/software/TSPLIB95/ Marco Dorigo, Luca Gambardella, Ant Colony System: A Cooperative Leaning Approach to he Traveling Salesman Problem. IEEE Transactions on Evolutionary Computation, Vol. 1, No.1, pp 1089-778X, 1997

Genetic Algorithm Applied In Travel Salesman Problem

  • 1.
    UFRJ - COPPEImplementação e Comparação de Algoritmos para Solução do Problema do Caixeiro Viajante Marcelo Beckmann
  • 2.
    Em pauta OProblema do caixeiro viajante Algoritmos Implementação Experimentos e resultados Demonstração Conclusões
  • 3.
    O problema docaixeiro viajante O problema do caixeiro viajante é representado matematicamente por um grafo hamiltoniano, onde se aplicam as seguintes restrições: O vendedor deve estar somente em uma cidade; Todas as cidades devem ser visitadas somente uma vez; A rota de visitas termina na cidade de origem; Função de custo padrão:
  • 4.
    Algoritmos Algoritmo Genético(Heurística) Cicle crossover (CX) Seleção por roda da roleta Elitismo Mutação por inversão de genes
  • 5.
    Algoritmos Colônia deFormigas (Meta Heurística) O rastro de feromônio atua como um bias que influencia a decisão de uma formiga a ir pelo caminho A, B, C, D ou E.
  • 6.
    Algoritmos AG comoperador Inver Over “ Algoritmo evolucionário puro= Sem busca local, evita ótimos locais e com alta pressão de seleção.” [Tao & Michalewicz, 1998]. Cada indivíduo compete somente indivíduos de sua geração; Há somente um operador de variação (adaptativo); O número de vezes que o operador é aplicado a um indivíduo durante a geração é variável.
  • 7.
    Algoritmos Seja, p= Um seletor de probabilidade entre 0 e 1 c = Uma cidade selecionada randomicamente S’ = Um indivíduo selecionado randomicamente da população Para o indivíduo S’ = (2 3 9 4 1 5 8 6 7) e c = 3. Se rand() < p , então selecione (randomicamente) c’ de S’ , (8 por exemplo), e inverta: (2 3 9 4 1 5 8 6 7)  (2 3 8 5 1 4 9 6 7). Se não, selecione outro indivíduo (randomicamente) da população, digamos (1 6 4 3 5 7 9 2 8). Busque neste indivíduo para a cidade c’, qual é “próxima” a c neste novo indivíduo: Você achará a cidade 5 . Então o segmento para inversão em S’ começa em 3 e termina em 5, e o novo indivíduo será S’  (2 3 5 1 4 9 8 6 7).
  • 8.
    Implementação Desenvolvido emJava; Arquitetura orientada a objetos permite a reutilização de código e a adição ou modificação de operadores; Abre arquivos com extensão .tsp; Seleção e/ou sorteio de pontos no grafo; Parametrização e acompanhamento de execução; Salvamento e recuperação do grafo, parâmetros e estado da aplicação;
  • 9.
    Experimentos e resultadosBases de dados da TSPLIB A TSPLIB é um repositório de dados com várias fontes e tipos de exemplos relacionados ao problema do caixeiro viajante (Travel Sallesman Problem) [G. Reinelt. TSPLIB, 1991]; Os arquivos fornecidos seguem uma padronização específica, com extensão .tsp, onde o ótimo global e o melhor caminho é conhecido. Comparação de resultados Os algoritmos implementados serão comparados com os resultados obtidos por [ Burkowski, Forbes, 2003] com o operador Inver Over.
  • 10.
    Experimentos e resultadosAlgoritmo Genético População inicial: 600, máxima: 300, CX: 0.5, Mutação: 0.1
  • 11.
    Experimentos e resultadosAlgoritmo de Colônia de Formigas Número de formigas=200,  = 0.1,  =2, q0=0.8,  =0.1
  • 12.
  • 13.
  • 14.
    Conclusões Em relaçãoao AG-CX, a implementação ACO apresentou os melhores resultados e o melhor desempenho em todos os problemas; O ACO apresentou convergência prematura, mesmo assim apresentou resultados relativamente próximos dos obtidos pelo AG-IO. Em todos os problemas o ACO obteve o melhor tempo de resposta; O AG-CX implementado se mostrou pouco escalável e bastante sensível ao aumento no número de vértices
  • 15.
    Referências Burkowski, Forbes,Proximity and Priority: Applying a Gene, Expression Algorithm to the Traveling Salesperson Problem, Dept.Computer Science –Waterloo University– Canada, 2003 Tao & Michalewicz, Evolutionary algorithms for the TSP, Proceedings of the 5th Parallel Problem Solving from Nature Conference , Lecture Notes in CS, #1498, Springer-Verlag, 1998 G. Reinelt. TSPLIB - A Traveling Salesman Problem Library. ORSA Journal on Computing 3 , 376 - 384, 1991 See also: http://www.iwr.uni-heidelberg.de/groups/comopt/software/TSPLIB95/ Marco Dorigo, Luca Gambardella, Ant Colony System: A Cooperative Leaning Approach to he Traveling Salesman Problem. IEEE Transactions on Evolutionary Computation, Vol. 1, No.1, pp 1089-778X, 1997