Sunteți pe pagina 1din 21

Variable Neighborhood Search

Algoritmos Modernos

Rosa Medina

Actualizado: 14 de octubre de 2014

Variable Neighborhood Search

Mladenovic, N., Hansen, P. Variable Neighborhood Search,


Computer Ops Res., Vol. 24, No. 11,1997

Variable Neighborhood Search

Observaciones
I

Un mnimo local para un vecindario, no necesariamente es


mnimo local para otro

Un mnimo global es un mnimo local para cualquier vecindario

Para muchos problemas, los mnimos locales respecto a uno o


varios vecindarios estan cerca (muchas variables tienen el
mismo valor en los dos vecindarios)

Variable Neighborhood Search

Cambio de vecindarios en la b
usqueda

Cambia de solucion s
olo si hay mejoras

Variable Neighborhood Descent


Algorithm 1 Variable Neighborhood Descent: min
1: input: soluci
on factible x, conjunto de vecindarios Nl (x), l =
1, . . . , lmax , funcion objetivo f (x)
2: for all vecindario l do
3:
for all x 0 Nl (x) do
4:
if f (x 0 ) < f (x)&f (x 0 ) < f (x ) then
5:
x = x0
6:
end if
7:
end for
8:
if f (x) < f (x) then
9:
x = x
10:
l =1
11:
end if
12: end for

Variable Neighborhood Descent

Determinstico

Complejidad de los vecindarios y complejidad total del


algoritmo

Mejor forma de estudiar los vecindarios

Exploracion de la regi
on factible

Ejemplo: KP 0-1

Max

10x1 + 7x2 + 25x3 + 24x4

s.t.

2x1 + x2 + 6x3 + 5x4 7


xj {0, 1}j = 1, . . . , 4

n: vector binario con los


solucio
tems

n de evaluacio
n: suma de
funcio
los beneficios de los tems
seleccionados

n inicial: ning
solucio
un tem es
seleccionado

vecindario 1: un tem de diferencia

vecindario 2: intercambiar dos


items

vecindario 3: eliminar item costo


menor e insertar otro

Reduced Variable Neighborhood Search


Algorithm 2 Reduced Variable Neighborhood Search
1: input: soluci
on factible x, conjunto de vecindarios Nl (x), l =
1, . . . , lmax , funcion objetivo f (x)
2: repeat
3:
for all vecindario l do
4:
aleatoriamente elegir x 0 Nl (x)
5:
if f (x 0 ) < f (x) then
6:
x = x0
7:
l =1
8:
end if
9:
end for
10: until criterio de t
ermino

Reduced Variable Neighborhood Search

Estocastico

Los vecindarios anidados: intensificaci


on en vecindarios
peque
nos y diversificaci
on en vecindarios

Ejemplo: KP 0-1

Max

10x1 + 7x2 + 25x3 + 24x4

s.t.

2x1 + x2 + 6x3 + 5x4 7

n: vector binario con los


solucio
tems

n de evaluacio
n: suma de
funcio
los beneficios de los tems
seleccionados

n inicial: ning
solucio
un tem es
seleccionado

rmino: tres
criterio de te
iteraciones

vecindario 1: un tem de diferencia

vecindario 2: intercambiar dos


items

vecindario 3: eliminar item costo


menor e insertar otro

xj {0, 1}j = 1, . . . , 4

10

Basic Variable Neighborhood Search


Algorithm 3 Basic Variable Neighborhood Search
1: input: soluci
on factible x, conjunto de vecindarios Nl (x), l =
1, . . . , lmax , funcion objetivo f (x)
2: repeat
3:
for all vecindario l do
4:
Shaking : aleatoriamente elegir x 0 Nl (x)
5:
Local Search: aplicando un local search, encontrar x 00 el
mnimo local
6:
Moverse o no: {
7:
if f (x 00 ) < f (x) then
8:
x = x 00
9:
l =1
10:
end if}
11:
end for
12: until criterio de t
ermino
11

Basic Variable Neighborhood Search

Si x es igual a x 00 , es un
optimo local para ese vecindario,
cambiamos de vecindario

Si x es distinto de x 00 , pero la funci


on objetivo es menor en x,
nuevamente es un
optimo local y cambiamos de vecindario

Si x es distinto de x 00 y la funci
on objetivo es mayor en x,
encontramos un nuevo
optimo local mejor que el anterior, nos
movemos a ese optimo local

Ejemplo: KP 0-1

Max

10x1 + 7x2 + 25x3 + 24x4

s.t.

2x1 + x2 + 6x3 + 5x4 7

n: vector binario con los


solucio
tems

n de evaluacio
n: suma de
funcio
los beneficios de los tems
seleccionados

n inicial: ning
solucio
un tem es
seleccionado

rmino: tres
criterio de te
iteraciones

vecindario 1: un tem de diferencia

vecindario 2: intercambiar dos


items

vecindario 3: eliminar item costo


menor e insertar otro

xj {0, 1}j = 1, . . . , 4

13

General Variable Neighborhood Search

En el Basic Variable Neighborhood Search


I

Local search Variable Neighborhood Descent (VND)

Mejorar la solucion inicial con Reduced Variable Neighborhood


Search (RVNS)

General Variable Neighborhood Search


Algorithm 4 General Variable Neighborhood Search
1: input: vecindarios para Shaking Nk (x), k = 1, . . . , kmax , vecindarios para Local
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
15

Search (VND) Nl (x), l = 1, . . . , lmax , soluci


on factible inicial x, funci
on objetivo
f (x)
mejorar x usando RVNS
repeat
for all vecindario k do
Shaking : aleatoriamente elegir x 0 Nk (x)
Local Search: aplicar VND a x 0 {
for all vecindario l do
for all x 00 Nl (x 0 ) do
if f (x 00 ) < f (x 0 ) then
x 0 = x 00
l =1
end if
end for
end for}
if f (x 0 ) < f (x) then
x = x0
k=1
end if
end for
until criterio de t
ermino

Ejemplo: KP 0-1

Max

10x1 + 7x2 + 25x3 + 24x4

s.t.

2x1 + x2 + 6x3 + 5x4 7

n: vector binario con los


solucio
tems

n de evaluacio
n: suma de
funcio
los beneficios de los tems
seleccionados

n inicial: ning
solucio
un tem es
seleccionado

rmino: tres
criterio de te
iteraciones

vecindario 1: un tem de diferencia

vecindario 2: intercambiar dos


items

vecindario 3: eliminar item costo


menor e insertar otro

xj {0, 1}j = 1, . . . , 4

16

Skewed Variable Neighborhood Search

17

Salir de valles muy largos

Explorar soluciones peores

(x, x 0 ): distancia entre x y x 0

: parametro

Skewed Variable Neighborhood Search


Algorithm 5 Skewed Variable Neighborhood Search
1: input: solucion factible x, conjunto de vecindarios Nl (x), l = 1, . . . , lmax , funcion
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:

18

objetivo f (x)
x opt = x
f (x opt ) = f (x)
repeat
for all vecindario l do
Shaking : aleatoriamente elegir x 0 Nl (x)
Local Search: aplicando un local search, encontrar x 00 el mnimo local
Memorizar mejor soluci
on: {
if f (x 00 ) < f (x opt ) then
x opt = x 00 , f (x opt = f (x 00 )
end if}
Moverse o no: {
if f (x 00 ) (x, x 00 ) < f (x) then
x = x 00 , l = 1
end if}
end for
until criterio de t
ermino

Ejemplo: KP 0-1

Max

10x1 + 7x2 + 25x3 + 24x4

s.t.

2x1 + x2 + 6x3 + 5x4 7

n: vector binario con los


solucio
tems

n de evaluacio
n: suma de
funcio
los beneficios de los tems
seleccionados

n inicial: ning
solucio
un tem es
seleccionado

rmino: tres
criterio de te
iteraciones

vecindario 1: un tem de diferencia

vecindario 2: intercambiar dos


items

vecindario 3: eliminar item costo


menor e insertar otro

xj {0, 1}j = 1, . . . , 4

19

Variable Neighborhood Decomposition Search

Dos niveles

Problemas que pueden ser descompuestos en subproblemas

Variable Neighborhood Decomposition Search


Algorithm 6 Variable Neighborhood Decomposition Search
1: input: soluci
on factible x, conjunto de vecindarios Nl (x), l =
1, . . . , lmax , funcion objetivo f (x)
2: repeat
3:
for all vecindario l do
4:
Shaking : aleatoriamente elegir x 0 Nl (x)
5:
Definir y = x 0 \ x, atributos en x 0 que no estan en x
6:
Local Search: aplicando un local search, encontrar un optimo con atributos en y , llamado y 0 .
7:
Componer x 00 = (x 0 \ y ) y 0
8:
Moverse o no: {
9:
if f (x 00 ) < f (x) then
10:
x = x 00 , l = 1
11:
end if}
12:
end for
13: until criterio de t
ermino
21

S-ar putea să vă placă și