búsqueda en vecindades variables (variable neighborhood search - vns)

44
Búsqueda en Vecindades Variables (Variable Neighborhood Search - VNS) Germán Ferrari Federico Laca Grupo Nº 5

Upload: keala

Post on 17-Jan-2016

61 views

Category:

Documents


3 download

DESCRIPTION

Búsqueda en Vecindades Variables (Variable Neighborhood Search - VNS). Germán Ferrari Federico Laca. Grupo Nº 5. Introducción. Marco Teórico Vecindades Fundamentos Algoritmo básico Variantes Aplicaciones GCP VRPTW Resumen Conclusiones Preguntas. Marco Teórico - generalidades. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Búsqueda en Vecindades Variables (Variable Neighborhood Search - VNS)

Búsqueda en Vecindades Variables

(Variable Neighborhood Search - VNS)

Germán Ferrari

Federico Laca

Grupo Nº 5

Page 2: Búsqueda en Vecindades Variables (Variable Neighborhood Search - VNS)

Introducción

Marco Teórico Vecindades Fundamentos Algoritmo básico Variantes

Aplicaciones GCP VRPTW

Resumen Conclusiones Preguntas

Page 3: Búsqueda en Vecindades Variables (Variable Neighborhood Search - VNS)

Marco Teórico - generalidades

Metaheurística para resolución de problemas de optimización combinatoria.

Propuesto por P.Hansen y N.Mladenovic (1997).

Extensión de Búsqueda Local que utiliza distintas vecindades a lo largo de la búsqueda.

OC en general, MAXSAT, grafos

Page 4: Búsqueda en Vecindades Variables (Variable Neighborhood Search - VNS)

Marco Teórico – vecindades (1)

Estructura de vecindad: Función :2, que define para cada s, un conjunto (s) de soluciones llamadas “vecinas” de s. El conjunto (s) se llama “vecindad” de s y cada elemento s´ (s) es una solución “vecina” de s.

Page 5: Búsqueda en Vecindades Variables (Variable Neighborhood Search - VNS)

Marco Teórico – vecindades (2)

Estructuras de Vecindad vs. Vecindades.

Soluciones “cercanas”.

Abstracciones del espacio de búsqueda.

Page 6: Búsqueda en Vecindades Variables (Variable Neighborhood Search - VNS)

Marco Teórico – clasificación

VNS Básico Sin memoria.

Aleatorio.

Trayectoria.

M / S / 1.

Page 7: Búsqueda en Vecindades Variables (Variable Neighborhood Search - VNS)

Marco Teórico – búsqueda local

Búsqueda Locals Generar SolucionInicial()

Repeat

s Mejorar(s,(s))

Until no hay mejora posible

Óptimo Local

Page 8: Búsqueda en Vecindades Variables (Variable Neighborhood Search - VNS)

Marco Teórico – fundamentos

Un mínimo local con una estructura de vecindades no lo es necesariamente con otra.

Un mínimo global es mínimo local con todas las posibles estructuras de vecindades.

Page 9: Búsqueda en Vecindades Variables (Variable Neighborhood Search - VNS)

Marco Teórico – algoritmo básico

Seleccionar un conjunto de estructuras de vecindad k, k = 1..kmax

s GenerarSolucionInicial()Mientras no se cumple condición de fin do

k 1

Mientras k < kmax do

s´ SeleccionarRandom(k(s)) // Shakings´´ LocalSearch(s´) // Local Searchif f(s´´) < f(s) then // Move or Not

s s´´k 1

Elsek k+1

End ifEnd mientras

End mientras

Page 10: Búsqueda en Vecindades Variables (Variable Neighborhood Search - VNS)

Marco Teórico – cond. de parada

Tiempo de cómputos.

Número de iteraciones.

Número de iteraciones sin mejorar la solución.

Page 11: Búsqueda en Vecindades Variables (Variable Neighborhood Search - VNS)

Marco Teórico – algoritmo básico

Seleccionar un conjunto de estructuras de vecindad k, k = 1..kmax

s GenerarSolucionInicial()Mientras no se cumple condición de fin do

k 1

Mientras k < kmax do

s´ SeleccionarRandom(k(s)) // Shakings´´ LocalSearch(s´) // Local Searchif f(s´´) < f(s) then // Move or Not

s s´´k 1

Elsek k+1

End ifEnd mientras

End mientras

Page 12: Búsqueda en Vecindades Variables (Variable Neighborhood Search - VNS)

Marco Teórico – variantes

VNS descendente (VND)

VNS sesgado (SVNS)

VNS con descomposición (VNDS)

Page 13: Búsqueda en Vecindades Variables (Variable Neighborhood Search - VNS)

Marco Teórico – variante VND

Seleccionar un conjunto de estructuras de vecindad k, k = 1..kmax

s GenerarSolucionInicial()Mientras no se cumple condición de fin do

k 1

Mientras k < kmax dos´ ÓptimaMejora(k(s)) if f(s´) < f(s) then

s s´k 1

Elsek k+1

End ifEnd mientras

End mientras

Page 14: Búsqueda en Vecindades Variables (Variable Neighborhood Search - VNS)

Marco Teórico – variante SVNS

Seleccionar un conjunto de estructuras de vecindad k, k = 1..kmax

s GenerarSolucionInicial()Mientras no se cumple condición de fin do

k 1

Mientras k < kmax do

s´ SeleccionarRandom(k(s)) ; s´´ LocalSearch(s´) if f(s´´) < f* then f* f (s’’); s* s’’ End if

if f(s´´) – (s,s”) < f(s) thens s´´; k 1

Elsek k+1

End ifEnd mientras

End mientras

Page 15: Búsqueda en Vecindades Variables (Variable Neighborhood Search - VNS)

Marco Teórico – variante VNDS

Seleccionar un conjunto de estructuras de vecindad k, k = 1..kmax

s GenerarSolucionInicial()Mientras no se cumple condición de fin do

k 1

Mientras k < kmax do

s´ SeleccionarRandom(k(s)) ;(s y s’ difieren en un conjunto de k atributos)s´´ LocalSearch(s´, atributos); (sólo k atributos involucrados)

if f(s´´) < f(s) thens s´´; k 1

Elsek k+1

End ifEnd mientras

End mientras

Page 16: Búsqueda en Vecindades Variables (Variable Neighborhood Search - VNS)

Aplicaciones

Problema de coloreado de grafos (GCP). A variable neighborhood search for graph

coloring (C.Avanthay, A.Hertz, N.Zufferey).

Problema de ruteo de vehículos con ventanas de tiempo (VRPTW). A reactive variable neighborhood search for

the vehicle routing problem with time windows (O.Bräysy).

Page 17: Búsqueda en Vecindades Variables (Variable Neighborhood Search - VNS)

Aplicación GCP

Coloreado de grafos.

NP-duro.

Métodos exactos (menos de 100 vértices).

Page 18: Búsqueda en Vecindades Variables (Variable Neighborhood Search - VNS)

Aplicación GCP – definiciones

k-coloreado de G: Dado k es una función c: V {1,...,k}. Dado un vértice v, c(v) es llamado el color de v.

Clase de color: Es un conjunto Vr de los vértices con el color r. Vértice conflictivo: Es un vértice que tiene otro vértice

adyacente del mismo color. Arista conflictiva: Es una arista que une dos vértices del

mismo color. Color conflictivo: Es un color para el cual existen vértices

conflictivos. Conjunto estable: Conjunto de vértices del mismo color sin

vértices conflictivos. k-coloreado legal: Es un k-coloreado sin aristas conflictivas.

Page 19: Búsqueda en Vecindades Variables (Variable Neighborhood Search - VNS)

Aplicación GCP – k-GCP

Minimizar el número de aristas conflictivas de un k-coloreado.

f(s) = kr=1 |Er|

Er es el conjunto de las aristas conflictivas que tienen sus dos vértices de color r.

Mejor método encontrado, híbrido que combina algoritmo genético con búsqueda tabú (Galinier y Hao).

Page 20: Búsqueda en Vecindades Variables (Variable Neighborhood Search - VNS)

Aplicación GCP – alternativas

Construir sucesivamente conjuntos estables maximales y quitarlos del grafo.

Partition approach Determinar una cota superior para k, y luego

resolver una serie de k-GCPs con k cada vez más chico hasta que no se pueda encontrar un k-coloreado legal.

Page 21: Búsqueda en Vecindades Variables (Variable Neighborhood Search - VNS)

Aplicación GCP – modelado

Solución factible: cualquier k-coloreado. Función objetivo: min f(s) = k

r=1 |Er|. Solución inicial: elegida randómicamente. Condición de parada: número de iteraciones

(MaxVNS) sin realizar ninguna mejora. Búsqueda local: Tabucol.

Maxtabu = 10*MaxVNS iteraciones sin mejora. Largo lista tabú = 10.

Page 22: Búsqueda en Vecindades Variables (Variable Neighborhood Search - VNS)

Aplicación GCP – algoritmo

1. Inicialización

Seleccionar un conjunto de estructuras de vecindad t, t = 1..tmax

s GenerarKColoreadoRandom()

IVNS 0; t 1

2. Repetir hasta IVNS = MaxVNS

IVNS IVNS + 1

s´ SeleccionarRandom(t(s)) // Shakings´´ TabuCol(s´) // Local Searchif f(s´´) < f(s) then // Move or Not

s s´´; t 1

IVNS 0Else

t t+1End if

End repetir

Page 23: Búsqueda en Vecindades Variables (Variable Neighborhood Search - VNS)

Aplicación GCP – vecindades (1)

Metodología general. Grupos de estructuras de vecindades. Pruebas independientes. Selección de “las mejores”. Pruebas de estructuras de vecindades

combinadas. Selección de la “mejor combinación”.

Page 24: Búsqueda en Vecindades Variables (Variable Neighborhood Search - VNS)

Aplicación GCP – vecindades (2)

Vecindades de vértice. Se generan cambiando el color de algunos vértices

conflictivos. Vecindades de clase.

Se generan cambiando el color de algunos o todos los vértices de una clase de color conflictiva.

Vecindades no-crecientes. Se generan cambiando el color de algunos vértices

pero nunca aumentando el número total de aristas conflictivas.

Page 25: Búsqueda en Vecindades Variables (Variable Neighborhood Search - VNS)

Aplicación GCP – vecindades (3)

Vecindades de vértice.1. Básica.2. De cadena.3. Granada.4. Fuego artificial.5. Permutación.

Vecindades de clase.6. Vaciar-rellenar.7. Conjunto estable.8. Clase vacía.9. Clase tabú.

Vecindades no-crecientes.10. Culverson.11. Sub-grafo.

Page 26: Búsqueda en Vecindades Variables (Variable Neighborhood Search - VNS)

Aplicación GCP – vecindades (4)

Vecindad de granada Se realiza i veces

Selecciono randómicamente un vértice conflictivo x de Vr (llamado vértice granada) y lo cambio a Vj

(mejor clase de color posible). A todos los nuevos vértices conflictivos de Vj se

les cambia a la mejor clase de color posible.

i random en {1,..,imax} imax decrece de 40 a 1 con IVNS

Page 27: Búsqueda en Vecindades Variables (Variable Neighborhood Search - VNS)

Aplicación GCP – vecindades (5)

Vecindad vaciar-rellenar Vaciar V*

Cada vértice se “mueve” a la mejor clase de color.

Rellenar con otros p vértices En lo posible nuevos vértices conflictivos.

Page 28: Búsqueda en Vecindades Variables (Variable Neighborhood Search - VNS)

Aplicación GCP – vecindades (6)

Pruebas individuales de las estructuras de vecindades. 9 grafos de tamaño mediano.

4 grafos aleatorios de 500 vértices y densidad 0.5. 2 grafos planos de 300 vértices con solución

óptima conocida 28 y 26. 2 grafos de Leighton de 50 vértices y solución

óptima conocida 15. 1 grafo aleatorio DSJ de 500 vértices y densidad

0.5.

Page 29: Búsqueda en Vecindades Variables (Variable Neighborhood Search - VNS)

Aplicación GCP – vecindades (7)

Page 30: Búsqueda en Vecindades Variables (Variable Neighborhood Search - VNS)

Aplicación GCP – vecindades (8)

Pruebas de estructuras de vecindades combinadas.

Ninguna permutación es mejor que otra.

Page 31: Búsqueda en Vecindades Variables (Variable Neighborhood Search - VNS)

Aplicación GCP – VNS propuesto

1. Inicialización

Considerar la permutación de {2,3,4,6,7,8}s GenerarKColoreadoRandom()

IVNS 0; t 1

2. Repetir hasta IVNS = MaxVNS

IVNS IVNS + 1

s´ SeleccionarRandom((t)(s)) // Shakings´´ TabuCol(s´) // Local Searchif f(s´´) < f(s) then // Move or Not

s s´´; t 1

IVNS 0Else

if IVNS es múltiplo de MaxVNS/6 t t+1 End ifEnd if

End repetir

Page 32: Búsqueda en Vecindades Variables (Variable Neighborhood Search - VNS)

Aplicación GCP – comparación

VNS no obtuvo mejoras significativas.

Mejor que Tabucol.

No compite con GH (híbrido que combina algoritmo genético con búsqueda tabú).

Page 33: Búsqueda en Vecindades Variables (Variable Neighborhood Search - VNS)

Aplicación VRPTW

Ruteo de vehículos con ventanas de tiempo.

VNS reactiva (RVNS). Robusta. Confiable. Soluciones de alta calidad.

Page 34: Búsqueda en Vecindades Variables (Variable Neighborhood Search - VNS)

Aplicación VRPTW – RVNS (1)

Fases1. Generar las soluciones iniciales.

Heurística constructiva.

2. Eliminación de rutas. Procedimiento de eliminación de rutas.

3. VND. Procedimientos de mejora de rutas.

4. Post-optimización. Reactividad.

Page 35: Búsqueda en Vecindades Variables (Variable Neighborhood Search - VNS)

Aplicación VRPTW – RVNS (2)

Metaheurística específica para el problema.

Desarrollo de procedimientos de mejora de soluciones (extensiones de métodos ya existentes). Construcción de soluciones iniciales. Eliminación de rutas. Mejora de rutas.

Page 36: Búsqueda en Vecindades Variables (Variable Neighborhood Search - VNS)

Aplicación VRPTW – RVNS (3)

Procedimientos de mejora de rutas (operadores de búsqueda local). Inter-ruta

ICROSS IRP

Intra-ruta IOPT O-opt

Definen estructuras de vecindad. Vecindades crecientes.

Page 37: Búsqueda en Vecindades Variables (Variable Neighborhood Search - VNS)

Aplicación VRPTW – pruebas

Sets de parámetros RVNS(1), RVNS(2), RVNS(3)

Sets de problemas conocidos. Clientes “clusterizados”, distribuidos

randómicamentes y combinaciones de los dos. Ventanas de tiempo estrechas y anchas. Distintas capacidades de vehículos.

Comparación con las mejores metaheurísticas presentadas para cada caso de prueba.

Page 38: Búsqueda en Vecindades Variables (Variable Neighborhood Search - VNS)

Aplicación VRPTW– resultados(1)

Page 39: Búsqueda en Vecindades Variables (Variable Neighborhood Search - VNS)

Aplicación VRPTW– resultados(2)

Page 40: Búsqueda en Vecindades Variables (Variable Neighborhood Search - VNS)

Aplicación VRPTW– resultados(3)

Page 41: Búsqueda en Vecindades Variables (Variable Neighborhood Search - VNS)

Aplicación VRPTW– conclusiones

Es posible desarrollar buenos métodos basados en VNS.

Para este problema utilizar vecindades variables resultó ser siempre mejor que cualquiera de las vecindades consideradas por separado.

Alterar la función objetivo puede ayudar a escapar de los mínimos locales.

Page 42: Búsqueda en Vecindades Variables (Variable Neighborhood Search - VNS)

Resumen

Varias estructuras de vecindad. Metaheurística “genérica”. Variantes (VND, SVNS y VNDS). Aplicación GCP

Metodología para seleccionar estructuras de vecindades.

Aplicación VRPTW RVNS.

Page 43: Búsqueda en Vecindades Variables (Variable Neighborhood Search - VNS)

Conclusiones generales

En general, el VNS consigue mejores resultados que la búsqueda local.

Las estructuras de vecindades seleccionadas y el orden en que se utilizan inciden fuertemente en los resultados obtenidos.

Utilizando información particular del problema, es posible conseguir muy buenas soluciones.

Page 44: Búsqueda en Vecindades Variables (Variable Neighborhood Search - VNS)

Preguntas...