770 likes | 1.02k Views
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
E N D
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 • Optimización global • Aplicaciones • Relaciones con otras Metaheurísticas • Futuro • Conclusiones
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
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
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”
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.
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.
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
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
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
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
Iterando en Búsqueda local • Random Restart • Búsqueda en S* • Búsqueda Local Iterada
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.
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.
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
Iterando en Búsqueda local • Random Restart • Búsqueda en S* • Búsqueda Local Iterada
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
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*.
Iterando en Búsqueda local • Random Restart • Búsqueda en S* • Búsqueda Local Iterada
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
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*
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
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.
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
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
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
Obteniendo mejor performance • Existen 4 componentes a considerar: • Generar solución inicial • Búsqueda local • Perturbación • Criterio de aceptación
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
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
Componentes • Generar solución inicial • Búsqueda local • Perturbación • Criterio de aceptación
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
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.
Componentes • Generar solución inicial • Búsqueda local • Perturbación • Criterio de aceptación
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.
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.
Componentes • Generar solución inicial • Búsqueda local • Perturbación • Criterio de aceptación
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
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
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
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
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)
Velocidad • Empíricamente ILS tiene mayor velocidad para ejecutar búsquedas locales que random restart
Componentes • Generar solución inicial • Búsqueda local • Perturbación • Criterio de aceptación
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
Criterios de aceptación • Better: • Logra fuerte intensificación • Solo acepta mejores soluciones
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
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
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)
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
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