Um algoritmo genético para o problema de roteamento de          veículos      Paulo Renato Morais OliveiraOrientador: Rein...
Roteiro•   Motivação•   Objetivo•   Problema de roteamento de veículos•   Algoritmo genético•   Proposta de solução•   Res...
Motivação• O interesse no problema de roteamento de  veículos(PRV) é dado por sua relevância  prática e por sua dificuldad...
Objetivo• O objetivo deste trabalho é criar um algoritmo  genético para roteamento de veículos para  otimizar as rotas de ...
Problema de roteamento de veículos• O problema de roteamento de veículos (PRV)  é o nome dado a uma classe de problemas  q...
Problema de roteamento de veículos                                     6
Problema de roteamento de veículos• Características do problema:  – O custo total do conjunto deve ser minimizado  – Cada ...
Problema de roteamento de veículos• De acordo com as características do problema  pode-se definir um vasto conjunto de  pr...
Problema de roteamento de veículos• Problema de roteamento de veículos com  janela de tempo (PRVJT)  – Inclui a restrição ...
Problema de roteamento de veículos• Problema de roteamento de veículos com  janela de tempo dinâmico (PRVJTD)  – Alguns cl...
Problema de roteamento de veículos• Problema de roteamento de veículos com  janela de tempo dinâmico                      ...
Problema de roteamento de veículos• Problema de roteamento de veículos com  pedidos de coleta e entrega simultâneo  (PRVCE...
Problema de roteamento de veículos• Problema de roteamento de veículos com  pedidos de coleta e entrega  – Somente um tipo...
Problema de roteamento de veículos• Complexidade do PRV  – É um problema da classe NP-difícil  – Complexidade de tempo é e...
Algoritmo genético• São algoritmos evolutivos baseados no  princípio da seleção natural• Indivíduos mais aptos sobrevivem ...
Algoritmo genético• Representação da solução  – Existem várias formas de representação possíveis    para os cromossomos as...
Algoritmo genético• Função de custo  – Determina a qualidade da solução  – Possibilita comparar as soluções disponíveis e ...
Algoritmo genético• Função de aptidão  – Tende a ser maximizada  – Seja f(x) a função de custo, podemos definir a    funçã...
Algoritmo genético• População Inicial  – Formada por um conjunto de indivíduos que    representam possíveis soluções do pr...
Algoritmo genético• Seleção  – Responsável por escolher quais indivíduos serão    submetidos às operações genéticas como  ...
Algoritmo genético• Dizimação  – Ordena os indivíduos com base na aptidão  – Remove um número fixo de indivíduos com baixa...
Algoritmo genético• Roda da roleta                               22
Algoritmo genético• Torneio                                 23
Algoritmo genético• Operadores Genéticos  – Definem regras para uma renovação eficaz de uma    população  – Responsáveis p...
Algoritmo genético• Cruzamento  – Realizado através da escolha de pares de    indivíduos (os pais) que são usados para ger...
Algoritmo genético• Cruzamento de mapeamento parcial (PMX)                                           26
Algoritmo genético• Cruzamento de mapeamento parcial (PMX)                                           27
Algoritmo genético• Cruzamento de ponto único  – Gerar um ponto de corte  – Copiar os elementos da esquerda de um pai e   ...
Algoritmo genético• Cruzamento de ordem (OX)                              29
Algoritmo genético• Mutação  – Utilizada para garantir uma maior varredura do    espaço da solução  – Insere um material g...
Algoritmo genético• Mutação por troca (EM)                               31
Algoritmo genético• Mutação por inversão simples (SIM)                                       32
Algoritmo genético• Mutação por deslocamento (DM)                                  33
Algoritmo genético• Mutação por inserção (ISM)                               34
Algoritmo genético• Mutação por inversão (IVM)                               35
Algoritmo genético• Mutação scramble (SM)                               36
Algoritmo genético                     37
Proposta de solução• Como existem diversas variações de  problemas de roteamento de veículos, o foco  deste trabalho é na ...
Proposta de solução• Diagrama de classes da solução proposta para  o PRV clássico                                         ...
AG                                                  <<enumeration>>-populacao: Populacao                                  ...
Proposta de solução                      41
Resultados Computacionais• Ambiente de Teste  – 4Gb RAM  – Intel Core i5 2.53 GHz  – 300 Gb HD  – Windows 7 Ultimate      ...
Resultados Computacionais• Parâmetros do Algoritmo genético     Parâmetro              Padrão     Operador de cruzamento C...
Resultados Computacionais                                               Coordenadas             25   7    38    28        ...
Resultados Computacionais• Comparativo entre os métodos de seleção         700.00         600.00         500.00         40...
Resultados Computacionais• Comparativo entre os operadores de mutação          580.00          560.00          540.00     ...
Resultados Computacionais• Comparativo entre os operadores de  cruzamento        620.00        610.00        600.00       ...
Resultados Computacionais• Comparativo entre diferentes tamanhos de  população                       300                  ...
Resultados Computacionais• Comparativo entre diferentes taxas de  mutação                            0.96                 ...
Resultados Computacionais• Comparativo entre diferentes taxas de  cruzamento                               1.00           ...
Resultados Computacionais• Comparação com resultados encontrados na  literatura               Melhor               solução...
Considerações Finais• Este trabalho apresentou um módulo para  roteamento de veículos utilizando um  algoritmo genético pa...
Considerações Finais• Contribuições:  – Técnicas e algoritmos da área de otimização    combinatória para resolução do PRV ...
Considerações Finais• Pode-se concluir que:  – O protótipo implementado demonstra que é    possível automatizar a construç...
Considerações Finais• Trabalhos futuros  – Utilizar o algoritmo genético em um sistema de    informação geográfico (SIG) p...
Dúvidas?           56
Próximos SlideShares
Carregando em…5
×

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

857 visualizações

Publicada em

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 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
857
No SlideShare
0
A partir de incorporações
0
Número de incorporações
2
Ações
Compartilhamentos
0
Downloads
31
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no 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

×