Tema 7 VNS

Você também pode gostar

Você está na página 1de 18

Meta-Heurítsicas em

Otimização Combinatória
Tema 7
Variable Neighborhood Search
(VNS)

Profª Laura Bahiense


VNS:
Histórico

Nenad Mladenovic & Pierre Hansen em 1997

Método de busca local que explora o espaço de soluções


através de trocas sistemáticas de estruturas de vizinhança

Explora vizinhanças gradativamente mais distantes

Focaliza a busca em torno de uma nova solução somente


quando ao um movimento de melhora é realizado

Profa Laura Bahiense 2/17 Meta-heurísticas em Otimização Combinatória VNS e VND


VNS:
Ideia

Método de descida (ou subida) em vizinhança variável

Explora o espaço de soluções através de trocas sistemáticas de


estruturas de vizinhança

Explora vizinhanças gradativamente mais “distantes”

Sempre que há melhora em uma certa vizinhança, retorna-se à


vizinhança “menos distante”

Profa Laura Bahiense 3/17 Meta-heurísticas em Otimização Combinatória VNS e VND


VNS:
Algoritmo

Procedimento VNS (s0 = solução inicial; kmax = número de estruturas de vizinhança)


. s  s0 {s : solução corrente}
. escolher um critério_de_parada
. enquanto (critério_de_parada_não_satisfeito) efetue
. . k  1 {k : tipo de estrutura de vizinhança}
. . enquanto (k  kmax ) efetue
. . . gerar um vizinho qualquer s’  Nk (s) {agitação}
. . . s ’’  BuscaLocal (s ’ )
. . . se ( f (s ’’ ) < f (s ) )
. . . . então s  s ’’ ; k  1 {retorna à vizinhança 1}
. . . . senão k  k + 1
. . . fim-se
. . fim-enquanto
. fim-enquanto
. Retornar s
fim VNS.

Profa Laura Bahiense 4/17 Meta-heurísticas em Otimização Combinatória VNS e VND


VNS:
Ilustração

Critério de aceitação:
s’’ aceito se f(s’’) < f(s)

s=s0
N 1
(agitação)
s’
s’’(busca local)
N 1

s’(agitação)
s’’
(busca local)
Profa Laura Bahiense 5/17 Meta-heurísticas em Otimização Combinatória VNS e VND
VNS:
Ilustração

Critério de aceitação:
s’’ aceito se f(s’’) < f(s)

s=s0
N 1
(agitação)
s’
s’’
(busca local)

Profa Laura Bahiense 6/17 Meta-heurísticas em Otimização Combinatória VNS e VND


VNS:
Ilustração

Se f(s’’) < f(s) então


retorna a N 1

N 2
s’(agitação)
s=s0
s’’(busca local)
N 1
(nova agitação)
N 1

Senão...

Profa Laura Bahiense 7/17 Meta-heurísticas em Otimização Combinatória VNS e VND


VNS:
Ilustração
Critério de aceitação:
s’’ aceito se f(s’’) < f(s)
s’
N k max
s’’
(busca local)

N 2
s
N 1

Profa Laura Bahiense 8/17 Meta-heurísticas em Otimização Combinatória VNS e VND


VNS:
Estruturas de vizinhança

Normalmente as vizinhanças N k no VNS são aninhadas

O VNS é dependente da estrutura de vizinhança

O número de vizinhanças é determinado experimentalmente

Profa Laura Bahiense 9/17 Meta-heurísticas em Otimização Combinatória VNS e VND


VNS:
Critérios de parada
Número máximo de iterações

Número máximo de iterações sem melhoria

Tempo máximo de CPU

Gap em relação ao ótimo conhecido ou algum limitante dual conhecido ou


calculado concomitantemente

Profa Laura Bahiense 10/17 Meta-heurísticas em Otimização Combinatória VNS e VND


VND:
Ideia
VNS: a ideia é de substituir, iterativamente, a solução atual pelo resultado da
busca local, quando há melhoria

VND: a ideia é utilizar várias vizinhanças também na fase de descida

Substitui-se a estrutura de vizinhança, de forma determinística, cada vez que se


encontra um mínimo local

Motivação:
Um ótimo local com relação a uma vizinhança não necessariamente corresponde a
um ótimo com relação a outra vizinhança
Porém, um ótimo global corresponde a um ótimo local para todas as estruturas de
vizinhança
Objetivo: encontrar um ótimo local com relação a todas as kmax estruturas de
vizinhança

Profa Laura Bahiense 11/17 Meta-heurísticas em Otimização Combinatória VNS e VND


VND:
Algoritmo
Procedimento VND (s0 = solução inicial; kmax = número de estruturas de vizinhança)
. s  s0 {s : solução corrente}
. enquanto (há_melhoria) efetue
. . k  1 {k : tipo de estrutura de vizinhança}
. . enquanto (k  kmax ) efetue
. . . encontrar o melhor vizinho s’  Nk (s)
. . . se ( f (s ’ ) < f (s ) )
. . . . então s  s ’ ; k  1 {retorna à vizinhança 1}
. . . . senão k  k + 1
. . . fim-se
. . fim-enquanto
. fim-enquanto
. retornar s
fim VND

Profa Laura Bahiense 12/17 Meta-heurísticas em Otimização Combinatória VNS e VND


VNS + VND:
Ilustração

Ponto
Ótimo
Profa Laura Bahiense 13/17 Meta-heurísticas em Otimização Combinatória VNS e VND
Variações:
RVNS (Reduced VNS)

Como ótimos locais costumam estar próximos uns dos outros, e situados em
pequenas regiões do espaço, é natural explorar vizinhanças próximas

No RVNS, as vizinhanças N1, N2,..., Nkmax são aninhadas

Pontos aleatórios são sorteados nas vizinhanças

Útil em problemas muito grandes em que a busca local é muito custosa

Profa Laura Bahiense 14/17 Meta-heurísticas em Otimização Combinatória VNS e VND


RVNS:
Algoritmo

Procedimento RVNS(s0 = solução inicial; kmax = número de estruturas de vizinhança)


. s  s0 {s : solução corrente}
. escolher um critério_de_parada
. enquanto (critério_de_parada_não_satisfeito) efetue
. . k  1 {k : tipo de estrutura de vizinhança}
. . enquanto (k  kmax ) efetue
. . . gerar um vizinho qualquer s’  N (k ) (s) {agitação}
. . . se ( f (s ’ ) < f (s ) )
. . . . então s  s ’ ; k  1
. . . . senão k  k + 1
. . . fim-se
. . fim-enquanto
. fim-enquanto
. Retornar s
fim RVNS

Profa Laura Bahiense 15/17 Meta-heurísticas em Otimização Combinatória VNS e VND


Variações:
GVNS (Generalized VNS)

Unir tudo o que vimos até aqui:

VNS onde a busca local é substituída por uma VND

RVNS é utilizada para obtenção de uma solução inicial melhor

Profa Laura Bahiense 16/17 Meta-heurísticas em Otimização Combinatória VNS e VND


GVNS:
Algoritmo
Procedimento GVNS (s0 = solução inicial; kmax = número de estruturas de vizinhança
para agitação; jmax = número de estruturas de vizinhança para a busca local)
. s0  s0 melhorada via RVNS
. s  s0 {s : solução corrente}
. escolher um critério_de_parada
. enquanto (critério_de_parada_não_satisfeito) efetue
. . k  1 {k : tipo de estrutura de vizinhança}
. . enquanto (k  kmax ) efetue
. . . gerar um vizinho qualquer s’  N (k ) (s ) {agitação}
. . . s ’’  VND(s ’ ) com vizinhanças N ’ ( j ) (s’ ) {BL=VND}
. . . se ( f (s ’’ ) < f (s ) )
. . . . então s  s ’’ ; k  1
. . . . senão k  k + 1
. . . fim-se
. . fim-enquanto
. fim-enquanto
. Retornar s
fim GVNS
Profa Laura Bahiense 17/17 Meta-heurísticas em Otimização Combinatória VNS e VND
Profa Laura Bahiense 18/17 Meta-heurísticas em Otimização Combinatória VNS e VND

Você também pode gostar