Algoritmos Heurísticos de Cobertura de Arcos
Algoritmos Heurísticos de Cobertura de Arcos
Algoritmos Heurísticos de Cobertura de Arcos
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Fim.<br />
A chamada ao procedimento <strong>de</strong> BuscaLocal() no algoritmo acima po<strong>de</strong> ser preenchida<br />
por qualquer procedimento do gênero. No contexto do Problema <strong>de</strong> Caixeiro Viajante<br />
Assimétrico a busca <strong>de</strong>ve ser do tipo 3-opt. Para este problema específico Voudouris e<br />
Tsang [Vou99] recomendam a utilização <strong>de</strong> estratégias <strong>de</strong> redução da vizinhança, num<br />
procedimento <strong>de</strong>nominado Busca Local Rápida – BLR. O conjunto <strong>de</strong> vizinhança é<br />
re<strong>de</strong>finido dinamicamente, utilizando uma variável binária (bit) associada a cada vizinho.<br />
O algoritmo <strong>de</strong> BLD, combinado ao BLR po<strong>de</strong> ser <strong>de</strong>scrito como:<br />
Procedimento BLD_BLR(S, g, λ, [I1,..., IM], [c1,..., cM], M, L)<br />
Início<br />
k ← 0;<br />
s ← 0 solução inicial gerada por alguma heurística ou<br />
aleatoriamente;<br />
Para i←1 até M faça p ← 0; {Faz<br />
i<br />
todas as penalida<strong>de</strong>s iguais a zero}<br />
Para i←1 até L faça bit ←1; i {Ativa<br />
todas as sub-vizinhanças}<br />
Enquanto critério <strong>de</strong> parada faça<br />
M<br />
h← g+ ∑ p. I ;<br />
λ<br />
i=<br />
1<br />
i i<br />
s k+1 ← BLR(s k, h, [bit 1,...,bit L], L);<br />
Para i ←1 até M faça utili=Ii(sk+1 ).ci/(1+pi); Para cada i tal que utili é máximo faça<br />
p ← p i i+1;<br />
SetBits ← SubVizinhançasCaracterística(i);<br />
{Ativa todas as sub-vizinhanças relativas à<br />
característica penalizada}<br />
Para cada bit b em SetBits faça b ← 1;<br />
FimPara;<br />
k ← k+1;<br />
FimEnquanto;<br />
s* ← a melhor solução encontrada com respeito à função<br />
custo g;<br />
132