XXXVI Simpósio Brasileiro de Pesquisa Operacional São João del-Rei, 23 a 26 de novembro de 2004 XXXVI SBPO XXXVI SBPO XXXVI SBPO XXXVI SBPO
Jan 05, 2016
XXXVI Simpósio Brasileiro de
Pesquisa Operacional
São João del-Rei, 23 a 26 de novembro de 2004
XXXVI SBPOXXXVI SBPOXXXVI SBPOXXXVI SBPO
Modelagens Exata e Heurística
para uma Generalização do
Problema do Caixeiro Viajante
Autores: Antonio Augusto Chaves (INPE) Fabrício Lacerda Biajoli (INPE) Otávio Massashi Mine (UFES) Marcone Jamilson Freitas Souza (UFOP)
Roteiro
• INTRODUÇÃO
• PROBLEMA DO CAIXEIRO VIAJANTE COM COLETA DE PRÊMIOS
• MODELAGEM– PROGRAMAÇÃO MATEMÁTICA (EXATA)
– HEURÍSTICA
• RESULTADOS COMPUTACIONAIS
• CONCLUSÃO
Introdução
• Justificatica do trabalho – fácil adaptação a situações da vida real
– existem poucos trabalhos sobre este problema
– número elevado de soluções existentes (n - 1)! / 2
• Utiliza-se uma formulação matemática proposta por Egon Balas para encontrar a solução ótima para o problema
• Utiliza-se Greedy Randomized Adaptive Search Procedure (GRASP), Variable Neighborhood Search (VNS) e Variable Neighborhood Descent (VND) para solucionar aproximadamente o problema
Problema do Caixeiro Viajante com Coleta de Prêmios (PCVCP)
• Dado um conjunto de clientes com um custo de deslocamento entre eles, o PCVCP consiste em determinar uma rota para um Caixeiro Viajante, sabendo-se que para cada cliente visitado é coletado um prêmio e para cada cliente não visitado é pago uma penalidade.
• Objetivos:– Minimizar o custo de deslocamento total – Minimizar a soma das penalidades– Coletar um prêmio mínimo pré-estabelecido
DEPÓSITO
1
2 3
4
5
w3 / p3w2 / p2
w1 / p1
w5 / p5
w4 / p4C12
C02
C24
C23
C01
C13
C14
C34
C45
C15
C25
C03C35
C04
C05
Depósito: w = 0 p =
Problema do Caixeiro Viajante com Coleta de Prêmios (PCVCP)
Modelagem Exata
• Encontrar o ótimo global
• Implementada a partir da formulação matemática proposta por Egon Balas em 1985
• Utilizou-se o software LINGO versão 7.0
• Devido à natureza combinatorial do problema, somente problemas de pequenas dimensões podem ser resolvidos através desse procedimento
• Importância: permite a validação das soluções obtidas pela metodologia heurística desenvolvida
Formulação Matemática
(7) }1,0{
(6) ),(}1,0{
(5) ),(1||
(4) }0{\
(3)
(2) }0{\
(1) }0{\
:àsujeito
)1( minimizar (PCVCP)
min
}{\
}{\
Viy
Ejix
EjixVf
Viyff
wyw
Vjyx
Viyx
ypxc
j
ij
ijij
iVj
jiVj
ij
Viii
jjVi
ij
iiVj
ij
iVi
iVi
ijVj
ij
Modelagem Heurística
• Procura encontrar boas soluções a um custo computacional razoável, sem no entanto, garantir a otimalidade das solução finais obtidas, nem o quão próximo esta solução está da solução ótima;
• Utilizou-se o conceito de metaheurísticas híbridas combinando GRASP e VNS
Função de Avaliação
• Uma solução é avaliada pela seguinte função de avaliação:
• As demais restrições foram contempladas através da representação adotada.
} *- 0, {max * )1( )( min wywypxcxfVi
iiiVi
iVi Vj
ijij
Estruturas de Vizinhança
m1: Retirar vértice de maior economia
economia (k) = cik + ckj – cij – pk
N1(s) = {s’ : s + m1}
Solução (s) 0 3 1 5
vértice com maior economia de remoção
Solução (s’) 0 3 5
i
k
j
Estruturas de Vizinhança
m2: Inserir vértice de maior economia
economia (k) = cij + pk – cik – ckj
N2(s) = {s’ : s + m2}
Solução (s) 0 3 1 5
Solução (s’) 0 3 1 52
vértice com maior economia de inserção
k
i
j
Estruturas de Vizinhança
m3: Trocar 2 vértices da solução;
N3(s) = {s’ : s + m3}
Solução (s) 0 3 1 5
Solução (s’) 0 5 1 3
Estruturas de Vizinhança
m4: Retirar vértice aleatoriamente;
N4(s) = {s’ : s + m4}
Solução (s) 0 3 1 5
vértice escolhido aleatoriamente
Solução (s’) 0 1 5
Estruturas de Vizinhança
m5: Inserir vértice aleatoriamente;
N5(s) = {s’ : s + m5}
Solução (s) 0 3 1 5
Solução (s’) 0 3 4 51
vértice escolhido aleatoriamente
GRASP + VNS
Fase de Busca LocalAplicar VNS
Lista de Candidatos
LCR
GRASPFase de Construção
1. Criar uma lista de candidatos calculando a economia de inserção dos vértices que não fazem parte da rota
2. Definir a LCR como as 10 maiores economias de inserção
3. Escolher aleatoriamente um candidato da LCR e inserir na rota
4. Atualizar a lista de candidatos
Este procedimento é executado enquanto o prêmio mínimo não for coletado ou existir economia positiva
Aplicação de filtro na fase de construção
Algoritmo GRASP + VNS
Procedimento GRASP+VNSf* ;// Fase de Construçãopara j = 1, ..., MaxIter faça
s ;Inserir a origem em s;para todo k não pertencente a s faça
Calcule a economia de inserção;fim-para;enquanto prêmio < wmin ou existir economia positiva faça
LCR Lista dos vértices com maior economia;Selecione aleatoriamente um vértice v LCR;s s {v};Atualizar Lista de Candidatos;
fim-enquanto;se f(s) < f* então s* s; f* f(s);
fim-para;s s*;// Fase de Busca LocalAplicar VNS(s);
fim GRASP+VNS
VNS Aplicado ao PCVCP
Procedimento VNS(s)r Número de vizinhanças (no caso, r=5);enquanto tempo sem melhora < MaxTempo faça
k 1;enquanto k r faça
Selecione um vizinho s’ qualquer na vizinhança Nk(s);s’’ VND(s’);se f(s’’) < f(s) então
s s’’; k 1;
senão k k + 1;
fim-enquanto;fim-enquanto;Retorne s;
fim VNS
VND Aplicado ao PCVCP
Procedimento VND(s)r = Número de procedimentos de refinamento;k 1;enquanto k r faça
Seja s’ um ótimo local segundo o k-ésimo procedimento de refinamento;se f(s’) < f(s) então
s s’; k 1;
senãok k + 1;
fim-enquantoRetorne s;
fim VND
Procedimentos de Refinamento
Método AddDrop
• Consiste em inserir o vértice que possuir a maior economia de inserção e retirar o vértice que possuir a maior economia de remoção.
Solução (s) 0 3 1 5
Solução (s’) 0 1 2 5
0 3 1 52
vértice com maior economia de inserção
e(k) = cik + ckj – cij – pk
0 3 1
vértice com maior economia de remoção
e(k) = cij + pk – cik – ckj52
Procedimentos de Refinamento
Método SeqDropSeqAdd
• Método iterativo, que consiste em duas fases.
– Na primeira fase, retira-se, a cada iteração, o vértice que fornecer a maior economia de remoção, sendo executado enquanto houver vértices com economia de remoção positiva.
– Na segunda fase, insere-se, a cada iteração, o vértice que fornecer a maior economia de inserção, sendo executado enquanto houver vértices com economia de inserção positiva.
Procedimentos de Refinamento
Método Descida 2-Optimal
• Examina todas as possíveis trocas de 2 arestas, realizando a que fornecer o maior ganho na função de avaliação, sendo executado enquanto existir movimento de melhora.
4
26
3
1
5
1 2 5 4 3 6
26
3
1
5
1 2 3 4 5 6
4
Experimentos Computacionais
• Não existe nenhuma biblioteca pública de problemas-teste para o PCVCP;
• Todas as instâncias foram geradas aleatoriamente:• Custo de deslocamento: [50, 1000]• Prêmio: [1, 100]• Penalidade: [1, 750]
Instâncias disponíveis em:http://www.decom.ufop.br/prof/marcone/Orientacoes/OrientacoesConcluidas.htm
• Ambiente computacional:• Linguagem C++ (C++ Builder 5.0)
• PC Athlon XP 1.53 GHZ, 256 MB RAM
Experimentos Computacionais
Instância | V | Ótimo Global Tempo FOMelhor Desviov10 11 1765 1 1765 0,00%v20 21 2302 2 2302 0,00%v30a 31 3582 6 3582 0,00%v30b 31 2515 4 2515 0,00%v30c 31 3236 11 3236 0,05%v50a 51 Não encontrado 326 4328 0,42%v50b 51 Não encontrado 292 3872 0,31%
Comparação de Resultados entre o Modelo Exato e o Modelo Heurístico
Modelo Exato Modelo Heurístico
1001786
1080010800
Tempo16586
100
FOMelhor
FOMelhorFOMediaDesvio =
Experimentos Computacionais
Instância | V | Tempo FOMelhor Desviov100a 101 510 6892 0,52%v100b 101 446 6814 0,12%v250a 251 1033 15310 0,88%v250b 251 796 14378 0,76%v500a 501 2140 28842 0,67%v500b 501 2410 28524 0,82%
Resultados - Modelo Heurístico
Conclusões
• Os algoritmos heurísticos sempre atingiram o ótimo global para instâncias onde este é conhecido;
• A metaheurística híbrida proposta mostrou-se robusta;
• Os resultados obtidos validam a utilização desta metodologia para a resolução do Problema do Caixeiro Viajante com Coleta de Prêmios;
Referências Bibliográficas
• BALAS, E., The prize collecting traveling salesman problem. ORSA/Tims Meeting in Los Angeles, (1986).
• CHAVES, A. A., Modelagens Exata e Heurística para Resolução do Problema do Caixeiro Viajante com Coleta de Prêmios. Relatório Técnico em Ciência da Computação – DECOM, Universidade Federal de Ouro Preto, Ouro Preto (2003).
• Dell’ Amico, M., Maffioli, F., sciomachen, A., A Lagrangian heuristic for the Prize Collecting Travelling Salesman Problem. Annals of Operations Research, 81: 289-306, (1998).
• MELO, V. A., Metaheurísticas para o Problema do Caixeiro Viajante com Coleta de Prêmios, Dissertação de Mestrado, Instituto de Computação, Universidade Federal Fluminense, Niterói, Rio de Janeiro (2001);