1 / 73

Búsqueda Local

Búsqueda Local. Grupo 1: Verónica Giaudrone Marcelo Vaccaro. Artículo: “Iterated Local Search” Lourenço, Martin, Stützle. Agenda. Introducción Iterando en Búsqueda local Random Search Búsqueda en S* Iterated Local Search Iterated Local Search Mejorando Performance Componentes

august
Download Presentation

Búsqueda Local

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 Local Grupo 1: Verónica Giaudrone Marcelo Vaccaro Artículo: “Iterated Local Search” Lourenço, Martin, Stützle

  2. Agenda • Introducción • Iterando en Búsqueda local • Random Search • Búsqueda en S* • Iterated Local Search • Iterated Local Search • Mejorando Performance • Componentes • Optimización global • Aplicaciones • Relaciones con otras Metaheurísticas • Futuro • Conclusiones

  3. Introducción • Importancia de algoritmos de alta performance para problemas difíciles de optimización • Una Metaheurística debe ser: • simple • efectiva • en lo posible general • Caso ideal: Puede ser usada sin ningún conocimiento del problema • Metaheurísiticas se volvieron más sofisticadas, y este ideal se dejó de lado por mejor performance

  4. Introducción (cont) • Incorporación de conocimiento específico del problema en la metaheurísitca • Hace más difusa la diferencia entre heurística y metaheurística • Solución: Modularidad y descomposición de la metaheurística en partes: • Totalmente de propósito general • Conocimiento específicodel problema

  5. Introducción (cont) • Esencia de Iterated Local Serach: • Construye iterativamente una secuencia de soluciones generadas por la heurística embebida • Mejores soluciones que repetidas corridas aleatorias de la heurística • Puntos que hacen a un algoritmo ser un Iterated local search: • Debe seguir una cadena simple (excluye algoritmos basados en poblaciones) • La búsqueda de mejores soluciones ocurre en un espacio reducido definido por la salida de la heurística de “caja-negra”

  6. Consideraciones • Sea C la función de costo a minimizar • Sea s una solución candidata y S el conjunto • Asumimos que la búsqueda local es: • Determinística • Sin memoria • La búsqueda local define un mapeo entre S y S*, siendo S* el conjunto de soluciones s* localmente óptimas.

  7. Costo • La distribución de costos: • Forma de campana • Media y varianza menor para las soluciones de S* que para las de S. • Es mejor utilizar búsqueda local, que muestrear aleatoriamente en S si se buscan soluciones con bajo costo.

  8. Agenda • Introducción • Iterando en Búsqueda local • Random Search • Búsqueda en S* • Iterated Local Search • Iterated Local Search • Mejorando Performance • Componentes • Optimización global • Aplicaciones • Relaciones con otras Metaheurísticas • Futuro • Conclusiones

  9. Iterando en búsqueda local • Búsqueda local: Es la heurística embebida que utilizará la metaheurística. • Dependerá del problema a resolver • Puede no ser de hecho una búsqueda local • La búsqueda local mejorada mediante iteración: • En la práctica se obtienen mejoras significativas. • Sólo en casos patológicos la mejora es mínima. • Random Restart • Búsqueda en S* • Búsqueda Local Iterada

  10. Búsqueda local como caja negra • Reducir los costos sin modificar la búsqueda local, utilizándola como rutina de caja negra • La búsqueda local: • Toma un elemento de S para el cual C tiene una media alta, hacia S* donde C tiene un media menor

  11. Solucióninicial Óptimo local Búsqueda local • Los movimientos se realizan sólo si se mejora la solución • Procedure BúsquedaLocal s = GenerarSoluciónInicial() repeat s = Mejorar(s, vecindad(s)) until no hay mejora posible

  12. Iterando en Búsqueda local • Random Restart • Búsqueda en S* • Búsqueda Local Iterada

  13. Random restart • La forma más simple de mejorar el costo encontrado por una búsqueda local: • Repetir la búsqueda desde otro punto de inicio. • Cada s* generado será independiente • Aunque muchas veces es una estrategia útil, pierde utilidad a medida que crece el espacio de búsqueda.

  14. Random Restart (cont) • Estudios empíricos indican que en espacios de búsqueda grandes los costos de búsqueda local llevan a costos que: • Media excede el costo óptimo en un porcentaje fijo. • Distribución extremadamente “en pico” en la media cuando el tamaño del espacio tiende a infinito.

  15. Random Restart (cont) • Muestreo aleatorio tiene cada vez más baja probabilidad de encontrar soluciones de bajo costo a medida que crece el tamaño del espacio de búsqueda • Se necesita entonces una muestra parcial

  16. Iterando en Búsqueda local • Random Restart • Búsqueda en S* • Búsqueda Local Iterada

  17. Búsqueda en S* • Para evitar el problema de los grandes espacios de búsqueda • Invocar recursivamente • Utilizar búsqueda local para ir desde S* a S** donde la media del costo sería aún menor. • Generaríamos una jerarquía de búsquedas locales anidadas

  18. Búsqueda en S* (cont) • ¿Cómo formulamos la búsqueda local en el nivel más bajo de la jerarquía? • Búsqueda local requiere una estructura de vecindad que no viene dada a priori. • Difícil definir vecinos en S* que puedan ser enumerados y accedidos eficientemente. • Noción de cercanía y luego aplicar búsqueda estocástica en S*.

  19. Iterando en Búsqueda local • Random Restart • Búsqueda en S* • Búsqueda Local Iterada

  20. Iterated Local Search - ILS(Búsqueda local iterada) • Explorar S* recorriendo desde un s* hacia otro cercano sin necesidad de la noción de vecindad • Iterated local search logra esto heurísticamente

  21. Iterated Local Search • Dado s* aplicamos una perturbación que genera un estado intermedio s’ (perteneciente a S) • Aplicamos búsqueda local a s’ y alcanzamos una solución s*’ en S* • Si s*’ supera el test de aceptación entonces será el próximo elemento del camino en S*, si no se retorna a s*. • Camino resultante es un caso de búsqueda estocástica sobre S*

  22. Metaheurística Procedure Iterated Local Search s0 = GenerateInitialSolution s* = LocalSearch(s0) repeat s’ = Perturbation(s*, history) s*’ = LocalSearch(s’) s* = AcceptanceCriterion(s*, s*’, history) until termination condition met end

  23. ILS con o sin memoria • Mucha complejidad del ILS puede estar escondida en el uso de la historia. • Mayoría de los trabajos hasta ahora NO utilizan memoria • Perturbación y criterio de aceptación no utilizan soluciones previamente visitadas. Caminos “Markovianos” • Si la perturbación depende de algún s* anterior, entonces el camino en S* es con memoria. • Trabajos recientes que la incorporan han obtenido mejoras en la performance.

  24. Resumiendo… • Poder de ILS proviene de la guía que ofrece en el muestreo del conjunto de óptimos locales. • Eficiencia del muestreo depende de: • Tipo de perturbación • Criterio de aceptación • A pesar de contar con implementaciones muy simples de esas partes, ILS es mucho mejor que RR

  25. Resumiendo…(cont) • Mejores resultados si se optimizan los módulos que la componen. • La complejidad puede agregarse de forma modular • Es rápido: se pueden realizar k búsquedas locales embebidas en ILS más rápido que realizar las k búsquedas locales con RR

  26. Agenda • Introducción • Iterando en Búsqueda local • Random Search • Búsqueda en S* • Iterated Local Search • Iterated Local Search • Mejorando Performance • Componentes • Optimización global • Aplicaciones • Relaciones con otras Metaheurísticas • Futuro • Conclusiones

  27. Obteniendo mejor performance • Existen 4 componentes a considerar: • Generar solución inicial • Búsqueda local • Perturbación • Criterio de aceptación

  28. Obteniendo mejor performanceConsideraciones • Se puede comenzar con: • Solución aleatoria • Solución de alguna heurística de construcción “greedy” • Para la mayoría de los problemas existe un algoritmo de búsqueda local ya disponible • Para la perturbación, un movimiento aleatorio de mayor orden que el usado en la búsqueda local puede ser muy efectivo • Primera idea: forzar que el costo decrezca

  29. Obteniendo mejor performance (cont) • Fácil mejorar la performance, mejorando cada uno de los 4 módulos • Debido a: • Complejidad se reduce por la modularidad • Función de cada componente es fácil de entender • Optimización global de ILS: como cada componente afecta al siguiente, se debe entender la interacción entre ellos • Conclusión: El desarrollador puede elegir el nivel de optimización que quiera aplicar

  30. Componentes • Generar solución inicial • Búsqueda local • Perturbación • Criterio de aceptación

  31. Solución inicial • La búsqueda local aplicada a la solución inicial s0 da el punto de partida s0* • Soluciones standard para s0: • Solución inicial aleatoria • Solución retornada por heurística constructiva “greedy” Ventajas contra la solución aleatoria: • Combinada con la búsqueda local resulta en soluciones s0* de mejor calidad • Una búsqueda local a partir de una solución “greedy”, en promedio requiere menos tiempo de CPU

  32. Solución inicial (cont) • Tiempos de computación cortos: • La solución inicial es muy importante para obtener soluciones de alta calidad • Tiempos de computación largos: • La dependencia de la solución final respecto de s0se pierde cuando se realiza el recorrido en S* • No hay siempre una opción clara acerca de cual es la mejor solución inicial • Pocas corridas: soluciones greedy parecen obtener soluciones de bajo costo rápidamente. • Muchas corridas: solución inicial parece ser menos relevante.

  33. Componentes • Generar solución inicial • Búsqueda local • Perturbación • Criterio de aceptación

  34. Búsqueda Local • Búsqueda local iterada sensible a la elección de su heurística embebida • Debe optimizarse la elección lo más posible. • No siempre la mejor búsqueda local lleva a una mejora en ILS • Si el tiempo de computación es fijo, puede ser mejor aplicar con más frecuencia un algoritmo de búsqueda local más rápido aunque menos efectivo, que uno más lento y más poderoso.

  35. Búsqueda Local (cont) • La elección debe basarse en cuánto más tiempo de computación se necesita para correr la mejor heurística • Sin sentido utilizar una búsqueda local excelente si sistemáticamente deshace la perturbación • Por esto se requiere una optimización global de ILS • Para TSP el algoritmo de búsqueda local que se comporta mejor y más rápido es el de Lin-Kernighan.

  36. Componentes • Generar solución inicial • Búsqueda local • Perturbación • Criterio de aceptación

  37. Perturbación • Fuerza de la perturbación: Número de componentes de la solución que son modificados • La búsqueda local no debería ser capaz de deshacer la perturbación, ya que se caería en un óptimo local ya visitado • Se pueden obtener mejores resultados si las perturbaciones tienen en cuenta propiedades del problema

  38. Perturbación (cont) • Cuanto debe cambiar la perturbación a la solución inicial? • Muy fuerte: • ILS se comporta como random restart y mejores soluciones solo se encuentran con una baja probabilidad • Muy suave: • La búsqueda local cae frecuentemente en un óptimo local ya visitado y la diversificación de la búsqueda queda muy limitada

  39. Perturbación (cont) • Problemas simples (como TSP): • Se puede obtener resultados satisfactorios usando perturbaciones de tamaño fijo • Ej.: Perturbación exitosapara TSP es eldouble-bridge move

  40. Perturbación (cont) • Problemas más complejos: • Usar perturbaciones de largo fijo puede llevar a una pobre performance • Regla general: Perturbaciones suaves usualmente llevan a ejecuciones más rápidas de la búsqueda local, como desventaja se puede caer en el mismo óptimo local

  41. Perturbaciones adaptativas • La experiencia muestra que no existe a priori un mejor tamaño para la perturbación • Motiva a modificar la fuerza de la perturbación y adaptarla durante la corrida: • Explotando la historia de la búsqueda • Cambiar determinísticamente la fuerza durante la búsqueda (oscilaciones estratégicas)

  42. Velocidad • Empíricamente ILS tiene mayor velocidad para ejecutar búsquedas locales que random restart

  43. Componentes • Generar solución inicial • Búsqueda local • Perturbación • Criterio de aceptación

  44. Criterio de aceptación • La perturbación junto con la búsqueda local definen las posibles transiciones entre la solución actual s* y una solución vecina s*’ • El criterio de aceptación determina cuando s*’ es aceptado o no • Puede usarse para controlar el balance entre intensificación y diversificación de la búsqueda

  45. Criterios de aceptación • Better: • Logra fuerte intensificación • Solo acepta mejores soluciones

  46. Criterios de aceptación • Random Walk • Siempre aplica la perturbación al óptimo local más recientemente visitado, sin considerar su costo • Favorece diversificación sobre intensificación • Muchas otras opciones intermedias son posibles

  47. Criterios de aceptación • Restart • Cuando la intensificación parece inefectiva se debería re-comenzar completamente el algoritmo de ILS • Ej: recomenzar cuando no se obtienen mejoras para un número determinado de iteraciones

  48. Ejemplo: TSP • Se comparó ILS utilizando RW y Better contra Random Restart • ILS alcanzó mejores soluciones utilizando la misma búsqueda local • Para TSP las buenas soluciones están clustereadas • Buena estrategia: incorporar intensificación • Better: Mejores resultados (corridas cortas)

  49. Agenda • Introducción • Iterando en Búsqueda local • Random Search • Búsqueda en S* • Iterated Local Search • Iterated Local Search • Mejorando Performance • Componentes • Optimización global • Aplicaciones • Relaciones con otras Metaheurísticas • Futuro • Conclusiones

  50. Optimización global de ILS • Al focalizarnos en un componente, consideramos fijos todos los demás. • La optimización de un componente depende de las elecciones en los otros. • Ignoramos en la optimización la generación de la solución inicial

More Related