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

Post on 17-Jan-2016

61 views 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 of 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

Introducción

Marco Teórico Vecindades Fundamentos Algoritmo básico Variantes

Aplicaciones GCP VRPTW

Resumen Conclusiones Preguntas

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

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.

Marco Teórico – vecindades (2)

Estructuras de Vecindad vs. Vecindades.

Soluciones “cercanas”.

Abstracciones del espacio de búsqueda.

Marco Teórico – clasificación

VNS Básico Sin memoria.

Aleatorio.

Trayectoria.

M / S / 1.

Marco Teórico – búsqueda local

Búsqueda Locals Generar SolucionInicial()

Repeat

s Mejorar(s,(s))

Until no hay mejora posible

Óptimo Local

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.

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

Marco Teórico – cond. de parada

Tiempo de cómputos.

Número de iteraciones.

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

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

Marco Teórico – variantes

VNS descendente (VND)

VNS sesgado (SVNS)

VNS con descomposición (VNDS)

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

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

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

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).

Aplicación GCP

Coloreado de grafos.

NP-duro.

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

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.

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).

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.

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.

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

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”.

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.

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.

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

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.

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.

Aplicación GCP – vecindades (7)

Aplicación GCP – vecindades (8)

Pruebas de estructuras de vecindades combinadas.

Ninguna permutación es mejor que otra.

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

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ú).

Aplicación VRPTW

Ruteo de vehículos con ventanas de tiempo.

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

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.

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.

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.

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.

Aplicación VRPTW– resultados(1)

Aplicación VRPTW– resultados(2)

Aplicación VRPTW– resultados(3)

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.

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.

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.

Preguntas...