Um algoritmo genético para o problema de roteamento de veículos

1,010 views

Published on

O objetivo deste trabalho é desenvolver um algoritmo genético para roteamento de veículos para otimizar as rotas de distribuição no qual sejam respeitadas as restrições de capacidade dos veículos e que a distância total percorrida por eles sejam mínimas.

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,010
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
40
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Um algoritmo genético para o problema de roteamento de veículos

  1. 1. Um algoritmo genético para o problema de roteamento de veículos Paulo Renato Morais OliveiraOrientador: Reinaldo Gen Ichiro ArakakiCo-orientador: Ubirajara Moura de Freitas 1
  2. 2. Roteiro• Motivação• Objetivo• Problema de roteamento de veículos• Algoritmo genético• Proposta de solução• Resultados computacionais• Considerações Finais 2
  3. 3. Motivação• O interesse no problema de roteamento de veículos(PRV) é dado por sua relevância prática e por sua dificuldade computacional – Necessidade de aperfeiçoar os processos de distribuição – Custos elevados de transporte – Soluções exatas são inviáveis do ponto de vista computacional – Necessário o uso de métodos heurísticos ou meta- heurísticos 3
  4. 4. Objetivo• O objetivo deste trabalho é criar um algoritmo genético para roteamento de veículos para otimizar as rotas de distribuição, no qual sejam respeitadas as restrições de capacidade dos veículos e que a distância total percorrida por eles sejam mínimas 4
  5. 5. Problema de roteamento de veículos• O problema de roteamento de veículos (PRV) é o nome dado a uma classe de problemas que possuem as seguintes características: – Frota de veículos com capacidade homogênea ou heterogênea – Um depósito e vários pontos de entrega (clientes) – Encontrar o conjunto de rotas com um custo mínimo que atenda toda a demanda 5
  6. 6. Problema de roteamento de veículos 6
  7. 7. Problema de roteamento de veículos• Características do problema: – O custo total do conjunto deve ser minimizado – Cada rota inicia e finaliza no depósito – Cada cliente tenha sua demanda atendida por um único veículo – A carga não pode exceder a capacidade do veículo 7
  8. 8. Problema de roteamento de veículos• De acordo com as características do problema pode-se definir um vasto conjunto de problemas de roteamento.• Alguns exemplos: – Restrições de tempo – Restrições na capacidade de veículos – Restrições de operação 8
  9. 9. Problema de roteamento de veículos• Problema de roteamento de veículos com janela de tempo (PRVJT) – Inclui a restrição da janela de tempo ao PRV também conhecido como PRVJT estático – Os veículos devem partir do depósito somente após a abertura do depósito e retornar antes do fechamento do depósito – O veículo tem que chegar a um determinado cliente dentro de um intervalo de tempo – Espera calculada 9
  10. 10. Problema de roteamento de veículos• Problema de roteamento de veículos com janela de tempo dinâmico (PRVJTD) – Alguns clientes não são conhecidos no momento em que os veículo saem para fazer as entregas – A medida que as novas requisições são inseridas tem-se um novo PRVJT estático para ser resolvido – Tempo limite para novas requisições – Espera calculada 10
  11. 11. Problema de roteamento de veículos• Problema de roteamento de veículos com janela de tempo dinâmico 11
  12. 12. Problema de roteamento de veículos• Problema de roteamento de veículos com pedidos de coleta e entrega simultâneo (PRVCES) – Pedidos atendidos de forma simultânea – Veículo com dois tipos de cargas – Ambas as demandas dos clientes são atendidas pelo mesmo veículo 12
  13. 13. Problema de roteamento de veículos• Problema de roteamento de veículos com pedidos de coleta e entrega – Somente um tipo de pedido – É um caso particular do PRVCES no qual uma das demandas é zero – Veículo com dois tipos de cargas 13
  14. 14. Problema de roteamento de veículos• Complexidade do PRV – É um problema da classe NP-difícil – Complexidade de tempo é exponencial O(cn) – Atualmente não existe nenhuma solução exata em tempo polinomial O(nc) para o PRV – Necessário a utilização de métodos heurísticos ou meta-heurísticos: • Algoritmos genéticos • Simulated anneling • Busca tabu 14
  15. 15. Algoritmo genético• São algoritmos evolutivos baseados no princípio da seleção natural• Indivíduos mais aptos sobrevivem e os menos aptos tendem a serem descartados• Genes dos indivíduos mais aptos vão se espalhar para um maior número de indivíduos em sucessivas gerações• Mantém uma população de indivíduos 15
  16. 16. Algoritmo genético• Representação da solução – Existem várias formas de representação possíveis para os cromossomos as mais utilizadas são: • Binária (Clássica) • Inteira (Ordem) – Os operadores genéticos devem ser definidos de acordo com a representação escolhida 16
  17. 17. Algoritmo genético• Função de custo – Determina a qualidade da solução – Possibilita comparar as soluções disponíveis e escolher as melhores – Tende a ser minimizada – Custo da solução (1 3 2 4 5 9 7 6 8) é dado por: 17
  18. 18. Algoritmo genético• Função de aptidão – Tende a ser maximizada – Seja f(x) a função de custo, podemos definir a função de aptidão como sendo: – Onde fmax é o maior valor da função de custo para a população sendo avaliada. 18
  19. 19. Algoritmo genético• População Inicial – Formada por um conjunto de indivíduos que representam possíveis soluções do problema a ser resolvido – Pode ser criada aleatoriamente ou utilizando algoritmos heurísticos – Deve ser avaliada pela função de custo 19
  20. 20. Algoritmo genético• Seleção – Responsável por escolher quais indivíduos serão submetidos às operações genéticas como cruzamento e mutação – Os indivíduos resultantes destas operações irão compor a nova população – Não deve ser baseada somente no melhor indivíduo 20
  21. 21. Algoritmo genético• Dizimação – Ordena os indivíduos com base na aptidão – Remove um número fixo de indivíduos com baixa aptidão – Cria um patamar e elimina aqueles que estiverem abaixo deste patamar – Os pais são escolhidos aleatoriamente entre os restantes 21
  22. 22. Algoritmo genético• Roda da roleta 22
  23. 23. Algoritmo genético• Torneio 23
  24. 24. Algoritmo genético• Operadores Genéticos – Definem regras para uma renovação eficaz de uma população – Responsáveis por criar novos pontos de busca no espaço de solução – Ocorrem de forma iterativa tentando melhorar a aptidão dos indivíduos 24
  25. 25. Algoritmo genético• Cruzamento – Realizado através da escolha de pares de indivíduos (os pais) que são usados para gerar um par de filhos – Os filhos apresentarão características genéticas herdadas dos pais – Caso os filhos forem mais aptos que os pais, eles substituem os pais na população – Probabilidade de cruzamento 25
  26. 26. Algoritmo genético• Cruzamento de mapeamento parcial (PMX) 26
  27. 27. Algoritmo genético• Cruzamento de mapeamento parcial (PMX) 27
  28. 28. Algoritmo genético• Cruzamento de ponto único – Gerar um ponto de corte – Copiar os elementos da esquerda de um pai e depois completar com os elementos da direita do outro pai 28
  29. 29. Algoritmo genético• Cruzamento de ordem (OX) 29
  30. 30. Algoritmo genético• Mutação – Utilizada para garantir uma maior varredura do espaço da solução – Insere um material genético novo na população – Evita que o algoritmo convirja muito cedo para mínimos locais – Probabilidade de mutação 30
  31. 31. Algoritmo genético• Mutação por troca (EM) 31
  32. 32. Algoritmo genético• Mutação por inversão simples (SIM) 32
  33. 33. Algoritmo genético• Mutação por deslocamento (DM) 33
  34. 34. Algoritmo genético• Mutação por inserção (ISM) 34
  35. 35. Algoritmo genético• Mutação por inversão (IVM) 35
  36. 36. Algoritmo genético• Mutação scramble (SM) 36
  37. 37. Algoritmo genético 37
  38. 38. Proposta de solução• Como existem diversas variações de problemas de roteamento de veículos, o foco deste trabalho é na resolução do problema do PRV clássico• Foram implementados todos os métodos de seleção e os operadores de cruzamento e mutação apresentados anteriormente 38
  39. 39. Proposta de solução• Diagrama de classes da solução proposta para o PRV clássico 39
  40. 40. AG <<enumeration>>-populacao: Populacao Selecao-chanceMutacao: double-chanceCrossover: double +toString(): String+NUMERO_GERACOES: int+TAMANHO_POPULACAO: int <<enumeration>>+TAMANHO_INDIVIDUO: int Mutacao+CAPACIDADE_VEICULO: int+AG(int, int, double, double, int) +toString(): String+exec(Selecao, Mutacao, Crossover, List<Cliente>): Individuo+crossoverUP(Populacao): Populacao <<enumeration>>+crossoverPMX(Populacao): Populacao Crossover+crossoverOX(Populacao): Populacao+mutacaoISM(Populacao): Populacao +toString(): String+mutacaoIVM(Populacao): Populacao+mutacaoSM(Populacao): Populacao Cliente+mutacaoDM(Populacao): Populacao+mutacaoEM(Populacao): Populacao -id: int+mutacaoSIM(Populacao): Populacao -ponto: Point+selecaoRoleta(Populacao): Populacao -quantidade: int+selecaoDizimacao(Populacao): Populacao+selecaoTorneio(Populacao): Populacao +Cliente(int, Point, int) +getId(): int +setId(int): void +getPonto(): Point +setPonto(Point): void +getQuantidade(): int +setQuantidade(int): void Populacao Individuo -individuos: List<Individuo> -deposito: Cliente -fitness: double +PIOR_CUSTO: int -custo: int -cromossomo: List<Integer> +getIndividuos(): List<Individuo> +setIndividuos(List<Individuos>): void +getFitness(): double +getDeposito(): Cliente +setFitness(double): void +setDeposito(Cliente): void +getCusto(): int +Populacao() +setCusto(int): void +gerarPopulacao(): void +getCromossomo(): List<Integer> +setCromossomo(List<Integer>): void +toString(): String +gerarAleatorio(List<Cliente>): void +avaliarFitness(): void +compareTo(Individuo) 40
  41. 41. Proposta de solução 41
  42. 42. Resultados Computacionais• Ambiente de Teste – 4Gb RAM – Intel Core i5 2.53 GHz – 300 Gb HD – Windows 7 Ultimate 42
  43. 43. Resultados Computacionais• Parâmetros do Algoritmo genético Parâmetro Padrão Operador de cruzamento Cruzamento de ordem (OX) Operador de mutação Deslocamento (DM) Taxa de cruzamento 60% Taxa de mutação 95% Tamanho da população 100 Número de gerações 10000 Capacidade dos veículos 160 43
  44. 44. Resultados Computacionais Coordenadas 25 7 38 28 Identificação Demanda 26 27 61 7 X Y• Dados utilizados 27 30 48 15 1 37 52 7 28 43 67 14 2 49 49 30 29 58 48 6 para teste do 3 4 42 20 64 26 16 9 30 58 27 19 31 37 60 11 algoritmo 5 6 40 21 30 47 21 15 32 38 46 12 7 17 63 19 33 46 10 23• Instância E-n51-k5 8 9 31 52 62 33 23 11 34 35 61 62 33 53 26 17 10 51 21 5 36 63 59 6 11 42 41 19 37 32 22 9 12 31 32 29 38 45 35 15 13 5 25 23 39 59 15 14 Coordenadas 14 12 42 21 40 5 6 7 Depósito 15 36 16 10 41 10 17 27 X Y 16 52 41 15 42 21 10 13 0 30 40 17 27 23 3 43 5 64 11 18 17 33 41 44 30 15 16 19 13 13 9 45 39 10 10 20 57 58 28 46 32 39 5 21 62 42 8 47 25 32 25 22 42 57 8 48 25 55 17 23 16 57 16 49 48 28 18 44 24 8 52 10 50 56 37 10
  45. 45. Resultados Computacionais• Comparativo entre os métodos de seleção 700.00 600.00 500.00 400.00 Custo Custo Mínimo 300.00 Custo Médio 200.00 100.00 0.00 Dizimação Roleta Torneio Métodos de seleção 45
  46. 46. Resultados Computacionais• Comparativo entre os operadores de mutação 580.00 560.00 540.00 520.00 Custo Custo Mínimo 500.00 Custo Médio 480.00 460.00 440.00 EM SIM DM ISM IVM SM Operadores de mutação 46
  47. 47. Resultados Computacionais• Comparativo entre os operadores de cruzamento 620.00 610.00 600.00 590.00 580.00Custo 570.00 Custo Mínimo Custo Médio 560.00 550.00 540.00 530.00 520.00 Ponto Único PMX OX Operadores de cruzamento 47
  48. 48. Resultados Computacionais• Comparativo entre diferentes tamanhos de população 300 280 260 240 220Tamanho da população 200 180 160 Custo Médio 140 Custo Mínimo 120 100 80 60 40 20 500 520 540 560 580 600 620 48 Custo
  49. 49. Resultados Computacionais• Comparativo entre diferentes taxas de mutação 0.96 0.90 0.84 0.78 0.72 Probabilidade de mutação 0.66 0.60 0.54 0.48 Custo Médio 0.42 Custo Mínimo 0.36 0.30 0.24 0.18 0.12 0.06 0 500.00 510.00 520.00 530.00 540.00 550.00 560.00 570.00 580.00 590.00 Custo 49
  50. 50. Resultados Computacionais• Comparativo entre diferentes taxas de cruzamento 1.00 0.90 0.80 Probabilidade de cruzamento 0.70 0.60 0.50 Custo Médio 0.40 Custo Mínimo 0.30 0.20 0.10 0.00 0.00 100.00 200.00 300.00 400.00 500.00 600.00 700.00 800.00 Custo 50
  51. 51. Resultados Computacionais• Comparação com resultados encontrados na literatura Melhor solução Solução proposta conhecida Instância Custo Custo Custo Desvio Desvio Tempo Mínimo Mínimo Médio Mínimo Médio Médio E-n13-k4 290 278,43 278,64 -3,99% -3,92% 4,6s E-n23-k3 569 470,05 470,05 -17,39% -17,39% 4,9s E-n51-k5 521 527,67 558,75 1,28% 7,25% 12,1s E-n76-k7 683 776,03 863,55 13,62% 26,43% 19,7s E-n76-k8 735 835,12 954,08 13,62% 29,81% 20,7s 51
  52. 52. Considerações Finais• Este trabalho apresentou um módulo para roteamento de veículos utilizando um algoritmo genético para otimizar rotas de distribuição 52
  53. 53. Considerações Finais• Contribuições: – Técnicas e algoritmos da área de otimização combinatória para resolução do PRV – Implementação de um protótipo para cálculo de rotas – Uma representação gráfica para a apresentação dos resultados obtidos 53
  54. 54. Considerações Finais• Pode-se concluir que: – O protótipo implementado demonstra que é possível automatizar a construção de rotas com custos otimizados – Os algoritmos genéticos provaram ser importantes para resolver problemas de natureza combinatorial 54
  55. 55. Considerações Finais• Trabalhos futuros – Utilizar o algoritmo genético em um sistema de informação geográfico (SIG) para utilização de uma base de dados real – Pesquisar novos operadores genéticos, ou utilizar uma estratégia que combine diversos operadores genéticos 55
  56. 56. Dúvidas? 56

×