270 likes | 422 Views
XXXVI SBPO. XXXVI SBPO. XXXVI Simpósio Brasileiro de Pesquisa Operacional. São João del-Rei, 23 a 26 de novembro de 2004. Modelagens Exata e Heurística para uma Generalização do Problema do Caixeiro Viajante. Autores: Antonio Augusto Chaves (INPE)
E N D
XXXVI SBPO XXXVI SBPO XXXVI Simpósio Brasileiro de Pesquisa Operacional São João del-Rei, 23 a 26 de novembro de 2004
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
Problema do Caixeiro Viajante com Coleta de Prêmios (PCVCP) w5 / p5 5 w1 / p1 C15 C45 C05 C14 1 C01 DEPÓSITO 4 C13 C04 C12 w4 / p4 C25 C02 C35 C03 C34 C24 2 3 C23 w3 / p3 w2 / p2 Depósito: w = 0 p =
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
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.
Estruturas de Vizinhança k j i vértice com maior economia de remoção Solução (s) 3 1 5 0 Solução (s’) 3 0 5 m1: Retirar vértice de maior economia economia (k) = cik + ckj – cij – pk N1(s) = {s’ : s + m1}
Estruturas de Vizinhança i k j Solução (s) 3 1 5 0 Solução (s’) 2 3 1 5 0 vértice com maior economia de inserção m2: Inserir vértice de maior economia economia (k) = cij + pk – cik – ckj N2(s) = {s’ : s + m2}
Estruturas de Vizinhança Solução (s) 3 1 5 0 Solução (s’) 5 1 3 0 m3: Trocar 2 vértices da solução; N3(s) = {s’ : s + m3}
Estruturas de Vizinhança vértice escolhido aleatoriamente Solução (s) 3 1 5 0 Solução (s’) 1 0 5 m4: Retirar vértice aleatoriamente; N4(s) = {s’ : s + m4}
Estruturas de Vizinhança Solução (s) 3 1 5 0 Solução (s’) 1 3 4 5 0 vértice escolhido aleatoriamente m5: Inserir vértice aleatoriamente; N5(s) = {s’ : s + m5}
GRASP + VNS Lista de Candidatos LCR • GRASP • Fase de Construção • Criar uma lista de candidatos calculando a economia de inserção dos vértices que não fazem parte da rota • Definir a LCR como as 10 maiores economias de inserção • Escolher aleatoriamente um candidato da LCR e inserir na rota • Atualizar a lista de candidatos Fase de Busca Local • Aplicar VNS • 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+VNS • f* ; • // Fase de Construção • paraj = 1, ..., MaxIterfaça • s ; • Inserir a origem em s; • para todo k não pertencente a sfaç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; • sef(s) < f* entãos* s; f* f(s); • fim-para; • s s*; • // Fase de Busca Local • Aplicar 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 < MaxTempofaça • k 1; • enquantok rfaça • Selecione um vizinho s’ qualquer na vizinhança Nk(s); • s’’ VND(s’); • sef(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; • enquantok rfaça • Seja s’ um ótimo local segundo o k-ésimo procedimento de refinamento; • sef(s’) < f(s) então • s s’; • k 1; • senão • k k + 1; • fim-enquanto • Retorne s; • fim VND
Procedimentos de Refinamento Solução (s) 3 1 5 0 vértice com maior economia de inserção 2 3 1 5 0 e(k) = cik + ckj – cij – pk 2 3 5 1 0 e(k) = cij + pk – cik – ckj vértice com maior economia de remoção Solução (s’) 1 2 5 0 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.
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 1 2 3 4 5 6 1 2 5 4 3 6 1 1 2 6 2 6 3 3 5 5 4 4 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.
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 Desvio =
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);