Problemas
● Problema do Caixeiro Viajante – Travel
Salesman Problem (TSP)
● Problema de Roteamento de Veículos – Vehicle
TSP
● Dado um conjunto V de n cidades, e uma
cidade origem o entre elas, encontrar a melhor rota possível para cobrir todas as cidades e
retornar à origem
● As cidades só podem ser visitadas uma única
TSP
● Função objetivo
● Restrições de equilíbrio
● Restrições de Eliminação de sub-rota
TSP
● Função objetivo (minimiza distâncias)
● Restrições de equilíbrio (impede que cidades sejam
visitas mais de uma vez ou nenhuma vez)
● Restrições de Eliminação de rota (impedem
sub-rotas desconexas da origem)
TSP: sub-rotas
TSP: rota
TSP: sub-rota
TSP
● Seja x
ij uma variável que indica que j foi
visitada após i na rota
● c
ij o custo de ir de i para j
TSP
min
∑
i∈V j∈
∑
V−{i}cij xij
s. a.
∑
j∈V
xij=1, ∀ i∈V , j≠i ,
S⊂V ,2≤|S|≤n−2,
∑
i∈S
∑
j∈Sxij≤|S|−1,i≠ j ,
xij∈{0,1},∀ i , j ∈V , i≠ j .
∑
i∈V
xij=1,∀ j∈V , j≠i ,
(1)
(2)
(3)
(4)
TSP
● 1 – Função objetivo
● 2 e 3 - Restrições de grau
● 4 – Restrições de Eliminação de sub-rota
Verificação
● Suponha o exemplo abaixo
1
2
4 5
Verificação
● Enumere todos os possíveis subconjuntos de
V, começando com os de tamanho 2.
1
2
4 5
Verificação
● Enumere todos os possíveis subconjuntos de
V, começando com os de tamanho 2.
1
2
4 5
3 origem
Verificação
● Verifica-se se as restrições (4) estão válidas
para estes subconjuntos.
1
2
4 5
3 origem
Verificação
● Verifica-se se as restrições (4) estão válidas
para estes subconjuntos.
1
2
4 5
3 origem
{{1,2},{1,3},{1,4},{1,5},{2,3},{2,4},{2,5},{3,4},{3,5},{4,5}}
|S|=2,
∑
i∈S
∑
j∈SVerificação
● Note que quando S={4,5}, a desigualdade não
é válida
1
2
4 5
3 origem
{{1,2},{1,3},{1,4},{1,5},{2,3},{2,4},{2,5},{3,4},{3,5},{4,5}}
|S|=2,
∑
i∈S
∑
j∈SVerificação
● Note que quando S={4,5}, a desigualdade não
é válida
1
2
4 5
3 origem
{{1,2},{1,3},{1,4},{1,5},{2,3},{2,4},{2,5},{3,4},{3,5},{4,5}}
|S|=2,
Verificação
● O mesmo pode ser mostrado para
subconjuntos de tamanho 3
● Ao fazer a análise para todos os possíveis
tamanhos de subconjuntos de 2 (tamanho
TSP
● Formulação anterior é baseada na enumeração
de subconjuntos de V, o que gera na casa de restrições
● Isto torna a resolução da formulação inviável
mesmo para valores pequenos de n
TSP
● Uma outra formulação utiliza variáveis extra ● Seja u
i a posição da localidade i na rota. Assim
TSP
min
∑
i∈V j∈
∑
V−{i}cij xij
s. a.
∑
j∈V
xij=1, ∀ i∈V , j≠i ,
1≤ui≤n−1, ∀ i∈V −{o}
ui−u j+(n−1) xij≤n−2,∀ i , j∈V −{o}i≠ j ,
xij∈{0,1},∀ i , j ∈V , i≠ j .
∑
i∈V
xij=1,∀ j∈V , j≠i ,
(1)
(2)
(3)
(6)
Prova de funcionalidade
● Suponha uma sub-rota r=(e
1, e2, e3, …, ek, e1)
com k menor que n, ei é o i-ésimo elemento da sub-rota
● Qualquer rota fechada de tamanho com k
cidades possui exatamente k arcos
● Como se trata de uma sub-rota a origem não
Prova de funcionalidade
● A enumeração dos arcos desta sub-rota de
acordo com as restrições (6) fica:
ue
1−ue2+(n−1)≤n−2
ue
2−ue3+(n−1)≤n−2
...
ue
Prova de funcionalidade
● A enumeração dos arcos desta sub-rota de
acordo com as restrições (6) fica:
● Como são k arcos, então tem-se k inequações ue
1−ue2+(n−1)≤n−2
ue
2−ue3+(n−1)≤n−2
...
ue
Prova de funcionalidade
● Ao somar as inequações anteriores tem-se
● Que é uma inconsistência, logo uma sub-rota
com tamanho k, menor que n não pode existir
TSP
● Formulação anterior utiliza restrições e
variáveis
● Para n=10, o consumo de memória para
armazenar a primeira formulação já é mais que o dobro necessário para a segunda
VRP
● Problema de grande interesse prático
● Dado um conjunto V de n cidades
geograficamente dispersas, encontrar o melhor conjunto de rotas para atender todos os
clientes
VRP
● Seja F o conjunto de veículos
● Seja q a capacidade dos veículos e b
i a
demanda da cidade i
● X
ijk uma variável que assume 1 se o veículo k
VRP
min
∑
i∈V
∑
j∈V k∑
∈Fcij xijk
s. a.
∑
j∈V k
∑
∈Fxijk=1,∀ i∈V −{o},
∑
i∈V k
∑
∈Fxijk=1,∀ j∈V −{o },
(7) (8) (9) (10) (11)
∑
i∈V
xijk−
∑
i∈V
x jik=0, ∀ j∈V ,∀ k∈F ,
∑
i∈V
∑
j∈VVRP
∑
j∈V−{o}
xojk≤1, ∀ k∈F ,
ui∈ℝ+ ,∀ i∈V −{o},
(12) (13) (14) (15) (16)
∑
i∈V −{o}
xiok≤1,∀ k ∈F ,
ui−u j+nxijk≤n−1,∀ k ∈F ,∀ i , j∈V −{o}, i≠ j ,
VRP
● Função objetivo (7) minimiza as distâncias
percorridas
● Restrições (8) e (9) asseguram que cada cidade
seja visitada apenas uma vez
● Restrições (10) garantem que o mesmo veículo
que chega a uma cidade será o que deixará esta cidade
VRP
● Restrições (12) e (13) garantem que cada
veículo sairá e chegara no máximo uma vez da origem
● Restrições (14) tratam das sub-rota
● Restrições (15) e (16) cuidam da integralidade
Variações do VRP: Frota
Heterogênea
● Veículos possuem capacidades diferentes ● Restrições (11) devem ser substituídas por
(17), onde é a capacidade do veículo k
∑
i∈V
∑
j∈Vbi xijk≤qk ,∀ k ∈F (17)
Variações do VRP: Custo fixo para
uso do veículo
● Cada veículo possuí um custo que deve ser pago
quando o veículo é utilizado, independente do tamanho da rota
● Substituir (7) por (18), onde d
k representa o custo
de uso do veículo k
● Variável y
k assume 1 se o veículo k está sendo
usado
● As restrições (19) e (20) também devem ser
Variações do VRP: Custo fixo para
uso do veículo
(18) min
∑
i∈V
∑
j∈V k∑
∈Fcij xijk+
∑
k∈F
d k yk
(19) xijk≤ yk , ∀i , j∈V ,∀ k ∈F
Variações do VRP: Múltiplos
Depósitos
● Existe mais de uma origem
● Veículos ainda devem terminar a rota nos
mesmos depósitos que começaram
Variações do VRP: Múltiplos
Depósitos
● Restrições (12) e (13) devem ser modificadas
para (21) e (22)
∑
i∈W j∈
∑
V−Wxijk≤1,∀ k ∈F
∑
j∈W i∈
∑
V−Wxijk≤1,∀ k ∈F
(21)
Variações do VRP: Múltiplos
Depósitos
● Restrições (8), (9), (14) e (15) precisam ser
adaptadas à nova condição
(23)
(24)
∑
j∈V k
∑
∈Fxijk=1,∀ i∈V −W
∑
i∈V k
∑
∈Fxijk=1,∀ j∈V −W
ui−u j+nxijk≤n−1,∀ k ∈F ,∀ i , j∈V −W , i≠ j , (25)
(26)
Variações do VRP: Janela de tempo
● Clientes possuem janelas de tempo em que
podem ser atendidos
● Tempo de viagem tv
ij entre 2 vértices também
deve ser computado
● Variável t
i é o tempo em que o cliente i é atendido
● s
i e fi são os limites de tempo inferior e superior,
respectivamente, do cliente i
VRPVariações do VRP: Janela de
tempo
min
∑
i∈V
∑
j∈V k∑
∈Fcij xijk
s. a.
∑
j∈V k
∑
∈Fxijk=1,∀ i∈V −{o},
∑
i∈V k
∑
∈Fxijk=1,∀ j∈V −{o },
(24) (25) (26) (27) (28)
∑
i∈V
xijk−
∑
i∈V
x jik=0, ∀ j∈V ,∀ k∈F ,
∑
i∈V
∑
j∈VVariações do VRP: Janela de tempo
∑
j∈V−{o}
xojk≤1, ∀ k∈F , (29)
(30)
(31)
(32)
(33)
∑
i∈V −{o}
xiok≤1,∀ k ∈F ,
ui−u j+nxijk≤n−1,∀ k ∈F ,∀ i , j∈V −{o}, i≠ j ,
t j≥ti+tvij−(1−xijk) M ,∀ i , j∈V , ∀ k ∈F ,
Variações do VRP: Janela de tempo
si≤ti≤ f i ,∀ i∈V −{o },
ui∈ℝ+ ,∀ i∈V −{o},
(34)
(35)
(36)
Variações do VRP: Janela de tempo
● Restrições (34) garantem que todo cliente será
atendido dentro de sua janela de tempo
● Restrições (32) e (33) são sempre satisfeitas
quando xijk = 0 → tj <= M e tj >= -M
● Restrições (32) e (33) são efetivas quando
VRP: Outras Variações
● Entrega Dividida – Clientes podem ter sua
demanda atendida parcialmente por um
veículo. A demanda total de cada cliente deve ser atendida
● Coleta e entrega simultânea – Clientes tem
dois tipos de demanda, uma para entrega e