Problema de roteamento de veículos assimétrico com frota heterogênea limitada: um estudo de caso em
uma indústria de bebidas
1 Introdução
O Problema de Roteamento de Veículos (PRV)
é um dos problemas de distribuição logística
mais conhecido e estudado na área de otimização
combinatória em virtude da sua aplicabilidade e
importância, especialmente na cadeia de suprimentos.
Devido a sua complexidade de resolução, o PRV é
considerado NP-Difícil, isto é, a dificuldade para
encontrar a solução ótima cresce exponencialmente
à medida que o número de clientes aumenta.
O PRV em sua forma clássica é definido como
segue: seja um grafo não orientado G = (V,E), em
que V = {v0, v1, ...,vn} é o conjunto de vértices de G,
enquanto E = {(vi, vj):vi, vj . V i<j} é o conjunto de
arestas de G. O vértice v0 representa o depósito com
m veículos idênticos de capacidade Q e os restantes
representam os clientes. Cada cliente vi possui uma
demanda não negativa qi. Um custo não negativo cij
de deslocamento do cliente i ao j está associado a
cada aresta {vi, vj}, em que cij pode ser interpretado
em termos de distância, tempo ou custos de viagem.
O PRV consiste em determinar um conjunto de rotas
(cada uma associada a um veículo), tal que cada cliente
seja visitado uma única vez, por um único veículo, de
modo que o custo total de viagem seja minimizado
e a demanda de cada cliente seja atendida. Cada
veículo deve iniciar e terminar o percurso no depósito
v0 e a demanda total de cada rota não deve exceder a
capacidade do veículo. Tal problema é denominado
Problema de Roteamento de Veículos Capacitado.
Uma representação gráfica de uma solução de um
PRV contendo 3 rotas é apresentada na Figura 1.
Quando o custo de deslocamento do cliente i para
o cliente j difere do custo no sentido oposto, tem-se o
PRV Assimétrico (PRVA) que, ao contrário do PRV, é
definido sobre um grafo orientado G = (V, A), em que
A = {(vi, vj):vi, vj .V, i . j} é o conjunto de arcos de G.
Para o caso de um conjunto com K tipos de veículos
com capacidades Qk distintas, tem-se o PRV com Frota
Heterogênea (PRVFH). Nesta variante, duas situações
podem ocorrer: quando o número de veículos de cada
tipo é conhecido, a frota é limitada, caso contrário,
é ilimitada. Além disso, custos fixos e/ou variáveis
associados a cada tipo de veículo podem ou não ser
considerados.
Ao combinar o caso assimétrico com veículos
de capacidades distintas e frota limitada, tem-se o
Problema de Roteamento de Veículos Assimétrico
com Frota Heterogênea Limitada (PRVAFHL).
Este trabalho trata de uma extensão ao trabalho
de Kramer et al. (2012), o qual se refere a um estudo
de caso relativo ao PRVAFHL em uma indústria de
bebidas, considerada a maior envasadora de água
mineral do País, contando com diversas unidades
fabris distribuídas ao longo do território brasileiro. O
objetivo consiste em determinar as rotas de distribuição
e comparar os resultados obtidos com os adotados
pela empresa.
PRVs, assim como muitos dos problemas de
otimização combinatória (p.ex. problemas de
empacotamento, sequenciamento da produção,
localização, escalonamento de mão de obra, entre
outros), são geralmente tratados por métodos
heurísticos, especialmente quando aplicados a casos
reais e de grandes dimensões. Entende-se heurística
como sendo um conjunto de métodos e regras,
inspiradas em processos intuitivos, que conduzem à
resolução de problemas. Ao contrário dos métodos
exatos, que garantem a melhor solução possível para
o problema (de acordo com o modelo matemático
que o representa) ao custo de um elevado tempo
de resolução, os métodos heurísticos não garantem
a otimalidade das soluções, porém são capazes
de gerar soluções próximas da ótima em tempos
relativamente curtos. Uma explicação detalhada sobre
heurísticas e meta-heurísticas pode ser encontrada
em Souza (2007), Blum & Roli (2003) e Gendreau
& Potvin (2010).
Para a resolução do problema proposto, decidiu-se
utilizar a heurística ILS-RVND (Penna et al., 2013),
devido a sua flexibilidade, simplicidade, robustez e
ao seu bom desempenho computacional. Durante a
coleta de dados, utilizou-se a Application Programming
Interface (API) do Google Maps para a aquisição das
matrizes de distância e tempo entre clientes.
O restante do artigo está organizado da seguinte
forma. Inicialmente, uma breve descrição sobre os
trabalhos relacionados é apresentada na Seção 2.
A Seção 3 caracteriza a empresa objeto do estudo
de caso, bem como as particularidades do processo
de distribuição. A Seção 4 descreve o algoritmo
desenvolvido para a aquisição das matrizes de distância
e tempo. Na Seção 5, é apresentado o algoritmo
ILS-RVND bem como os procedimentos de geração
da solução inicial, de busca local e de perturbação.
A Seção 6 contém os resultados obtidos, e são feitas
comparações com os adotados pela empresa. Por fim,
a Seção 7 conclui o trabalho.
Figura 1. Solução de um PRV com 3 veículos e 56 clientes.
2 Trabalhos relacionados
O PRV foi introduzido inicialmente por Dantzig
& Ramser (1959) no final dos anos 1950 para a
resolução do problema de distribuição de gasolina.
Nele foi apresentada a primeira formulação matemática
e abordagem algorítmica para o PRV. A partir daí,
o número de estudos e pesquisas relacionados ao
tema cresceu significativamente. Toth & Vigo (2002)
e Golden et al. (2008), por exemplo, reúnem uma
quantidade razoável de aplicações nos mais diversos
ramos de atuação.
Dada a elevada complexidade de resolução do
problema e, dependendo das características da
instância, a dificuldade de geração de soluções
viáveis, a utilização de técnicas computacionais pode
contribuir para uma redução nos custos de transporte
na ordem de 5% a 20%, conforme afirmado por Toth
& Vigo (2002).
Aplicações reais de PRVs em indústrias alimentícia,
de resíduos sólidos, de bebidas, de laticínios e de
distribuição de jornal podem ser encontradas em
Golden et al. (2002). Os autores mostram que a
utilização de técnicas de pesquisa operacional na
logística de distribuição pode contribuir para a
redução dos custos e aumento da produtividade, além
de apresentarem diversos trabalhos práticos de PRV
encontrados na literatura.
O problema de distribuição de água mineral na
cidade de Itú foi estudado por Gonçalves et al. (2005).
Para solucioná-lo, os autores definiram clusters de
clientes após a determinação de medianas para, então,
efetuar o roteamento. Foram utilizadas a heurística
das economias de Clarke & Wright (1964), a da
Inserção do Ponto Mais Próximo, e a meta-heurística
Busca Tabu.
A importância prática do PRVFH pode ser verificada
pela grande variedade de estudos de caso encontrados
na literatura. Tarantilis & Kiranoudis (2001), Prins
(2002) e Tarantilis & Kiranoudis (2007) mostram
aplicações com frota limitada na indústria láctea,
moveleira, alimentícia e de construção civil. Uma
aplicação com frota ilimitada em uma rede varejista
brasileira é descrita em Belfiore & Yoshizaki (2009),
com particularidades de que cada loja possui restrições
de janela de tempo e a determinados tamanhos de
veículos, podendo ser atendidas por mais de um
veículo. Campos et al. (2006) solucionaram o PRVFH
com restrições de janela de tempo de um dos maiores
grupos varejistas do Brasil por meio de algoritmos
genéticos e computação paralela. A abordagem
utilizada foi capaz de reduzir os custos das soluções
adotadas pela empresa em cerca de 13%.
A primeira versão assimétrica do PRVFH foi
inicialmente abordada por Marmion et al. (2010).
Os autores desenvolveram quatro algoritmos com
o objetivo principal de comparar o desempenho de
dois operadores clássicos: troca e inserção.
Além da metodologia utilizada para solucionar
o problema de roteamento, um fator crucial para
a garantia da qualidade das soluções consiste no
modo em que as informações são coletadas. Dado
que a métrica utilizada para avaliação das soluções
de PRVs se baseiam, em sua maioria, na distância
total percorrida pelos veículos, a definição de maneira
precisa da localização e da distância entre clientes
são pré-requisitos fundamentais para o aumento
da confiabilidade da qualidade das soluções. Neste
contexto, Galvão et al. (1997) investigaram a
integração de modelos de roteamento a Sistemas
de Informação Geográfica (SIG) aplicados à um
problema simulado de distribuição de refrigerantes,
no Rio de Janeiro. Tarantilis & Kiranoudis (2002),
por sua vez, propuseram um sistema de apoio à
decisão que integra SIG com métodos heurísticos
para solucionar PRVs em Atenas.
Devido à importância prática dos PRVs, verifica-se
a existência de um elevado número de softwares
disponíveis no mercado capazes de solucioná-los.
Baker (2002) compara diferentes softwares atentando
para os algoritmos de otimização utilizados. Uma
pesquisa mais recente quanto ao preço, desempenho
computacional, algoritmos utilizados, variantes
solucionáveis, entre outros aspectos, pode ser
encontrada em Partyka & Hall (2010).
3 Caracterização da empresa e de seu processo de distribuição
A unidade fabril analisada está sediada na Paraíba
e possui milhares de clientes, desde pequenos
revendedores até grandes redes de supermercados,
distribuídos ao longo da região nordeste. Além do
envase de água mineral, a empresa produz refrigerantes,
sucos e energéticos. A distribuição dos produtos aos
clientes é de responsabilidade da própria empresa
que, para isso, conta com o auxílio de um software
de roteamento.
A frota disponível para realizar a distribuição é
composta por 37 veículos, sendo 36 terceirizados,
com capacidades distintas, e um veículo próprio com
capacidade de 25 toneladas. Esta frota é utilizada para
entregar os pedidos dos clientes de todo o Estado da
Paraíba e de alguns estados da região nordeste. A
Tabela 1 apresenta as características dos veículos.
Tabela 1. Frota de veículos.
Os dados referentes aos pedidos dos clientes foram
restritos à região da Grande João Pessoa (GJP),
abrangendo, além desta, outras 4 cidades. Por dia,
são atendidos em média 300 clientes nesta região.
Os pedidos de vendas são entregues diariamente
ao setor de distribuição após serem coletados pelos
vendedores. Como praticamente todos os veículos são
terceirizados e o pagamento é realizado em termos
da distância percorrida e utilização dos veículos, é
de interesse da empresa reduzi-las.
4 Obtenção das distâncias e tempos entre clientes
Os dados utilizados na resolução do problema
foram fornecidos pela empresa estudada. No entanto,
durante a coleta desses dados não foi possível obter
as matrizes de distância e tempo entre clientes. Estas
informações pertencem à empresa desenvolvedora
do software de roteamento, que não foi contatada por
envolver questões financeiras. Diante do exposto,
optou-se pela utilização do Google Maps para
obtenção destes dados.
O Google Maps é um serviço do Google que oferece
uma poderosa e amigável tecnologia de mapas, a qual
permite, entre diversas funcionalidades, localizar
endereços e obter rotas entre duas ou mais localidades,
fornecendo uma descrição do trajeto, bem como a
distância e o tempo necessário para realizá-lo. O
Serviço está disponível apenas via Internet.
A Google Maps JavaScript API é um serviço
gratuito, disponível para qualquer site de acesso
livre. Contudo, algumas funções estão limitadas
a uma determinada quantidade e frequência de
requisições. Por exemplo, ao solicitar a rota de um
local para outro, tem-se uma requisição. O serviço de
solicitação de rotas está limitado a 15.000 requisições
diárias. Ao atingir os limites diários estabelecidos,
o usuário é bloqueado temporariamente a partir do
seu endereço de IP (Protocolo de Internet, do inglês
Internet Protocol), não podendo utilizar o serviço
por um período de 24 horas.
Considerando que na empresa estudada, em
média, 300 clientes realizam pedidos diariamente,
as matrizes de distância e tempos terão, cada uma,
aproximadamente, 90.000 elementos. Logo, para o
preenchimento completo das matrizes, a quantidade
de requisições ultrapassaria os limites estabelecidos
pelo Google, caso fossem solicitados ponto a ponto.
No entanto, ao invés de enviar uma solicitação de rota
fornecendo a localização de 2 clientes por vez, foi
desenvolvido um algoritmo que fornece um trajeto
(limitado a 25 pontos) como requisição. Desse modo,
ao se passar um trajeto contendo 25 pontos (clientes), é
possível obter 24 distâncias e 24 tempos por requisição,
tornando-se assim viável a obtenção das matrizes
sem exceder os limites do serviço. Por exemplo, ao
se passar um trajeto com 5 pontos, A-B-C-D-E, é
possível obter 4 distâncias (d) e 4 tempos (t) entre
clientes: dAB, dBC, dCD, dDE e tAB, tBC, tCD, tDE.
O Algoritmo 1 apresenta o método desenvolvido
para a obtenção das matrizes de distância e tempo
entre clientes. As coordenadas de localização dos
clientes foram fornecidas pela empresa.
5 O algoritmo ILS-RVND
O algoritmo proposto consiste em uma adaptação
do ILS-RVND apresentado por Penna et al. (2013).
O ILS-RVND é baseado na meta-heurística Iterated
Local Search (ILS) (Lourenço et al., 2002) que faz uso
de um procedimento Variable Neighborhood Descent
(Hansen et al., 2010), com uma ordem aleatória de
vizinhanças (RVND) na fase de busca local. Com
a finalidade de contribuir para a diversificação do
espaço de busca e, consequentemente, para a geração
de soluções de boa qualidade, o ILS-RVND utiliza
mais de um tipo de procedimento para a construção
de soluções iniciais, bem como de busca local e de
perturbação. O algoritmo ILS-RVND original foi
adaptado de modo a considerar particularidades do
estudo de caso, tais como os limites de duração das
rotas e as distâncias assimétricas entre clientes.
O pseudocódigo do ILS-RVND se encontra
ilustrado no Algoritmo 2. O algoritmo tem como
parâmetros de entrada MaxIter, MaxIterILS e v, e
este último representa o número total de veículos
disponíveis. MaxIter representa o número de vezes
que o algoritmo será executado (linhas 4-21), de modo
que, a cada iteração, uma solução inicial é gerada.
Depois da geração da solução inicial, o laço principal
do algoritmo ILS é executado MaxIterILS vezes (linhas
8-16), em que se procura melhorar a solução inicial
através de procedimentos de busca local (linha 9) e
de perturbação (linha 14). Caso a melhor solução
encontrada após a repetição (MaxIterILS vezes) dos
procedimentos de busca local e de perturbação seja
melhor que a solução inicial gerada, esta passa a ser a
solução corrente e o algoritmo é reiniciado da linha 3.
Algoritmo 1. Obtendo matrizes de distância e tempos entre clients.
Algoritmo 2. ILS-RVND.
5.1 Geração da solução inicial
O procedimento para construção de soluções iniciais
faz uso de dois critérios de inserção, particularmente,
o Critério de Inserção Mais Barata Modificado
(CIMBM) e o Critério de Inserção Mais Próxima
(CIMP). Além disso, duas estratégias de inserção
foram empregadas: a Estratégia de Inserção Sequencial
(EIS) e a Estratégia de Inserção Paralela (EIP).
O pseudocódigo do procedimento de Geração da
Solução Inicial está representado no Algoritmo 3.
Inicialmente, os veículos são ordenados por capacidade
de maneira decrescente, de forma a designar a
cada veículo uma rota contendo apenas um cliente,
escolhido de acordo com a maior demanda (linhas
4-8). Posteriormente, um critério e uma estratégia
de inserção são selecionados de maneira aleatória
(linhas 9-10). Em seguida, uma solução inicial é
gerada, utilizando o critério e estratégia selecionados
(linhas 11-15). Se for gerada uma solução inviável,
o procedimento é reiniciado da linha 3. No caso do
PRVAFHL, uma solução inviável é obtida quando
os veículos disponíveis não são capazes de atender
todos os clientes ou a duração de uma ou mais rotas
ultrapassa o limite permitido. Caso não seja possível
gerar uma solução inicial viável após um determinado
número de tentativas consecutivas, um veículo extra
é adicionado com o intuito de facilitar a geração de
uma solução inicial completa (este veículo não poderá
ser utilizado na solução final).
O CIMBM consiste em inserir em uma determinada
rota um cliente k . Lista de Candidatos (LC) que
apresente o menor custo de inserção representado pela
Expressão (1), em que a primeira parcela computa
o custo de inserção do cliente k entre dois clientes
adjacentes i e j, enquanto a segunda é um artifício
utilizado para evitar a inserção tardia de clientes
localizados longe do depósito, representando uma
redução no custo de inserção em função da distância
ao depósito (ida e volta). O parâmetro . pode assumir
qualquer valor contido no seguinte conjunto: {0.00,
0.05, 0.10, ..., 1.65, 1.70} (Subramanian et al., 2010).
No CIMP, deve-se incluir à rota o cliente k . LC
que apresente a menor distância a um determinado
cliente i já inserido, conforme representado na
Expressão (2), em que se considera que k é sempre
inserido após i.
<formula/>
Na EIS, apenas uma rota é considerada para
inserção a cada iteração. Se o critério de inserção for o
CIMBM, então, o valor de . é escolhido aleatoriamente
a partir do conjunto já especificado. Enquanto a LC
não estiver vazia e existir pelo menos um cliente
k . LC que possa ser adicionado à solução corrente
sem violar nenhuma restrição, insere-se um cliente
em cada rota (entre as possíveis) de acordo com o
critério de inserção selecionado.
A EIP difere do caso anterior por considerar todas
as rotas durante o cálculo dos custos de inserção.
Desse modo, avalia-se a inserção do cliente k em
todas as posições de todas as rotas, inserindo-o na
rota que apresentar o menor custo de inserção e que
não viole as restrições do problema (linhas 7-12).
5.2 Busca local
Uma das principais características da meta-heurística
ILS-RNVD é realizar uma ordenação aleatória das
estruturas de vizinhanças (Randomized Variable
Neighbourhood Descent – RVND), ao contrário das
abordagens usuais do VND que empregam uma ordem
determinística na troca de vizinhanças, evitando assim
a utilização de parâmetros de ajustes, como também
prevenindo a convergência prematura para soluções
ótimas locais de baixa qualidade.
Algoritmo 3. Geração da Solução Inicial.
O pseudocódigo do método RVND é mostrado
no Algoritmo 4. Inicialmente uma vizinhança entre
rotas é selecionada aleatoriamente em uma Lista
de Vizinhanças LV (linha 4). Encontra-se então a
melhor solução a partir do conjunto de movimentos
da vizinhança selecionada e, caso a solução encontrada
seja melhor que a solução corrente, esta passa a ser
a solução corrente para, então, ser efetuada uma
busca local intrarrotas (linhas 6-9). Uma vez que
seja encontrada uma melhora com uma vizinhança
entre rotas, todas as vizinhanças excluídas voltam a
popular a LV (linha 9). Caso a solução encontrada
com a vizinhança entre rotas não seja melhor que a
solução corrente, tal vizinhança é excluída de LV (linha
12), e repetem-se os mesmos procedimentos (a partir
da linha 4) até que a lista se torne vazia (linha 4).
O algoritmo de busca local intrarrotas, de maneira
similar às entre rotas, consiste em selecionar
aleatoriamente uma vizinhança contida numa lista
LV2, encontrar a melhor solução por meio dos
movimentos da vizinhança selecionada e, caso seja
melhor que a solução corrente, torna-se a nova solução
corrente. Caso não seja melhor, a vizinhança analisada
é excluída de LV2 e os mesmos procedimentos são
repetidos até que se esvazie a lista. A lista LV2 é
sempre inicializada após uma melhora por vizinhança
entre rotas.
Algoritmo 4. RVND.
Tanto nos procedimentos de busca local entre rotas
quanto nos intrarrotas, apenas movimentos que não
violem as restrições de capacidade do veículo e de
duração das rotas são aceitos. O algoritmo verifica
se o movimento é viável ou não, sempre após a
constatação de uma melhora na solução corrente.
Deste modo, obtém-se uma economia no tempo de
execução do algoritmo.
A verificação da restrição de capacidade do veículo
pode ser realizada em um tempo computacional
constante simplesmente comparando a soma das
demandas dos clientes com a capacidade do veículo
de uma determinada rota. Já para a verificação da
restrição de duração das rotas ser realizada em um
tempo constante, necessita-se de um controle da duração
de cada rota durante todo o procedimento de busca
local. Algumas estruturas auxiliares são utilizadas
pelo algoritmo ILS-RVND com a finalidade de se
obter uma melhora de desempenho computacional.
Uma descrição detalhada destas estruturas pode ser
encontrada em Penna et al. (2013).
5.2.1 Estruturas de vizinhança entre rotas
Para a resolução do PRVAFHL, foram utilizadas
seis estruturas de vizinhança entre rotas. Cinco dessas
estruturas se baseiam no esquema .-interchanges
(Osman, 1993), que consiste em trocar até . clientes
entre duas rotas, enquanto uma se baseia no operador
Cross-exchange (Taillard et al., 1997), que consiste em
trocar dois segmentos de rotas diferentes. Para limitar
o número de possibilidades, adotou-se . = 2. Uma
descrição de cada estrutura é apresentada a seguir.
1. Shift(1,0) – Consiste na transferência de um
cliente de uma rota para outra rota.
2. Shift(2,0) – Consiste na transferência de dois
clientes, k1 e k2, de uma rota para outra. Neste
caso é verificada tanto a transferência do arco
(k1, k2) quanto a do arco (k2, k1).
3. Swap(1,1) – Consiste na troca de um cliente de
uma rota com um cliente de outra rota.
4. Swap(2,1) – Consiste na troca de dois clientes
adjacentes, k1 e k2, de uma rota com um cliente,
k3, de outra rota. Neste caso, também verifica-se
a transferência do arco (k1,k2) e do arco (k2,k1).
5. Swap(2,2) – Consiste na troca de dois clientes
adjacentes, k1 e k2 de uma rota com dois clientes
adjacentes, k3 e k4, de outra rota. Nesta situação,
devem ser consideradas todas as 4 combinações
possíveis de trocas entre os arcos formados
pelos dois pares de clientes.
6. Cross – Consiste na troca de um segmento de
uma rota por um segmento de outra rota. Um
segmento de rota é determinado pelo conjunto de
clientes localizados no trajeto entre dois clientes.
Para o algoritmo proposto, foram considerados
apenas os segmentos de rota terminando no
depósito.
Uma ilustração gráfica das vizinhanças inter-rotas
implementadas é apresentada na Figura 2, em que s
representa um segmento de rota, contendo um ou mais
clientes, e . representa um operador de concatenação
entre dois segmentos de rota.
Figura 2. Vizinhanças inter-rotas.
5.2.2 Estruturas de vizinhança intrarrotas
Este conjunto de vizinhanças consiste na execução de
movimentos que envolvam os clientes de uma mesma
rota. Nesse caso, não é necessário verificar as restrições
de capacidade dos veículos, pois considerando que a
solução existente anterior seja viável, a mudança de
posição de clientes em uma mesma rota não alterará
sua demanda total. Todavia, a verificação do tempo
de duração da rota torna-se necessária, uma vez
que a mudança de posição dos clientes modificará
o trajeto percorrido e, consequentemente, o tempo
total de duração da rota. Foram utilizadas quatro
estruturas de vizinhança intrarrotas, cujas descrições
são apresentadas a seguir.
1. Reinserção – Um cliente é removido da rota e
inserido em outra posição.
2. Or-Opt2 – Dois clientes adjacentes são removidos
da rota e inseridos em outra posição.
3. Or-Opt3 – Três clientes adjacentes são removidos
da rota e inseridos em outra posição.
4. Exchange – Troca entre dois clientes não
adjacentes.
Uma ilustração gráfica das vizinhanças intrarrotas
implementadas pode ser visualizada na Figura 3.
5.3 Perturbação
Segundo Lourenço et al. (2002), tal como a
busca local, os mecanismos de perturbação são
considerados aspectos-chave para o bom desempenho
da meta-heurística ILS.
Ao contrário dos procedimentos de busca local,
os mecanismos de perturbação não objetivam uma
melhora na solução. Sua utilidade consiste em realizar
modificações na solução corrente, de modo a escapar
de ótimos locais.
Do mesmo modo que nos procedimentos anteriores,
foram utilizadas duas perturbações, selecionadas
aleatoriamente. Tais procedimentos são descritos
a seguir:
1. Multiple-Swap(1,1) – Consiste na execução de
vários movimentos da vizinhança Swap(1,1)
entre diferentes pares de rotas selecionados de
maneira aleatória.
2. Multiple-Shift(1,1) – Consiste na execução
aleatória de vários movimentos da vizinhança
Shift(1,1).
Figura 3. Vizinhanças intrarrotas.
6 Resultados computacionais
Nesta seção, é apresentada uma descrição das
instâncias (pedidos diários) quanto à frota de veículos e
à demanda. Posteriormente é realizada uma comparação
dos resultados obtidos pela meta-heurística ILS-RVND
com os adotados pela empresa analisada.
O algoritmo proposto foi implementado utilizando
a linguagem de programação C++ e executado em um
computador com processador Intel Core i5-2410M
2.3 GHz com 4 GB de memória RAM, sistema
operacional Linux Ubuntu versão 10.10.
Depois de experimentos preliminares, o parâmetro
MaxIter foi adotado como sendo igual a 10 para
todas as instâncias. Já o parâmetro MaxIterILS foi
configurado em função das características da instância
como sendo a soma entre o número de clientes e o
número de veículos disponíveis. Cada instância foi
executada 10 vezes.
Embora o limite de duração das rotas adotado pelo
software da empresa seja de 12 horas, as instâncias
foram resolvidas pela metodologia ILS-RVND para
um limite de 8 horas, de modo a se ajustar aos limites
estabelecidos pelas leis trabalhistas.
6.1 Instâncias
A quantidade e os tipos de veículos considerados
nas instâncias foram os mesmos utilizados pela
empresa para atender apenas os clientes da GJP (de
acordo com as rotas geradas pelo software). Os testes
foram realizados em um conjunto de 7 instâncias,
conforme apresentado na Tabela 2.
Verificaram-se nas soluções geradas pelo software
da empresa, situações em que alguns veículos foram
carregados com mercadorias além da capacidade.
Esta prática é adotada nos casos em que a demanda
do cliente excede a capacidade do veículo.
As instâncias KSP4, KSP5 e KSP6 se referem aos
pedidos de um único dia. Tal divisão foi realizada
devido à existência de pedidos de clientes localizados
em uma região fora da GJP, de modo que uma das rotas
geradas pelo software da empresa continha clientes
da GJP e clientes de fora dessa região. A instância
KSP4 contém todos os clientes. Na instância KSP5,
foram retirados os clientes localizados fora da GJP e
o veículo responsável por essa rota. Já na instância
KSP6, foram desconsiderados todos os clientes
dessa rota, inclusive o veículo (baseado na solução
da empresa). Outro motivo para realizar a divisão
dessa instância foi tentar solucionar o PRVAFHL de
modo a servir todos os clientes da GJP sem utilizar
o veículo responsável pelo atendimento de clientes
de outra região. As soluções obtidas pela ILS-RVND
para a instância KSP5 não puderam ser comparadas
por não se ter a solução da empresa para esta situação.
6.2 Comparação dos resultados
As comparações dos resultados foram feitas em
relação à distância total percorrida pelos veículos e
a quantidade de veículos utilizados.
As melhores soluções encontradas pela heurística
ILS-RVND estão apresentadas na Tabela 3, bem
como as médias e os desvios padrão referentes às
10 execuções. Os resultados estão expressos em
termos de distância percorrida e tempo de execução
do algoritmo.
Verificou-se em todas as instâncias uma redução
considerável na distância total percorrida, conforme
pode ser observado na Tabela 4. Tais reduções podem
ser encaradas como uma redução de custos variáveis,
ao se considerar que os custos de combustível e
depreciação dos veículos aumentam proporcionalmente
com a distância percorrida.
Comparando-se ainda em termos de veículos,
a utilização da heurística ILS-RVND favoreceu a
redução do número de veículos em 3 instâncias
das 6 comparadas, conforme pode ser verificado na
Tabela 5. A redução do número de veículos implica
redução de custos fixos para a empresa, uma vez que
os veículos utilizados são terceirizados.
Tabela 2. Instâncias.
Tabela 3. Estatísticas ILS-RVND.
Tabela 4. Comparações dos resultados em termos de distância percorrida.
Tabela 5. Comparações dos resultados em termos de veículos utilizados.
As melhores soluções encontradas pelo algoritmo
ILS-RVND para as instâncias apresentadas foram
ilustradas com o auxílio do Google Maps, como pode
ser visualizado na Figura 4. Cada polígono representa
uma rota e cada vértice do polígono representa um
cliente (ou depósito).
Figura 4. Melhores soluções.
Figura 5. Gráficos de convergência.
6.3 Gráficos de convergência
Com o intuito de analisar o desempenho do
algoritmo ILS-RVND, comparando os resultados
obtidos pelo software de roteamento da empresa
analisada, foram elaborados gráficos de convergência
para cada instância em que os resultados da empresa
eram conhecidos.
Os gráficos de convergência apresentados na Figura 5
representam o tempo gasto pelo algoritmo ILS-RVND
para alcançar uma solução melhor ou igual à solução
da empresa. Para tanto, o algoritmo ILS-RVND foi
executado 100 vezes, para cada instância, tendo como
critério de parada a obtenção de uma solução melhor
ou igual à obtida pelo software da empresa. Para cada
execução, foram armazenados os tempos necessários
de processamento até que o novo critério de parada
fosse alcançado de modo a inferir a probabilidade de
igualar ou melhorar os resultados da empresa para
um dado tempo de processamento.
A partir da Figura 5, pode-se observar que o tempo
máximo que o algoritmo ILS-RVND necessitou para
alcançar um resultado melhor ou igual que o alcançado
pelo software de roteamento foi de aproximadamente
6 segundos (para a instância de 341 clientes). No
geral, tais resultados foram alcançados em menos de
1 segundo de processamento, enaltecendo o ótimo
desempenho do algoritmo ILS-RVND.
7 Conclusões
Esse artigo tratou do Problema de Roteamento
de Veículos Assimétrico com Frota Heterogênea
Limitada (PRVAFHL) com restrições de tempo
máximo de duração das rotas aplicado ao caso
de uma indústria de bebidas de grande porte. Em
virtude da elevada complexidade computacional
do problema, o uso de métodos exatos é proibitivo,
uma vez que as instâncias consideradas possuem,
em média, 300 clientes. Verificou-se, então, que a
utilização de métodos heurísticos foi uma estratégia
que se adequou bem à proposta do trabalho, isto é,
de gerar boas soluções em um tempo de execução
razoavelmente curto.
Conforme esperado, a heurística ILS-RVND
proposta por Penna et al. (2013) se mostrou bastante
eficiente, gerando soluções de qualidade bastante
elevada. O algoritmo foi testado em um conjunto
de 7 instâncias referentes aos pedidos diários da
empresa, no qual verificou-se melhora média de
aproximadamente 14% em relação às soluções adotadas
pela empresa na prática, em termos de distância
percorrida. Observou-se também uma redução na
utilização de veículos para o atendimento de todos os
clientes. Tais resultados podem ser encarados como
possíveis reduções de custos fixos e variáveis, já que
os veículos são terceirizados e a empresa paga por
dia de utilização dos veículos e arca com os custos
de utilização e manutenção.