heurÍsticas hÍbridas para o problema de … · caixeiro viajante múltiplo (m-tsp), onde cada...

22
HEURÍSTICAS HÍBRIDAS PARA O PROBLEMA DE ROTEAMENTO DE VEÍCULOS COM COLETA E ENTREGA SIMULTÂNEAS E JANELA DE TEMPO Leonardo Pereira Valadão Lopes (Universidade Candido Mendes) [email protected] Dalessandro Soares Vianna (Universidade Federal Fluminense) [email protected] Marcilene de Fátima Dianin Vianna (Universidade Estadual Norte Fluminense) [email protected] Este artigo propõe um estudo comparativo entre metaheurísticas GRASP e Algoritmos Genéticos quando aplicados para solucionar de forma aproximada o problema de Roteamento de Veículos com Coleta e Entrega Simultânea e Janela de Tempo. Estee problema tem sua origem no clássico problema de roteamento de veículos (VRP - Vehicle Routing Problem) com a abordagem de sucessivos itens tais como demanda por coleta e entrega de carga, com a possibilidade de simultaneidade ( VRPPD - Vehicle Routing Problem with Pickup and Delivery) e a adequação destas entregas e coletas aos intervalos de atendimento dos pontos da rota (VRPTW - Vehicle Routing Problem with Time Window). O objetivo é determinar o conjunto de rotas a serem percorridas pelos veículos de forma a minimizar o custo total de transporte. A heurística GRASP proposta utiliza como mecanismo de busca local uma heurística VND que utiliza diferentes estruturas de vizinhanças. Neste trabalho são abordadas três destas estruturas, a saber, 2-Optimal, Intercâmbio e Realocação. Os algoritmos genéticos utilizam Reconexão por Caminhos como operadores genéticos de cruzamento. Palavras-chaves: GRASP, VND, Algoritmo genético, Reconexão por caminho 5, 6 e 7 de Agosto de 2010 ISSN 1984-9354

Upload: lynguyet

Post on 03-Oct-2018

215 views

Category:

Documents


1 download

TRANSCRIPT

HEURÍSTICAS HÍBRIDAS PARA O

PROBLEMA DE ROTEAMENTO DE

VEÍCULOS COM COLETA E ENTREGA

SIMULTÂNEAS E JANELA DE TEMPO

Leonardo Pereira Valadão Lopes (Universidade Candido Mendes)

[email protected]

Dalessandro Soares Vianna (Universidade Federal Fluminense)

[email protected]

Marcilene de Fátima Dianin Vianna (Universidade Estadual Norte

Fluminense)

[email protected]

Este artigo propõe um estudo comparativo entre metaheurísticas

GRASP e Algoritmos Genéticos quando aplicados para solucionar de

forma aproximada o problema de Roteamento de Veículos com Coleta

e Entrega Simultânea e Janela de Tempo. Estee problema tem sua

origem no clássico problema de roteamento de veículos (VRP -

Vehicle Routing Problem) com a abordagem de sucessivos itens tais

como demanda por coleta e entrega de carga, com a possibilidade de

simultaneidade ( VRPPD - Vehicle Routing Problem with Pickup and

Delivery) e a adequação destas entregas e coletas aos intervalos de

atendimento dos pontos da rota (VRPTW - Vehicle Routing Problem

with Time Window). O objetivo é determinar o conjunto de rotas a

serem percorridas pelos veículos de forma a minimizar o custo total de

transporte. A heurística GRASP proposta utiliza como mecanismo de

busca local uma heurística VND que utiliza diferentes estruturas de

vizinhanças. Neste trabalho são abordadas três destas estruturas, a

saber, 2-Optimal, Intercâmbio e Realocação. Os algoritmos genéticos

utilizam Reconexão por Caminhos como operadores genéticos de

cruzamento.

Palavras-chaves: GRASP, VND, Algoritmo genético, Reconexão por

caminho

5, 6 e 7 de Agosto de 2010

ISSN 1984-9354

VI CONGRESSO NACIONAL DE EXCELÊNCIA EM GESTÃO Energia, Inovação, Tecnologia e Complexidade para a Gestão Sustentável

Niterói, RJ, Brasil, 5, 6 e 7 de agosto de 2010

2

1. Introdução

O Problema de Roteamento de Veículos com Coleta e Entrega Simultânea e Janela de

Tempo (PRVCESJT), que se caracteriza pela inserção de diversos itens de demanda e

restrição ao clássico problema de roteamento de veículos, pode ser aplicado de forma prática a

diversas necessidades das mais variadas empresas. A abordagem deste trabalho toma como

exemplificação prática a necessidade de abastecimento de produtos ou passageiros através de

veículos.

O presente trabalho aborda o caso de coleta e entrega simultânea de materiais com

janela de tempo, onde a demanda de um cliente é composta de cargas para entrega e ou coleta

e que devem ser executadas entre um intervalo de tempo adequado a cada cliente atendido.

O objetivo maior deste trabalho é obter um conjunto de sub-rotas atribuídas a

diferentes veículos que atenda de forma otimizada, menor distância total percorrida, a

demanda dos clientes segundo uma planilha de execução, considerando ainda a faixa de

tempo especificada para atendimento por cliente (janela de tempo). É considerada uma única

janela de tempo por cliente.

Entendendo-se o PRVCESJT como uma extensão do problema NP-difícil PRV

(LENSTRA, 1981), é correto afirmar que não é adequado o uso de algoritmos exatos para a

solução do problema (MIN, 1989). Portanto, na literatura têm sido utilizados métodos

baseados em metaheurísticas para solução destes problemas, tais como Montané (2006) e

Vianna(1999). As metaheurísticas são métodos que visam encontrar soluções aproximadas

através de procedimentos de busca em vizinhanças que objetivam estender o processo de

busca para além de um mínimo local.

Este trabalho propõe solucionar o PRVCESTJ, objetivando minimizar a distância

percorrida pelos veículos, expondo um comparativo de resultados entre a aplicação da

heurística GRASP com VND e algorítmos genéticos com reconexão de caminhos.

O presente artigo encontra-se organizado da seguinte forma: na Seção 2 é apresentado

VI CONGRESSO NACIONAL DE EXCELÊNCIA EM GESTÃO Energia, Inovação, Tecnologia e Complexidade para a Gestão Sustentável

Niterói, RJ, Brasil, 5, 6 e 7 de agosto de 2010

3

a abordagem do problema. Na Seção 3 descreve-se a heurística GRASP com busca local

baseada na heurística VND. Na Seção 4 descreve-se o algoritmo genético com reconexão por

caminhos. Na seção 5 são demonstrados os resultados comparativos.

2. Problema abordado

Existe uma grande variedade de Problemas de Roteamento de Veículos. O problema

clássico de roteamento de veículos (PRV) é definido da seguinte maneira: veículos com

capacidade fixa Q devem sair do depósito (i = 0) e atender as demandas qi (i=1, ..., n) de n

clientes. Conhecendo a distância dij entre os clientes i e j (i, j = 0,...,n), o objetivo é minimizar

a distância total percorrida pelos veículos, de tal maneira que apenas um veículo atenda a

demanda de um dado cliente e que a capacidade Q dos veículos não seja violada. Este

problema considera apenas um tipo de demanda, entrega ou coleta.

O PRVCESJT inclui restrições ao problema clássico de roteamente de veículos,

podendo ser definido como um conjunto de n clientes, cada qual com uma demanda de coleta

Ci e de entrega Ei que devem ser cumpridas em um determinado intervalo de Tempo Hini-

Hfimi ; e um depósito com um conjunto de m veículos com capacidade Q. Desta forma tem-

se:

n: número de clientes que podem demandar entrega e/ou coleta de materiais;

m: número de veículos;

Q: capacidade de cada veículo;

Ci : demanda de coleta do cliente i;

Ei : demanda de entrega do cliente i;

Hini: Horário inicial para atendimento no cliente i;

Hfimi: Horário final para atendimento no cliente i.

Cada veículo deve sair do depósito (i = 0) e atender demandas Ci e Ei (i=1, ..., n) dos

clientes de acordo com sua capacidade, janela de tempo e conhecendo a distância dij entre os

clientes i e j (i, j = 0, ..., n).

VI CONGRESSO NACIONAL DE EXCELÊNCIA EM GESTÃO Energia, Inovação, Tecnologia e Complexidade para a Gestão Sustentável

Niterói, RJ, Brasil, 5, 6 e 7 de agosto de 2010

4

O objetivo é determinar o conjunto de rotas que deverão ser percorridas pelos

veículos, minimizando o custo total de transporte, dado pela distância total das rotas, e

atendendo as seguintes condições:

Cada rota começa e termina no depósito.

Todo cliente i é visitado somente uma vez por somente um veículo que deverá

cumprir integralmente a demanda de entrega e ou coleta.

A demanda total de qualquer rota não deve superar a capacidade do veículo que a

atende.

O cliente só pode ser visitado dentro do intervalo de tempo permitido (janela de

tempo).

Os problemas de roteamento de veículos têm sua origem no tradicional problema do

caxeiro viajante (TSP), mais especificamente, para o caso abordado, em um problema de

caixeiro viajante múltiplo (m-TSP), onde cada veículo executa sua rota completa com ponto

de saída e chegada comuns (origem), respeitando ainda um conjunto de restrições de carga

(entrega e coleta) e de tempo (janela de tempo dos clientes). Alguns algoritmos exatos e

aproximados são apresentados (LAPORT, 1992) para TSP simétricos. Outros autores (LIN,

1965; LIN & KERNIGHAN, 1973) desenvolvem melhoramentos através de heurísticas

baseadas em r-OPT e Or-OPT. A implementação da heurística Lin-Kernighan

(HELSGAUN,2000) é descrita como um dos melhores métodos para o TSP simétrico.

O problema de roteamento de veículos considerando entrega e coleta (TSPPD) é

abordada em (GENDREAU, 1999).

A junção de janela de tempo ao TSPPD (TSPPDTW) com características particulares

(entregas e coletas não simultâneas) é descrita em (DERIGS, 1992).

3. Heurística GRASP

A heurística GRASP (Greedy Randomized Adaptive Search Procedure) (FEO &

RESENDE, 1995; RESENDE & RIBEIRO, 2003) é uma método de múltiplas partidas, na

VI CONGRESSO NACIONAL DE EXCELÊNCIA EM GESTÃO Energia, Inovação, Tecnologia e Complexidade para a Gestão Sustentável

Niterói, RJ, Brasil, 5, 6 e 7 de agosto de 2010

5

qual cada iteração consiste de duas fases: uma fase de construção onde uma solução inicial

viável é construída utilizando um algoritmo guloso randomizado; e uma fase de busca local

onde um ótimo local na vizinhança da solução inicial é pesquisado. A melhor solução é

definida como resultado.

O pseudocódigo da heurística GRASP é mostrado na Figura 1. O procedimento recebe

como parâmetro de entrada o tempo limite de execução do algorítmo. Na fase de construção

implementa-se uma heurística construtiva (descrita na Subseção 3.1). A fase de busca local

(descrita na Subseção 3.2) é baseada na heurística VND (Variable Neighborhood Descent)

que consiste em explorar o espaço de soluções através de trocas sistemáticas de estruturas

vizinhas.

Figura 1: Algoritmo GRASP.

3.1 Heurística de Construção

A Heurística de Construção é representada pelo pseudocódigo Construção_GRASP

descrito na Figura 2. Este processo de construção consiste na definição de uma rota inicial

contendo todos os clientes e com partida e chegada no depósido (cliente 0). Com base nesta

rota inicial são construídas sub-rotas viáveis, uma para cada veículo, através do procedimento

Gera_Rotas descrito na Figura 3.

A rota inicial é gerada a partir de instâncias criadas randomicamente, e ordenadas pelo

item janela final de tempo de cada cliente. Estas instâncias encontram-se gravadas em

Procedimento GRASP(TempoLim);

inicio

1. s0 ;

2 f(s0) ;

3. enquanto tempo de execução < TempoLim faça

4. s Construção_GRASP( s0); // Solução inicial s’

5. s’ VND(s); // Busca local, retorna s’

6. Se f(s’) < f(s0) então

7. s0 := s’;

8. fim enquanto;

9. Retorne s0;

fim GRASP;

VI CONGRESSO NACIONAL DE EXCELÊNCIA EM GESTÃO Energia, Inovação, Tecnologia e Complexidade para a Gestão Sustentável

Niterói, RJ, Brasil, 5, 6 e 7 de agosto de 2010

6

arquivos textos para viabilizar a reutilização das mesmas, possibilitando assim, verificar

comparativamente os resultandos.

A rota inicial é utilizada como ponto de partida para a construção de rotas (sub-rotas)

viáveis. Todo início de sub-rota é marcado pelo registro do cliente 0 (ponto de partida). A

partir do primeiro cliente, cliente 1, inicia-se a viabilização das sub-rotas até que se inclua

todos os N clientes que compõem o tour inicial. Uma sub-rota, que representa um veículo com

capacidade Q de transporte, entende o cliente i como viável para inserção a partir do momento

que esta inclusão atenda aos controles de capacidade de demanda de coleta do cliente i (Ci) e

capacidade de demanda de entrega do cliente i (Ei), que devem respeitar a capacidade máxima

de transporte Q do veículo. Ainda faz-se necessário para aceitação do cliente i na sub-rota a

validação da janela de tempo. Nesta, o horário de saída do cliente anterior, cliente i-1,

adicionado ao tempo real de deslocamento até o cliente em análise, cliente i, não deve ser

superior ao horário de término da janela de tempo deste cliente (Hfimi).

Figura 2 : Algoritmo Construção_GRASP.

Na descrição da heurística Gera_Rotas, é utilizada a seguinte notação:

Mj: Sub-rota j, com j = 1..m;

Te: Acumulado das Entregas (Ei) de uma veículo. Te =

z

i

Ei1

;

Tc: Acumulado das Entregas (Ei) de uma veículo. Tc =

z

i

Ci1

;

Fe: valor de folga de entrega de carga disponibilizado para o estudo de viabilidade do

clientei, onde Fe = Q – Te.

Fc: valor de folga de coleta de carga disponibilizado para o estudo de viabilidade do

clientei, onde Fc = Q – Tc.

Procedimento Construção_GRASP(s0)

Início

1. s Random (s0);

2. s Ordenarota(s, Hfim)

3. M Gera_Rotas (s);

4. Retorne M;

Fim Construção_GRASP;

VI CONGRESSO NACIONAL DE EXCELÊNCIA EM GESTÃO Energia, Inovação, Tecnologia e Complexidade para a Gestão Sustentável

Niterói, RJ, Brasil, 5, 6 e 7 de agosto de 2010

7

cv(i): controle de inclusão do cliente(i). Se cv(i) = 1 significa que o clientei já foi

incluído em alguma sub-rota. Se cv(i) = 0 significa que o clientei ainda não foi

incluído;

avance(i): corresponde a lógica de busca do próximo cliente. Nesta, a partir do cliente

atual, é realizado um salto randomico, não superior a 10% da quantidade total de

clientes. Localizado o próximo cliente, é feito o estudo de viabilidade de sua inserção

na sub-rota vigente. Independente de sua inclusão ou não, um vetor de controle, na

posição correspondente ao cliente analisado recebe o valor 1, indicando que o cliente

já foi analisado para esta sub-rota específica. O processo termina quando todos os

clientes foram testados para a mesma sub-rota. Este procedimento é identificado no

código fonte deste trabalho como FracionaRota().

Nova_sub-rota(j): inicializa nova sub-rota para atender aos clientes não contemplados

pelas sub-rotas anteriores.

Para o estudo de viabilidade de inserção de um cliente em uma sub-rota considera-se

que para cada veículo(j) é gerada uma sub-rota da rota completa original (s) denominada

Mj.

Figura 3: Algoritmo Gera-Rotas.

Procedimento Gera_Rotas (s,Cliente0,N)

Inicio

1. Para cada início de sub-rota Mj, Mj,0 = Cliente0;

2. Enquanto não incluir todos os clientes

3. Fc = Q;

4. Te = 0;

5. i = 1;

6. Se cv(i) = 1, avance(i)

7. Senão

8. Verifica se Hora_chegada() <= Hfimi.

9. Verifica se Ei <= Fe

10. Verifica se Ci <= Fc

11. Verifica BackingVector(k)

12. Insere clientei na sub-rota j.

13. Avance(i).

14 Fim-se

15. Repetir passo 06 enquanto não visitar todos clientes

16. Nova_sub-rota(j)

17. Fim Enquanto.

Fim Gera_Rotas

VI CONGRESSO NACIONAL DE EXCELÊNCIA EM GESTÃO Energia, Inovação, Tecnologia e Complexidade para a Gestão Sustentável

Niterói, RJ, Brasil, 5, 6 e 7 de agosto de 2010

8

Uma vez que todas as cargas entregues saem obrigatoriamente do ponto de partida

(cliente0), temos Te =

z

i

Ei1

<=Q, caso contrário, o veículo teria de partir com carga superior

a Q (capacidade máxima de carga) para atender a todos os clientes estabelecidos por sua rota.

Uma vez verificados os valores de folga Fc e Fe no processo de análise de viabilidade

dos clientes em uma sub-rota, é possível então definir que a quantidade efetiva de carga que

sai do ponto de partida (cliente0) corresponde a capacidade máxima do veículo menos a folga

calculada até o último cliente (clientez) da rota deste veículo. Qefetiva = Q - Ffinal.

Esta formulação leva em consideração que nenhuma carga coletada fora do ponto

inicial (cliente0) pode ser entregue a outros clientes, senão ao próprio cliente0 quando na

função de ponto final da rota.

A análise de viabilidade do cliente deve também levar em consideração o controle

promovido pelo BackingVector(k), Figura 4, onde para cada clientei avaliado para inserção na

sub-rota, é calculado o novo valor de Te = Te (antigo) + Ei. A este novo valor são adicionados

todos os elementos constantes, até o momento, no vetor BackingVector(k). O valores

resultantes durante o processo não podem ultrapassar o valor da capacidade máxima Q de

cada veículo.

Desta forma temos que Max{Te + Ei + BackingVector(p)} <= Q, para p = 1..k-1.

Figura 4: BackingVector.

Em conjunto à viabilização das cargas, deve-se ainda validar a janela de tempo do

clientei (cliente sob análise para inclusão).

VI CONGRESSO NACIONAL DE EXCELÊNCIA EM GESTÃO Energia, Inovação, Tecnologia e Complexidade para a Gestão Sustentável

Niterói, RJ, Brasil, 5, 6 e 7 de agosto de 2010

9

Considerando-se que o último cliente viabilizado na rota do veículo foi o clientei-1,

quando da análise de janela de tempo do clientei, deve-se levar em consideração os seguintes

elementos:

Hatual: Hora atual. Corresponde a hora de partida (saída do veículo) do clientei-1.

Ft: Fator tempo. Corresponde a média de velocidade atribuída ao veículo durante o

percurso de clientei-1 até clientei. A unidade padrão é Km/h.

Ta: Tempo de atendimento. Corresponde ao tempo necessário para a operação de

entrega e de coleta no clientei.

Disti: Distância em quilômetros entre o clientei-1 e o clientei.

Hseg: Hora seguinte. Corresponde a hora calculada para análise de viabilidade de

janela de tempo do clientei. Hseg = ( Disti * Ft ) + Ta .

Hfimi: Horário final da janela (Hini : Hfimi ) referente ao clientei.

Para a viabilização da janela de tempo do cliente(i) faz-se necessário que Hseg <=

Hfimi.

A Tabela 1 representa a heurística de viabilização de sub-rota segundo os critérios de

capacidade de carga para coleta e entrega. Neste exemplo é considerado que cada veículo

possui capacidade Q = 20, sendo que são considerados N = 9 clientes.

Tabela 1 – Exemplificação de validação de inclusão de cliente em uma sub-rota.

I 0 1 2 3 4 5 6 7 8 9

Ei - 7 6 4 8 7 4 1 1 8

Ci - 5 8 0 6 2 5 4 1 4

Te - 7 13 17 17 17 19 19 20 20

Tc 5 13 13 13 13 18 18 19 19

Fe 20 13 7 3 3 3 1 1 0 0

Fc 20 15 7 7 7 7 2 2 1 1

Cv(i) 1 1 1 1 0 0 1 0 1 0

VI CONGRESSO NACIONAL DE EXCELÊNCIA EM GESTÃO Energia, Inovação, Tecnologia e Complexidade para a Gestão Sustentável

Niterói, RJ, Brasil, 5, 6 e 7 de agosto de 2010

10

A Figura 5 mostra o BackingVector correspondente ao exemplo descrito na Tabela 1.

Figura 5: BackingVector para o exemplo.

3.2 Busca Local Baseada na Heurística VND

A heurística VND (MLADENOVIC & HANSEN, 1997) é um método de busca local

que consiste em explorar o espaço de soluções através de trocas sistemáticas de estruturas de

vizinhança. O método utiliza uma estrutura de vizinhança principal visando melhorar a

solução corrente. Quando isto não é mais possível, o método troca a vizinhança corrente por

outra. O procedimento retorna a vizinhança principal quando uma melhor solução é

encontrada. O algoritmo termina após utilizar todas as estruturas de vizinhança sem

conseguir melhorar a solução corrente. No presente trabalho é implementada uma heurística

VND convencional (MLADENOVIC & HANSEN, 1997), que utiliza o tempo de execução

como critério de parada e na qual são utilizados os seguintes movimentos para gerar as

vizinhanças:

Movimento 2-OPT: O movimento 2-optimal, classificado como intra-rotas, consiste

na possível torca de dois arcos, não consecutivos, de uma rota, inserindo-os

novamente de forma cruzada. No exemplo descrito pela Figura 6, os arcos io e jb têm

suas extremidades trocadas gerando os novos arcos ij e ob. A nova rota será mantida

se seu respectivo custo for menor que o custo da rota original e se todos os requisitos

de restrição do modelo, tais como, demandas de entrega e coleta e janela de tempo

forem atendidos. O procedimento de inserção de forma cruzada recebe neste trabalho

o nome de Flip.

VI CONGRESSO NACIONAL DE EXCELÊNCIA EM GESTÃO Energia, Inovação, Tecnologia e Complexidade para a Gestão Sustentável

Niterói, RJ, Brasil, 5, 6 e 7 de agosto de 2010

11

Figura 6 – 2-OPT

Movimento de Intercâmbio: Classificado como movimento inter-rotas, consiste em

intercambiar dois clientes de rotas distintas. No exemplo descrito pela Figura 7, o

cliente g situado entre os arcos ig e gO de uma rota é torcado com o cliente j setuado

entre os arcos hj e jO de uma outra rota. Desta forma passa-se a ter em uma rota os

arcos ij e jO e em outra rota os arcos hg e gO.

Figura 7 - Intercâmbio.

Movimento de Realocação: Classificado como movimento inter-rotas, consiste em

transferir um cliente de uma rota para outra, podendo ainda acontecer a extinção de

rotas. No exemplo descrito na Figura 8, o cliente a é excluido de sua rota. Desta forma

os arcos ba e ad são substituiddos por um único arco bd. O cliente a é então incluido

na outra rota e onde antes existia o arco iO agora existem os arcos ia e aO.

Figura 8 - Realocação.

VI CONGRESSO NACIONAL DE EXCELÊNCIA EM GESTÃO Energia, Inovação, Tecnologia e Complexidade para a Gestão Sustentável

Niterói, RJ, Brasil, 5, 6 e 7 de agosto de 2010

12

Na Figura 9 é mostrado o pseudocódigo da heurística VND usada na fase de busca

local da heurística GRASP.

Figura 9: Heurística VND: Busca Local do GRASP.

4. Algoritmo Genético

A Computação Evolucionária foi introduzida em 1960 por I. Rechenberg com seu

trabalho "Estratégias de Evolução" (Evolutions strategie no original).

Os algoritmos genéticos (AG) que utilizam processo evolucionário e têm como base

referencial a teoria da evolução de Darwin, foram desenvolvidos por John Holland que os

definiu no livro "Adaption in Natural and Artificial Systems" (HOLLAND, 1975).

Para a execução de um algoritmo genético padrão, conforme Figura 10, é necessário,

em primeiro lugar, gerar uma população inicial. Esta população é composta por um

determinado número de indivíduos (cromossomos), onde cada um representa uma solução,

devidamente valorada, para o problema abordado.

Procedimento VND(s)

Inicio

1. Seja s0 uma Solução Inicial

2. s s0; // Solução corrente

3. r 3; // Número de vizinhanças consideradas

4. k 1; // Tipo da vizinhança corrente

5. enquanto (k ≤ r) faça

6. Encontre o melhor vizinho s’ Nk(s);

7. se f(s’) < f(s)

8. então s s’;

9. k 1; // primeira vizinhança

10. senão k k + 1; // próxima vizinhança

11. fim-se;

12. fim-enquanto;

13. Retorne s;

Fim VND;

VI CONGRESSO NACIONAL DE EXCELÊNCIA EM GESTÃO Energia, Inovação, Tecnologia e Complexidade para a Gestão Sustentável

Niterói, RJ, Brasil, 5, 6 e 7 de agosto de 2010

13

Figura 10: Algoritmo Genético Padrão.

A população inicial é comumente criada através de método aleatório de geração de

indivíduos. Em geral são incorporados critérios previamente estabelecidos como critérios

restritivos para validação de cada indivíduo. Na busca de uma melhor qualidade da população

inicial gerada, tem-se aplicado heurísticas construtivas aleatorizadas para esta função.

O próximo passo é a seleção dos indivíduos que pode ser feita de forma totalmente

aleatória. Outra opção seria a roleta russa, onde é atribuído a cada indivíduo uma

probabilidade de ser selecionado proporcional ao seu valor em relação a soma dos valores de

todos os indivíduos. Pode-se destacar também a seleção baseada em classificação, onde a

probabilidade de seleção de um indivíduo está relacionada a sua respectiva posição segundo o

critério de ordenação da população.

O valor de cada indivíduo é definido através de uma função de avaliação, também

chamada de equação de fitness, que contempla todas as restrições e critérios de qualificação

propostos pela função objetivo do problema proposto.

Os indivíduos selecionados serão submetidos a operadores genéticos, tais como a

mutação que é a troca aleatória de material genético de um individuo. Outro operador

genético utilizado é o cruzamento.

O cruzamento é a combinação de dois ou mais indivíduos da população para a criação

Procedimento Genético(tamPop, maxIter);

inicio

1. f* ;

2 Para i=1 até tamPop faça

3. gera individuo

4. fim para

5. Para j=1 até maxIter faça

6. Selecione indivíduos

7. Aplique operadores genéticos

8. Avalie novos indivíduos

9. Se existir nova solução s com custo inferior a f* então

10. s* s;

11. f* custo da solução s;

12. fim se

13. fim para;

14. Retorne s*;

fim Genético;

VI CONGRESSO NACIONAL DE EXCELÊNCIA EM GESTÃO Energia, Inovação, Tecnologia e Complexidade para a Gestão Sustentável

Niterói, RJ, Brasil, 5, 6 e 7 de agosto de 2010

14

dos novos filhos. O operador de cruzamento mais comumente utilizado é o cruzamento de um

ponto, que possui como extensão direta o cruzamento de dois pontos. No primeiro seleciona-

se uma posição de corte na sequência genética do individuo e realiza-se o cruzamento, em X,

do material genético dos pais, gerando assim, novos filhos.

A cada geração todos os novos indivíduos são novamente avaliados e classificados.

Este processo se repete até que se alcance uma condição pré-estabelecida de término.

A solução escolhida é o indivíduo que se encontra no topo da classificação da

população, ou seja, o indivíduo mais adaptado ao problema proposto.

4.1 Algoritmo genético com reconexão por caminho

A reconexão por caminho consiste na exploração de soluções intermediárias que

conectam soluções de alta qualidade. Esta técnica consiste na seleção de uma solução inicial e

uma solução guia. A solução inicial sofrerá modificações em sua vizinhança, que serão

analisadas a cada passo, sempre objetivando alcançar a solução guia. Com este procedimento

a solução inicial vai incorporando atributos da solução guia e o melhor movimento é

selecionado.

Figura 11: Algoritmo de Reconexão por caminho padrão.

A Figura 11 apresenta um algoritmo de reconexão por caminho padrão que será

aplicado como cruzamento no momento algoritmo genético desenvolvido.

Procedimento ReconexãoPadrão(Sinicial , Sguia);

inicio

1. f* ;

2 S Sinicial ;

3. Enquanto S ≠ Sguia ;

4. Movimento de vizinhança de S em direção a Sguia;

5. Avalie nova solução S;

6. Se f(S) < f*

7. S* S;

8. f* f(S);

9. Fim se

10. Fim enquanto

11. Retorne S*;

Fim ReconexãoPadrão

VI CONGRESSO NACIONAL DE EXCELÊNCIA EM GESTÃO Energia, Inovação, Tecnologia e Complexidade para a Gestão Sustentável

Niterói, RJ, Brasil, 5, 6 e 7 de agosto de 2010

15

4.2 Algoritmo genético com reconexão por caminho

O algoritmo genético aplicado ao problema é desenvolvido conforme Figura 12.

A população inicial possui tamanhos tamPop que variam entre 100, e 200 e é gerada

através do algoritmo Gera-População( ).

Figura 12: Algoritmo Genético desenvolvido.

Após gerar a população é aplicado a heurística 2-OPT a cada indivíduo e em seguida

realiza-se a ordenação dos mesmos em ordem crescente de custo (minimização de rota).

O critério de parada do algoritmo genético é estabelecido segundo seu tempo de

execução.

Na construção de cada nova geração é utilizado o seguinte critério:

copiar os 20% melhores indivíduos;

gerar 70% de novos indivíduos utilizando path-relinking (reconexão por caminho) no

operador cruzamento;

Gera População Ordena População

Copia 20% dos melhores

indiv. para a nova população

Gera 70% de novos

indivíduos via Path-relinking

Gera 10% de novos indiv.

Randomicamente

+ 2-OPT

Copia a nova

população para a

população atual

Ordena População Condição

Parada

2-OPT

Fim

S

N

VI CONGRESSO NACIONAL DE EXCELÊNCIA EM GESTÃO Energia, Inovação, Tecnologia e Complexidade para a Gestão Sustentável

Niterói, RJ, Brasil, 5, 6 e 7 de agosto de 2010

16

gerar 10% de novos indivíduos pelo algoritmo GeraPopulação. É aplicado 2-opt

nestes novos indivíduos;

ordenar nova população.

A seleção dos indivíduos para aplicação dos operadores genéticos é feita via roleta

russa, onde é atribuído a cada indivíduo uma probabilidade de ser selecionado, proporcional

ao seu valor em relação ao soma dos valores de todos os indivíduos.

São utilizados dois operadores de cruzamento denominados pathrelinking1 e

pathrelinking2. Em ambos os casos pode-se exemplificar o Path Relinking como a seguir:

Dado duas soluções genéticas, Xinicial e Xguia, conforme Figura 13.

Figura 13: Solução inicial e solução guia para realizar Path relinking.

Sabendo-se que cada solução genética (cromossomo) corresponde a uma sequência de

codificação numérica de todos os clientes, deve-se selecionar um elemento (cliente) de Xinicial

(Posição A) e localizá-lo em Xguia (Posição B), conforme Figura 14.

Figura 14: Localização dos pontos de permuta.

Em seguida é feito a permuta entre os elementos nas posições A e B em Xinicial,

gerando assim a próxima solução genética X1, mais próxima a Xguia, conforme Figura 15.

VI CONGRESSO NACIONAL DE EXCELÊNCIA EM GESTÃO Energia, Inovação, Tecnologia e Complexidade para a Gestão Sustentável

Niterói, RJ, Brasil, 5, 6 e 7 de agosto de 2010

17

Figura 15: Novo par de soluções para Path Relinking.

O que diferencia os operadores é que o pathrelinking1 seleciona aleatoriamente o

elemento da solução Xn para busca em Xguia. Já o operador pathrelinking2 testa todos os

elementos da solução Xn para determinar o melhor movimento na busca de Xguia.

É aplicado 2-OPT em toda solução modificada pelo operador de cruzamento.

Terminado o tempo de execução do algoritmo genético, é selecionado o melhor

indivíduo da última geração para execução da função Fraciona_Rotas( ), que é uma

adaptação, para o algoritmo genético, da função Gera_Rotas( )..

A função Fraciona_Rotas( ) constrói a solução final composta de sub-rotas derivadas

da solução geral proposta pelo algoritmo genético.

5. Resultados

Para cada algoritmo desenvolvido, a saber VND, Algoritmo Genético 1 com

reconexão de caminho por pathrelinking1 e Algoritmo Genético 2 com reconexão de caminho

por pathrelinking2, são aplicados testes com rotas de 100 e 200 pontos em intervalos de

tempo de execução de 30segundos, 3 minutos e 10 minutos.

Objetiva-se com esta parametrização demonstrar a relação de performance de cada

algoritmo em relação ao tamanho do problema e tempo disponibilizado para execução do

algoritmo.

Para a análise mais detalhada dos objetivos propostos é apresentada a Tabela 2

constituída dos valores médios de custo das rotas definidas pelas instâncias. Cada evento

(linha da tabela 2) foi executado 5 vezes viabilizando então o cálculo de sua respectiva média.

VI CONGRESSO NACIONAL DE EXCELÊNCIA EM GESTÃO Energia, Inovação, Tecnologia e Complexidade para a Gestão Sustentável

Niterói, RJ, Brasil, 5, 6 e 7 de agosto de 2010

18

Conforme Figura 16 o Algoritmo Genético 1 apresentou melhores resultados em

relação ao Algoritmo Genético 2 quando executados em pequenos tempo de execução. A

medida que o tempo de execução cresce, aumenta a performance do Algoritmo Genético 2 em

Relação ao Algoritmo Genético 1.

Tabela 2 – Valores médios das rotas segundo instancias, pontos e tempo de execução.

0,00

500,00

1000,00

1500,00

2000,00

2500,00

3000,00

30 seg 3 min 10 min

M édia GRASP VND

M édia Genético 1

M édia Genético 2

Figura 16: Performance de execução para 100 pontos

Uma vez que o Algoritmo Genético 2 executa um trabalho mais exaustivo de

cruzamento, o aumento do número de pontos interfere a favor da performance do Algoritmo

Instancias Nº de Pontos Tempo. Exec. Média VND Média Genético 1 Média Genético2

In0100_0001 100 30 seg. 3309,41 2338,78 2233,16

In0100_0002 100 30 seg. 3168,96 2244,26 2323,37

In0100_0003 100 30 seg. 3188,25 2172,48 2371,67

In0100_0001 100 3 min. 3282,90 2240,70 2211,75

In0100_0002 100 3 min. 3217,50 2331,59 2262,57

In0100_0003 100 3 min. 3131,86 2328,03 2267,63

In0100_0001 100 10 min. 3231,00 2164,29 2092,57

In0100_0002 100 10 min. 3061,11 2116,47 2140,27

In0100_0003 100 10 min. 3256,89 2262,18 2280,94

In0200_0001 200 30 seg. 5748,58 4117,82 4383,76

In0200_0002 200 30 seg. 5688,64 4096,37 4242,01

In0200_0003 200 30 seg. 5567,08 4026,74 4244,75

In0200_0001 200 3 min. 5600,63 4045,89 4118,11

In0200_0002 200 3 min. 5648,28 3988,15 4077,19

In0200_0003 200 3 min. 5627,09 3993,00 4086,30

In0200_0001 200 10 min. 5595,44 3796,66 3887,41

In0200_0002 200 10 min. 5598,11 3626,72 3656,26

In0200_0003 200 10 min. 5446,58 3646,69 3916,81

VI CONGRESSO NACIONAL DE EXCELÊNCIA EM GESTÃO Energia, Inovação, Tecnologia e Complexidade para a Gestão Sustentável

Niterói, RJ, Brasil, 5, 6 e 7 de agosto de 2010

19

1. Como consequencia pode-se visualizar que, conforme Figura 17, o aumento de tempo de

execução pode não implicar necessariamente em uma melhoria de performance do Algoritmo

Genético 2 em relação ao Algoritmo Genético 1.

0,00

1000,00

2000,00

3000,00

4000,00

5000,00

30 seg 3 min 10 min

M édia GRASP VND

M édia Genético 1

M édia Genético 2

Figura 17: Performance de execução para 200 pontos

A Tabela 3 demonstra o comparativo de performance do Algoritmo Genético 2 em

relação ao Algoritmo Genético 1. Desta forma pode-se observar que somente para o caso de

números menores de pontos (100) com tempo maior de execução (3 minutos), o valor médio

do custo de rota quando aplicado o Algoritmo Genético 1 foi menor (-2,30%) do que o custo

de rota quando aplicado o Algoritmo Genético 1.

Tabela 3 – Performance Algoritmo Genético 2 em relação ao Algoritmo Genético 1

N. de

Pontos

Tempo Perc

100 30 seg. 1,08%

100 3 min. -2,30%

200 30 seg. 5,15%

200 3 min. 2,13%

Quando comparada a performance do Algoritmo Genético 1 em relação ao GRASP

VND, conforme Tabela 4, e a performance do Algoritmo Genético 2 em relação ao GRASP

VND, conforme Tabela 5, identifica-se melhor resultado para os genéticos, independente dos

VI CONGRESSO NACIONAL DE EXCELÊNCIA EM GESTÃO Energia, Inovação, Tecnologia e Complexidade para a Gestão Sustentável

Niterói, RJ, Brasil, 5, 6 e 7 de agosto de 2010

20

parâmetros tempo de execução e tamanho de problema.

Tabela 4: Performance Algoritmo Genético 1 em relação ao GRASP

Pontos Tempo Perc.

100 30 seg. -17,28%

100 3 min. -15,15%

100 10 min. -18,71%

200 30 seg. -12,59%

200 3 min. -13,33%

200 10 min. -18,84%

Tabela 5: Performance Algoritmo Genético 2 em relação ao GRASP

Pontos Tempo Perc.

100 30 seg. -16,39%

100 3 min. -17,10%

100 10 min. -21,06%

200 30 seg. -8,10%

200 3 min. -11,49%

200 10 min. -15,98%

Agradecimentos

Este trabalho foi financiado pelo Conselho Nacional de Desenvolvimento Científico e

Tecnológico (CNPq), pela Fundação de Amparo à Pesquisa do Estado do Rio de Janeiro

(FAPERJ), pelo Parque de Alta Tecnologia do Norte Fluminense (TECNORTE) e pela

Fundação Estadual do Norte Fluminense (FENORTE).

Referências

VI CONGRESSO NACIONAL DE EXCELÊNCIA EM GESTÃO Energia, Inovação, Tecnologia e Complexidade para a Gestão Sustentável

Niterói, RJ, Brasil, 5, 6 e 7 de agosto de 2010

21

DERIGS, U.; Metz, A. A matching-based approach for solving a delivery pick-up

vehiclerouting problem with time constraints. OR Spektrum, 14 (2), 91-106, 1992.

FEO, T.A.; RESENDE, M.G.C. Greedy randomized adaptive search procedures. Journal of

Global Optimization 6, 109-133, (1995).

GENDREAU, M.; LAPORTE, G.; VIGO, D. Heuristics for the traveling salesman problem

with pickup and delivery. Computers and Operations Research, v. 26, n. 7, 699-714, 1999.

HELSGAUN, K. An efective implementation of the Lin-Kernighan travelling Salesman

heuristic. European Journal of Operational Research, 126(1), 106-130, 2000.

HOLLAND, J. Adaption in Natural and Artificial Systems. MIT Press, 1975..

LENSTRA, J.; RINNOOY, K.A. Complexity of vehicle routing and scheduling problems.

Networks, 11, 221-227, 1981.

LIN, S. Computer solution of the traveling salesman problem. Bell System Technical

Journal, 44, 2245-2269, 1965.

LIN, S.; KERNIGHAN, B. An efective heuristic algorithm for the travelling salesman

problem. Operations Research, 21, 498-516, 1973.

MIN, H. The multiple vehicle routing problem with simultaneous delivery and pickup points.

Transportation Research A, v. 23, n. 5, 377-386, 1989.

MLADENOVIC, N; HANSEN, P. Variable neighborhood Search. Computers and

Operations Research, v. 24, 1097-1100, 1997.

MONTANÉ, F.A.T.; GALVÃO, R. D. A tabu search algorithm for the vehicle routing

problem with simultaneous pick-up and delivery service. Computers and Operations

Research, v. 33, n. 3, 595-619, 2006.

MOURA,A.; OLIVEIRA,J.F. Uma Heurística Composta para a Determinação de Rotas para

Veículos em Problemas com Janelas Temporais e Entregas e Recolhas, (2004).

OLIVEIRA, H.C.B. Um modelo híbrido estocástico para tratamento do problema de

roteamento de veículos com janela de tempo. Universidade Federal de Pernambuco, 2007.

VI CONGRESSO NACIONAL DE EXCELÊNCIA EM GESTÃO Energia, Inovação, Tecnologia e Complexidade para a Gestão Sustentável

Niterói, RJ, Brasil, 5, 6 e 7 de agosto de 2010

22

RESENDE, M.G.C.; RIBEIRO, C.C. Greedy randomized adaptive search procedures. F.

Glover e G. Kochenberger (Eds.), Handbook of Metaheuristics, Kluwer, 219-249, 2003.

SOSA, N.G.; GALVÃO,R.D.; GANDELMAN,D.A. Algoritmo de busca dispersa aplicado ao

problema clássico de roteamento de veículos, Pesqui. Oper. v.27, n.2, Rio de Janeiro, 2007.

VIANNA, D. S.; OCHI, L. S.; DRUMMOND, L. M. A. A parallel hybrid evolutionary

metaheuristic for the period vehicle routing problem with heterogeneous fleet. Lecture Notes

in Computer Science, 1388, 216-225, 1999.