2.4. Modelos e Algoritmos de Alocação de Frota
2.4.2. Resolução dos Problemas VSP, VSPLPR, VSPMVT e VSPMD
Na resolução dos problemas VSP, VSPLPR, VSPMVT e VSPMD são consideradas diversas informações, com as quais são construídos grafos representativos de cada situação. O modelo para resolução do VSP, o mais simples destes problemas, considera os seguintes parâmetros:
a) SLj, STt local e instante de início da i-ésima viagem;
b) ELi , ETt local e instante de término da /-ésima viagem;
c) TM(L\, L2) tempo de deslocamento entre os locais L\ e Z2;
d) DL local onde se encontra a garagem da empresa.
No grafo gerado para este caso, cada viagem / é representada por um elemento no conjunto de nós N. Além das viagens, o conjunto de nós contém dois nós adicionais: um nó inicial í e um nó terminal t. O conjunto de arcos, denotado por A, é composto pelos
arcos de conexão { U m S T j - E T ^ T M i E L ^ n , bem como pelos arcos que representam movimentos cuja origem ou destino são a garagem, isto é, pelos arcos 0 ,0 , Vi e N - { s , t } e os arcos (i,/), V/ e N - { s , t } 12. No grafo G (N ,A ) assim formado, a solução para o VSP será dada pelo conjunto de caminhos que conectam o par de vértices 5 e t, que cobrem os vértices i s N - {,s,t}. Se aos arcos (i,j) e A forem associados os custos cv, tais que:
c =
V
custo operacional associado ao movimento ELt -» SLj , V/,y <=N-{j,r} custo operacional associado ao movimento EL, —► DL, se j = t
custo de capital + custo operacional associado ao movimento DL —> SLj, se i = s
então, poderá ser construído o seguinte modelo de programação matemática, proposto por Danzig e Fulkerson (vide [DAN54]):
Min V c xIJ ( i J ) e A (2.2.a) s.a: (2.2.b) Z Xj, = 0 V j e N - { s , t } i\0,j) e A i\ ( jj) e A S x ,j = ^ V ; 6 ^ - { í ,í } (2 2 c) W J H A 0 — Xij — 1 e inteiros V (/J) e A (2.2.d)
onde xtJ = 1 mdica que algum veículo deverá realizar a viagem representada pelo nó j após a conclusão da viagem representada pelo nó /, sendo que x9 = 0 em caso contrário.
Este é um modelo de fluxo em redes, no qual as restrições (2.2.b) caracterizam o princípio de conservação de fluxo; as restrições (2.2.c) podem ser interpretadas como limites de capacidade dos nós / G N - {,s,t}; e as restrições (2.2.d) são os limites de capacidade dos arcos da rede. Para obtenção da solução ótima deste modelo, poderá ser
11 Na formação do conjunto de arcos do grafo, se STJ-ETI » TM ( EL I,STJ) , deve-se considerar a eventual necessidade de fezer com que o veículo retome à garagem após 0 término da viagem / e
somente mais tarde se desloque ao ponto de início da viagem j . Neste caso, a condição a ser verificada deve ser substituída por STj-ET, > TM(ELt, DL) + TM(DL, SLj) •
12 O número de arcos longos cresce com 0 quadrado do número de nós. Bodin et ali sugerem com o
objetivo de reduzir 0 tamanho do grafo, que se deixe de incluir alguns arcos cujo tempo seja maior
que um limite especificado. Nestes casos, algumas modificações deverão ser realizadas, de modo a considerar corretamente os custo do capital imobilizado com a frota (vide [BOD83]).
aplicado o algoritmo out-of-kilter de Ford e Fulkerson (vide [FOR62]), no qual as condições de integridade poderão ser relaxadas sem prejuízo da viabilidade da solução.
Para resolução dos problemas VSPLPR, VSPMVT e VSPMD, conhecidos como sendo da categoria A^P-difícil (vide [BAL80] e [LEN81]), algumas modificações deverão ser realizadas.
No caso do problema VSPLPR, considera-se adicionalmente em relação ao modelo 2.2 que nenhum caminho que conecta os vértices s e t poderá exceder, em comprimento, um limite estabelecido T ^ . Para representação deste problema, Bodin et ali (vide [BOD83]) sugerem a construção de um grafo idêntico ao que foi apresentado para o VSP, exceto pela não inclusão dos vértices s e f . E m relação a montagem do grafo, os autores sugerem, ainda, a inclusão de arcos de retomo que conectem os vértices j e i, desde que exista um caminho de comprimento menor que conectando o vértice / ao vértice7. Assim, dois conjuntos de arcos poderão ser definidos:
A = ( o j )
I
STj - ET, > TM(ELt,STj)}
A2
= {(.AO I
TM(DL,SL,) + (ETJ - ST,) + TM (ELj, DL) < T ^ )Aos arcos do grafo G (N ,A l u A2) , são associados os custos cy , definidos por:
custo operacional associado ao movimento ELt -> SLj, V(/,y) € Ax
c, =
custo de capital + custo operacional associado ao movimento ELi -» DL + custo operacional associado ao movimento DL -» S L j,V (i,j) e A2
A solução do VSPLPR poderá ser obtida, encontrando-se no grafo G (N ,A l u A 2) um conjunto de circuitos que cobrem todos os nós do grafo, de modo que a soma dos custos dos arcos que compõe estes circuitos seja o menor possível, e que em cada circuito exista um e somente um arco do conjunto A2. Na figura 2.9 apresenta-se um exemplo deste tipo de grafo, juntamente com uma solução viável e outra inviável.
I
(b) Solução vtável
Figura 2.9 Representação de um VSPLPR, com as respectivas soluções. Fonte- L Bodin et ali, 1983 (vide [BOD83]).
A formulação matemática para este problema é a seguinte;
Min s.a: / . 2 . c,j XlJ + 2. ctJ y \ ( i,j) e A , 0 ,j) e A 2
J Ç
+
E y ¥ -X
xJt -£
y fi = o V j e N 'I O j) e A , iK i,j)e À 2 i\ ( jj) e A t H U sy e A j T xv + 1 V y e J V ii(i,j)e A , i\(i,j)e A2 X x ij + S y 9 ^ |C|~1 V circuito C ,|A n C |> 2(i,j)eA triC (i,j)eA 2n C
0 < xi}< 1 e inteiros V (/J) e 4 0 < y 9 < 1 e inteiros V (/J) € A 2 (2.3.a) (2.3.b) (2.3.c) (2.3.d) (2.3.e) (2.3.f)
onde x v e _y,y são as variáveis associadas aos arcos dos conjuntos Ax e A2, respectivamente. Na solução deste problema, x y = 1 e y t] = 1 indicam que o arco correspondente faz parte de um dos circuitos. Cada circuito contém as viagens que deverão ser alocadas a um veículo em particular. Nesta formulação, (2.3.b), (2.3.c), (2.3.e) e (2.3.f) são as restrições características de um problema de fluxo em rede. A condição (2.3.d) é incluída para garantir que nenhum circuito escolhido tenha mais do
que um arco de retomo. Ao contrário do que acontece para o problema VSP, neste caso a solução ótima não é facilmente obtida, como poderá ser observado mak adiante.
A estrutura dos problemas VSPMVT e VSPMD, por sua vez, apresenta-se mais apropriada à formulação de modelos de fluxo em redes com múltiplas mercadorias (vide [KEN80]). O grafo gerado é similar ao utilizado no modelo VSP, porém, para cada tipo de veículo (ou garagem), denotados por k = 1 ,...,* , é acrescentado um par de vértices {■W*} ’ onde sk é um vértice fonte e tk é um vértice sumidouro. O conjunto de nós do grafo é definido por N = N i u N 2, onde iV, é o conjunto de nós que representam as viagens, e N 2 = {si ,s2,...,sK,t l ,t2,...tK} é o conjunto de nós fonte e sumidouro acrescentados ao grafo.
As variáveis de fluxo xjj e os custos c* estão associados a £-ésima categoria de vértices, e existem sempre que for possível ao veículo da categoria k realizar a viagem representada pelo nó 7 após ter concluído a viagem representada pelo nó /. Denotando por Ak = A (k } u A (k2) u à (k3) o conjunto de arcos correspondentes a yfc-ésima categoria, onde:
= ÍC*5* > 0 1a viagem i pode ser realizada pelos veículos da k - ésima categoria}
4 2) = i(Utk) | a viagem i pode ser realizada pelos veículos da k - ésima categoria}
^*3) = {(Uj) I as viagens / e j puderem ser realizadas pelos veículos da categoria £}
tem-se o seguinte modelo:
M“ 1 S * = 1 ( i,j) eA k s.a: (2.4.a) (2.4.b) M T ^ < b k Vk = (2.4.c) j \ ( s , j ) e A k K Z = 1 v y e W , eA
0 < X* < 1 e inteiros V (i,j) e A e com k = Í,...K
(2.4.d)
onde bk e bk são os limites inferior e superior que indicam a disponibilidade de veículos em cada categoria.
Para a resolução dos modelos (2.3) e (2.4), relativos aos problemas VSPLPR, VSPMVT e VSPMD, podem ser aplicadas três técnicas distintas: programação concorrente, abordagem das duas fases e trocas heurísticas, conforme descrito a seguir.
2.4.2.1. Programação concorrente
A idéia básica consiste em analisar uma viagem por vez, segundo uma ordem preestabelecida, alocando-a ao veículo mais apropriado. Este método é utilizado na prática por ser de fícil implantação e por apresentar bons resultados. Bodin, Rosenfield e Kydes (vide [BOD78]) descrevem este procedimento como segue:
Passo 1 Ordem as viagens pelo tempo de início, incluindo-as em uma lista.
Atribua a primeira viagem ao veículo 1;
Posso 2 Seguindo a ordem estabelecida para as viagens, verifique se é viável alocar a i-ésima viagem em algum veículo existente. Em caso afirmativo, realize alocação tomando o veículo para o qual ocorre o menor intervalo de tempo parado. Em caso negativo, crie um novo veículo, e aloque nele a viagem em questão.
Passo 3 Repita o passo 2, até que todas as viagens tenham sido alocadas.
Passo 4 Pare.
A viabilidade de que trata o passo 2, depende do tipo de problema considerado. Deve-se ressaltar, ainda, a possibilidade de aplicar este mesmo algoritmo em situações mista« envolvendo limite de comprimento do caminho, tipos diferentes de veículos e múltiplas garagens. O critério de escolha do veículo mais apropriado à alocação, também poderá ser adaptado às circunstâncias de cada caso.
2 4.2.2. Abordagem das duas fases
A alocação de viagens nos problemas VSPMVT e VSPMD pode ser vista como um problema de formação de clusters. Embora com pouca documentação a respeito, é citado na literatura que estes procedimentos são bastante utilizados na prática. Existem duas abordagens distintas, ambas realizando a formação de clusters em etapas.
Uma destas abordagens considera que em uma primeira fase as viagens são agrupadas segundo algum critério de similaridade. Isto pode ser realizado por meio de um processo de alocação no qual cada viagem recebe um peso referente a sua inclusão em um determinado cluster. No caso do VSMVT, este peso poderá ser 0 ou 1, dependendo da possibilidade, ou não, de se realizar uma viagem com um veículo de determinado tipo.
No caso do VSPMD, o peso poderá estar relacionado com a proximidade da viagem a um depósito em particular. A alocação, propriamente dita, poderá ser realizada de modo a minimizar a soma destes pesos, considerando limites superiores e inferiores na disponibilidade de veículos em cada cluster. Uma vez formados tais clusters, resolve-se de modo isolado para cada um deles, um problema do tipo VSP.
Em outra abordagem, considera-se a ordem inversa. Na primeira fàse o problema completo é resolvido como sendo um VSP, e, em seguida, cada um dos blocos gerados (seqüência de viagens alocadas a um veículo) é alocado inteiramente a um cluster. Esta abordagem apresenta melhores resultados para o VSPMD, pois para o VSPMVT não há garantias de obtenção da viabilidade.
Na prática, sempre existem características que poderão ser utilizadas na realização destes agrupamentos. Uma forma natural de agrupar as viagens, é considerar a localização geográfica das garagens, bem como os locais de início e término de pgría viagem As características dos veículos também apresentam um papel importante frente aos roteiros e demandas das várias linhas. A definição da própria linha, na sua essência, é uma forma de agrupamento das viagens13.
2.4.2.3. Trocas heurísticas
Esta técnica heurística de resolução, pode ser vista como uma variação do algoritmo 2- opt aplicado na resolução do problema do caixeiro viajante (vide [LIN65]). Como ponto de partida considera-se uma solução inicial aproximada, que pode ser obtida pelo método de programação concorrente. Nesta solução, cada seqüência de viagens a ser alocada a um veículo forma um bloco. Com base nesta solução inicial, avalia-se a possibilidade de realizar, de forma sistemática, trocas entre arcos de dois blocos distintos, com o objetivo de minimiTar uma função de custo.
Na figura 2.10 é apresentado um exemplo deste procedimento. Como se pode observar, em cada troca de arcos apenas dois veículos são envolvidos. O efeito sobre os custos, que uma determinada troca de arcos provoca, não pode ser avaliada, em geral, apenas pelos custos dos arcos envolvidos. É necessário, pois, considerar os custos dos dois novos esquemas gerados, e compará-los com os custos de seus esquemas originais. Tal avaliação de custos poderá incorporar tempos ociosos, deslocamentos não produtivos, além dos fatores de adequação do veículo às viagens alocadas, entre outros aspectos.
Figura 2 .1 0 Procedimento de trocas heurísticas de viagens aplicado sobre um esquema com 3 veículos: (a) esquema inicial; (b) esquema inicial após a troca dos arcos 5-8 e 6-9 pelos arcos 5-9 e 6-8; (c) esquema após a segunda troca, na qual os arcos 7-10 e 8-11 são substituídos pelos arcos 7-11 e 8-10.