Vehicle Routing Problem

Problema de Roteamento de Veículos


O Problema de Roteamento de Veículos (Vehicle Routing Problem ou VRP) foi introduzido em 1959 por Dantzig e Ramser, com o artigo “The Truck Dispatching Problem”.

Dantzig, George B., and John H. Ramser. 'The truck dispatching problem.' Management science 6.1 (1959): 80-91.

A fundamentação do Problema de Roteamento de Veículos está em definir um conjunto de rotas a serem percorridas por veículos, reduzindo os custos com transportes até determinados consumidores, dado à distância, e obedecendo que: cada rota começa e termina num ponto inicial (depósito), todo consumidor é visitado somente uma vez por somente um veículo e a demanda total de qualquer rota não pode ultrapassar capacidade de um veículo.

Exemplo de Vehicle Routing Problem


Existem variações do VRP, baseadas na capacidade do veículo, prioridades de entrega, janela de tempo, etc. Existe um grupo de problemas com o mesmo objetivo do problema de roteamento, dentre eles:

  • Problema do carteiro chinês
  • Problema do caixeiro viajante rodoviário
  • Problema dos Múltiplos-caixeiros viajantes
  • Problema de roteamento com depósito único e multiplos veículos
  • Problema de roteamento com múltiplos depósitos e múltiplos veículos
  • Problema de roteamento de veículos capacitados
  • Problema de roteamento com janelas de tempo


VRPs podem ser classificados de acordo com suas propriedades no que diz respeito aos pedidos a serem cumpridos, a frota disponível, a estrutura de rota, os objetivos e o planejamento considerado. Uma visão geral destas dimensões é dada na seguinte figura, retirada de Drexl, Michael. "Rich vehicle routing in theory and practice." Logistics Research 5.1-2 (2012): 47-63.

Rich vehicle routing in theory and practice


VRP é considerado um problema de otimização combinatorial difícil devido ao tamanho que seu conjunto de localizades pode atingir.

Por não existir algoritmos exatos que podem confirmar uma busca eficiente no espaço de tempo computacional viável, Lenstra, Jan Karel, and A. H. G. Rinnooy Kan. "Complexity of vehicle routing and scheduling problems. (1981)" provam que esse problema é NP-Difícil (NP-hard ou NP-complexo).

NP-difícil



Aplicação na Vida Real

Gerenciamento da Cadeia de Suprimentos

Sistemas logísticos são definidos pelo planejamento, organização e controle de operações de fluxo de mercadorias. Suas atividades principais são: aquisição de matéria-prima, gestão de estoques, processamento de pedidos, compras e armazenagem, manuseio de materiais, programação da produção e entrega ao consumidor final.

Para minimizar custos e tornar todo o processo mais eficiente, são aplicados processos de Gerenciamento da Cadeia de Suprimentos (Supply Chain Management), integrando, controlando e otimizando o fluxo de bens, produtos, recursos e informações desde os fornecedores até o cliente final.

Exemplos práticos

  • Transporte de materiais e pessoas

  • Logística para doações de suprimentos às vítimas de desastres ambientais

  • Roteamento de entrega postal

OpenRouteService

OpenRouteService é um sistema desenvolvido pelo University of Heidelberg GIScience Research Group para auxiliar a criação de rotas na plataforma OpenStreetMap. Essa plataforma é muito utilizada para criar rotas alternativas em cenários de desastres naturais (Emergency Route Service).

OpenRouteService

Spider Design - SINTEF

SINTEF é uma instituição de pesquisa sem fins lucrativos, a maior organização da Escandinávia dedicada a atividades de pesquisa e desenvolvimento. Spider é uma biblioteca para otimização de planejamento de transporte, atuando em alguns cenários de distribuição de pães, jornais, sorvete, sangue.



Referência adicional e Lista de links

Dantzig, George B., and John H. Ramser. "The truck dispatching problem." Management science 6.1 (1959): 80-91.

Lenstra, Jan Karel, and A. H. G. Rinnooy Kan. "Complexity of vehicle routing and scheduling problems." Networks 11.2 (1981): 221-227.

Garey, Michael R., and David S. Johnson. "Computers and intractability : a guide to the theory of NP-completeness." San Francisco: W.H. Freeman (1979).

Haimovich, M. A. R. K., and A. H. G. Rinnooy Kan. "Bounds and heuristics for capacitated routing problems." Mathematics of operations Research 10.4 (1985).

Bazgan, Cristina, Refael Hassin, and Jérôme Monnot. "Differential approximation for some routing problems." Algorithms and Complexity. Springer Berlin Heidelberg. (2003): 277-288.

Haimovich, M., Rinnoooy Kan, and Leendert Stougie. "Analysis of heuristics for vehicle routing problems". Universiteit Amsterdam - Institute of Actuarial Sciences and Econometrics. (1988).

Gendreau, Michel, Alain Hertz, and Gilbert Laporte. "A tabu search heuristic for the vehicle routing problem." Management science 40.10 (1994): 1276-1290.

Laporte, Gilbert. "The vehicle routing problem: An overview of exact and approximate algorithms." European Journal of Operational Research 59.3 (1992): 345-358.

Bräysy, O., et al. A survey of rich vehicle routing models and heuristic solution techniques. Technical report, SINTEF, (2002).

Kumar, Suresh Nanda, and Ramasamy Panneerselvam. "A survey on the vehicle routing problem and its variants." (2012).

Özdamar, Linet, Ediz Ekinci, and Beste Küçükyazici. "Emergency logistics planning in natural disasters." Annals of operations research 129.1-4 (2004): 217-245.

Alvarenga, Guilherme Bastos. "Um algoritmo híbrido para o problema de roteamento de veículos estático e dinâmico com janela de tempo". Diss. PhD thesis, Universidade Federal de Minas Gerais, 2005.

Jogo

Adventure NP-Capitalist

Esse jogo tem por objetivo apresentar os conceitos ligados a teoria da complexidade computacional, mais precisamente abordar o Problema de Roteamento de Veículos (PRV) que pertence a classe dos problemas do tipo NP-Complexo.


Prova Prática

Prova

Considerações iniciais

Como o VRP é um problema do mundo real, podemos representar os elementos que compões o VRP de forma matemática G = (V, E) [1].

Seja G = (V, E) um grafo não direcionado, onde V = {v0, v1,…, vn} é o conjunto dos vértices e E = {(vi, vj): vi ,vj ∈ V, i < j} é o conjunto de arestas. O vértice v0 representa o depósito, sendo este a base de uma frota de veículos idênticos de capacidade Q, enquanto os vértices remanescentes correspondem às cidades ou consumidores. Cada consumidor vi tem uma demanda não negativa qi e q0 = 0. Com relação ao número de veículos no depósito, este pode ser limitado ou ilimitado [2].

Outra característica que podemos adicionar ao problema do VRP é uma variável k que adiciona outros vértices aos vértices já existentes de acordo com sua localização, passando a ter a representação de um problema kVRP.

Por que é necessário a variável k?

Imagine que temos o seguinte cenário:

Figura 1: Cenário representado com um Grafo G
Figura 1: Cenário representado com um Grafo G

O vértice 0 em nosso modelo matemático é o V0, sendo assim, o nosso depósito e ponto de partida inicial e final.

Os vértices a, b, c, u, v e w são respectivamente V = { v1, v2, v3, v4, v5 e v6 } .

Para melhorar a capacidade de entregas, vamos assumir que cada Vn seja um bairro de uma cidade. Próximo a cada bairro, temos casas que receberão a visita do nosso veículo, assim temos o controle de bairros que deverão ser visitados e o que visitar em cada bairro. Logo temos uma nova representação:

Figura 2: Grafo G’ com adição de k
Figura 2: Grafo G’ com adição de K

Na Figura 2, assumimos que k possui valor 3 para os vértices {a, b, c} e k = 4 para os vértices {u, v e w}, tendo assim:

G = O Grafo não direcionado que representa o caminho a ser percorrido.

V = Conjunto de vértices, ou seja, cada casa que ele precisa visitar no grafo G.

E = Conjunto de arestas ( distância entre as casa que serão visitadas) a cada aresta (vi, vj) está associada uma distância não negativa cij que representa a distância entre as casas e ou bairros.

K = Valor de vértices próximos aos vértices iniciais.

Todo esse cenário proposto tem o objetivo de encontrar o menor caminho possível entre os vértices, passando por eles apenas uma vez, e começando e finalizando no ponto inicial V0.

O kVRP é de grande importância quando pensamos em uma transportadora que deseja realizar diversas entregas em uma cidade e quer saber o melhor caminho possível, pois essa otimização, além de reduzir o tempo das entregas, poderá reduzir custos como combustível, desgaste do carro, tempo e etc. [3].

Agora que temos a representação matemática dos elementos que compõem o VRP no mundo real, podemos formular uma hipótese.


Hipótese 1: É possível provar que o problema de roteamento de veículos (VRP) pode ser resolvido em tempo polinomial?

Para essa prova, vamos analisar novamente a Figura 2. Nota-se que os vértices a, b e c tem k = 3 e os vértices w, u e v tem valor k = 4. Por que isso ocorre?

No mundo real não podemos assumir que k sempre terá o mesmo valor. Cada rota de entrega muda constantemente e, portanto, criamos subconjuntos toda vez que o k passa a ter um novo valor.

Analisando a Figura 2, pode-se considerar essa aplicação do mundo real como:

S = conjuntos de novos vértices onde k = 3

T = conjunto de novos vértices onde k = 4.

Sendo assim, na Figura 2, o grafo G’ possui:

S = {a1, a2, a3, b1, b2, b3, c1, c2, c3}

T = {u1, u2, u3, u4, v1, v2, v3, v4, w1, w2, w3, w4}


Prova 1 - Provando que kVRP é resolvido em tempo polinomial

O problema tem solução quando existe um subconjunto E ⊂ S x T de tal forma que o grau de t ∈ T é 2 e o grau de todos s ∈ S é 0 ou 1. Essa característica está relacionada com o bipartite matching problem, problema que é provado ser resolvido em tempo polinomial [4].

Definição da prova 1: O grafo G’ da Figura 2 é construído a partir do grafo G = (V, E) com subconjuntos de vértice {S, T} ⊂ V tal que {S ∪ T} = V \ {0}, assim sendo:

Cada vértice s ∈ S passa a ter três vértices, s1, s2 e s3:

Figura 3: Grafo G’ com destaque em s ∈ S e k = 3
Figura 3: Grafo G’ com destaque em s ∈ S e k = 3.

Na Figura 3, podemos observar o uso de k = 3 assumindo que:

V = {

S = {s1 = {a1, b1, c1}}

S = {s2 = {a2, b2, c3}}

S = {s3 = {c1, b2, c3}}

}

s ∈ S = (0, s3), (s2, s3), (s1, s2) e (s1, s3) onde cada s representa os subconjunto de V.

Com k = 4 cada aresta será (0, s) de tal modo que s ∈ S passa a ter 4 arestas (0, s3), (s2, s3), (s1, s2) e (s1, s3).

Figura 4: Grafo G’ com destaque em s ∈ S e k = 4
Figura 4: Grafo G’ com destaque em s ∈ S e k = 4.

Na Figura 4, podemos observar o uso de k = 4 assumindo que:

V = {

S = {s1 = {u1, v1, w1}}

S = {s2 = {u2, v2, w2}}

S = {s3 = {u3, v3, w3}}

S = {s4 = {u4, v4, w4}}

}

Cada t ∈ T é substituído por 4 vértices, t1, …, t4, e quatro arestas, (t1, t2), (t2, t3), (t3, t4), e (t1, t3). Uma aresta (s, t) tal que s ∈ t e t ∈ T é substituída por uma borda (s1, t4) e aresta (t, u) de tal modo que t, u ∈ T é substituída por (t1, u1). Nota-se que as arestas de E com duas extremidades em S não estão representadas em G’, como foi visto na Figura 2 em que S = {a, b, c} e T = {u, v, w} [5].

Agora que provamos que a adição de k no problema do VRP caracteriza um grafo bipartidário que é resolvido de forma polinomial, podemos comparar os dois grafos:

Figura 5: Grafo G e Grafo G’
Figura 5: Grafo G e Grafo G’.

Com k = 3 e k = 4 aumentamos a área de cobertura, respeitamos a regra de visitar apenas uma vez cada local e voltar ao ponto de origem 0.


Hipótese 2: Agora que provamos que kVRP pode ser resolvido em tempo polinomial, podemos testar se kVRP é do tipo NP-Completo.

Prova 2 – Provando que kVRP é NP-completo quando k > 3

Para essa prova foi utilizado à técnica de redução por 3-Dimensional Matching, problema provado ser do tipo NP-completo [4]. Primeiramente construímos uma instância 3VRP da seguinte forma:

V = {0} ∪ Vx ∪ Vy ∪ Vm ∪ (∪w ∈ w (Sw ∈ S’w)), onde os vértices Vx, Vy e VM correspondem aos elementos X, Y e M, respectivamente.

E = Ex ∪ Ey ∪ Em ∪ Ex,m ∪ Em,y ∪ (∪w ∈ w Ew), onde:

Ex = {(0,x): x ∈ Vx};

Ey = {(y,0): y ∈ Vy};

Em = {(0,m): m ∈ Vm};

Para cada m = (w, x, y) ∈ M existe um arco (x,m) ∈ Ex,m e um arco (m,y) ∈ Em,y.

Para cada w ∈ W, onde nw é o número de vezes que W está presente em M.

Sw contém nw – 1 vértices, S’w é uma cópia de Sw, e para cada s ∈ Sw é cópia s’ ∈ S’w, Ew contém arcos (s, s’) e (s’, 0), em adição a esses arcos, para cada s ∈ Sw e para cada vértice m ∈ Vm existe uma coordenada w ∈ W, Ew possui um arco (v,s), podemos representar M da seguinte forma:

M = {(x1, w1, y1), (x1, w2, y1), (x1, w2, y2),(x2, w1, y2), (x2, w2, y2)}

A solução de 3VRP existe se e somente se houver um 3-Dimensional Matching M’. Deverá haver uma rota (0, x, w, y, 0) para cada elemento de M’, e todas as outras vértices nw – 1 onde v ∈ Vm correspondem a w devem utilizar (0, v, s, s’, 0) com vértices distintos em s ∈ Sw [6].


Referências:

[1] Lenstra, Jan Karel, and A. H. G. Rinnooy Kan. "Complexity of vehicle routing and scheduling problems." (1981)

[2] Bazgan, Cristina, Refael Hassin, and Jérôme Monnot. "Differential approximation for some routing problems." (2003)

[3] Bräysy, O., et al. A survey of rich vehicle routing models and heuristic solution techniques. Technical report, SINTEF, (2002).

[4] Garey, Michael R., and David S. Johnson. "Computers and intractability : a guide to the theory of NP-completeness." San Francisco: W.H. Freeman (1979).

[5] Haimovich, M. A. R. K., and A. H. G. Rinnooy Kan. "Bounds and heuristics for capacitated routing problems." Mathematics of operations Research 10.4 (1985).

[6] Haimovich, M., Rinnoooy Kan, and Leendert Stougie. "Analysis of heuristics for vehicle routing problems". Universiteit Amsterdam - Institute of Actuarial Sciences and Econometrics. (1988).



Prática

Avaliação

Questionário

O seguinte questionário tem como objetivo contribuir com a fixação do Problema de Roteamento de Veículos.