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

56
Um algoritmo genético para o problema de roteamento de veículos Paulo Renato Morais Oliveira Orientador: Reinaldo Gen Ichiro Arakaki Co-orientador: Ubirajara Moura de Freitas 1

Upload: paulo-remoli

Post on 11-Jun-2015

442 views

Category:

Documents


6 download

DESCRIPTION

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.

TRANSCRIPT

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

1

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

Paulo Renato Morais Oliveira

Orientador: Reinaldo Gen Ichiro ArakakiCo-orientador: Ubirajara Moura de Freitas

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

2

Roteiro

• Motivação• Objetivo• Problema de roteamento de veículos• Algoritmo genético• Proposta de solução• Resultados computacionais• Considerações Finais

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

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

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

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

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

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

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

6

Problema de roteamento de veículos

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

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

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

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

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

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

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

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

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

11

Problema de roteamento de veículos

• Problema de roteamento de veículos com janela de tempo dinâmico

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

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

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

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

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

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

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

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

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

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

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

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:

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

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.

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

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

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

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

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

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

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

22

Algoritmo genético

• Roda da roleta

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

23

Algoritmo genético

• Torneio

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

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

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

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

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

26

Algoritmo genético

• Cruzamento de mapeamento parcial (PMX)

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

27

Algoritmo genético

• Cruzamento de mapeamento parcial (PMX)

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

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

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

29

Algoritmo genético

• Cruzamento de ordem (OX)

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

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

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

31

Algoritmo genético

• Mutação por troca (EM)

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

32

Algoritmo genético

• Mutação por inversão simples (SIM)

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

33

Algoritmo genético

• Mutação por deslocamento (DM)

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

34

Algoritmo genético

• Mutação por inserção (ISM)

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

35

Algoritmo genético

• Mutação por inversão (IVM)

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

36

Algoritmo genético

• Mutação scramble (SM)

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

37

Algoritmo genético

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

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

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

39

• Diagrama de classes da solução proposta para o PRV clássico

Proposta de solução

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

40

Mutacao<<enumeration>>

+toString(): String

Populacao

-individuos: List<Individuo>-deposito: Cliente+PIOR_CUSTO: int

+getIndividuos(): List<Individuo>+setIndividuos(List<Individuos>): void+getDeposito(): Cliente+setDeposito(Cliente): void+Populacao()+gerarPopulacao(): void

Individuo

-fitness: double-custo: int-cromossomo: List<Integer>

+getFitness(): double+setFitness(double): void+getCusto(): int+setCusto(int): void+getCromossomo(): List<Integer>+setCromossomo(List<Integer>): void+toString(): String+gerarAleatorio(List<Cliente>): void+avaliarFitness(): void+compareTo(Individuo)

Crossover<<enumeration>>

+toString(): String

Selecao<<enumeration>>

+toString(): String

Cliente

-id: int-ponto: Point-quantidade: int

+Cliente(int, Point, int)+getId(): int+setId(int): void+getPonto(): Point+setPonto(Point): void+getQuantidade(): int+setQuantidade(int): void

AG

-populacao: Populacao-chanceMutacao: double-chanceCrossover: double+NUMERO_GERACOES: int+TAMANHO_POPULACAO: int+TAMANHO_INDIVIDUO: int+CAPACIDADE_VEICULO: int

+AG(int, int, double, double, int)+exec(Selecao, Mutacao, Crossover, List<Cliente>): Individuo+crossoverUP(Populacao): Populacao+crossoverPMX(Populacao): Populacao+crossoverOX(Populacao): Populacao+mutacaoISM(Populacao): Populacao+mutacaoIVM(Populacao): Populacao+mutacaoSM(Populacao): Populacao+mutacaoDM(Populacao): Populacao+mutacaoEM(Populacao): Populacao+mutacaoSIM(Populacao): Populacao+selecaoRoleta(Populacao): Populacao+selecaoDizimacao(Populacao): Populacao+selecaoTorneio(Populacao): Populacao

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

41

Proposta de solução

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

42

Resultados Computacionais

• Ambiente de Teste– 4Gb RAM– Intel Core i5 2.53 GHz– 300 Gb HD– Windows 7 Ultimate

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

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

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

44

Resultados ComputacionaisIdentificação

CoordenadasDemanda

X Y

1 37 52 7

2 49 49 30

3 42 64 16

4 20 26 9

5 40 30 21

6 21 47 15

7 17 63 19

8 31 62 23

9 52 33 11

10 51 21 5

11 42 41 19

12 31 32 29

13 5 25 23

14 12 42 21

15 36 16 10

16 52 41 15

17 27 23 3

18 17 33 41

19 13 13 9

20 57 58 28

21 62 42 8

22 42 57 8

23 16 57 16

24 8 52 10

25 7 38 28

26 27 61 7

27 30 48 15

28 43 67 14

29 58 48 6

30 58 27 19

31 37 60 11

32 38 46 12

33 46 10 23

34 61 33 26

35 62 53 17

36 63 59 6

37 32 22 9

38 45 35 15

39 59 15 14

40 5 6 7

41 10 17 27

42 21 10 13

43 5 64 11

44 30 15 16

45 39 10 10

46 32 39 5

47 25 32 25

48 25 55 17

49 48 28 18

50 56 37 10

• Dados utilizados para teste do algoritmo

• Instância E-n51-k5

DepósitoCoordenadas

X Y

0 30 40

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

45

Dizimação Roleta Torneio0.00

100.00

200.00

300.00

400.00

500.00

600.00

700.00

Custo MínimoCusto Médio

Métodos de seleção

Cust

oResultados Computacionais

• Comparativo entre os métodos de seleção

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

46

Resultados Computacionais

• Comparativo entre os operadores de mutação

EM SIM DM ISM IVM SM440.00

460.00

480.00

500.00

520.00

540.00

560.00

580.00

Custo MínimoCusto Médio

Operadores de mutação

Cust

o

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

47

Resultados Computacionais

• Comparativo entre os operadores de cruzamento

Ponto Único PMX OX520.00

530.00

540.00

550.00

560.00

570.00

580.00

590.00

600.00

610.00

620.00

Custo MínimoCusto Médio

Operadores de cruzamento

Cust

o

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

48

Resultados Computacionais

• Comparativo entre diferentes tamanhos de população

20

40

60

80

100

120

140

160

180

200

220

240

260

280

300

500 520 540 560 580 600 620

Custo MédioCusto Mínimo

Custo

Tam

anho

da

popu

laçã

o

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

49

Resultados Computacionais• Comparativo entre diferentes taxas de

mutação

0.00

0.06

0.12

0.18

0.24

0.30

0.36

0.42

0.48

0.54

0.60

0.66

0.72

0.78

0.84

0.90

0.96

500.00 510.00 520.00 530.00 540.00 550.00 560.00 570.00 580.00 590.00

Custo MédioCusto Mínimo

Custo

Prob

abili

dade

de

mut

ação

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

50

Resultados Computacionais

• Comparativo entre diferentes taxas de cruzamento

0.00

0.10

0.20

0.30

0.40

0.50

0.60

0.70

0.80

0.90

1.00

0.00 100.00 200.00 300.00 400.00 500.00 600.00 700.00 800.00

Custo MédioCusto Mínimo

Custo

Prob

abili

dade

de

cruz

amen

to

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

51

Resultados Computacionais

• Comparação com resultados encontrados na literatura

Instância

Melhor solução

conhecidaSolução proposta

Custo Mínimo

Custo Mínimo

Custo Médio

Desvio Mínimo

Desvio Médio

Tempo 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

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

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

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

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

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

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

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

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

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

56

Dúvidas?