um algoritmo hÍbrido para o problema de roteamento … · algoritmos meméticos propostos por...

54
UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE CENTRO DE TECNOLOGIA - CT PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA DE PRODUÇÃO UM ALGORITMO HÍBRIDO PARA O PROBLEMA DE ROTEAMENTO DE VEÍCULOS COM FROTAS HETEROGÊNEAS por VANESSA DANIELLE SANTOS FERREIRA Natal/RN 2011

Upload: voque

Post on 10-Nov-2018

220 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: UM ALGORITMO HÍBRIDO PARA O PROBLEMA DE ROTEAMENTO … · algoritmos meméticos propostos por Prins (2009), que proporciona excelentes resultados, e que combinado a um componente

UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE

CENTRO DE TECNOLOGIA - CT

PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA DE PRODUÇÃO

UM ALGORITMO HÍBRIDO PARA O PROBLEMA DE

ROTEAMENTO DE VEÍCULOS COM FROTAS HETEROGÊNEAS

por

VANESSA DANIELLE SANTOS FERREIRA

Natal/RN

2011

Page 2: UM ALGORITMO HÍBRIDO PARA O PROBLEMA DE ROTEAMENTO … · algoritmos meméticos propostos por Prins (2009), que proporciona excelentes resultados, e que combinado a um componente

VANESSA DANIELLE SANTOS FERREIRA

UM ALGORITMO HÍBRIDO PARA O PROBLEMA DE

ROTEAMENTO DE VEÍCULOS COM FROTAS HETEROGÊNEAS

Dissertação de mestrado apresentada ao

Programa de Pós-Graduação em

Engenharia de Produção - PPGEP da

Universidade Federal do Rio Grande do

Norte como requisito parcial para

obtenção do título de mestre em

Engenharia de Produção.

Orientador: Prof. Dr. Dario José Aloise.

Natal/RN

2011

Page 3: UM ALGORITMO HÍBRIDO PARA O PROBLEMA DE ROTEAMENTO … · algoritmos meméticos propostos por Prins (2009), que proporciona excelentes resultados, e que combinado a um componente

i

VANESSA DANIELLE SANTOS FERREIRA

UM ALGORITMO HÍBRIDO PARA O PROBLEMA DE

ROTEAMENTO DE VEÍCULOS COM FROTAS HETEROGÊNEAS

Dissertação de mestrado apresentada ao

Programa de Pós-Graduação em

Engenharia de Produção - PPGEP da

Universidade Federal do Rio Grande do

Norte como requisito parcial para

obtenção do título de mestre em

Engenharia de Produção.

Aprovado em ____ de ______________ de 2011.

____________________________________

Prof. Dr. Dario José Aloise

Orientador

____________________________________

Prof. Dr. José Alfredo Ferreira Costa

Examinador

____________________________________

Prof. Dr. – Francisco Chagas de Lima Júnior

Examinador externo - UERN

Page 4: UM ALGORITMO HÍBRIDO PARA O PROBLEMA DE ROTEAMENTO … · algoritmos meméticos propostos por Prins (2009), que proporciona excelentes resultados, e que combinado a um componente

ii

AGRADECIMENTOS

A DEUS por toda proteção e por me manter sempre firme no meu propósito.

A minha família por toda dedicação, carinho e todo amor indispensáveis nesse

processo. Meus pais, Clóvis e Sônia, figuras presentes nas dificuldades e nas alegrias, e

a minha irmã Verônica, sempre amiga e acolhedora. A vocês o meu eterno amor e

gratidão.

Ao meu noivo João Saturnino, pela presença constante em todos os momentos,

com paciência, amor e dedicação.

Aos meus amigos Allison Guedes e João Paulo Nascimento o meu

agradecimento especial por todo o apoio e incentivo. Sem vocês nada disso seria

possível.

Ao meu orientador Dario José Aloise por toda paciência, dedicação e confiança

depositada.

Ao amigo Puca Huachi que sempre esteve disponível e contribuiu

consideravelmente com dicas e sugestões valiosas.

Aos demais amigos por todo apoio e por compartilhar comigo um momento tão

importante.

Page 5: UM ALGORITMO HÍBRIDO PARA O PROBLEMA DE ROTEAMENTO … · algoritmos meméticos propostos por Prins (2009), que proporciona excelentes resultados, e que combinado a um componente

iii

RESUMO

O presente trabalho visa propor uma meta-heurística híbrida para o Problema de

Roteamento de Veículos com Frotas Heterogêneas (PRVFH), que é um problema de

otimização combinatória NP-difícil, e que se caracteriza pelo uso de uma frota limitada

composta por veículos distintos com capacidades distintas. O método híbrido

desenvolvido utiliza-se de um algoritmo memético associado ao componente otimizador

Vocabulary Building. A meta-heurística híbrida resultante foi implementada na

linguagem de programação C++ e os experimentos computacionais geraram bons

resultados em relação à meta-heurística aplicada isoladamente, comprovando a

eficiência do método proposto.

Palavras-chave: problema de roteamento de veículos com frotas heterogêneas, meta-

heurística híbrida, algoritmo memético, vocabulary building.

Page 6: UM ALGORITMO HÍBRIDO PARA O PROBLEMA DE ROTEAMENTO … · algoritmos meméticos propostos por Prins (2009), que proporciona excelentes resultados, e que combinado a um componente

iv

ABSTRACT

This paper aims to propose a hybrid meta-heuristics for the Heterogeneous Fleet

Vehicle Routing Problem (HVRP), which is a combinatorial optimization problem NP-

hard, and is characterized by the use of a limited fleet consists of different vehicles with

different capacities. The hybrid method developed makes use of a memetic algorithm

associated with the component optimizer Vocabulary Building. The resulting hybrid

meta-heuristic was implemented in the programming language C + + and computational

experiments generated good results in relation to meta-heuristic applied in isolation,

proving the efficiency of the proposed method.

Keywords: heterogeneous fleet vehicle routing problem, hybrid meta-heuristic,

memetic algorithm, vocabulary building.

Page 7: UM ALGORITMO HÍBRIDO PARA O PROBLEMA DE ROTEAMENTO … · algoritmos meméticos propostos por Prins (2009), que proporciona excelentes resultados, e que combinado a um componente

v

LISTA DE FIGURAS

1.1 Solução de um problema de Roteamento de Veículos. . . . . . . . . . . . . . . . . . . . . . 10

2.1 Cromossomo na forma binária. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

2.2 Cromossomo em forma de permutação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

2.3 Processo de cruzamento. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

2.4 Operador de mutação. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .21

2.5 Estrutura básica de um algoritmo genético. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

2.6 Representação do processo de busca local. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .23

2.7 Estrutura simplificada do algoritmo memético. . . . . . . . . . . . . . . . . . . . . . . . . . . 23

2.8 Estrutura básica de um algoritmo de busca local. . . . . . . . . . . . . . . . . . . . . . . . . 24

2.9 Estrutura do algoritmo memético. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

2.10 Estrutura do vocábulo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .26

2.11 Estrutura do vocabulary building. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .27

3.1 Exemplo de Splitting num grafo com 5 cidades. . . . . . . . . . . . . . . . . . . . . . . . . . .30

3.2 Algoritmo do Splitting para o PRVFH. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .34

3.3 Cromossomos pais. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

3.4 Início do processo do ox crossover. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .36

3.5 Cromossomos resultantes do ox crossover. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

3.6 Esquema de realocação de um cliente em duas viagens. . . . . . . . . . . . . . . . . . . . .37

3.7 Esquema da troca de dois clientes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

3.8 Esquema do 1º caso do movimento 2-OPT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

3.9 Esquema do 2º caso do movimento 2-OPT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

3.10 Estrutura do algoritmo memético SMA. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

3.11Exemplo de identificação de arestas comuns . . . . . . . . . . . . . . . . . . . . . . . . . . . .43

3.12Contração de vértices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

3.13Estrutura do algoritmo híbrido proposto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .44

Page 8: UM ALGORITMO HÍBRIDO PARA O PROBLEMA DE ROTEAMENTO … · algoritmos meméticos propostos por Prins (2009), que proporciona excelentes resultados, e que combinado a um componente

vi

LISTA DE TABELAS

3.1 Parâmetros do algoritmo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .41

4.1 Instâncias e as melhores soluções conhecidas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

4.2 Resultados obtidos pelo Prins (2009). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .46

4.3 Resultados obtidos da implementação do algoritmo memético . . . . . . . . . . . . . . . .46

4.4 Resultados obtidos de outra implementação do algoritmo memético . . . . . . . . . . .47

4.5 Resultados obtidos do AM + VB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .47

4.6 Comparação entre os resultados obtidos do AM e AM + VB. . . . . . . . . . . . . . . . . 48

Page 9: UM ALGORITMO HÍBRIDO PARA O PROBLEMA DE ROTEAMENTO … · algoritmos meméticos propostos por Prins (2009), que proporciona excelentes resultados, e que combinado a um componente

vii

LISTA DE ABREVIATURAS

PRV Problema de roteamento de veículos. . . . . . . . . . . . . . . . . . . . . . . . . . . .10

PCV Problema do Caixeiro Viajante . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

PRVC Problema de roteamento de veículos capacitados. . . . . . . . . . . . . . . . . . 11

PRVJT Problema de roteamento de veículos com janelas do tempo. . . . . . . . . 11

SMA Second memetic algoritm. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11

PRVFH Problema de roteamento de veículos com frotas heterogêneas. . . . . . . .13

PRVFM Problema de roteamento de veículos com frota mista . . . . . . . . . . . . . 14

PRVFM-F Problema de roteamento de veículos com frota mista e custo fixo. . . . .15

PRVFM-V Problema de roteamento de veículos com frota mista e custo variável. 15

PRVFM-FV Problema de roteamento de veículos com frota mista com custo fixo e

variável. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

AG Algoritmo genético. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

AM Algoritmo memético. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

VB Vocabulary Building . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .25

PMCRR Problema de menor caminho com restrições de recurso . . . . . . . . . . . . 31

Page 10: UM ALGORITMO HÍBRIDO PARA O PROBLEMA DE ROTEAMENTO … · algoritmos meméticos propostos por Prins (2009), que proporciona excelentes resultados, e que combinado a um componente

viii

SUMÁRIO

1- Introdução. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .09

1.1- Objetivos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

1.1.1-Objetivo Geral. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11

1.1.2- Objetivos Específicos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11

1.2- Estrutura da Dissertação. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

2- O Problema de Roteamento de Veículos com Frotas Heterogêneas. . . . 13

2.1- Definição do problema. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

2.2-Descrição do PRVFH. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15

2.3-Formulação Matemática. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16

2.4-Revisão da Literatura. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17

2.5- Métodos de Resolução. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

2.5.1- Algoritmos Genéticos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .19

2.5.2- Algoritmos Meméticos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .22

2.5.2.1- Busca Local. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .24

2.5.3- Vocabulary Building. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

2.5.4- Meta-heurísticas híbridas. . . . . . . . . . . . . . . . . . . . . . . . . . . . .27

3- Algoritmo Híbrido para o Problema de Roteamento de Veículos com

frotas Heterogêneas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .29

3.1- Algoritmo memético para o PRVFH. . . . . . . . . . . . . . . . . . . . . . . . . . .29

3.1.1- Splitting para o PRV. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

3.1.2- Splitting para o PRVFH. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .31

3.1.3- Seleção por torneio Binário. . . . . . . . . . . . . . . . . . . . . . . . . . .35

3.1.4- Order crossover. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .35

3.1.5- Busca Local. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .37

3.1.6- Algoritmo memético (SMA). . . . . . . . . . . . . . . . . . . . . . . . . 39

3.2- Algoritmo Híbrido proposto. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

4- Resultados Computacionais. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

4.1- Instâncias do problema. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

4.2- Resultados Computacionais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

5- Conclusão e Sugestões para Trabalhos Futuros. . . . . . . . . . . . . . . . . . . 49

Page 11: UM ALGORITMO HÍBRIDO PARA O PROBLEMA DE ROTEAMENTO … · algoritmos meméticos propostos por Prins (2009), que proporciona excelentes resultados, e que combinado a um componente

9

Capítulo I

1 Introdução

O crescimento na produção de uma determinada empresa que presta serviços

fazendo entregas de encomendas se deve a rapidez com que é feito o escoamento para

logística do melhor atendimento ao cliente.

Em qualquer ramo de negócios em que a atividade de transporte estiver inserida,

é fundamental a aplicação de um sistema de otimização computacional sobre o

roteamento de veículos o qual pode trazer como benefício um ganho significativo em

produtividade operacional, melhoria no sistema de distribuição de produtos e aumento

da satisfação dos clientes.

Encontramos a aplicação dos problemas de roteamento em diversas situações,

nas áreas de segurança, serviços, saúde e lazer, como no transporte escolar, no

recolhimento de lixo, distribuição de pão, distribuição de gás, patrulhamento policial e

outros. Golden et al (2002) destaca o uso para distribuição de bebidas para

supermercados, entrega de jornais para jornaleiros e entrega de derivados do leite dos

fazendeiros.

Em uma empresa transportadora de cargas, por exemplo, as decisões sobre o

planejamento de transporte para as entregas têm como principal foco os problemas de

roteamento de veículos. Por isso a aplicação de modelos para esses problemas se torna

ainda mais importante quando é essa a atividade principal exercida pela empresa.

A resolução deste tipo de problema gera benefícios econômicos significativos

em termos de redução do tempo de transporte e consequentemente redução de custo

operacional.

O roteamento de veículos objetiva encontrar uma maneira de visitar uma série de

clientes ao menor custo possível atendendo satisfatoriamente a todas as restrições do

problema.

Page 12: UM ALGORITMO HÍBRIDO PARA O PROBLEMA DE ROTEAMENTO … · algoritmos meméticos propostos por Prins (2009), que proporciona excelentes resultados, e que combinado a um componente

10

O Problema de Roteamento de Veículos (PRV) consiste em encontrar rotas que

partam de um depósito, passem por um conjunto de cidades e retorne ao mesmo,

minimizando os custos e obedecendo ao fato de cada cliente ser visitado uma única vez.

A figura seguinte exemplifica um caso de problema de roteamento de veículos

com 11 clientes e 4 veículos idênticos disponíveis:

Figura 1.1: Solução de um Problema de Roteamento de Veículos.

O problema consiste em encontrar rotas, onde uma rota é o percurso feito por um

veículo, que começa e termina sua viagem no depósito, atendendo as necessidades de

entrega ou coleta dos pontos visitados (clientes), passando somente uma vez em cada

cliente.

Segundo Cordeau et al (2007) o Problema de Roteamento de Veículos (PRV) é o

mais popular dentro do campo de otimização combinatória, além de ser uma

generalização do também bastante conhecido Problema do Caixeiro Viajante (PCV). O

PCV pode ser visto simplificadamente como um PRV de apenas um veículo.

O problema de roteamento de veículos tem uma vasta literatura. Desde que foi

introduzido por Dantzig e Ramser (1959), várias heurísticas (construtivas e de melhoria)

e meta-heurísticas tem sido propostas para a resolução do mesmo, dentre as quais as

mais famosas são a de Clarke e Wright (1964), Gillett e Miller (1974), Fisher e

Jaikumar (1981), e as meta-heurísticas algoritmo genético, algoritmo memético, busca

tabu, entre outros (Laporte, 2007).

Existem vários aspectos a serem considerados, os quais sejam: a carga total a ser

transportada, o tipo de frota se é homogênea ou heterogênea, a quantidade de veículos

Page 13: UM ALGORITMO HÍBRIDO PARA O PROBLEMA DE ROTEAMENTO … · algoritmos meméticos propostos por Prins (2009), que proporciona excelentes resultados, e que combinado a um componente

11

disponíveis, se a frota é limitada ou ilimitada, a quantidade de clientes a serem

atendidos, se existem restrições de tempo para a entrega, e outros.

Dentre as variantes do PRV, encontramos o problema de roteamento de veículos

capacitados (PRVC), o problema de roteamento de veículos com janela do tempo

(PRVJT), o problema de roteamento com múltiplos depósitos, entre outros.

O caso em que a frota é composta por veículos distintos trata-se de um problema

de roteamento de veículos com frotas heterogêneas, o qual é o objeto de estudo deste

trabalho.

Este problema é bastante encontrado em situações reais, pois geralmente as

empresas possuem uma frota de veículos distintos.

Para este problema, foi desenvolvido um método híbrido que utiliza um dos

algoritmos meméticos propostos por Prins (2009), que proporciona excelentes

resultados, e que combinado a um componente otimizador, o vocabulary building,

promove melhorias. O algoritmo memético utilizado chama-se SMA (second memetic

algoritm) e se utiliza do procedimento Splitting, que permite avaliar as soluções

(exibidas em cromossomos) construindo um grafo auxiliar que particiona o problema.

O procedimento Splitting é utilizado na literatura para algumas variantes do

problema de roteamento de veículos. Uma revisão bem detalhada deste procedimento e

suas aplicações encontram-se em Duhamel, Lacomme e Prodhon (2011).

1.1 Objetivos

1.1.1 Objetivo Geral

Este trabalho tem o objetivo de desenvolver um algoritmo memético que

associado a técnica vocabulary building propõe resolver o problema de roteamento de

veículos com frotas heterogêneas. Vale salientar que esta técnica foi aplicada

anteriormente apenas para um caso particular de roteamento de veículos, o problema do

caixeiro viajante.

1.1.2 Objetivos Específicos

Os objetivos específicos a serem atingidos são os seguintes:

Page 14: UM ALGORITMO HÍBRIDO PARA O PROBLEMA DE ROTEAMENTO … · algoritmos meméticos propostos por Prins (2009), que proporciona excelentes resultados, e que combinado a um componente

12

1. Fazer uma revisão de literatura sobre as metodologias utilizadas para resolver

o problema de roteamento de veículos com frotas heterogêneas;

2. Explicar o funcionamento das meta-heurísticas Algoritmo Genético e Memético, e da

técnica vocabulary building;

3. Desenvolver um método capaz de resolver de maneira eficiente o problema em

questão.

1.2-Estrutura da Dissertação

O trabalho está organizado em cinco capítulos conforme descrito. No capítulo 2

é apresentado o problema de roteamento de veículos com frotas heterogêneas, com sua

definição, formulação matemática e a revisão da literatura.

Ainda neste capítulo é feita uma abordagem sobre os algoritmos genético e

memético, dando especial destaque a esta última meta-heurística, que será utilizada com

o componente otimizador vocabulary building, dando origem a uma nova meta-

heurística hibridizada para resolver o problema em questão. O capítulo 3 descreve

detalhadamente o algoritmo proposto neste trabalho.

O capítulo 4 apresenta os resultados obtidos com o algoritmo proposto e a

comparação do mesmo com algoritmos existentes.

No capítulo 5 descreve-se a conclusão obtida do presente trabalho. E na parte

final do trabalho é visto as referências bibliográficas.

Page 15: UM ALGORITMO HÍBRIDO PARA O PROBLEMA DE ROTEAMENTO … · algoritmos meméticos propostos por Prins (2009), que proporciona excelentes resultados, e que combinado a um componente

13

Capítulo II

2 O Problema de Roteamento de Veículos com

Frotas Heterogêneas

O problema de roteamento de veículos com frotas heterogêneas (PRVFH) é uma

variante clássica do problema de roteamento de veículos (PRV) em que os clientes são

servidos por frotas de veículos com capacidades distintas, custos e despesas variáveis

conforme Gendreau et al (1999).

A solução do problema determina basicamente a melhor composição para uma

frota heterogênea de veículos e o menor percurso seguido pelos veículos da frota para

atender um conjunto de clientes.

O número de veículos disponíveis na frota, a capacidade de carga e a distancia

entre os clientes são as variáveis que oferecem condições para minimizar a soma dos

custos associados aos veículos e os custos associados ao percurso das rotas.

2.1 Definição do problema

O problema de roteamento de veículos com frotas heterogêneas (PRVFH)

consiste em definir rotas para uma série de clientes que serão atendidos por uma frota

composta por veículos distintos, tal que o custo total seja minimizado e satisfaça as

seguintes condições:

I) As rotas começam e terminam no depósito;

II) Cada cliente é visitado uma única vez;

III) A demanda total da rota não pode exceder a capacidade do veículo.

De acordo com Belfiore e Yoshikazi (2006), o custo total do problema

corresponde ao custo fixo e ao custo variável de roteirização, no qual aquele se refere à

Page 16: UM ALGORITMO HÍBRIDO PARA O PROBLEMA DE ROTEAMENTO … · algoritmos meméticos propostos por Prins (2009), que proporciona excelentes resultados, e que combinado a um componente

14

aquisição e manutenção da frota, e este se refere aos custos em relação à distância

percorrida.

O PRVFH (do inglês heterogeneous fleet vehicle routing problem) é classificado

como NP – difícil de acordo com Baldacci, Batarra e Vigo (2007). Essa classificação

provém da teoria da complexidade de algoritmos, o que significa que esse problema não

possui solução exata em tempo polinomial, isto é, em tempo computacional aceitável.

Para tratar de problemas NP-difíceis, utilizamos as heurísticas que são

ferramentas que nos auxiliam na busca de soluções viáveis. Porém, as heurísticas não

garantem a otimalidade, pois se prendem a ótimos locais, isto é, remetem à soluções

promissoras apenas num subconjunto do espaço. Para isso usamos as meta-heurísticas,

que também não garantem a otimalidade, mas fogem de ótimos locais, varrendo regiões

que possuem melhores soluções.

Para resolvermos este problema, utilizaremos uma meta-heurística chamada

algoritmo memético, que é um algoritmo mais evoluído que o genético, pois utiliza a

busca local.

O algoritmo genético é uma meta-heurística criada por John Holand em 1970

que imita os processos naturais e que se utiliza de operadores como cruzamento e

mutação, a fim de promover alterações que tornem os indivíduos mais aptos,

promovendo assim a evolução natural.

Já o algoritmo memético é uma meta-heurística que se baseia no algoritmo

genético e introduz o uso da técnica de busca local, que promove melhorias nas

soluções.

A busca local é uma técnica que procura uma solução melhor na vizinhança da

solução atual. Consideramos vizinhança de uma solução o conjunto de soluções com

características próximas desta.

Existem outras meta-heurísticas propostas para resolução do problema, como

por exemplo: a busca tabu, simulated annealing, etc.

O PRVFH é um problema bastante interessante devido a sua vasta

aplicabilidade, e que leva vantagem em relação ao PRV por admitir uma frota de

veículos distintos com capacidades distintas.

Na literatura existem muitas variantes do PRVFH. O problema de roteamento de

veículos com frotas mistas (PRVFM) é um caso especial do PRVFH, em que o número

de veículos de cada tipo não é limitado (Prins, 2009).

Page 17: UM ALGORITMO HÍBRIDO PARA O PROBLEMA DE ROTEAMENTO … · algoritmos meméticos propostos por Prins (2009), que proporciona excelentes resultados, e que combinado a um componente

15

Além disso, o PRVFM possui três versões conhecidas na literatura por:

PRVFM-F, onde possui somente custos fixos; PRVFM-V com somente custos variáveis

e PRVFM-FV, com ambos os custos (Prins, 2009).

2.2 Descrição do PRVFH

Podemos definir o PRVFH de acordo com Baldacci e Mingozzi (2009) como

segue:

Um grafo G= (V’, E) é dado, onde V’= {0, 1, .. , n}é o conjunto de n+1 vértices

e E é o conjunto de arestas. Vértice 0 representa o depósito, enquanto o conjunto de

vértices restantes V= V’\ {0} correspondem aos n clientes. Cada cliente i ϵ V requer

uma provisão de qi unidades do depósito (nós assumimos q0 = 0). Uma frota de veículos

heterogênea está estacionada no depósito e é usada para prover os clientes. A frota de

veículos é composta de um conjunto M= {1, ..., m} de m tipos diferentes de veículos.

Para cada tipo k ϵ M, Uk veículos estão disponíveis no depósito, cada um com

capacidade igual à Qk. Com cada tipo de veículo está associado um custo fixo Fk. Para

cada aresta {i, j} ϵ E e para cada veículo de tipo k ϵ M, um custo de roteamento dijk é

dado.

Uma rota R= {0, i1, ..., ir, 0} executada por um veículo do tipo k, é um ciclo

simples em G atravessando o depósito e os clientes { i1, ..., ir } ⊆ V, com r ≥ 1, tal que a

demanda total dos clientes visitados não excede a capacidade Qk, isto é,

.

Note que se r = 1, então a rota R representa uma rota R={0, i1, 0} de apenas um

cliente. O custo de uma rota é igual à soma dos custos de roteamento e do custo fixo do

veículo associado. O PRVFH consiste em determinar um conjunto de possíveis rotas de

custo total mínimo tal que cada cliente seja visitado por um único veículo e o número de

rotas executadas pelos veículos de tipo k não é maior que Uk, k ϵ M.

Page 18: UM ALGORITMO HÍBRIDO PARA O PROBLEMA DE ROTEAMENTO … · algoritmos meméticos propostos por Prins (2009), que proporciona excelentes resultados, e que combinado a um componente

16

2.3 Formulação Matemática

Seja Rk o conjunto indexado de todas as possíveis rotas do veículo de tipo k ϵ M

e seja R = .

Com cada rota L ϵ Rk está associado um custo de roteamento CL

k. Seja Ri

k ⊆ R

k

o subconjunto indexado das rotas de um veículo de tipo k de um cliente i ϵ V. Nós

usamos RLk para indicar o subconjunto de clientes que compõe a rota L ϵ R

k.

Seja XLk uma variável binária que é igual a 1 se e somente se a rota L ϵ R

k é

escolhida na solução. A formulação é descrita abaixo:

(1)

Sujeito a:

A equação (1) exibe a função objetivo que representa a minimização do

somatório dos custos das rotas que compreendem os custos fixos dos veículos

associados e os custos de roteamento. A restrição (2) especifica que cada cliente i ϵ V

não é visitado por mais de um veículo. A restrição (3) impõe um limite na quantidade

de veículos de cada tipo que pode ser usado.

(2)

(3)

(4)

Page 19: UM ALGORITMO HÍBRIDO PARA O PROBLEMA DE ROTEAMENTO … · algoritmos meméticos propostos por Prins (2009), que proporciona excelentes resultados, e que combinado a um componente

17

2.4 Revisão da Literatura

Os primeiros algoritmos propostos para resolver o problema de roteamento de

veículos com frotas heterogêneas surgiram de adaptações dos algoritmos clássicos de

roteamento de veículos.

De acordo com Prins (2009), a literatura existente sobre problemas mistos e

heterogêneos é confusa.

Consideraremos que o problema de roteamento de veículos com frota mista

(PRVFM) é composto por uma frota de veículos distintos, porém com quantidade

ilimitada. O problema de roteamento de veículos com frotas heterogêneas também

possui uma frota com veículos distintos, mas com um número limitado de veículos.

Portanto, a revisão da literatura a seguir exibirá apenas os trabalhos feitos a

respeito de frotas heterogêneas.

Taillard (1999) propõe um método chamado geração de colunas, onde são

resolvidos sucessivos VRPs, isto é, para cada tipo de veículo, é resolvido um problema

de roteamento de veículos, através do uso do procedimento de memória adaptativa,

além de fazer uso da busca tabu desenvolvida por Taillard (1993). O método usado para

resolver VRPs homogêneos foi proposto inicialmente por Taillard (1994) e publicado

posteriormente por Rochat e Taillard (1995).

Tarantilis et al (2003) propõe uma variante do método threshold accepting,

chamado list based threshold accepting (LBTA), que é um método de busca estocástico.

Esse método possui estrutura simples e é guiado nos espaço de soluções através de um

parâmetro chamado threshold.

Tarantilis et al (2004) propõe o algoritmo BATA (back-tracking adaptive

threshold accepting), que é uma meta-heuristica baseada em busca local que pertence a

classe de threshold accepting. A inovação do algoritmo BATA em relação ao threshold

accepting é o fato do parâmetro threshold não somente ser reduzido durante o processo,

mas também aumentado ocasionalmente.

Li et al (2007) adaptaram o algoritmo record-to-record travel (HRTR), variante

determinística do método simulated annealing, utilizado anteriormente para resolver

PRVs. Este método gerou seis novas melhores soluções, comparados aos propostos

anteriormente.

Page 20: UM ALGORITMO HÍBRIDO PARA O PROBLEMA DE ROTEAMENTO … · algoritmos meméticos propostos por Prins (2009), que proporciona excelentes resultados, e que combinado a um componente

18

Baldacci e Mingozzi (2009) propuseram um algoritmo exato para o PRVFH e

para outras variantes do PRV, que usa três tipos de procedimentos fundados na PL-

Relaxação e na relaxação Lagrangeana da formulação matemática.

Prins (2009) exibe dois algoritmos meméticos, um para o problema de

roteamento de veículos com frotas heterogêneas e outro para o problema de roteamento

de veículos com frotas mistas. Seus algoritmos propostos resolvem os três tipos de frota

mista, que compreende a que possui apenas o custo fixo, apenas o custo variável e

ambos os custos.

2.5 Métodos de resolução

O PRVFH é um problema da área de otimização, em que a modelagem tende a

maximizar ou minimizar a função objetivo e como tal consiste na busca da melhor

solução viável respeitando as restrições impostas pelo problema.

Para resolvê-lo, usaremos as heurísticas e meta-heurísticas, que nos dão soluções

aproximadas. A heurística é uma técnica que procura soluções satisfatórias em um

período de tempo razoável, considerando o objetivo do problema e as restrições

empregadas.

As meta-heurísticas são heurísticas que possuem ferramentas que permitem a

busca de regiões mais promissoras, escapando de ótimos locais.

De acordo com Osman e Laporte (1996), uma meta-heurística é formalmente

definida como um processo de geração iterativo, que guia uma heurística subordinada,

combinando inteligentemente diferentes conceitos para explorar o espaço de busca, o

qual deve ser modelado para um problema específico.

Neste contexto, a meta-heurística utilizada é representada pelo algoritmo

memético. Juntamente com ela, utilizaremos a técnica vocabulary building.

Os algoritmos meméticos, também chamados de algoritmos genéticos híbridos

(Prins, 2009), são basicamente algoritmos genéticos aperfeiçoados, pois se utilizam da

técnica de busca local, a qual é interpretada como uma evolução cultural e social dos

indivíduos na população.

O Vocabulary Building foi idealizado por Fred Glover (1992) e segundo Leite

(2006) “se baseia na transformação de fragmentos de soluções em soluções completas”.

Page 21: UM ALGORITMO HÍBRIDO PARA O PROBLEMA DE ROTEAMENTO … · algoritmos meméticos propostos por Prins (2009), que proporciona excelentes resultados, e que combinado a um componente

19

2.5.1 Algoritmo Genético

O algoritmo genético (AG) é um método de resolução de problemas de

otimização que imita os mecanismos da evolução natural, segundo John Holand (1970).

Baseia-se na teoria de Darwin, que propõe que indivíduos com características

favoráveis têm mais chances de sobreviver e transmitir essas características para seus

descendentes (Bjarnodóttir, 2004).

Podemos descrever este algoritmo a partir de um conjunto de soluções, chamado

de população, onde são definidos critérios de seleção para que ao final de muitas

gerações, tenhamos obtido indivíduos mais aptos.

Essas soluções são representadas por cromossomos, que são estruturas de dados

constituídos de genes, que guardam as informações genéticas das soluções, permitindo

que evoluam sem perder as características das soluções anteriores. As formas mais

importantes para representação dos cromossomos são a forma binária ou através de

permutação (Guedes, 2006).

A figura 2.1 exemplifica um cromossomo na forma binária:

Figura 2.1: Cromossomo na forma binária.

A figura 2.2 exibe um cromossomo na forma de permutação, onde cada gene

identifica a posição de uma cidade na rota. O cromossomo representado por n clientes

servidos por m veículos, tem a forma de um vetor de comprimento n, como mostrado na

figura.

Figura 2.2: Cromossomo em forma de permutação.

De uma maneira geral, inicia-se o algoritmo com a geração da população inicial

aleatoriamente ou através de uma heurística construtiva (Girão, 2008), e segue-se para o

1 0 1 0 0

2 5 4 1 3

Page 22: UM ALGORITMO HÍBRIDO PARA O PROBLEMA DE ROTEAMENTO … · algoritmos meméticos propostos por Prins (2009), que proporciona excelentes resultados, e que combinado a um componente

20

processo de avaliação, onde os indivíduos mais adaptados serão escolhidos para a etapa

seguinte (nova população).

Cada indivíduo terá a sua função de aptidão, chamada fitness, que indica a

qualidade de cada solução. A escolha de uma função de aptidão adequada influencia no

bom desempenho do algoritmo (Santos et al. 2007).

Essa função atribui uma nota a cada cromossomo, que depois será utilizada pelo

operador de seleção. A função de aptidão deve ser específica para cada problema, pois

segue o objetivo e as restrições do mesmo (Rosa e luz, 2009).

A fase de seleção fornece aos indivíduos da população preferência para o

processo de reprodução, garantindo que os indivíduos transmitam suas características

(Schneider, 1998).

Utilizamos os operadores genéticos, cruzamento e mutação, para que haja uma

intensificação e diversificação da população. O cruzamento corresponde à combinação

de dois cromossomos considerados aptos através da sua fitness. Os que não forem aptos

serão descartados.

O cruzamento ocorre da seguinte maneira: parte dos cromossomos são trocados

a partir de pontos aleatórios, chamados pontos de corte, e a partir deles, geramos dois

novos cromossomos que receberão características dos dois cromossomos iniciais,

chamados pais.

A figura 2.3 exibe o processo de cruzamento com um ponto de corte:

Pai 1

Pai 2

Filho 1

Filho 2

Figura 2.3: Processo de cruzamento.

1 1 0 1

1

0

0 1 0

0 0 0 1 1

1

1 0 0 1 0

Page 23: UM ALGORITMO HÍBRIDO PARA O PROBLEMA DE ROTEAMENTO … · algoritmos meméticos propostos por Prins (2009), que proporciona excelentes resultados, e que combinado a um componente

21

O segundo operador, a mutação, promove alterações nas características dos

indivíduos, introduzindo modificações na informação genética e tem a intenção de

evitar que a solução caia em ótimos locais. Segundo Mognon (2004) “A mutação

também serve para introduzir pontos novos e inexplorados no domínio de busca do

algoritmo.”

A figura 2.4 abaixo ilustra o operador de mutação:

Figura 2.4: Operador de mutação.

Finalmente, fazemos o processo de atualização, acrescentando os indivíduos

gerados à nova população. Observe que o tamanho da população não é alterado, já que

cromossomos com baixa aptidão são descartados.

Enquanto a população gerada não for satisfatória, repetimos esses procedimentos

a fim de termos os indivíduos mais aptos.

O algoritmo genético possui a seguinte estrutura:

Figura 2.5: Estrutura básica de um Algoritmo Genético.

Início Geração da população inicial;

Avaliação da população;

Enquanto o critério de parada não for satisfeito faça

Início Selecionar os pais;

Aplicar operador de cruzamento;

Aplicar operador de mutação;

Avaliação da população;

Fim;

Fim.

1 0 0 0 1

1 1 1 0 0

Page 24: UM ALGORITMO HÍBRIDO PARA O PROBLEMA DE ROTEAMENTO … · algoritmos meméticos propostos por Prins (2009), que proporciona excelentes resultados, e que combinado a um componente

22

2.5.2 Algoritmo Memético

O algoritmo memético (AM), assim como o algoritmo genético, pertence à

classe de meta-heurísticas que exploram uma população de soluções a cada iteração,

originando novas soluções através da combinação de soluções anteriores. De acordo

com Moscato e Cotta (2005) o algoritmo memético é um importante mecanismo de

resolução de problemas de otimização combinatória.

O termo memético vem de meme, unidade que exerce o mesmo papel do gene

atuando no contexto de evolução cultural (Moscato e Cotta, 2005).

O meme funciona como transmissor de conhecimento, levando informação à

nova população que será gerada através da comunicação entre os indivíduos.

O algoritmo memético baseia-se na evolução cultural dos indivíduos, onde

segundo Moscato e Cotta (2003), essa informação não é transmitida inalterada entre os

indivíduos, ela é processada e reforçada pela comunicação entre eles, enquanto que o

genético, preocupa-se com a evolução biológica.

Segundo Moscato e Cotta (2005), os algoritmos meméticos podem ser

interpretados como uma estratégia de busca em que a população de agentes cooperam e

competem.

Neste contexto, agentes funcionam como os indivíduos da população.

A estrutura do algoritmo memético é semelhante a do algoritmo genético, pois se

utiliza dos mesmos operadores de seleção, combinação e mutação, de acordo com

Coelho (2006). A única diferença ocorre pela inclusão da busca local, que promove

uma otimização dos agentes.

Os operadores genéticos (combinação e mutação), geralmente fornecem

soluções fora do espaço de ótimo local. A inserção da busca local promove uma reparo

nessas soluções, sendo aplicadas aos filhos antes de serem inclusos na população, o que

promove uma melhoria nos resultados (Radcliffe e Surry, 1994).

A figura 2.6 a seguir ilustra o que acontece com a inserção da busca local: Os

pais A e B produziram o filho C, que após ser otimizado pela busca local, resulta no

filho D.

Page 25: UM ALGORITMO HÍBRIDO PARA O PROBLEMA DE ROTEAMENTO … · algoritmos meméticos propostos por Prins (2009), que proporciona excelentes resultados, e que combinado a um componente

23

Figura 2.6: Representação do processo de busca local.

O objetivo desta técnica consiste em encontrar um ótimo local através de uma

busca na vizinhança das soluções e posteriormente encaminhá-lo para as etapas do

algoritmo genético (Moscato e Norman, 1992).

O algoritmo memético possui a seguinte estrutura:

Figura 2.7: Estrutura simplificada do algoritmo memético.

Início Geração da população inicial;

Otimização da população (busca local);

Avaliação da população;

Enquanto o critério de parada não for satisfeito faça

Início Selecionar os pais;

Aplicar operador de cruzamento;

Aplicar operador de mutação;

Otimização da população (Busca local);

Avaliação da população;

Fim;

Fim.

Page 26: UM ALGORITMO HÍBRIDO PARA O PROBLEMA DE ROTEAMENTO … · algoritmos meméticos propostos por Prins (2009), que proporciona excelentes resultados, e que combinado a um componente

24

2.5.2.1 Busca Local

Um algoritmo de busca local promove a busca de uma solução mais promissora

numa vizinhança desta solução. Definimos a vizinhança de um elemento como um

conjunto de elementos que possuem características próximas a ele.

Segundo Laporte (2007), a vizinhança de um elemento st, representada por N(st),

é o conjunto de todos os elementos obtidos de st, a partir de modificações na solução

corrente, como por exemplo, a troca de um vértice dessa solução por outro.

Essa heurística se inicia com uma solução inicial s0, e move uma solução de

valor f(st) para outra existente dentro de N(st). De acordo com Moscato e Cotta (2003),

essa solução inicial pode ser escolhida aleatoriamente ou através de outro algoritmo.

Essa busca pela melhor solução termina quando encontramos a melhor solução

conhecida, representada por s*, ou quando um critério de parada for satisfeito.

Abaixo vemos o esquema do algoritmo de busca local:

Figura 2.8: Estrutura básica de um algoritmo de busca local.

Início

Selecione uma solução s0;

Enquanto f(s) < f(s0), com s ϵ N(s0)

Início Selecione s ϵ N(s0) tal que f(s) < f(s0);

s0 ← s;

Fim

Fim

Page 27: UM ALGORITMO HÍBRIDO PARA O PROBLEMA DE ROTEAMENTO … · algoritmos meméticos propostos por Prins (2009), que proporciona excelentes resultados, e que combinado a um componente

25

Podemos exemplificar a estrutura do algoritmo memético através da figura 2.9,

onde a busca local se encontra em destaque:

Figura 2.9: Estrutura do algoritmo memético. Fonte: Neto (2009).

2.5.3 Vocabulary Building

O Vocabulary Building (VB) é uma técnica criada por Glover (1992), cuja idéia

principal é identificar fragmentos significantes de soluções que servirão de base para

futuras combinações. (Glover, 1996).

De acordo com Glover, Laguna e Martí (2000), a técnica tem este nome devido

à analogia com o processo de união de palavras para construir sentenças e parágrafos

úteis, onde as construções valiosas em cada nível podem ser tanto visualizadas como

representadas por “palavras em uma ordem mais elevada”.

O Vocabulary Building consiste em obter fragmentos de soluções que

combinados gerem soluções completas e, segundo Glover, Laguna e Martí (2000), a

busca destes fragmentos ajuda a evitar a explosão combinatorial e a necessidade de

reinventar um modelo de solução parcial que gere boas soluções completas.

Page 28: UM ALGORITMO HÍBRIDO PARA O PROBLEMA DE ROTEAMENTO … · algoritmos meméticos propostos por Prins (2009), que proporciona excelentes resultados, e que combinado a um componente

26

A técnica consiste de dois objetivos principais, segundo Glover (1996), que são

a identificação de boas soluções parciais e de caminhos dentro do espaço de vizinhança

que levem a produção de soluções completas.

A essas soluções parciais, damos o nome de vocábulo. De acordo com Glover,

Laguna e Martí (2000) o vocabulary building trabalha com elementos primitivos e

elementos compostos. No contexto de roteamento de veículos, esses elementos

correspondem a cidades e a trechos de cidades.

Na figura abaixo encontramos a estrutura do vocábulo:

Figura 2.10: estrutura do vocábulo. Fonte: Guedes (2006)

O campo que contém “:” (dois pontos) indica o histórico de construção do

vocábulo. O círculo que é apontado por esse campo é denominado árvore de quebra. O

campo que contém “#” indica a fitness do vocábulo.

De acordo com Guedes (2006), os vocábulos identificados como úteis serão

armazenados numa estrutura chamada pool de vocábulo. Esse conjunto será atualizado

de acordo com o surgimento de novos vocábulos interessantes para o problema.

O vocabulary building gera soluções parciais através de processos destrutivos e

construtivos, quebrando boas soluções e as reconstruindo através de heurísticas em

soluções completas (Glover, Laguna e Martí, 2000).

A princípio, soluções mais promissoras são armazenadas numa estrutura

chamada conjunto elite. Através de métodos destrutivos, essas soluções serão

decompostas em soluções parciais.

Dessas soluções, vocábulos presentes em todos os indivíduos serão armazenados

no pool de vocábulos. A idéia é identificar bons trechos, isto é, que aparecem com

freqüência em soluções de boa qualidade. Se um trecho está presente em várias soluções

boas, ele possui grande chance de estar em uma solução ótima.

Esses vocábulos serão combinados exata ou heuristicamente a fim de gerar

soluções parciais melhores, que resultarão em soluções completas de melhor qualidade.

Page 29: UM ALGORITMO HÍBRIDO PARA O PROBLEMA DE ROTEAMENTO … · algoritmos meméticos propostos por Prins (2009), que proporciona excelentes resultados, e que combinado a um componente

27

Podemos exemplificar sua estrutura de acordo com a figura 2.11 abaixo:

Figura 2.11: Estrutura do vocabulary building.

2.5.4 Meta-heurística Híbrida

Meta-heurísticas são de grande importância na área de otimização combinatória,

já que são ferramentas que resolvem de forma aproximada os problemas dessa área. Nos

últimos anos elas têm sido combinadas a várias idéias, o que deu origem ao termo meta-

heurísticas híbridas (Raidl, 2006).

Ainda de acordo com Raidl (2006), as meta-heurísticas híbridas podem

combinar diferentes meta-heurísticas, meta-heurísticas com algoritmos específicos para

o problema em foco, meta-heurísticas com outras técnicas de Pesquisa Operacional ou

Inteligência Artificial.

Fragmentos de

soluções Construção

Soluções

completas Decomposição

Filtro

Filtro

Filtro

Filtro

Page 30: UM ALGORITMO HÍBRIDO PARA O PROBLEMA DE ROTEAMENTO … · algoritmos meméticos propostos por Prins (2009), que proporciona excelentes resultados, e que combinado a um componente

28

Essa hibridização é vantajosa, pois através dela geramos sistemas com melhor

desempenho e que utilizam os benefícios das técnicas aplicadas individualmente (Raidl,

2006)

Neste trabalho o hibridismo está definido a partir da combinação de uma meta-

heurística chamada algoritmo memético com a técnica de otimização vocabulary

building.

As meta-heurísticas híbridas podem ser classificadas de acordo com o nível de

hibridização, a ordem de execução e a estratégia de controle (Raidl, 2006).

O nível de hibridização subdivide-se em alto nível, onde os algoritmos

originais conservam sua identidade individual e cooperam através de uma interface bem

definida, e o baixo nível, onde os algoritmos dependem fortemente um do outro.

A ordem de execução pode ser seqüencial, onde um algoritmo é executado

depois do outro e só é passada informação em uma direção; intercalado, onde a cada de

um algoritmo, o outro é executado; e paralelo, onde os algoritmos são executados em

paralelo e a informação pode ser passada em qualquer direção.

A estratégia de controle pode ser integrada, onde um algoritmo é componente

de outro algoritmo e colaborada, onde os algoritmos interagem, mas não são partes um

do outro.

Page 31: UM ALGORITMO HÍBRIDO PARA O PROBLEMA DE ROTEAMENTO … · algoritmos meméticos propostos por Prins (2009), que proporciona excelentes resultados, e que combinado a um componente

29

Capítulo III

3 Algoritmo Híbrido para o Problema de

Roteamento de Veículos com frotas

Heterogêneas

Para este trabalho usaremos um dos algoritmos meméticos propostos por Prins

(2009) chamado SMA. Ele se utiliza do procedimento de splitting que permite avaliar as

soluções, representadas por cromossomos. Para entendermos como funciona o

procedimento splitting para o PRVFH, vamos entender primeiro como ele se processa

num contexto de roteamento de veículos. Posteriormente, descreveremos os operadores

utilizados e finalizaremos com o algoritmo proposto.

3.1 Algoritmo Memético para o PRVFH

3.1.1 Splitting para o problema de roteamento de veículos

Splitting é um procedimento que visa particionar uma rota gigante em rotas

menores que serão exibidas em um grafo auxiliar. Uma rota gigante é vista como um

percurso de um único veículo que parte do depósito e retorna ao mesmo depois de

atender todos os clientes. Esse contexto se refere ao bastante conhecido Problema do

caixeiro viajante (PCV).

A partir daí, vamos subdividir essa rota em rotas menores, que devem respeitar

as restrições impostas pelo problema. Cada rota formada é vista como um caso

particular de PCV.

As rotas formadas devem obedecer às seguintes condições:

( 6 )

( 5 )

Page 32: UM ALGORITMO HÍBRIDO PARA O PROBLEMA DE ROTEAMENTO … · algoritmos meméticos propostos por Prins (2009), que proporciona excelentes resultados, e que combinado a um componente

30

Onde Ci,..., Cj é o conjunto de clientes que formam a rota do vértice i ao j, Wij a

demanda total do cliente C1 a Cj, Q a capacidade do veículo que serve as cidades.

A primeira equação garante que a demanda das cidades não exceda a capacidade

dos veículos. A segunda equação afirma que o custo Zij da subseqüência equivale ao

comprimento da mesma, Lij, que compreende a distância do depósito a cidade i, da

cidade i a cidade j, e o retorno da cidade j ao depósito.

Essas rotas vão compor um grafo auxiliar acíclico H= (X, A) com n+1 vértices,

numerados de 0 a n, onde o vértice 0 representa o depósito.

Um ótimo Splitting é dado pelo caminho de custo mínimo do vértice 0 ao vértice

n em H.

Abaixo vemos o Splitting aplicado a um PRV com 5 (cinco) clientes, de custos

indicados nas arestas e demandas dentro de parênteses próximos aos clientes.

Possível solução

b(4) 30 c(4) b c

25

10 d(2) 60 d

25 30 55

40 15 a 90

a(5) 20

35 e (7) e

Grafo Auxiliar

ab:55 cd:95

40 115 150

a:40 b:50 c:60 d:80 e:70 205

0

bc:85 bcd:120 de:90

Figura3.1: Exemplo de splitting num grafo com 5 clientes . À direita vemos o exemplo

de uma possível solução. Abaixo vemos o grafo auxiliar que indica em negrito a melhor

solução, isto é, solução com menor valor.

55

Page 33: UM ALGORITMO HÍBRIDO PARA O PROBLEMA DE ROTEAMENTO … · algoritmos meméticos propostos por Prins (2009), que proporciona excelentes resultados, e que combinado a um componente

31

3.1.2 Splitting para o PRVFH

O procedimento de Splitting para o PRVFH é um pouco mais complexo. O grafo

auxiliar H possui um arco para cada viagem (Ci, Ci+1,..., Cj) tal que Wij ≤ Qt, isto é, a

demanda total Wij do cliente Ci a Cj não excede a capacidade do veículo, Qt.

No geral, a demanda de clientes que precisam de um veículo do tipo k ou maior

não deve exceder a capacidade total desses veículos. De acordo com o Prins (2009), os

tipos de veículos são organizados em uma ordem crescente de capacidade.

Para cada tipo de veículo k, 1≤ k ≤ t ( 7 )

( 8 )

Um ótimo Splitting corresponde ao caminho de menor custo do vértice 0 a n em

H, com não mais do que ak arcos para cada veículo de tipo k. Isto é, na verdade estamos

utilizando o Problema de menor caminho com restrições de recurso (PMCRR), onde

cada tipo de veículo pode ser visto como um recurso disponível em ak unidades e cada

arco requer uma unidade de um tipo de veículo compatível.

Para resolvermos este problema, utilizaremos o método de programação

dinâmica, que nada mais é que uma técnica de otimização que utiliza uma equação

recursiva para particionar um problema difícil em problemas menores, mais tratáveis.

Seja P(j, x1,..., xt) o custo do ótimo splitting para a subseqüência (C1, C2,...,Cj),

com 1≤ j ≤ n e uma frota mista com xk veículos de cada tipo k, 0 ≤ xk ≤ ak e 1≤ k ≤ t.

Este problema pode ser definido pelas seguintes equações recursivas:

P(0, x1, ..., xt) = 0, 1≤ k ≤ t, 0 ≤ xk ≤ ak ( 9 )

j > 0, P(j, x1,..., xt) = min ( P( i, x1,…,xk-1, …, xt) + Zijk / i ≤ j, Wij ≤ Qk,

0 < xk ≤ ak) ( 10 )

Page 34: UM ALGORITMO HÍBRIDO PARA O PROBLEMA DE ROTEAMENTO … · algoritmos meméticos propostos por Prins (2009), que proporciona excelentes resultados, e que combinado a um componente

32

A equação (9) indica que o custo em relação ao depósito é zero. A equação (10)

exprime o custo de ir do vértice 0 ao vértice j, que é o menor valor entre o custo de

chegar em i adicionado do custo de ir de i a j com o veículo k (Zijk).

Seja ψ o número máximo de distintos vetores x, isto é, o número máximo de

vetores do tipo ( x1, x2,..., xt ) distintos. Então

(11)

A equação (11) é válida, pois para um vetor x = ( x1, x2,..., xt ) com 0 ≤ xk ≤ ak,

temos o vetor a = ( a1, a2, ..., at ) definindo o limite superior de cada posição do vetor x,

com 0 ≤ ak ≤ k. Então existem ak + 1 valores diferentes que xk pode assumir. Como o

vetor x tem t posições, para a posição 1 (x1), tem-se a1 + 1 maneiras, para x2 tem-se a2 +

1 maneira, e assim por diante. O que resulta na equação (7).

Abaixo vemos um exemplo com 3 (três) tipos de veículos com disponibilidades

de: 2 veículos para o 1º tipo; 1 veículo para o 2º tipo e 3 veículos para o 3º tipo.

Exemplo: Quantos são os possíveis vetores x distintos?

x = ( x1, x2, x3 ) , t=3 e a = ( 2, 1 ,3).

x1 poderia assumir: ( a1+1) = 2+1= 3 valores, que seriam 0, 1 e 2.

x2 poderia assumir: ( a2+1) = 1+1= 2 valores, que seriam 0, 1.

x3 poderia assumir: ( a3+1) = 3+1= 4 valores, que seriam 0, 1, 2 e 3.

Então poderíamos ter 3 * 2 * 4 = 24 vetores distintos.

Os cálculos podem ser organizados usando uma matriz de rótulos Y, de ordem

(n + 1) x ψ. As linhas indexadas de 0 a n correspondem aos clientes e as colunas

indexadas de 0 a ψ – 1 correspondem aos vetores que indicam as quantidades de carros

usados do tipo 1 ao tipo t, para cada coluna.

Um rótulo Yjh representa o menor caminho do vértice 0 a j no grafo auxiliar H.

Cada rótulo guarda a informação referente ao menor caminho usado para chegar

naquele vértice, que é o custo (Yjh.Z) e o vetor que representa a frota parcial usada para

aquele caminho (Yjh.x).

Para facilitar o manuseio e diminuir a complexidade, usa-se uma função h que

associa um vetor referente a uma coluna a um número inteiro. Então em vez de trabalhar

Page 35: UM ALGORITMO HÍBRIDO PARA O PROBLEMA DE ROTEAMENTO … · algoritmos meméticos propostos por Prins (2009), que proporciona excelentes resultados, e que combinado a um componente

33

com colunas indexadas por vetores, usa-se números que representam esses vetores.

Assim, usa-se a matriz Y de colunas numeradas de 0 a ψ.

Essa função h pode ser calculada segundo as seguintes equações recursivas:

h (x, 0) = 0 ( 12 )

h( x, k) = h(x, k-1)(ak +1) +xk, para 0≤ k ≤ t. ( 13 )

Para melhor entendimento de h(x), vamos utilizar um exemplo com a = (2, 3, 1).

Se fossemos avaliar os possíveis vetores de x, e organizássemos os vetores

variando da última casa, x3, para a primeira, x1, teríamos:

(0, 0, 0) (0, 0, 1); (0, 1, 0) (0, 1, 1) (0, 2, 0) (0, 2, 1) (0, 3, 0) (0, 3, 1); (1, 0, 0)(1, 0, 1)...

Observe que os vetores poderiam ser organizados de outra forma. A quantidade

total de vetores distintos seria (2+1)*(3+1)*(1+1) = 24. Para se chegar nas variações de

x1 teríamos que passar por todas as combinações possíveis para a segunda e terceira

casa. Ou seja, para se chegar em x1 é preciso ter passado por (a2 +1)*(a3+1) números.

Para facilitar, sejam A1= a1 +1, A2= a2 +1 e A3= a3 +1.

Então, para se ter x1 = p, precisamos passar por p* A2* A3. O mesmo se quisesse

chegar em p na segunda casa: passaríamos por p* A3 números primeiro. E assim por

diante. Então para se ter um número p na primeira casa (x1) de um vetor de t posições,

teríamos que passar por p* A2* A3*...*At.

Agora, se quiséssemos chegar em p na primeira casa e r na segunda casa,

teríamos que passar por p* A2*...*At + r* A3*...* At. Então

A seguir vê-se um exemplo que simplifica a obtenção da função h(x):

(14)

Page 36: UM ALGORITMO HÍBRIDO PARA O PROBLEMA DE ROTEAMENTO … · algoritmos meméticos propostos por Prins (2009), que proporciona excelentes resultados, e que combinado a um componente

34

Exemplo: Para t=3:

h(x1,x2,x3) = x1 *A2*A3 + x2*A3+ x3 = A3*(x1*A2 + x2) + x3

Chamemos de h(x,k).

h(x,3) = A3*(h (x,2)) + x3

Por indução chegamos em h(x,k) = Ak* h( x,k-1) + xk = h(x, k-1)* (ak+1) + xk.

Então, tudo isso foi para entendermos o significado dessa fórmula.

Se quiséssemos saber o número inteiro que representará o vetor (2,1,1) com a = (2,3,1),

teríamos:

h(x,3) = h(x, 3)*(a3 + 1) + x3 = [2*(a2 + 1) + 1]*(a3 + 1)+x3= [2*4 + 1]*2 + 1= 19.

Após o cálculo de h, podemos então observar o funcionamento do Splitting. A figura

3.2 descreve o algoritmo do Splitting:

Figura3.2: Algoritmo Splitting para o PRVFH.

A matriz Y é inicializada com todos os vetores x recebendo 0, os custos dos

rótulos na fila 0 com 0 e os custos dos outros rótulos com infinito. Então, para cada

vértice i, para cada arco do grafo H, cada rótulo Yip usado por i, e cada possível veículo

Inicializa matriz Y

Para t:= 0 a n faça

Para cada arco (i,j) de H faça

Para p:= 0 a ψ – 1 com Yip.Z < ∞ faça

Para k:= 1 a t com ( Yip.xk < ak ) e ( Wij ≤ Qk ) faça

U := Yip;

U.xk := U.xk + 1;

U.Z := U.Z + fk + vk. Lij;

Calcule h para o consumo do vetor U.x;

Se U.Z < Yjh.Z então

Yjh := U;

Fim;

Fim;

Fim;

Fim.

Page 37: UM ALGORITMO HÍBRIDO PARA O PROBLEMA DE ROTEAMENTO … · algoritmos meméticos propostos por Prins (2009), que proporciona excelentes resultados, e que combinado a um componente

35

do tipo k, um rótulo U é calculado para o caminho obtido pela adição do arco (i,j) com

veículo k para o caminho definido pelo rótulo Yip.

U é inicializado como uma cópia de Yip, U.xk é incrementado e o custo do arco ( i,j )

para o veículo k é adicionado em U.Z. Então chamamos a função h para o vetor U.x e o

rótulo Yjh é substituído por U em caso de melhoria.

3.1.3 Seleção por torneio binário

Dois cromossomos da população atual são escolhidos aleatoriamente. O melhor

cromossomo (melhor fitness) escolhido será o primeiro Pai. De forma análoga, o

segundo pai será escolhido.

3.1.4 Order crossover (ox crossover)

Neste trabalho, utilizaremos o operador order crossover. Esse operador é

inicializado com a seleção aleatória de dois pontos nos cromossomos (pais). Chamemos

esses pontos de i e j. Esses pontos determinam uma substring que será copiada na

mesma posição nos filhos.

Para o primeiro filho, por exemplo, observamos o segundo pai e retiramos as

cidades que já estão na substring desse filho. As cidades restantes serão adicionadas ao

filho respeitando a cidades sucessivas nas posições da esquerda para direita a partir da

posição j + 1. Um procedimento similar é feito para o segundo filho.

Para entendermos melhor, se considerarmos os cromossomos Pai 1 e Pai 2:

i j

Pai 1

Pai 2

Figura 3.3: Cromossomos pais.

As substrings escolhidas são 3, 4 e 5 e 1, 3 e 4.

Então os filhos receberão as substrings nas respectivas posições:

1 2 6 5

5

3 4

3 1 6 2

7

4 7

Page 38: UM ALGORITMO HÍBRIDO PARA O PROBLEMA DE ROTEAMENTO … · algoritmos meméticos propostos por Prins (2009), que proporciona excelentes resultados, e que combinado a um componente

36

Filho 1

Filho 2

Figura 3.4: Início do processo do ox crossover.

Agora para o primeiro filho, observamos o segundo pai, pai 2, que possui as

seguintes cidades: 5 6 1 3 4 7 2. Então excluímos as cidades 3, 4 e 5, e

acrescentamos as cidades restantes na ordem de sucessão a partir da posição j+1 . O

processo do segundo filho é idêntico a este.

Filho1

Filho 2

Figura3.5: Cromossomos resultantes do ox crossover.

A partir daí, um desses filhos é selecionado aleatoriamente e será avaliado pelo

procedimento Split, que depois substituirá um cromossomo Pr encontrado na pior

metade da população, isto é, entre os nc/2 últimos cromossomos. Finalmente, C é

trocado para manter organizado em uma ordem de custo crescente.

6

5 4 3

3 4 1

1 2 5 3 4 7

7 4 3 1 5 2 6

Page 39: UM ALGORITMO HÍBRIDO PARA O PROBLEMA DE ROTEAMENTO … · algoritmos meméticos propostos por Prins (2009), que proporciona excelentes resultados, e que combinado a um componente

37

3.1.5 Busca Local

Neste trabalho, a busca local é utilizada numa probabilidade PLS para o filho

resultante do ox crossover e é realizada após o procedimento Splitting, da mesma forma

com que é feito em Prins (2009).

Cada iteração da busca local decompõe os movimentos de realocação de

clientes, troca de dois clientes e movimento 2-OPT, que executam movimentos para

uma ou duas viagens e promovem melhorias. Esse processo é repetido até não haver

mais melhoria. As figuras abaixo ilustram esses movimentos para 2 viagens:

Figura 3.6: Esquema de realocação de um cliente em duas viagens.

Figura 3.7:Esquema da troca de dois clientes.

Page 40: UM ALGORITMO HÍBRIDO PARA O PROBLEMA DE ROTEAMENTO … · algoritmos meméticos propostos por Prins (2009), que proporciona excelentes resultados, e que combinado a um componente

38

Figura 3.8: Esquema do 1º caso 2-OPT. Neste movimento 2-OPT ocorre uma inversão no

sentido de uma viagem.

Figura 3.9: Esquema do 2º caso 2-OPT.

As viagens são finalmente concatenadas em um único cromossomo (rota

gigante) que é re-avaliado pelo Splitting. O Splitting se comporta como um operador de

melhoria adicional capaz de trocar todos os limites de viagens e reembaralhar veículos.

A busca local utilizada no algoritmo memético é a LS1, que não permite

mudança nos veículos designados para as viagens. Após os movimentos da busca local,

obtemos novas distancias entre os vértices e, portanto teremos novos custos fixo e

variáveis a serem calculados. O custo fixo é removido se uma viagem se tornar vazia.

Page 41: UM ALGORITMO HÍBRIDO PARA O PROBLEMA DE ROTEAMENTO … · algoritmos meméticos propostos por Prins (2009), que proporciona excelentes resultados, e que combinado a um componente

39

3.1.6 Algoritmo Memético (SMA)

Utilizaremos o segundo algoritmo proposto pelo Prins (2009), SMA. É um

algoritmo memético com population management (AM/PM), uma nova estrutura de

algoritmo memético desenvolvida por Sorensen e Sevaux (2006). Essa estrutura

controla a diversidade da população usando uma medida de distância no espaço de

solução.

As principais características desse algoritmo são a presença de pequenas

soluções, o uso da busca local e da population management. Segundo Sorensen e

Sevaux (2006), a population management “controla a diversidade de uma pequena

população com soluções de alta qualidade”.

Para avaliar se uma solução diversifica a população, AM/PM usa uma medida de

distância no espaço de solução. Então dada uma medida de distância, e duas soluções A

e B, definimos que d(A,B) é a distância entre essas soluções.

A distância de uma solução C a população P é determinada por

D(P,C) = min {d(A, C) :A ϵ P}, (15)

que significa que a distancia de uma solução C a população P é a menor distancia entre

C e uma solução que já qualidade suficiente, pois pertence a P.

Para calcular a distância de uma solução à população calculamos |P| medidas de

distância. |P| representa a cardinalidade da população.

Para que uma solução seja adicionada a população, é necessário que sua

distância a população seja menor que um parâmetro ∆, chamado parâmetro de

diversidade. Assim, evitamos que a solução possua uma distância pequena em relação à

população, o que não contribuiria com a diversidade da mesma (Sorensen e Sevaux,

2006).

Então um filho C é aceito a população se

D(P, C) ≥ ∆. (16)

Neste trabalho, o conceito de distância utilizado é a distância para R

permutações, que provém de Campos et al (2005), comumente chamada de distância de

pares quebrada.

Para dois cromossomos A e B, d(A, B) é a quantidade de pares adjacentes em A

que são quebrados em B, isto é, que não estão na mesma ordem de sequência em B. Por

exemplo, tomando A = (1,2,3,4,5,6) e B = (4,5,6,2,3,1), (1,2) e (3,4,) são quebrados em

Page 42: UM ALGORITMO HÍBRIDO PARA O PROBLEMA DE ROTEAMENTO … · algoritmos meméticos propostos por Prins (2009), que proporciona excelentes resultados, e que combinado a um componente

40

B, isto é, eles não estão na mesma ordem em B. Então d(A,B) = 2. A distância pode

variar entre 0 e n-1.

O algoritmo de SMA é descrito abaixo:

A população inicial é constituída de nc cromossomos (rotas gigantes), onde

cada uma é armazenada em Pk.T.

A população P é mantida organizada em uma ordem ascendente de custo: a

melhor solução atual é sempre P1.

O procedimento Splitting (Pk, possível) avalia a rota gigante Pk.T e se existir

uma solução viável, a solução resultante é armazenada em Pk.S e o custo em

Pk.F. Selecionamos as três primeiras rotas gigantes que serão melhoradas pela

aplicação da busca local LS1, descrita em (3.4). Essas soluções promovem

rapidez na busca e as restantes (nc -3 soluções) trazem mais diversidade.

Repetimos esses passos para cada cromossomo na população inicial e Pk só é

aceito na linha 6 se D({P1,...,Pk-1}, Pk ) ≠ 0.

O próximo laço executa np fases, onde cada uma começa organizando a

população em ordem crescente de custos, executados em ni iterações básicas

e finaliza por uma renovação parcial da população. O procedimento

renovação_parcial mantém as nk melhores soluções e substitui as nc - nk

outras por novas soluções aleatórias.

Dois pais são selecionados pelo método do torneio binário descrito em (3.3).

Através do operador ox crossover descrito em (3.4), esses pais vão gerar um

filho C que será avaliado pelo Split.

Se possível, a nova solução sofre busca local com uma probabilidade fixa de

PLS. Selecionamos aleatoriamente um cromossomo Pr na pior metade de P.

Se D(P\{Pr},C) ≥ ∆ ou o custo do filho C for menor que o da melhor solução,

guardado em P1 (isso evita a perda de uma melhor solução), Pr receberá C e Pr

será trocado para manter P ordenado.

No fim, a melhor solução está em P1.

Nós consideramos que o valor do parâmetro de diversidade, ∆, é inicializado

com um valor constante. A estratégia é que ∆ decresça linearmente de um ∆máx para um

∆min em cada fase. ∆máx será limitado na prática por uma fração de distância máxima,

isto é, ∆máx = 0,5.(n-1).

Page 43: UM ALGORITMO HÍBRIDO PARA O PROBLEMA DE ROTEAMENTO … · algoritmos meméticos propostos por Prins (2009), que proporciona excelentes resultados, e que combinado a um componente

41

A tabela abaixo indica os parâmetros usados neste algoritmo:

Método nc np ni Nk LS PLS política ∆min ∆máx

SMA 30 5 4000 1 1 0.50 decrescente 1 0.5.(n-1)

Tabela 3.1: Parâmetros do algoritmo.

O pseudocódigo do SMA está descrito abaixo:

Figura 3.10: Estrutura do algoritmo memético SMA.

Para k:= 1 até nc faça

Repita

Geração aleatória da rota gigante em Pk.T

Split (Pk, possível)

Se (possível) e (k ≤ 3) então LS1(Pk)

Fim-se;

Até (possível) e (D ({P1,..., Pk-1}, Pk) ≠ 0 ) Fim_para;

Para p:= 1 até np faça

Organize P em ordem crescente de custo

Para i:= 1 até ni faça

Selecione dois pais A e B pelo torneio binário

Aplique Ox crossover Para A e B para gerar um filho C

Split (Pk, possível)

Se possível então

Se aleatório < PLS então LS1(C)

Fim_se;

Selecione aleatoriamente Pr para substituição, na pior metade de P.

Se (C.F < P1.F) ou (D(P\{Pr},C) ≥ ∆) então

Pr := C

Troca Pr para manter P ordenado

Fim_se;

Fim_se;

Fim_para;

Renovação_parcial (P, nk);

Fim_para;

Page 44: UM ALGORITMO HÍBRIDO PARA O PROBLEMA DE ROTEAMENTO … · algoritmos meméticos propostos por Prins (2009), que proporciona excelentes resultados, e que combinado a um componente

42

3.2 Algoritmo Híbrido proposto

O algoritmo híbrido proposto se utiliza do algoritmo memético SMA associado

ao Vocabulary Building. A idéia é inserir a técnica utilizando a noção de contração de

vértices utilizada anteriormente por Guedes (2006) e Neto (2009) num contexto de

Problema do Caixeiro Viajante, e posteriormente por Girão (2008) e Oliveira (2010)

num contexto de Anéis Sonet.

Abaixo se descreve o processo de contração de vértices proposto neste trabalho:

Selecionamos as melhores soluções que vão compor um conjunto elite.

Identificamos as arestas presentes em todas elas.

Concatenamos os trechos formados por arestas consecutivas.

Criamos um grafo auxiliar em que cada trecho representará um único

vértice.

Criamos um conjunto de soluções para este grafo auxiliar através de

heurísticas construtivas e busca local. A esse conjunto damos o nome de

população auxiliar.

Expandimos os nós contraídos em trechos para trazer as soluções

produzidas no grafo auxiliar para soluções viáveis no grafo original.

Aplicamos a busca local nas soluções da população auxiliar (já

expandida).

Exclui-se a pior solução da população auxiliar e uni-se com a melhor

solução da população atual.

Page 45: UM ALGORITMO HÍBRIDO PARA O PROBLEMA DE ROTEAMENTO … · algoritmos meméticos propostos por Prins (2009), que proporciona excelentes resultados, e que combinado a um componente

43

Abaixo ilustramos o processo de identificação de arestas comuns em quatro

soluções de um PRVFH:

Figura 3.11: Exemplo de identificação de arestas comuns.

A seguir vemos como cada trecho representará um único nó:

Figura 3.12: Contração de vértices.

Page 46: UM ALGORITMO HÍBRIDO PARA O PROBLEMA DE ROTEAMENTO … · algoritmos meméticos propostos por Prins (2009), que proporciona excelentes resultados, e que combinado a um componente

44

A idéia é identificar fragmentos de boas soluções a fim de obter soluções ainda

melhores. Abaixo vemos a estrutura do algoritmo híbrido proposto:

Figura 3.13: Estrutura do algoritmo híbrido proposto.

Para k:= 1 até nc faça

Repita

Geração aleatória da rota gigante em Pk.T

Split (Pk, possível)

Se (possível) e (k ≤ 3) então LS1(Pk)

Fim_se;

Até (possível) e (D ({P1,..., Pk-1}, Pk) ≠0)

Fim_para;

Organize P em ordem crescente de custo

Para i:=1 até ni faça

Selecione dois pais A e B pelo torneio binário

Aplique ox crossover para A e B gerar um filho C

Split (Pk, possível)

Se possível então

Se aleatório < PLS então LS1(C)

Fim_se;

Selecione aleatoriamente Pr para substituição, na pior metade de P

Se (C.F < Pi.F) ou (D (P\{Pr} , C) ≥ ∆) então

Pr:= C

Troca Pr para manter P ordenado

Fim_se;

Fim_se;

Fim_para;

Contração_de_vértices (pop_atual);

Renovação_parcial(P, nk);

Fim_para.

Page 47: UM ALGORITMO HÍBRIDO PARA O PROBLEMA DE ROTEAMENTO … · algoritmos meméticos propostos por Prins (2009), que proporciona excelentes resultados, e que combinado a um componente

45

Capítulo IV

4 Resultados computacionais

Este capítulo é dedicado aos resultados computacionais obtidos durante os

experimentos realizados neste trabalho. O algoritmo descrito no capítulo 3 foi

implementado na linguagem C++.

4.1 Instâncias do Problema

As instâncias utilizadas neste trabalho são baseadas nas instâncias 13-20 de

Golden et al (1984), acrescidas de custos variáveis por Taillard (1999). Foram obtidas

do site http://www.isima.fr/~lacomme/hvrp/hvrp.html, feito por CH. Duhamel, P.

Lacomme e C. Prodhon.

4.2 Resultados Computacionais

Nesta seção, serão vistos os resultados obtidos pelo algoritmo memético para a

resolução do PRVFH, conforme publicado em Prins (2009). Também serão vistos os

resultados obtidos da implementação feita neste trabalho.

Na Tabela 4.1, tem-se a relação das instâncias disponíveis, o número de vértices

e as melhores soluções conhecidas.

Tabela 4.1: Instâncias e as melhores soluções conhecidas.

Instâncias Nº de vértices Melhores soluções

conhecidas

HVRP13 50 1517,84

HVRP14 50 607,53

HVRP15 50 1015,29

HVRP16 50 1144,94

HVRP17 75 1061,96

HVRP18 75 1823,58

HVRP19 100 1117,51

HVRP20 100 1534,17

Page 48: UM ALGORITMO HÍBRIDO PARA O PROBLEMA DE ROTEAMENTO … · algoritmos meméticos propostos por Prins (2009), que proporciona excelentes resultados, e que combinado a um componente

46

Na tabela abaixo, exibimos os resultados encontrados pelo Prins (2009) com a

implementação do algoritmo memético SMA:

Tabela 4.2: Resultados obtidos pelo Prins (2009).

Observe que os únicos resultados que não alcançaram o ótimo foram os valores

referentes às instâncias 17 e 19.

A tabela 4.3 exibe os resultados obtidos da implementação deste algoritmo neste

trabalho:

Instâncias Resultados Tempo Gap

HVRP13 1607,26 3m56s 0,06

HVRP14 672,00 12s 0,11

HVRP15 1120,61 10s 0,10

HVRP16 1252,03 9s 0,09

HVRP17 1203,11 34s 0,13

HVRP18 2092,89 3m18s 0,15

HVRP19 1303,84 4m38s 0,17

HVRP20 1823,16 46s 0,19 Tabela 4.3: Resultados obtidos da implementação do algoritmo memético.

Percebe-se que os resultados obtidos não foram iguais aos obtidos pelo Prins.

Isso se deve a forma com foi aplicada a busca local, na qual ele nos fornece os

procedimentos utilizados, mas não discrimina qual a ordem a ser utilizada. Os

procedimentos utilizados são: Realocação de um cliente, troca de dois clientes,

movimento 2-OPT e movimento 2-OPT (com inversão de sentido em uma rota). Nesta

implementação, a busca local foi aplicada seguindo esta ordem de procedimentos.

Instâncias Resultados

HVRP13 1517,84

HVRP14 607,53

HVRP15 1015,29

HVRP16 1144,94

HVRP17 1064,07

HVRP18 1823,58

HVRP19 1120,34

HVRP20 1534,17

Page 49: UM ALGORITMO HÍBRIDO PARA O PROBLEMA DE ROTEAMENTO … · algoritmos meméticos propostos por Prins (2009), que proporciona excelentes resultados, e que combinado a um componente

47

A tabela seguinte exibe os resultados alcançados após uma pequena modificação

na ordem de aplicação dos procedimentos:

Instâncias Resultados Tempo Gap

HVRP13 1567,51 3m40s 0,03

HVRP14 619,87 14s 0,02

HVRP15 1052,82 12s 0,04

HVRP16 1147,22 11s 0,00

HVRP17 1097,50 38s 0,03

HVRP18 1881,31 3m29s 0,03

HVRP19 1168,03 3m46s 0,04

HVRP20 1645,57 1m1s 0,07

Tabela 4.4: Resultados obtidos de outra implementação do algoritmo memético.

Percebe-se que os resultados estão mais próximos dos resultados obtidos do

Prins. A ordem dos procedimentos de busca local desta implementação foi: troca de

dois clientes, movimento 2-OPT, movimento 2-OPT (com inversão de sentido em uma

rota) e realocação de um cliente.

A tabela seguinte exibe os resultados alcançados após a aplicação da técnica

vocabulary building a esta última implementação:

Instâncias Resultados Tempo Gap

HVRP13 1555,36 5m58s 0,02

HVRP14 619,23 23s 0,02

HVRP15 1038,45 16s 0,02

HVRP16 1147,22 14s 0,00

HVRP17 1103,17 48s 0,04

HVRP18 1891,32 3m21s 0,04

HVRP19 1158,01 48s 0,04

HVRP20 1622,43 1m23s 0,06 Tabela 4.5: Resultados obtidos do AM+VB.

Page 50: UM ALGORITMO HÍBRIDO PARA O PROBLEMA DE ROTEAMENTO … · algoritmos meméticos propostos por Prins (2009), que proporciona excelentes resultados, e que combinado a um componente

48

Abaixo vemos uma tabela que compara os resultados obtidos do algoritmo

memético e do algoritmo memético associado ao vocabulary building:

Instâncias AM AM + VB

HVRP13 1567,51 1555,36

HVRP14 619,87 619,23

HVRP15 1052,82 1038,45

HVRP16 1147,22 1147,22

HVRP17 1097,50 1103,17

HVRP18 1881,31 1891,32

HVRP19 1168,03 1158,01

HVRP20 1645,57 1622,43

Tabela 4.6: Comparação entre os resultados obtidos do AM e AM + VB.

Depois de observar estes resultados, podemos chegar à seguinte conjectura:

Se achamos resultados de qualidade inferior e após aplicar o vocabulary building

eles melhoraram, então suponho que ao aplicar esta técnica no algoritmo do Prins com

os resultados dados por ele, vamos gerar resultados iguais ou melhores.

Page 51: UM ALGORITMO HÍBRIDO PARA O PROBLEMA DE ROTEAMENTO … · algoritmos meméticos propostos por Prins (2009), que proporciona excelentes resultados, e que combinado a um componente

49

Capítulo V

5 Conclusão e Sugestões para Trabalhos Futuros

O presente trabalho abordou o problema de roteamento de veículos com frotas

heterogêneas, bastante interessante devido a sua aplicabilidade em situações reais, já

que sua frota é constituída por uma quantidade limitada de veículos distintos.

No decorrer do trabalho, descrevemos o funcionamento das meta-heurísticas

algoritmo genético e memético e abordamos o uso da técnica vocabulary building

implementada seguindo a idéia de contração de vértices. Também destacamos a

importância das meta-heurísticas híbridas, que são ferramentas que tem sido utilizadas

com maior freqüência em problemas de otimização combinatória devido aos benefícios

gerados pelo melhor desempenho do algoritmo.

O algoritmo proposto para resolução do PRVFH associa a técnica vocabulary

building ao algoritmo memético SMA proposto em Prins (2009).

Apesar dos resultados obtidos diferirem dos resultados do Prins, devido à

ausência de informações referentes aos procedimentos da busca local, demonstramos a

eficiência desta hibridização, que proporcionou em algumas instâncias resultados

melhores em relação à aplicação do algoritmo utilizado isoladamente.

Como sugestões para trabalhos futuros, poderíamos:

Utilizar outra implementação para o vocabulary building, como por

exemplo o pool de vocábulos, visto em Guedes (2006) num contexto de

caixeiro viajante.

Utilizar todas as combinações possíveis dos procedimentos de busca

local;

Empregar diversos valores aos parâmetros utilizados.

Page 52: UM ALGORITMO HÍBRIDO PARA O PROBLEMA DE ROTEAMENTO … · algoritmos meméticos propostos por Prins (2009), que proporciona excelentes resultados, e que combinado a um componente

50

Referências Bibliográficas

BALDACCI, R.; BATARRA, M.; VIGO, D. Routing a Heterogeneous fleet of

vehicles. 2007.

BALDACCI,R.; MINGOZZI,A. A unified exact method for solving different classes

of vehicle routing problems.2009.

BELFIORE, P. P.; Y.YOSHIZAKI, H. T. Scatter Search para Problemas de

Roteirização de Veículos com Frota Heterogênea, Janelas de Tempo e Entregas

Fracionadas. Tese (Doutorado) Universidade de São Paulo, 2006.

BJARNODÓTTIR, ÁSLAUG SÓLEY. Solving the vehicle routing problem with

genetic algorithms. 2004.

CLARKE, G., WRIGHT, J.W. Sheduling of vehicles from a central depot to a

number of delivery points. 1964.

COELHO, ALESSANDRA MARTINS. Uma abordagem via algoritmos meméticos

para a solução do problema de horário escolar. Dissertação de mestrado. CEFET-

MG, 2006.

CORDEAU, J.F.; LAPORTE,G. ; SAVELSBERGH, M.W.P.; VIGO, D. Vehicle

routing. Capítulo do livro: Transportation, de Barnhart C. e Laporte G., 2007.

DANTZIG,G.B.; RAMSER, J.H. The truck dispatching problem. 1959.

DUHAMEL,C.; LACOME, P. ; PRODHON, C. Efficient frameworks for greedy split

and new depth first search split procedures for routing problems.2011.

FISHER, M.L.; JAIKUMAR, R. A generalized assignment heuristic for vehicle

routing.1981.

GENDREAU, M; LAPORTE, G; MUSARAGANYI, C; TAILLARD,E. A tabu search

heuristic for the heterogeneous fleet vehicle routing problem.Comp. Oper. Res.,

Elsevier Science Ltd., v26, p. 1153-1173, 1999.

GILLETT, B.E. ; MILLER, R.L. A heuristic algorithm for the vehicle-dispatch

problem. 1974.

GIRÃO, ANA CRISTINA. Busca heurística através do algoritmo genético e

memético com construção de vocábulos para o problema de atribuição de

localidades e anéis SONET. Dissertação de mestrado, UFRN 2004.

Page 53: UM ALGORITMO HÍBRIDO PARA O PROBLEMA DE ROTEAMENTO … · algoritmos meméticos propostos por Prins (2009), que proporciona excelentes resultados, e que combinado a um componente

51

GLOVER,F. New Ejection Chain and Alternating Path Methods for Traveling

Salesman problems.1992.

GLOVER, F. Tabu search and adaptative memory programming - advances,

applications and challenges. 1996.

GLOVER, FRED; LAGUNA, MANUEL; MARTÍ RAFAEL. Fundamentals of

Scatter Search and Path Relinking. 2000.

GOLDEN, B.L.; ASSAD, A.A; WASIL, E.A. Routing Vehicles in the real world:

Applications in the Solid waste, Beverage, Food, Dairy, and newspaper industries.

Capítulo do livro :The vehicle routing problem, Toth, P. e Vigo, D. 2002.

GUEDES, ALISSON. Um algoritmo memético para o problema do caixeiro

viajante assimétrico:uma abordagem baseada em vocabulary building. 2006.

HOLLAND, JOHN HENRY. Hierarchical descriptions, universal spaces, and

adaptive systems, in: Arthur W. Burks, editor. Essays on Cellular Automata.

University of Illinois Press, 1970.

LAPORTE,G. What You Should Know about the Vehicle Routing Problem.2007.

LEITE, JÉSSICA. Algoritmo memético e vocabulary building:uma aplicação ao

problema do caixeiro viajante assimétrico. Dissertação de mestrado, UFRN 2006.

LI, F; GOLDEN,B; WASIL,E. A record-to-record travel algorithm for solving the

heterogeneous fleet vehicle routing problem.2007.

MOGNON, VILSON RODRIGO. Algoritmos genéticos aplicados na otimização de

antenas. Curitiba, 2004.

MOSCATO, P. & NORMAN, M. G. A memetic approach for the traveling salesman

problem implementation of computational ecology for combinatorial optimization

on message-passing systems. International Conference on Parallel Computing and

Transputer Applications, M. Valero, E. Onate, M. Jane, J. L. Larriba, and B. Suarez

(eds.), Amsterdam, The Netherlands, IOS Press, p. 177-186, 1992.

MOSCATO, PABLO; COTTA, CARLOS. A gentle introduction to memetic

algorithms, 2003.

MOSCATO, PABLO; COTTA, CARLOS. Memetic algorithms. 2005.

NETO, J.S.S. Aplicação das técnicas Path-Relinking e vocabulary building na

melhoria de performance do algoritmo memético para o problema do caixeiro

viajante assimétrico.2009.

OSMAN, IBRAHIM H.; LAPORTE, GILBERT. Metaheuristics: A bibliography.

Institute of Mathematics and Statistics, University of Kent, Canterbury, Kent CT2 7NF,

UK, 1996.

Page 54: UM ALGORITMO HÍBRIDO PARA O PROBLEMA DE ROTEAMENTO … · algoritmos meméticos propostos por Prins (2009), que proporciona excelentes resultados, e que combinado a um componente

52

PRINS, CHRISTIAN. Two memetic algorithms for heterogeneous fleet vehicle

routing problems. France, 2009.

RADCLIFFE, NICHOLAS J.; SURRY, PATRICK D. Formal Memetics

Algorithms.1994.

RAIDL,GUNTER R. A Unified View on Hybrid Metaheuristics. 2006.

ROSA, THATIANE DE OLIVEIRA; LUZ, HELLEN SOUZA. Conceitos básicos de

algoritmo genético:Teoria e Prática.2009

SANTOS,J.C.; DE FREITAS OLIVEIRA,J.R.; DUTRA, L.V.; SANT’ANNA,S.J.S.;

AND RENNÓ,C.D. Seleção de atributos usando algoritmos genéticos para

classificação de regiões.2007.

SCHNEIDER, A. M. Algoritmo Adaptativo Genético para Acompanhamento da

Trajetória de Alvos Móveis. 1998.

SORENSEN, K; SEVAUX, M. MA|PM: memetic algorithms with population

management. 2006.

TAILLARD, É.D. A heuristic column generation method for the heterogeneous

fleet VRP. RAIRO. Vol. 33, p. 1-34, 1999.

TARANTILIS,CD; KIRANOUDIS,CT; VASSILIADIS, VS. A list based threshold

accepting metaheuristic for the heterogeneous fixed fleet vehicle routing

problem.2003.

TARANTILIS,CD; KIRANOUDIS,CT; VASSILIADIS, VS. A threshold accepting

metaheuristic for the heterogeneous fixed fleet vehicle routing problem.2004.