Post on 05-May-2023
Optimización Continua y Aplicaciones (OCA)
Pablo Rodríguez-BoccaDepartamento de IO, Instituto de Computación
prboccab@fing.edu.uy
12 de septiembre de 2021
Optimización Continua y Aplicaciones (OCA) Optimización Continua y Aplicaciones (OCA) 1
Metaheurísticas para Optimización
Pablo Rodríguez-BoccaDepartamento de IO, Instituto de Computación
prboccab@fing.edu.uy
12 de septiembre de 2021
Optimización Continua y Aplicaciones (OCA) Metaheurísticas para Optimización 2
Contexto
Contexto
HeurísticasDefiniciónEjemplo
MetaheurísticasGeneralBúsqueda local (LS-Local Search)Recocido simulado (SA-Simulated Annealing)Búsqueda Tabú (TS-Tabu search)GRASP-Greedy Randomized Adaptive Search ProcedureComputación evolutiva (EC-Evolutionary Computation)Colonias de Hormigas (ANT-Ant colony optimization)
Resumen
Optimización Continua y Aplicaciones (OCA) Metaheurísticas para Optimización 3
Objetivo
Objetivo
El objetivo de esta charla es transmitir la potencia del enfoqueMetaheurístico y Técnicas Aproximadas para la resolución de pro-blemas combinatorios.
Más información. . .I Resumen introductorio al curso de Grado/Posgrado: Metaheurísticas
y Optimización sobre RedesI https://eva.fing.edu.uy/course/view.php?id=1077
Optimización Continua y Aplicaciones (OCA) Metaheurísticas para Optimización 4
Bibliografía - libros
I Encyclopedia of Operations Research and Management Science.Gass, Saul I.; Harris, Carl M., eds. Kluwer, 1996. ISBN0-7923-9590-5.
I Meta-heuristics: advances and trends in local search paradigms foroptimization. Stefan Voss, Silvano Martello, Ibrahim H. Osman andCatherine Roucairol (eds.). Kluwer Academic Publishers, 1999.ISBN: 0-7923-8369-9.
I Essays and surveys in metaheuristics. C.C. Ribeiro, P. Hansen.Kluwer, 2001.
I Genetic Algorithms in search, optimization, and machine learning.David E. Goldberg. Addison-Wesley, 1989. ISBN 0201157675.
I Meta-heuristics : theory and applications. Osman, Ibrahim H.; Kelly,James P. eds.. Kluwer, 1996. ISBN: 0-792397-002.
I Facts, conjectures, and improvements for simulated annealing.Salamon, Peter; Sibani, Paolo; Frost, Richard. Siam, 2002. ISBN:0898715083.
Optimización Continua y Aplicaciones (OCA) Metaheurísticas para Optimización 5
Bibliografía - artículos
I Metaheuristics in Combinatorial Optimization: Overview andConceptual Comparison. C. Blum and A. Roli. Technical reportTR/IRIDIA/2001-13, IRIDIA, Université Libre de Bruxelles, Belgium
I Heuristics from nature for hard combinatorial optimization problems.A. Colorni and M. Dorigo and F. Maffioli and V. Maniezzo and G.Righini and M. Trubian. International Transactions in OperationalResearch 3(1):1-21.
I Testing Heuristics: We Have It All Wrong. Hooker, J. Journal ofHeuristics 1:33-42. 1996.
I Designing and Reporting on Computational Experiments withHeuristic Methods. ichard S. Barr, Bruce L. Golden, James Kelly,William R. Stewart, Mauricio G.C. Resende. June 27,1995
I Metaheuristicas: Una visión global. Melián, B., Moreno Perez, J.A.,Marcos Moreno-Vega, J. Revista Iberoamericana de InteligenciaArtificial. Numero 19, Volumen 2, páginas 7-28, 2003.
Optimización Continua y Aplicaciones (OCA) Metaheurísticas para Optimización 6
Links útiles
I Curso de Postgrado: Metaheurísticas y Optimización sobreRedes. https://eva.fing.edu.uy/course/view.php?id=1077
I Curso de Grado: Introducción a la Investigación de Operacioneshttp://www.fing.edu.uy/inco/cursos/io/
I Curso de Postgrado: Seminario - Elementos de Metaheurísticas.http://www.fing.edu.uy/inco/grupos/invop/mh/
I Curso de Postgrado: Diseño Topológico de Redes.http://www.fing.edu.uy/inco/grupos/invop/dtr/
Optimización Continua y Aplicaciones (OCA) Metaheurísticas para Optimización 7
Problemas de Optimización
Problema {mın f (x)tal que x ∈ D
Nomenclatura:I x = (x1, x2, ..., xn) variables del problema.I f (x) función objetivo.I D espacio de soluciones factibles.I Valor óptimo de f : f0 = min {f (x) : x ∈ D}I Conjunto de soluciones óptimas S0 = {x ∈ D : f (x) = f0} (también
llamadas soluciones globalmente óptimas).
Optimización Continua y Aplicaciones (OCA) Metaheurísticas para Optimización 8
Problemas de Programación Matemática
Problema {mın f (x)tal que g(x) ≤ 0, x ∈ X
Nomenclatura:I x = (x1, x2, ..., xn) variables del problema.I f (x) función objetivo.I g(x) restricciones del problema.I X espacio de soluciones.I D = {x ∈ X : g(x) ≤ 0} espacio de soluciones factibles.
Optimización Continua y Aplicaciones (OCA) Metaheurísticas para Optimización 9
Problemas de Programación Matemática (2)
Graficamente,. . . ej. x2 + 2y 2 − 0,3cos(3πx)− 0,4cos(4πy) + 0,7
Variables continuas.
Optimización Continua y Aplicaciones (OCA) Metaheurísticas para Optimización 10
Problemas de Programación Matemática (3)
Óptimos locales y globales. . .
Optimización Continua y Aplicaciones (OCA) Metaheurísticas para Optimización 11
Problemas de Optimización Combinatoria
Problema {mın f (x)tal que x ∈ D
Nomenclatura:I x = (x1, x2, ..., xn) variables del problema.I f (x) función objetivo.I Para todo i , xi ∈ Di dominio de la variable, que es un conjunto
discreto (finito o infinito).I X = D1xD2x . . . xDn espacio de soluciones (discreto).I D ⊆ X espacio de soluciones factibles.
Optimización Continua y Aplicaciones (OCA) Metaheurísticas para Optimización 12
Ejemplo: Problema del Viajante de Comercio(TSP - Travelling salesman problem)
Sean:I Un conjunto de ciudades.I Una ciudad origen O.I Un conjunto de aristas que une las ciudades, con costos asociados.
Problema del viajante:
recorrer todas las ciudades, comenzando en O y terminando en O,al menor costo posible.
Optimización Continua y Aplicaciones (OCA) Metaheurísticas para Optimización 13
Ejemplo: Problema del Viajante de Comercio (TSP) (2)
Instancia y solución
Instancia Una solución óptima (de valor 8)
Optimización Continua y Aplicaciones (OCA) Metaheurísticas para Optimización 14
Ejemplo: Problema del Viajante de Comercio (TSP) (3)
Formalización Miller-Tucker-Zemlin (MTZ) [MTZ60].
I Sea un grafo dirigido G = (V ,E ), dondeI V = {1, . . . ,N}I la ciudad origen es la 1I cij es el costo de ir de la ciudad i a la j
I Definimos las siguientes variables
xi,j = 1 sii de la ciudad i voy a la ciudad jui = k sii i es la k-ésima ciudad del recorrido
Optimización Continua y Aplicaciones (OCA) Metaheurísticas para Optimización 15
Ejemplo: Problema del Viajante de Comercio (TSP) (3)
Formalización Miller-Tucker-Zemlin (MTZ) [MTZ60]. Continuación
mın∑N
i,j=1 cijxijst:∑N
i=1 xi,j = 1 para todoi 6= j ∈ V // voy a toda ciudad una sola vez∑Nj=1 xi,j = 1 para todoj 6= i ∈ V // salgo de toda ciudad una sola vez
u1 = 1 // siempre comienzo en la ciudad origen (1)2 ≤ ui ≤ N para todoi 6= 1 ∈ V // luego recorro el resto de las ciudadesui − uj + 1 ≤ (N − 1)(1− xij) para todoi 6= 1 ∈ V , para todoj 6= 1 ∈ V// si voy de i a j ⇒ j está después
xi,j ∈ {0, 1} para todoi , j ∈ N, ui ∈ {0, . . . ,N} para todoi ∈ V
Optimización Continua y Aplicaciones (OCA) Metaheurísticas para Optimización 16
Ejemplo: Problema del Viajante de Comercio (TSP) (4)
Complejidad y Enumerado en TSP
Recordar: Complejidad de los Problemas de Optimización
I algunos en PI muchos en NP-completo (ej. TSP con distancias enteras) o
NP-difícil (e. TSP general)
I Instancia pequeñaI 4 ciudadesI (4-1)!=6 recorridosI Evaluación=0.1sI Cómputo=0.1*6=0.6s
I Otra instancia pequeñaI 51 ciudades (grafo completo)I 50!=3.0E64 recorridosI Evaluación=0.00001sI Cómputo=9.6E51 años
Optimización Continua y Aplicaciones (OCA) Metaheurísticas para Optimización 17
Problemas de Optimización NP-difíciles
El problema se dificulta más cuando:I el tamaño del problema es grande.I el espacio de soluciones tiene muchas dimensiones.I hay un conocimiento limitado de la función objetivo, f ():
I no se cuenta con información de derivada,I puede ser discontinua, con ruidos, . . .
I evaluar f () es costozo en tiempo o procesamiento.I f () tiene (o se sospecha que tiene) malas propiedades:
I muchas restricciones entrincadas,I muchos óptimos locales,I mesetas, barrancos, . . .
¿Cuál es un objetivo “práctico” en la optimización global?
“Existe un objetivo (e.g. encontrar el mínimo valor posible de f ()),existen recursos (e.g. número de intentos), y el problema es comousar esos recursos en forma óptima.” A. Torn and A. Zilinskas
Optimización Continua y Aplicaciones (OCA) Metaheurísticas para Optimización 18
Métodos para resolver problemas de optimizacion
Métodos de solución
I Exactos: Buscan alcanzar el óptimo, aunque eso impliquehacerlo en una cantidad infinita de pasos
I Heurísticos: Buscan soluciones de buena calidad usandorecursos posibles, sin asegurar alcanzar el óptimo
Métodos Exactos
I Directos: llegan a la solución exacta del problema concantidad de pasos finitosI Ejemplos: reductivos, recursivos, . . .
I Iterativos: aproximaciones sucesivas de la solución,comenzando desde una estimación. Por lo general, noalcanzan óptimo en cantidad finita de pasosI Estocásticos: algoritmo iterativo no determinístico, pero con
convergencia estadística
. . . hoy hablaremos sobre los métodos heurísticos y estocásticosOptimización Continua y Aplicaciones (OCA) Metaheurísticas para Optimización 19
Heurísticas
Contexto
HeurísticasDefiniciónEjemplo
MetaheurísticasGeneralBúsqueda local (LS-Local Search)Recocido simulado (SA-Simulated Annealing)Búsqueda Tabú (TS-Tabu search)GRASP-Greedy Randomized Adaptive Search ProcedureComputación evolutiva (EC-Evolutionary Computation)Colonias de Hormigas (ANT-Ant colony optimization)
Resumen
Optimización Continua y Aplicaciones (OCA) Metaheurísticas para Optimización 20
Heurísticas
“heurística” deriva del griego heuriskein, que significa “encontrar”o “descubrir”.
I Técnicas que buscan soluciones de buena calidad (de valorcercano al óptimo?) a un costo computacional razonable,aunque sin garantizar la optimalidad de las mismas. Engeneral, ni siquiera se conoce el grado de error.
I Clasificación de las heuristicas:I Métodos Constructivos: generan una solución (desde una
solución vacia) agregando componentes hasta completar lasolución. Son métodos rápidos, de baja calidad en losresultados.
I Métodos de Búsqueda local: comienzan desde una solución eiterativamente van remplazando la solución actual conalguna solución parecida de mejor calidad.
Optimización Continua y Aplicaciones (OCA) Metaheurísticas para Optimización 21
Ejemplo sencillo de heurística:método goloso (greedy)
Heuristica Greedy
I Idea: tratar de construir una solución eligiendo de maneraiterativa los elementos componentes de menor costo.
I Para algunos problemas con estructura particular, la soluciónconstruida es una solución óptima. En general, no es el caso.
Optimización Continua y Aplicaciones (OCA) Metaheurísticas para Optimización 22
Ejemplo: Problema del Viajante de Comercio (TSP) (4)
Construcción goloza: Nearest Neighbor
Algoritmo goloso:
Elijo la ciudad más próxima (menor costo) entre las aún no visita-das.
Algoritmo goloso:
Elijo la ciudad más próxima (menor costo) entre las aún no visita-das.
Algoritmo goloso:
Elijo la ciudad más próxima (menor costo) entre las aún no visita-das.
Algoritmo goloso:
Elijo la ciudad más próxima (menor costo) entre las aún no visita-das.
Algoritmo goloso:
Elijo la ciudad más próxima (menor costo) entre las aún no visita-das.
Algoritmo goloso:
Elijo la ciudad más próxima (menor costo) entre las aún no visita-das.
Algoritmo goloso:
Elijo la ciudad más próxima (menor costo) entre las aún no visita-das.
Optimización Continua y Aplicaciones (OCA) Metaheurísticas para Optimización 23
Ejemplo: Problema del Viajante de Comercio (TSP) (5)
Heurísticas Constructivas simples
Nearest Neighbor
Ir a la ciudad más próxima aún no visitada.
Greedy
Agregar las aristas en orden creciente de costos, respetando cons-truir un ciclo.
Clarke-Wright
Se comienza construyendo un camino desde el origen a cada ciudad.Se van uniendo estos caminos comenzando por aquellas uniones quedisminuyen más el costo.
. . .
Optimización Continua y Aplicaciones (OCA) Metaheurísticas para Optimización 24
Metaheurísticas
Contexto
HeurísticasDefiniciónEjemplo
MetaheurísticasGeneralBúsqueda local (LS-Local Search)Recocido simulado (SA-Simulated Annealing)Búsqueda Tabú (TS-Tabu search)GRASP-Greedy Randomized Adaptive Search ProcedureComputación evolutiva (EC-Evolutionary Computation)Colonias de Hormigas (ANT-Ant colony optimization)
Resumen
Optimización Continua y Aplicaciones (OCA) Metaheurísticas para Optimización 25
Metaheurística
Definición (?)
“Heurística de nivel más alto” (Glover, 1986).
Características:
I estrategia que guía el proceso de búsqueda, incluyendo engeneral heurísticas subordinadas.
I admite descripción a nivel abstracto (es de alto nivel).I de uso genérico (no específica para un tipo de problema).
⇒ debe instanciarse para cada tipo de problema
Optimización Continua y Aplicaciones (OCA) Metaheurísticas para Optimización 26
Metaheurísticas
Objetivos:
I Encontrar soluciones factibles de buena calidad (valorcercano al óptimo).
I Encontrar rápidamente soluciones factibles (puede ser en símismo un problema NP-difícil).
I Recorrer el espacio de soluciones sin quedar “atrapados” enuna zona. Noción de:I exploración del espacio,I explotación de las soluciones obtenidas.
Optimización Continua y Aplicaciones (OCA) Metaheurísticas para Optimización 27
Historia de las Metaheurísticaswikipedia. . .
1952 first works on stochastics optimization methods.1954 use of evolution process on optimization (Barricelli).1966 evolutionary programming (Fogel, Owens et Walsh).1975 genetic algorithms (J. Holland).1980 genetic programming (Smith).1983 simulated annealing (Hastings, Kirkpatrick, Gelatt, Vecchi).1986 first mention of the term meta-heuristic, during the conception of tabu search
(Glover)1988 first use of ants (F. Moyson, B. Manderick).1989 memetic algorithm (P. Moscato).1991 ant colony algorithms (M. Dorigo)1995 Greedy randomized adaptive search procedure (Feo, Resende).1997 cross entropy method (Rubinstein).1997 No Free Lunch Theorems for Optimization"(Wolpert, D.H., Macready, W.G.).2004 Honey bee algorithm (S. Nakrani, S. Tovey).2008 Firefly algorithm (X. S. Yang).
Optimización Continua y Aplicaciones (OCA) Metaheurísticas para Optimización 28
Clasificaciones de Metaheurísticas
Inspiradas (o no) en la naturaleza
I Algoritmos Genéticos - Evolución de las especiesI Recocido simulado - Enfriamiento de metalesI Colonias de hormigas - ídem.I Búsqueda dispersa - no bio-inspirada.
Aleatorias vs. determinísticas
I Aleatorias: Algoritmos Genéticos, Recocido simulado,Colonias de hormigas.
I Determinísticas: Búsqueda Tabú, Búsqueda dispersa.
Optimización Continua y Aplicaciones (OCA) Metaheurísticas para Optimización 29
Clasificaciones de Metaheurísticas (2)
Basadas en un individuo vs. basadas en poblaciones:
I Basadas en un individuo: Recocido simulado, GRASP,búsqueda tabú, búsqueda local y variantes.
I Basadas en poblaciones: Algoritmos Genéticos, Colonias dehormigas, Búsqueda dispersa.
Con memoria vs. sin memoria
I Sin memoria: Recocido simulado, GRASP, AlgoritmosGenéticos, búsqueda local y variantes.
I Con memoria: Búsqueda tabú,Colonias de hormigas.
Optimización Continua y Aplicaciones (OCA) Metaheurísticas para Optimización 30
Clasificaciones de Metaheurísticas (3)
varias clasificaciones más. . .
I Función objetivo estática / dinámica.I Espacio sin estructura / espacio estructurado.I Uso de única función de vecindad / múltiples vecindades.I . . .
Optimización Continua y Aplicaciones (OCA) Metaheurísticas para Optimización 31
Estructura del espacio
Problema de Optimización Combinatoria
min f (x)tal que x ∈ D ⊆ X
I El espacio de soluciones X es discreto (D, espacio de solucionesfactibles, también discreto)
I Se necesita una estructura similar al concepto de entorno delcontinuo (ε,. . . )
La vecindad
I Estructura de vecindad: función N : D 7→ 2D , que asigna acada solución x un conjunto de “soluciones vecinas”
I Soluciones localmente mínimas (mínimos locales): x esmínimo local si para todoy ∈ N(x), f (x) ≤ f (y) (estricto si<).
I Mínimo global es la solución de valor mínimo entre todos losmínimos locales
Optimización Continua y Aplicaciones (OCA) Metaheurísticas para Optimización 32
Métodos de trayectoria
En cada iteración se intenta mejorar una solución.
Optimización Continua y Aplicaciones (OCA) Metaheurísticas para Optimización 33
Métodos de trayectoria (2)
Ejemplos
I Método de búsqueda local básicoI Recocido simulado (SA - Simulated Annealing)I Búsqueda Tabú (TS - Tabu search)I Métodos de exploración local (ELS - Explorative local
search)I GRASP - Greedy randomized adaptive search procedureI VNS - Variable neighborhood searchI GLS - Guided local searchI ILS - Iterated local search
Optimización Continua y Aplicaciones (OCA) Metaheurísticas para Optimización 34
Métodos basados en poblaciones
En cada iteración se intenta mejorar un conjunto (o población) desoluciones.
Optimización Continua y Aplicaciones (OCA) Metaheurísticas para Optimización 35
Métodos basados en poblaciones (2)
Ejemplos
I Computación evolutiva (EC)I Algoritmos genéticosI Algoritmos meméticosI Búsqueda dispersa (Scatter search) y caminos reconectados
(path relinking)I Algoritmos evolutivos basados en modelos probabilísticos
I Colonias de hormigas (ANT - Ant colony optimization)
Optimización Continua y Aplicaciones (OCA) Metaheurísticas para Optimización 36
Algunas Metaheurísticas muy difundidasMetaheuristicas que estudiaremos. . .
Métodos de trayectoria (un individuo):
I Búsqueda local y variantesI Recocido Simulado *I Búsqueda TabúI GRASP
Métodos basados en poblaciones:
I Algoritmos Genéticos *I Colonias de Hormigas *
Pueden usarse como métodos iterativos estocásticos
Optimización Continua y Aplicaciones (OCA) Metaheurísticas para Optimización 37
Búsqueda local (LS-Local Search)
Contexto
HeurísticasDefiniciónEjemplo
MetaheurísticasGeneralBúsqueda local (LS-Local Search)Recocido simulado (SA-Simulated Annealing)Búsqueda Tabú (TS-Tabu search)GRASP-Greedy Randomized Adaptive Search ProcedureComputación evolutiva (EC-Evolutionary Computation)Colonias de Hormigas (ANT-Ant colony optimization)
Resumen
Optimización Continua y Aplicaciones (OCA) Metaheurísticas para Optimización 38
Búsqueda local (LS-Local Search)
Optimización Continua y Aplicaciones (OCA) Metaheurísticas para Optimización 39
Búsqueda local(LS-Local Search)
I También llamado mejora iterativa (Iterative Improvement).I Los movimientos se realizan sólo si se mejora la solución.
Algorithm LS
1: s ← GenerateInitialSolution()2: repeat3: s ← Improve(s,N(s))4: until no improvement is possible
Figura LS - Local Search algorithm
Optimización Continua y Aplicaciones (OCA) Metaheurísticas para Optimización 40
Búsqueda local (2)
Noción de Trayectoria
LS queda atrapado en mínimo local cercano a la solución inicial
Optimización Continua y Aplicaciones (OCA) Metaheurísticas para Optimización 41
Búsqueda local (3)
Vecindades para el TSP. . .
2-Opt [Cro58]: Cada solución tiene CN−12 vecinos.
3-Opt [Boc58,Lin65]: Cada solución tiene CN−13 vecinos.
Optimización Continua y Aplicaciones (OCA) Metaheurísticas para Optimización 42
Búsqueda local (4)
implementación para el TSP [Jay93]. . .
I Solution Representation: A feasible solution is represented as asequence of nodes, each node appearing only once and in the orderit is visited.I The first and the last visited nodes are fixed to 1 (it is not specified in
the solution representation and is always understood to be node 1).I Initial Solution: A good feasible solution can be found quickly using
a greedy approachI Starting with the first node in the tour, find the nearest node.I Each time find the nearest unvisited node from the current node
until all the nodes are visited.I Neighborhood: Any other solution that is obtained by a pair wise
exchange of any two nodes in the solution (2-Opt).I This always guarantees that any neighborhood to a feasible solution
is always a feasible solution (i.e, does not form any sub-tour).I There are CN−1
2 neighborhoods to a given solution.
Optimización Continua y Aplicaciones (OCA) Metaheurísticas para Optimización 43
Recocido simulado (SA-Simulated Annealing)
Contexto
HeurísticasDefiniciónEjemplo
MetaheurísticasGeneralBúsqueda local (LS-Local Search)Recocido simulado (SA-Simulated Annealing)Búsqueda Tabú (TS-Tabu search)GRASP-Greedy Randomized Adaptive Search ProcedureComputación evolutiva (EC-Evolutionary Computation)Colonias de Hormigas (ANT-Ant colony optimization)
Resumen
Optimización Continua y Aplicaciones (OCA) Metaheurísticas para Optimización 44
Recocido simulado (SA-Simulated Annealing)
Optimización Continua y Aplicaciones (OCA) Metaheurísticas para Optimización 45
Recocido simulado(SA-Simulated Annealing)
I Es una de las metaheurísticas más antigua que incorpora unaestrategia explícita para impedir óptimos locales.
I Basado en la física del calentamiento de metales. Se proponeuna similitud entre una buena estructura cristalina demetales y una buena estructura de soluciones para problemasde optimización combinatoria.
I Se trata de minimizar una función objetivo que representa laenergía del sistema.
Optimización Continua y Aplicaciones (OCA) Metaheurísticas para Optimización 46
Recocido simulado(SA-Simulated Annealing)
Figura Movimiento vs Energía
Optimización Continua y Aplicaciones (OCA) Metaheurísticas para Optimización 47
Recocido simulado (2)
I Idea: permitir movimientos a soluciones que empeoren la funciónobjetivo de forma de poder escapar de los óptimos locales.
I La probabilidad de realizar movimientos que empeoren decrecedurante la búsqueda.
La temperatura del sistema
I Siempre se aceptan las soluciones que mejoran la funciónobjetivo, las soluciones que la empeoran son aceptadas conmayor probabilidad si la temperatura es más alta.
I Al comienzo, la temperatura es alta y cualquier transiciónentre estados es permitida
I La temperatura del sistema es controlada con enfriamientosucesivo (función logarítmica) y recalentamientos periódicos,que permiten escapar de óptimos locales (estructura desoluciones).
Optimización Continua y Aplicaciones (OCA) Metaheurísticas para Optimización 48
Recocido simulado (3)
convergencia
I El proceso se puede describir en términos de cadenas deMarkov de estado finito y se puede demostrar suconvergencia.
I (pero un enfriamiento logarímico es muy lento, por tanto enla práctica no se aplica. . . )
Optimización Continua y Aplicaciones (OCA) Metaheurísticas para Optimización 49
Recocido simulado (4)
Algorithm SA
1: s ← GenerateInitialSolution()2: T ← T03: while termination conditions not met do4: Pick s ′ ∈ N(s) at random5: if f (s ′) < f (s) then6: s ← s ′7: else8: Accept s ′ as new solution with probability P(T , s ′, s)9: end if10: Update(T )11: end while
Figura SA - Simulated Annealing algorithm
Optimización Continua y Aplicaciones (OCA) Metaheurísticas para Optimización 50
Recocido simulado (5)
implementación para el TSP [Jay93]. . .
I Solution Representation, Initial Solution, and Neighborhood for SAare same as that for LS described before.
I Termination criteria: The algorithm terminates if it meets any one ofthe following criteria:1. It reaches a pre-specified number of iterations.2. There is no improvement in the solution for last pre-specified number
of iterations.3. Fraction of neighbor solutions tried that is accepted at any
temperature reaches a pre-specified minimum.Usually, the maximum number of iterations is kept large enough toallow the process to terminate either using criterion 2 or 3.
Optimización Continua y Aplicaciones (OCA) Metaheurísticas para Optimización 51
Búsqueda Tabú (TS-Tabu search)
Contexto
HeurísticasDefiniciónEjemplo
MetaheurísticasGeneralBúsqueda local (LS-Local Search)Recocido simulado (SA-Simulated Annealing)Búsqueda Tabú (TS-Tabu search)GRASP-Greedy Randomized Adaptive Search ProcedureComputación evolutiva (EC-Evolutionary Computation)Colonias de Hormigas (ANT-Ant colony optimization)
Resumen
Optimización Continua y Aplicaciones (OCA) Metaheurísticas para Optimización 52
Búsqueda Tabú (TS-Tabu search)
Optimización Continua y Aplicaciones (OCA) Metaheurísticas para Optimización 53
Búsqueda Tabú(TS-Tabu search)
I Utiliza una búsqueda local con memoria a corto plazo que lepermite “escapar” de mínimos locales y evita ciclos.
I La memoria de corto plazo esta representada por la listaTabú la cual registra las últimas soluciones “visitadas” eimpide volver a ellas en los próximos movimientos.
I La lista Tabú se actualiza normalmente en forma FIFO.
Optimización Continua y Aplicaciones (OCA) Metaheurísticas para Optimización 54
Búsqueda Tabú (2)
Algorithm TS
1: s ← GenerateInitialSolution()2: TabuList ← ∅3: while termination conditions not met do4: s ← BestImprovement(s,N(s) \TabuList)5: Update(TabuList)6: end while
Figura TS - Simple Tabu search algorithm
Optimización Continua y Aplicaciones (OCA) Metaheurísticas para Optimización 55
Búsqueda Tabú (3)
La lista tabú
La lista tabú
I El largo de la lista tabú controla la memoria del proceso debúsqueda. Una lista tabú corta, controla áreas reducidas delespacio de búsqueda y una larga, fuerza a una búsqueda enáreas mayores.
I El largo de la lista puede cambiar a lo largo del proceso debúsqueda.
Optimización Continua y Aplicaciones (OCA) Metaheurísticas para Optimización 56
Búsqueda Tabú (4)
implementación más realista. . .
Implementación
I Por razones de eficiencia, no se guarda la solución completaen la lista tabú, sino una parte de sus atributos. Se defineuna lista tabú de condiciones.
I En este proceso se pierde información y buenas solucionespueden ser excluidas del conjunto permitido. Para reducireste problema, se define un criterio de aspiración quepermitiría a una solución estar dentro del conjunto desoluciones permitidas aún cuando figure en la lista tabú.
Optimización Continua y Aplicaciones (OCA) Metaheurísticas para Optimización 57
Búsqueda Tabú (5)
implementación más realista. . .
Algorithm TS
1: s ← GenerateInitialSolution()2: InitializeTabuList(TL1, . . . ,TLr )3: k ← 04: while termination conditions not met do5: AllowedSet(s, k)← {z ∈ N(s) \ no tabu condition is violated or: at least one aspiration condition is satisfied}6: s ← BestImprovement(s,AllowedSet(s, k))7: UpdateTabuListAndAspirationConditions()8: k ← k + 19: end while
Figura TS - Tabu search algorithm
Optimización Continua y Aplicaciones (OCA) Metaheurísticas para Optimización 58
Búsqueda Tabú (6)
implementación realista para el TSP [Jay93]. . .
I Solution Representation, Initial Solution, and Neighborhood for TSare same as that for LS and SA described before.
I Tabu List: To prevent the process from cycling in a small set ofsolutions, some condition of recently visited solutions is stored in aTabu List, which prevents their occurrence for a limited period.I The condition used is a pair of nodes that have been exchanged
recently.I A Tabu structure stores the number of iterations for which a given
pair of nodes is prohibited from exchange.I Aspiration criterion: Tabus may sometimes be too powerful: it may,
therefore, become necessary to revoke tabus at times.I The criterion used is to allow a move, even if it is tabu, if it results in
a solution with an objective value better than that of the currentbest-known solution.
I Termination criteria: The algorithm terminates if a pre-specifiednumber of iterations is reached.
Optimización Continua y Aplicaciones (OCA) Metaheurísticas para Optimización 59
GRASP-Greedy Randomized Adaptive Search Procedure
Contexto
HeurísticasDefiniciónEjemplo
MetaheurísticasGeneralBúsqueda local (LS-Local Search)Recocido simulado (SA-Simulated Annealing)Búsqueda Tabú (TS-Tabu search)GRASP-Greedy Randomized Adaptive Search ProcedureComputación evolutiva (EC-Evolutionary Computation)Colonias de Hormigas (ANT-Ant colony optimization)
Resumen
Optimización Continua y Aplicaciones (OCA) Metaheurísticas para Optimización 60
GRASP - (Greedy Randomized Adaptive Search Procedure)
Optimización Continua y Aplicaciones (OCA) Metaheurísticas para Optimización 61
GRASP
I Clasificado como método de exploración local(ELS-Explorative local search)
I GRASP (Greedy Randomized Adaptive Search Procedure) esuna metaheurística que combina procedimientosconstructivos y de búsqueda local.
I GRASP es un procedimiento iterativo en dos fases:I una de construcción de la solución (heurística)I y otra de mejora.
I Heurística estática: asigna el score a los elementos solamenteantes de comenzar la construcción.
I En GRASP, la construcción de la solución se caracteriza porser dinámica y aleatoria.
I Los valores de la heurística son actualizados en cadaiteración.
Optimización Continua y Aplicaciones (OCA) Metaheurísticas para Optimización 62
GRASP (2)
Algoritmo
Algorithm GRASP
1: while termination conditions not met do2: s ← ConstructGreedyRandomizedSolution()3: ApplyLocalSearch(s)4: MemorizedBestFoundSolution()5: end while
Figura GRASP - Greedy Randomized Adaptive Search Procedure
Optimización Continua y Aplicaciones (OCA) Metaheurísticas para Optimización 63
GRASP (3)
Construcción de una solución
Algorithm GRASP Construction
1: s ← ∅ // s denotes a partial solution in this case2: while termination conditions not met do3: RCL← GenerateRestrictedCandidateList()4: x ← SelectElementAtRandom(RCL)5: s ← s ∪ {x}6: UpdateGreedyFunction(s)7: end while
Figura Greedy Randomized Solution Construction
Optimización Continua y Aplicaciones (OCA) Metaheurísticas para Optimización 64
GRASP (4)
implementación para el TSP [Lee05]. . .
I Solution Representation and Neighborhood for GRASP are same asthat for LS, SA, and TS described before.
I Heuristic Construction:I Nearest Neighbor (NN) algorithm extension.I The r number of nearest unvisted cities from the last selected city
constitute the RCL.I The variable r controls the number of candidate cities, which are the
nearest cities. Thus, by adjusting the value of r , we can change theinitially constructed tour quality.
I Local Search:I 2-Opt local search and Path-relinking
Optimización Continua y Aplicaciones (OCA) Metaheurísticas para Optimización 65
Computación evolutiva (EC-Evolutionary Computation)
Contexto
HeurísticasDefiniciónEjemplo
MetaheurísticasGeneralBúsqueda local (LS-Local Search)Recocido simulado (SA-Simulated Annealing)Búsqueda Tabú (TS-Tabu search)GRASP-Greedy Randomized Adaptive Search ProcedureComputación evolutiva (EC-Evolutionary Computation)Colonias de Hormigas (ANT-Ant colony optimization)
Resumen
Optimización Continua y Aplicaciones (OCA) Metaheurísticas para Optimización 66
Computación evolutiva (EC-Evolutionary Computation)
Optimización Continua y Aplicaciones (OCA) Metaheurísticas para Optimización 67
Computación evolutiva(EC-Evolutionary Computation)
I Amplio espectro de técnicas heurísticas que funcionan emulandomecanismos de evolución natural.
I Trabaja sobre una población de individuos o conjunto de soluciones,que evoluciona utilizando mecanismos de selección y construcción denuevas soluciones candidatas mediante recombinación decaracterísticas de las soluciones seleccionadas.
Etapas del mecanismo evolutivo:
1. Evaluación: función de fitness.2. Selección : de individuos adecuados (de acuerdo al fitness)
para la aplicación de operadores evolutivos.3. Aplicación de operadores evolutivos.4. Reemplazo o recambio generacional.
Optimización Continua y Aplicaciones (OCA) Metaheurísticas para Optimización 68
Computación evolutiva (2)
I Proceso evolutivo: decide en cada iteración qué individuos entraránen la próxima población
I Operadores evolutivos: determinan el modo en que el algoritmoexplora el espacio de búsqueda
Algoritmos genéticos:
I Grado de adaptación de un individuo se evalúa a través de lafunción de fitness
I Cruzamiento es el operador principalI Mutación es un operador secundario, solamente para agregar
mayor diversidad al mecanismo de exploración
Optimización Continua y Aplicaciones (OCA) Metaheurísticas para Optimización 69
Algoritmos Genéticos(GA) - Genetic algorithm
Algorithm GA
1: P ← GenerateInitialPopulation()2: Evaluate(P)3: while termination conditions not met do4: P ′ ← Recombine(P)5: P ′′ ← Mutate(P ′)6: Evaluate(P ′′)7: P ← Select(P ∪ P ′′)8: end while
Figura GA - Genetic Algorithm
Optimización Continua y Aplicaciones (OCA) Metaheurísticas para Optimización 70
Algoritmos Genéticos (2)
implementación para el TSP. . .
I Solution Representation for GA is the same as that for LS, SA, TS,and GRASP described before.
I Recombination:1. Copy first half from Parent 12. Process Parent 2:
I Start at beginning of Parent 2I For each city not yet in Offspring 1, append it to Offspring 1
3. Example:Parent1: [8 0 7 2 10 5 4 1 9 3 6] Parent2: [9 10 5 3 2 8 4 1 7 0 6](recombine, split after 5th city)Offspring1 [8 0 7 2 10 9 5 3 4 1 6] Offspring2 [9 10 5 3 2 8 0 7 4 1 6]
I Mutation: The aim of mutation is to introduce perturbation, thusproviding diversification. Possibilities include:I Swap the positions of two adjacent citiesI Swap the positions of two citiesI Relocate a city to another position
Optimización Continua y Aplicaciones (OCA) Metaheurísticas para Optimización 71
Colonias de Hormigas (ANT-Ant colony optimization)
Contexto
HeurísticasDefiniciónEjemplo
MetaheurísticasGeneralBúsqueda local (LS-Local Search)Recocido simulado (SA-Simulated Annealing)Búsqueda Tabú (TS-Tabu search)GRASP-Greedy Randomized Adaptive Search ProcedureComputación evolutiva (EC-Evolutionary Computation)Colonias de Hormigas (ANT-Ant colony optimization)
Resumen
Optimización Continua y Aplicaciones (OCA) Metaheurísticas para Optimización 72
Colonias de Hormigas (ANT-Ant colony optimization)
Optimización Continua y Aplicaciones (OCA) Metaheurísticas para Optimización 73
Colonias de Hormigas(ANT-Ant colony optimization)
I Heurísticas que se basan en imitar el comportamiento de lashormigas.
I Si bien cada hormiga tiene individualmente capacidadesbásicas, la colonia en conjunto logra un comportamientointeligente.
I A pesar de ser insectos casi ciegos logran encontrar el caminomás corto entre el hormiguero y una fuente de comida yregresar, en base a una comunicación entre ellas de origenquímico que se potencia con la presencia simultánea demuchas hormigas.
I Comunicación en base a feromonas, que dejan un “rastro”que sirve de referencia a otras hormigas.
Optimización Continua y Aplicaciones (OCA) Metaheurísticas para Optimización 74
Colonias de Hormigas (2)
Debido a la evaporación constante de la feromona, con el tiempose elige el camino más corto.
Optimización Continua y Aplicaciones (OCA) Metaheurísticas para Optimización 75
Colonias de Hormigas (3)
Algoritmo
Algorithm ANT
1: InitializePheromoneValues()2: while termination conditions not met do3: for all ants a ∈ A do4: sa ← ConstructSolution(τ, η)5: end for6: UpdateOnlineDelayedPheromoneUpdate()7: end while
Figura ANT-Ant System
Optimización Continua y Aplicaciones (OCA) Metaheurísticas para Optimización 76
Colonias de Hormigas (4)
Algoritmo mejorado
Algorithm ANT
1: while termination conditions not met do2: ScheduleActivities3: ManageAntsActivity()4: EvaporatePheromone()5: DaemonActions() // optional6: end ScheduleActivities7: end while
Figura ANT-Ant colony optimization
Optimización Continua y Aplicaciones (OCA) Metaheurísticas para Optimización 77
Colonias de Hormigas (5)
implementación para el TSP. . .
I Solution Representation a travel in the graph G = (cities, edges).I Ants walk in the graph, pheromone represents the use of a given
edge. Therefore there is a different pheromone information τij foreach edge (i , j)
I Pheromone is usually initialised to “a small constant value”I Construction heuristic: Nearest-Neighbour heuristic, modified to
include randomness and a pheromone bias:I We choose to go from city i to city j randomly with a bias:
I If cij is low, then j should have more chances to be selectedI If τij is high, then j should have more chances to be selectedI Only cities not yet in the tour are considered
I Formally, roulette wheel with the values sij =τα
ij
cβij
I Pheromone updating: at each iteration, some proportion of thepheromone disappears (traditional function by Dorigo et al.)
Optimización Continua y Aplicaciones (OCA) Metaheurísticas para Optimización 78
Resumen
Contexto
HeurísticasDefiniciónEjemplo
MetaheurísticasGeneralBúsqueda local (LS-Local Search)Recocido simulado (SA-Simulated Annealing)Búsqueda Tabú (TS-Tabu search)GRASP-Greedy Randomized Adaptive Search ProcedureComputación evolutiva (EC-Evolutionary Computation)Colonias de Hormigas (ANT-Ant colony optimization)
Resumen
Optimización Continua y Aplicaciones (OCA) Metaheurísticas para Optimización 79
Intensificación y Diversificación
Intensificación y Diversificación
I Cada metaheurística utiliza una estrategia distinta paraexplorar el espacio
I La estrategias de búsqueda se diseńan balanceando estática odinámicamente el aprovechamiento de la experienciaacumulada de búsqueda (intensificación) y la exploración delespacio de búsqueda (diversificación)
Optimización Continua y Aplicaciones (OCA) Metaheurísticas para Optimización 80
Intensificación y Diversificación (2)
Todas las metaheurísticas presentan un compromiso entredos mecanismos:
I Diversificación ∼ exploración globalI Intensificación ∼ exploración local
Mecanismos de intensificación/diversificación:
I básicos o intrínsecos,I especiales o estratégicos.
Optimización Continua y Aplicaciones (OCA) Metaheurísticas para Optimización 81
Intensificación/Diversificación (3)
Básicos
Recocido simulado (M/S/1):I Intensificación: búsqueda localI Balance dinámico controlado a través del parámetro T.I Inicialmente alta diversificación y baja intensificación, al final del
algoritmo se invierte relación
Búsqueda tabú (A/N/1):I Intensificación: búsqueda local y función de aspiraciónI Diversificación: a través de la o las listas tabú.I Balance estático: a través del tamańo de la lista tabú. Listas tabú
cortas: gran intensificación poca diversificación, listas largas a lainversa.
Optimización Continua y Aplicaciones (OCA) Metaheurísticas para Optimización 82
Intensificación/Diversificación (4)
Básicos
GRASP (A/S/1):I Intensificación: búsqueda local en la fase de mejora y largo de la lista
restringida de candidatos (RCL)I Diversificación: implementada a través de la lista restringida de
candidatosI Balance estático: determinado por el largo de la lista restringida de
candidatosI Si la RCL es de largo 1, alta intensificación, a medida que aumenta
su largo, aumenta la divesificación ya que la solución inicial para labúsqueda local se extrae aleatoriamente de la RCL
Optimización Continua y Aplicaciones (OCA) Metaheurísticas para Optimización 83
Intensificación/Diversificación (5)
Básicos
Computación evolutiva (A/S/P):I Intensificación: a través del operador de selección que concentra la
búsqueda en algunas áreas.I Diversificación: en forma natural, a través de las poblaciones, a
través de operadores: recombinación y modificación.I Balance dinámico: Inicialmente alta diversificación y baja
intensificación, al final del algoritmo se invierte relación.
Optimización Continua y Aplicaciones (OCA) Metaheurísticas para Optimización 84
Intensificación/Diversificación (6)
Básicos
Colonias de hormigas (A/S/P):I Intensificación: a través de la feromona y las reglas de actualización
que “refuerzan” las buenas soluciones.I Diversificación: implementado a través del mecanismo probabilístico
de construcción de soluciones.I Balance dinámico: Inicialmente alta diversificación y baja
intensificación, al final del algoritmo se invierte relación
Optimización Continua y Aplicaciones (OCA) Metaheurísticas para Optimización 85
Intensificación/Diversificación (7)
Ejemplo de Especiales
I SA: técnicas de recalentado y posterior enfriamiento (enfriamientono monótono)
I TS: cambios dinámicos en el largo de la lista tabú (Reactive TabuSearch). El largo de la lista varía según las propiedades de latrayectoria en el espacio de búsqueda.
I EC: no son muy comunes estos mecanismos. Algunas aplicacionescambian el operador de selección cuando el sistema esta próximo ala convergencia (equivalente a reiniciar el algoritmo).
I ANT: Al igual que los EC, no es usual interrumpir el proceso deconvergencia. En los Ant Colony System , se usan mecanismos extrade diversificación durante la fase de construcción de la solución.
Optimización Continua y Aplicaciones (OCA) Metaheurísticas para Optimización 86
Intensificación/Diversificación (8)
Básicos - Resumen
Cuadro. Intensificación/Diversificación para cada Metaheurística
Intensificación Diversificación
SA búsqueda local básica movimientos que empeoransolución (T )
TS búsqueda local básica lista tabú(memoria corto plazo)
ELS (GRASP) búsqueda local básica criterio de aceptacióny perturbación
EC (AG) selección operaciones de modificación(ej. mutación)
ANT reglas de actualización reglas de construcciónde la feromona probabilística
Cuadro
Intensificación Diversificación
Optimización Continua y Aplicaciones (OCA) Metaheurísticas para Optimización 87
Glosario
I combinatorial problemI NP problemI heuristicI metaheuristicI Local SearchI Simulated AnnealingI Tabu searchI GRASP-Greedy Randomized Adaptive Search ProcedureI Evolutionary ComputationI Genetic AlgorithmI Ant colony optimizationI Intensification and Diversification
Optimización Continua y Aplicaciones (OCA) Metaheurísticas para Optimización 88
Bibliografía
F. Bock.An algorithm for solving traveling-salesman and related network optimization problems.Unpublished manuscript associated with talk presented at the 14th ORSA NationalMeeting., 1958.
G. A. Croes.A method for solving traveling-salesman problems.OPERATIONS RESEARCH, 6:791–812, 1958.
Sachin Jayaswal.A Comparative Study of Tabu Search and Simulated Annealing for Traveling SalesmanProblem.Technical report, Department of Management Sciences, University of Waterloo, 1993.
Seung Ho Lee.Greedy randomized adaptive search procedure for traveling salesman problem.In Texas A&M University Master Thesis, 2005.
S. Lin.Computer solutions of the traveling salesman problem.Technical report, Department of Management Sciences, University of Waterloo, 1965.
C. E. Miller, A. W. Tucker, and R. A. Zemlin.Integer programming formulations and traveling salesman problems.ACM, 7:326–329, 1960.
Optimización Continua y Aplicaciones (OCA) Metaheurísticas para Optimización 89