Você está na página 1de 3

50

meta-heurísticas que estendem este esquema de várias formas, evitando que o processo fique
preso em um ótimo local de baixa qualidade, já foram propostas (GLOVER; KOCHENBER-
GER, 2003).
Figura 3 – Processo de busca de um algoritmo de busca em vizinhança

Fonte: Elaboração do autor


De acordo com Mladenović e Hansen (1997), uma meta-heurística simples e eficiente
pode ser obtida realizando-se trocas sistemáticas de vizinhanças, em conjunto com um algo-
ritmo de busca local. Eles denominam esta técnica de busca em vizinhança variável e apresen-
tam no artigo um algoritmo VNS básico, o BVNS (Basic Variable Neighborhood Search). Ao
contrário da maioria das técnicas de busca local, a meta-heurística VNS não segue uma trajetó-
ria, mas explora vizinhanças cada vez mais distantes da solução incumbente corrente, e muda
da incumbente corrente para uma nova se, e somente se, uma melhoria é obtida. Desta forma,
geralmente as características favoráveis de uma solução incumbente, como por exemplo,
quando a maioria das variáveis já estão em seus valores ótimos, será mantida e usada para obter
soluções vizinhas promissoras (MLADENOVIĆ; HANSEN, 1997).

4.3 FUNDAMENTOS DE BUSCA EM VIZINHANÇA VARIÁVEL

Busca em vizinhança variável é uma meta-heurística que explora sistematicamente a


ideia de trocas de vizinhanças, tanto na descida para ótimos locais quanto para escapar de vales
que os contém. A meta-heurística VNS explora sistematicamente as três propriedades seguin-
tes:
 Fato 1: Um ótimo local com relação a uma estrutura de vizinhança não é necessaria-
mente o mesmo ótimo local para outra estrutura de vizinhança;
53

Figura 5 – Evolução do algoritmo BVNS

Fonte: Hansen e Mladenović (2008)


O critério de parada do algoritmo BVNS pode ser por exemplo um número máximo de
iterações, tempo de processamento máximo ou máximo número de iterações entre duas melho-
rias. Geralmente, níveis de vizinhança sucessivos devem estar aninhados. Note que o ponto
é gerado aleatoriamente no passo 2(a), de forma a evitar ciclagem, que poderia ocorrer caso
alguma regra determinística fosse utilizada.
O algoritmo BVNS, apresentado na Figura 4, é um método de descida de primeira me-
lhoria. Em Mladenović e Hansen (1997) são propostas também várias extensões para o algo-
ritmo BVNS apresentado, inspiradas em meta-heurísticas, principalmente a TS. Por exemplo,
o algoritmo pode ser transformado em um método de descida-subida, se o passo 2(c) for modi-
ficado (faça ← mesmo que uma melhoria não seja atingida), e/ou um método de maior

melhoria (vá para a melhor vizinhança dentre as vizinhanças). Outras variantes para o
algoritmo BVNS podem ser (MLADENOVIĆ; HANSEN, 1997):
i. Encontre a solução no passo 2(a) como a melhor entre (um parâmetro) soluções
geradas aleatoriamente da k-ésima estrutura de vizinhança;
ii. Introduza e , dois parâmetros que controlam o processo de trocas de vizinhan-
ças, ou seja, no algoritmo da Figura 4, ao invés de ←1e ← 1 faça ← e
← no passo 2(c). Desta forma, intensificação e diversificação são alcança-
das, de uma forma simples e natural. De fato, se e/ou são fixados em algum
valor inteiro grande, então a busca continua em regiões distantes do espaço de busca, ou
55

do processo, a vizinhança do ponto muda, de forma a considerar uma região maior do espaço
de busca. A Figura 7 mostra o processo de busca do algoritmo VND. A ideia é a mesma da
metodologia apresentada na Figura 3. Entretanto, ao invés de parar a busca no ponto ,o
algoritmo VND passa para outra vizinhança, , onde é obtida a solução . Ao atualizar
a incumbente com , a busca é reiniciada na primeira estrutura de vizinhança de , ou seja,
, obtendo uma nova solução incumbente . O processo continua até que seja encon-
trada uma solução que em nenhuma estrutura de vizinhança seja obtida uma melhoria.
Figura 7 – Processo de busca do algoritmo VND

Fonte: Elaboração do autor


Ao se implementar o algoritmo VND as seguintes perguntas devem ser feitas:
i. Qual a complexidade de diferentes tipos de movimentos?
ii. Qual a melhor ordem para aplicá-los?
iii. Os movimentos considerados são suficientes para assegurar a exploração completa da
região contendo ?
iv. O quão precisa é a solução desejada?
A pergunta (i) refere-se a seleção e classificação dos movimentos: se eles envolvem
excessivas mudanças elementares, a heurística resultante pode ser muito lenta e geralmente
levar mais tempo que um método exato para resolver um problema pequeno ou médio.
A pergunta (ii) também tem influência no tempo computacional em relação à qualidade
das soluções obtidas. Uma implementação muito utilizada consiste em realizar movimentos por
ordem crescente de complexidade, ou seja, em vizinhanças de cardinalidade crescente, e voltar

Você também pode gostar