1 / 44

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.

keala
Download Presentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. Introducción • Marco Teórico • Vecindades • Fundamentos • Algoritmo básico • Variantes • Aplicaciones • GCP • VRPTW • Resumen • Conclusiones • Preguntas

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

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

  5. Marco Teórico – vecindades (2) • Estructuras de Vecindad vs. Vecindades. • Soluciones “cercanas”. • Abstracciones del espacio de búsqueda.

  6. Marco Teórico – clasificación • VNS Básico • Sin memoria. • Aleatorio. • Trayectoria. • M / S / 1.

  7. Marco Teórico – búsqueda local • Búsqueda Local s  Generar SolucionInicial() Repeat s  Mejorar(s,(s)) Until no hay mejora posible • Óptimo Local

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

  9. 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)) // Shaking s´´  LocalSearch(s´) // Local Search if f(s´´) < f(s) then // Move or Not s  s´´ k  1 Else k  k+1 End if End mientras End mientras

  10. Marco Teórico – cond. de parada • Tiempo de cómputos. • Número de iteraciones. • Número de iteraciones sin mejorar la solución.

  11. 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)) // Shaking s´´  LocalSearch(s´) // Local Search if f(s´´) < f(s) then // Move or Not s  s´´ k  1 Else k  k+1 End if End mientras End mientras

  12. Marco Teórico – variantes • VNS descendente (VND) • VNS sesgado (SVNS) • VNS con descomposición (VNDS)

  13. 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 do s´  ÓptimaMejora(k(s)) if f(s´) < f(s) then s  s´ k  1 Else k  k+1 End if End mientras End mientras

  14. 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) then s  s´´; k  1 Else k  k+1 End if End mientras End mientras

  15. 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) then s  s´´; k  1 Else k  k+1 End if End mientras End mientras

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

  17. Aplicación GCP • Coloreado de grafos. • NP-duro. • Métodos exactos (menos de 100 vértices).

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

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

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

  21. Aplicación GCP – modelado • Solución factible: cualquier k-coloreado. • Función objetivo: min f(s) = kr=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.

  22. 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)) // Shaking s´´  TabuCol(s´) // Local Search if f(s´´) < f(s) then // Move or Not s  s´´; t  1 IVNS  0 Else t  t+1 End if End repetir

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

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

  25. Aplicación GCP – vecindades (3) • Vecindades de vértice. • Básica. • De cadena. • Granada. • Fuego artificial. • Permutación. • Vecindades de clase. • Vaciar-rellenar. • Conjunto estable. • Clase vacía. • Clase tabú. • Vecindades no-crecientes. • Culverson. • Sub-grafo.

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

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

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

  29. Aplicación GCP – vecindades (7)

  30. Aplicación GCP – vecindades (8) • Pruebas de estructuras de vecindades combinadas. • Ninguna permutación es mejor que otra.

  31. 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)) // Shaking s´´  TabuCol(s´) // Local Search if f(s´´) < f(s) then // Move or Not s  s´´; t  1 IVNS  0 Else if IVNS es múltiplo de MaxVNS/6 t  t+1 End if End if End repetir

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

  33. Aplicación VRPTW • Ruteo de vehículos con ventanas de tiempo. • VNS reactiva (RVNS). • Robusta. • Confiable. • Soluciones de alta calidad.

  34. Aplicación VRPTW – RVNS (1) • Fases • Generar las soluciones iniciales. • Heurística constructiva. • Eliminación de rutas. • Procedimiento de eliminación de rutas. • VND. • Procedimientos de mejora de rutas. • Post-optimización. • Reactividad.

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

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

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

  38. Aplicación VRPTW– resultados(1)

  39. Aplicación VRPTW– resultados(2)

  40. Aplicación VRPTW– resultados(3)

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

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

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

  44. Preguntas...

More Related