250 likes | 427 Views
Resolução do Problema de Roteamento de Veículos com Frota Heterogênea via GRASP e Busca Tabu. Rodrigo Geraldo Ribeiro Denis Pinto Pinheiro Camila Leles Rezende. O Problema de Roteamento de Veículos (PRV):.
E N D
Resolução do Problema de Roteamento de Veículos com Frota Heterogênea via GRASP e Busca Tabu Rodrigo Geraldo Ribeiro Denis Pinto Pinheiro Camila Leles Rezende
O Problema de Roteamento de Veículos (PRV): • Dado um conjunto de cidades (ou consumidores), cada qual com uma demanda qi por um produto, e um depósito com veículos de capacidade Q, encontrar as rotas para os veículos minimizando os custos de transporte, atendendo todos as cidades.
Características do problema: • Como uma generalização do Problema do Caixeiro Viajante (PCV), o PRV pertence à classe de problemas NP-Difícil (LENSTRA, 1981), portanto não existem algoritmos em tempo polinomial para encontrar soluções ótimas. • Os algoritmos exatos existentes raramente conseguem resolver problemas envolvendo mais do que 50 consumidores (RENAUD & BOCTOR, 2002).
Abordagens de resolução: • Para problemas de maior porte: • Heurísticas. • Exemplos de heurísticas bem sucedidas: • Algoritmos baseados em Busca Tabu de Taillard (1993), Osman (1993) e Gendreau et al. (1994). • Heurística de pétalas de Renaud et al.(1996).
Nossa proposta: • Um método de duas fases para a resolução do PRV: • Fase GRASP. • Construção de uma solução inicial parcialmente gulosa. • Aplicar um método de busca local para refinar a solução inicial. • Refinamento usando Busca Tabu • Baseado em função de avaliação que procura minimizar as distâncias percorridas. • As estruturas de vizinhança utilizadas na Busca Tabu e no método de busca local da fase GRASP, são simples e proporcionam alterações na solução capazes de escapar de ótimos locais.
Exemplo: Consumidores Rotas Depósito
Características: • Depósito: qtde veículos, localização. • Veículos: capacidade. • Consumidores: localização, demanda. • Informações da Rota: distância entre os consumidores e depósito. Função Objetivo: • Minimizar o custo total da viagem.
Representação dos consumidores: Pontos no plano (x,y). Consumidores: Identificador, Demanda. Depósito: Num. veículos.
Grafo de representação das cidades Matriz de Distância: • Nossa proposta de solução é aplicável a problemas assimétricos!
Formulação do Problema do Roteamento de Veículos (PRV): • Seja G = (V, E) um grafo não direcionado, onde V = {v0, v1,..., vn} é o conjunto dos vértices e E = {(vi, vj): vi ,vjV, i <j} é o conjunto de arestas. • O vértice v0 representa o depósito, sendo este a base de uma frota de veículos de capacidade Q, possivelmente diferentes entre si, enquanto os vértices remanescentes correspondem às cidades ou consumidores. • Cada consumidor vi tem uma demanda não negativa qi e q0 = 0. • Supõe-se que existe um número ilimitado de veículos no depósito. • A cada aresta (vi, vj) está associada uma distância não negativa cij que representa a distância entre os consumidores.
Formulação do Problema do Roteamento de Veículos (PRV): • O Problema de Roteamento de Veículos consiste em determinar o conjunto de rotas que deverão ser feitas pelos veículos minimizando os custos de transporte, dado pela distância e respeitando as seguintes condições: • Cada rota começa e termina no depósito; • Toda cidade de V \ {v0} é visitada somente uma vez por somente um veículo; • A demanda total de qualquer rota não deve superar a capacidade Q de um veículo.
Representação do PRV: • Assumimos a representação usada por Pradenas & Parada (1999). Uma solução do PRV é representada por meio de uma permutação de cidades, numeradas de 1 a n, separadas em tantas partições quantos forem o número de veículos usados. • Por exemplo, se há 6 consumidores, 3 veículos e a solução s é {0-3-4-0-1-5-2-0-6-0} então as rotas dos veículos, denominadas pétalas, são {0-3-4-0}, {0-1-5-2-0} e {0-6-0}.
Estruturas de vizinhança: • Seja S o conjunto das soluções para o PRV. As estruturas de vizinhança são definidas por funções N que associam um conjunto de soluções N(s) com cada solução obtida por uma modificação parcial de s, chamada movimento. • Consideramos duas estruturas de vizinhança, a saber: N 1, N 2.
Movimentos: • O primeiro movimento consiste na troca de dois números inteiros em uma mesma pétala da solução. • Estes números representam apenas os consumidores. • O segundo, representa a remoção de um número inteiro de uma pétala e sua inserção em uma outra pétala. • Esses números representam os consumidores.
Exemplo das Estruturas de Vizinhança: • A vizinhança N 1(s) de uma dada solução s é o conjunto de todos os vizinhos s' gerados pelo primeiro movimento. • Por exemplo, dada a solução s = {0-3-4-0-1-5-2-0-6-0} s' ={0-3-4-0-1-2-5-0-6-0} N 1(s). • A vizinhança N 2(s) de uma dada solução s é o conjunto de todos os vizinhos s' gerados pelo segundo movimento. • Por exemplo, dada s1 = {0-3-4-0-1-5-2-0-6-0} • s’ = {0-4-0-1-5-2-0-3-6-0}
Função Objetivo: • Função objetivo baseada em penalização. • Seja f 1(s) representando a função objetivo pura da solução s: • Soma das distâncias percorridas por todos os veículos. • Seja O(s) o total das sobrecargas dos veículos associada a esta solução, caso exista. • Função objetivo f (s) = f 1(s) + O(s) • é um fator de penalidade não negativo.
Construção de uma solução inicial: • Fase de construção do método GRASP (Procedimento de busca adaptativa gulosa e randomizada). • {0-2-1-6-...}.
Algoritmo da fase de construção: • Primeiro passo: • Seleciona-se um veículo aleatoriamente. • S =S U {A}. Inicialmente S={ }. • Lista_de_Candidatos = ordenar (V \ {s}). • Critério de ordenação relativo à distância de cada um ao último elemento adicionado à solução. • Esse processo de seleção é uma heurística adaptativa gulosa, que estima o benefício da seleção de cada um dos elementos. • A heurística é adaptativa porque os benefícios associados com a escolha de cada elemento são atualizados em cada iteração da fase de construção para refletir as mudanças oriundas da seleção do elemento anterior.
Algoritmo da fase de construção: • Selecionar de forma aleatória a partir da lista de candidatos restrita (LCR). • A LCR é composta pelos melhores candidatos de LC. • O tamanho da LCR é definido segundo um fator [0,1], tal que |LCR| = |LC|. • Se o consumidor selecionado exceder a capacidade do veículo, adiciona-se a distância da cidade do último consumidor escolhido ao depósito, finalizando uma rota. • A = {4 – 7 – 15 – 10 – 28 – 13 ... } • Repete-se este procedimento até que todos os consumidores sejam atendidos.
Fase de Refinamento • Refinamento via Busca Tabu • Método de busca local que utiliza uma estrutura de dados Lista para evitar ciclagem. • Função de Aspiração
Algoritmo Procedimento Grasp_TB () { para i = 0; i < graspMAX; i++ { Solucao s = construcao_GRASP (); buscaLocal(s); } s = buscaTabu(s); retorne s; }
Resultados Resultados Custo Total: 1141
Resultados Resultados Custo Total: 1110
Conclusão O problema de roteamento de veículos além de possuir grande aplicabilidade no mundo real, possui uma grande complexidade para sua resolução computacional.