You are on page 1of 59

Optimización matemática

Algoritmo de Búsqueda Tabú

Por:

Antonio H. Escobar Zuluaga

Universidad Tecnológica de Pereira - Colombia

2014




Algoritmo de Búsqueda Tabú: Origen
• En 1986, Fred Glover propone el método de
Búsqueda Tabú como una metaheurística que
gerencia a una heurística.
Glover, F. (1986) “Future Paths for Integer Programming and Links to Artificial Intelligence,”
Computer and Operations Research, vol. 13, no. 5, pp. 533-549.
• En 1989, Glover presenta una descripción
completa del método.
Glover, F. (1989a) “Tabu Search – Part I,” INFORMS Journal on Computing, vol. 1, no. 3, pp. 190-206.
Glover, F. (1989b) “Tabu Search – Part II,” INFORMS Journal on Computing, vol. 2, no. 1, pp. 4-32.
Algoritmo de Búsqueda Tabú:
• Es una metaheurística que guía un proceso de
búsqueda local con el propósito de explorar el
espacio de soluciones más alla de subespacios
con óptimos locales, aplicando mecanismos
que evitan regresar a subespacios ya visitados.

• Es una combinación de exploración sensible y
memoria adaptativa.

Características:
• No utiliza población, en cada ciclo opera sobre una
solución. Es un algoritmo de trayectoria.
• Requiere de una función de adaptación para el
manejo de la infactibilidad.
• Combina exploración con explotación.
• Utiliza el concepto de vecindad, la cual puede ser
potenciada con sensibilidad.
• Al igual que GRASP opera sobre los atributos
para explorar la vecindad.
• A diferencia de otras metaheurísticas usa el
concepto de memoria de corto y largo plazo para
evitar regresar a regiones ya visitadas.

Algoritmo de Búsqueda Tabú
Algoritmo de Búsqueda Tabú:
Fin
Procedimiento
heurístico
Modificación de
reglas para
diversificación o
intensificación
Generar solución inicial
e inicializar memorias
Determinar
vecindad
Seleccionar el
mejor vecino
Aplicar mecanismos
especializados
• Lista de candidatos
• Criterio de aspiración
• Soluciones élite
• Reinicio
• Oscilación estratégica
• Encadenamiento de
trayectorias

Actualizar
memorias

Actualizar
incumbente
Cumple criterio
de parada?
no
si
memoria adaptativa
e
x
p
l
o
r
a
c
i
ó
n

s
e
n
s
i
b
l
e

Algoritmo de Búsqueda Tabú: Inicio
Usa algoritmos heurísticos constructivos
para generar la solución inicial o utiliza
soluciones élite encontradas en ciclos Tabú
anteriores.
Soluciones élite
o
Algoritmo de Búsqueda Tabú:
x
j+1

x
j

Atributo:

•Un componente del vector solución.
•Información parcial relacionada con un elemento del
espacio de búsqueda.
Un atributo permite caracterizar la vecindad.
Algoritmo de Búsqueda Tabú:
Ejemplo de Atributo:

En el problema de las n reinas, un atributo está
representado por el intercambio de las columnas de
dos reinas. En el ejemplo, la reina 3 y la reina 6
intercambian sus columnas:
número de la
reina
columna
Algoritmo de Búsqueda Tabú:
número de la reina
Columna que ocupa la reina i
número de la
reina
columna
Algoritmo de Búsqueda Tabú:
Vecindad:

Para una solución k, en el problema de las n reinas, y
usando como atributo intercambiar dos reinas, se
tienen vecinos (21 vecinos para 7 reinas).

X
k

X
k-1

movimiento simple o
transición
hacia el mejor vecino
N*(X): subespacio de vecinos
Algoritmo de Búsqueda Tabú:
Soluciones vecinas: 21 soluciones

Ejemplo:
número de colisiones = 4
reinas que intercambian
sus columnas
incremento del número de colisiones
respecto a la solución actual
Algoritmo de Búsqueda Tabú:
Estructura de la memoria tabú:

El intercambio de
columnas entre las reinas 1 y 7
queda prohibido durante las
próximas 3 iteraciones.
Algoritmo de Búsqueda Tabú:
Transición:

Algoritmo de Búsqueda Tabú:
Estructura de la memoria tabú:

El intercambio de
columnas entre las reinas 1 y 7
queda prohibido durante las
próximas 2 iteraciones.
El intercambio de
columnas entre las reinas 2 y 4
queda prohibido durante las
próximas 3 iteraciones.
Algoritmo de Búsqueda Tabú:
Criterio de aspiración:

Es un criterio que permite aceptar soluciones vecinas a
pesar de tener atributos prohibidos con el propósito de
avanzar hacia vecinos de buena calidad.

En ejemplo de la n reinas, puede aplicarse aspiración si:

•Un movimiento prohibido permite reducir el número de
colisiones en k colisiones.
•Si el número de colisiones es menor que las obtenidas
en las últimas m iteraciones.
•Si se mejora la incumbente.

Algoritmo de Búsqueda Tabú modificado:
Reducción de la vecindad:

Es un aspecto crítico en problemas de gran tamaño y
complejidad. Para 1000 reinas se tienen 499500 vecinos
para cada solución parcial.

Debe reducirse el número de vecinos preservando, en lo
posible, los mejores vecinos.



X
k

N*(X): subespacio de vecinos
N**(X): subespacio reducido de vecinos
Algoritmo de Búsqueda Tabú modificado:
Formas de reducir la vecindad:

1. Usando una heurística o un conjunto de heurísticas que
genere una lista reducida de candidatos.
2. Usando un microgenético o un GRASP.
3. Redefiniendo los atributos (Ej: c/reina solo intercambia
su columna con algunas reinas).
4. Redefiniendo el concepto de memoria.



X
k

N*(X): subespacio de vecinos
N**(X): subespacio reducido de vecinos
Algoritmo de Búsqueda Tabú modificado:
I ntensificación:

Consiste en regresar a subespacios de alta calidad visitados
en el pasado para realizar una exploración más exhaustiva.



región de alta
calidad
Algoritmo de Búsqueda Tabú modificado:
diversificación y Memoria de largo plazo:

En el ejemplo de las n reinas contiene la información
histórica del número de veces que el mismo par de
reinas han sido intercambiadas.


Memoria basada en
frecuencia
Memoria basada
en hechos recientes
Algoritmo de Búsqueda Tabú modificado:
Diversificación y Memoria de largo plazo:

Esta información puede utilizarse para diversificar,
penalizando el intercambio de columnas entre reinas
con una alta frecuencia de intercambios o privilegiando
intercambios que no han ocurrido.


Memoria basada en
frecuencia
Algoritmo de Búsqueda Tabú modificado:
Encadenamiento de trayectorias:

Consiste en retomar soluciones de buena calidad encontradas
durante el proceso, y que fueron almacenadas en una lista de
soluciones élite, para conducir el proceso por trayectorias
inexploradas que conectan estas soluciones.


soluciones élite
Algoritmo de Búsqueda Tabú modificado:
Encadenamiento de trayectorias:



solución de
referencia
Trayectoria original
Trayectoria encadenada
solución
guía
Algoritmo de Búsqueda Tabú modificado:
Reinicio:

Consiste en retomar soluciones de buena calidad encontradas
durante el proceso, y que fueron almacenadas en una lista de
soluciones élite, para comenzar de nuevo desde cero el
algoritmo.


soluciones élite
Algoritmo de Búsqueda Tabú modificado:
Oscilación estratégica:

Es un mecanismo que se aplica cuando el algoritmo
normalmente se detendría. Consiste en:

•Cambiar atributos.
•Modificar la definición de vecindad N(X).
•Permitir soluciones únicamente factibles y, cuando el
método se agota, permitir entrar en la región infactible y
permanecer allí para luego retornar a la región factible.



Algoritmo de Búsqueda Tabú modificado:
Oscilación estratégica:




Únicamente infactibles
Únicamente factibles
Algoritmo de Búsqueda Tabú modificado:
Criterio de parada:


•Por máximo número de iteraciones.
•Por máximo número de diversificaciones.
•Cuando se han analizado todas las configuraciones
almacenadas en un vector de trabajo.



Optimización matemática


Algoritmo Simulated Annealing





Algoritmo Simulated Annealing o
Recocido Simulado:
• Se fundamenta en el proceso físico de calentamiento
de un sólido seguido de un enfriamiento para lograr
una estructura cristalina perfecta.
• El calentamiento ocurre a temperaturas altas.
• El enfriamiento debe realizarse lentamente.
• La temperatura de calentamiento debe ser lo
suficientemente alta para asegurar el estado
aleatorio y el enfriamiento lo suficientemente lento
para asegurar el equilibrio térmico en cada
temperatura. De esta forma los átomos asumirán la
configuración correspondiente a minima energía
global (cristal perfecto).

Algoritmo Simulated Annealing o
Recocido Simulado:
Características:
• No utiliza población, en cada ciclo opera sobre una
solución. Es un algoritmo de trayectoria.
• Requiere de una función de adaptación para el
manejo de la infactibilidad.
• Combina exploración con explotación.
• Utiliza el concepto de vecindad, la cual puede ser
potenciada con sensibilidad.
• Al igual que GRASP y Tabu Search opera sobre
los atributos para explorar la vecindad.
• A diferencia de Tabu Search, selecciona un
vecino aleatoriamente y no posee mecanismos para
evitar regresar a regiones ya visitadas.
Algoritmo Simulated Annealing
Algoritmo Simulated Annealing:
Selecciona un vecino
aleatoriamente.

• Si el vecino es de
mejor calidad acepta el
movimiento.
• Si el vecino es de peor
calidad lo acepta de
acuerdo a una
probabilidad. Si no lo
acepta, selecciona otro
vecino.
* No realiza una búsqueda intensiva en la vecindad
• Si la temperatura Tk es alta, el
número de búsquedas Nk es menor
y la probabilidad de aceptar
soluciones de mala calidad es
mayor.

• Si la temperatura Tk es baja, el
número de búsquedas Nk es mayor
y la probabilidad de aceptar
soluciones de mala calidad es
menor.


1
2
3
4
N
Algoritmo Simulated Annealing:
Longitud de la cadena = Nk
Temperatura = Tk
Parámetros:
Probabilidad de aceptación de un vecino de
mala calidad:

La probabilidad de aceptación sigue una
función exponencial decreciente cuyo valor
máximo es 1 y su valor mínimo tiende a 0.

Para el problema de minimización:





f(j): función objetivo de la solución vecina.
f(i): función objetivo de la solución actual.
T: temperatura actual.
PT: probabilidad de aceptación.
Algoritmo Simulated Annealing:
1
2
3
4
N
Probabilidad de aceptación de un vecino de mala calidad:






f(j): función objetivo de la solución vecina.
f(i): función objetivo de la solución actual.
T: temperatura actual.
PT: probabilidad de aceptación.
Algoritmo Simulated Annealing:
nivel de empeoramiento
probabilidad de
aceptación
Programa de enfriamiento:

Es determinado por los siguientes 5 parámetros:

1. La temperatura inicial To y la longitud inicial de la cadena No.

2. La tasa de crecimiento de la longitud de la cadena respecto a la
longitud anterior: Nk+1 =  Nk ; con  ≥ 1.

3. La tasa de enfriamiento de la temperatura: Tk+1 = f ( Tk )

4. Temperatura final TF que teóricamente es cero pero que
realmente se establece en un valor TF > 0. Algunas propuestas
sugieren procesar de 6 a 50 niveles de temperatura o continuar
hasta que no haya un número mínimo de aceptaciones.

Algoritmo Simulated Annealing:
Cálculo de la temperatura inicial To (método 1):

1. Definir la cantidad de experimentos: y la tasa de aceptación de
soluciones de mala calidad: X. Si se desea X = 85%, entonces X=0.85

2. Seleccionar aleatoriamente un vecino.





3. Calcular la temperatura inicial como:





es el incremento medio del costo de las soluciones que están en




mejor calidad
peor calidad
Algoritmo Simulated Annealing:
Cálculo de la temperatura inicial To (método 2):





Donde Φ es la probabilidad (entre 0 y 1) deseable para que sea aceptada una
solución de mala calidad cuando dicha solución es μ veces peor que la
solución inicial F(Xo).

Ejemplo: Si la solución inicial es F(Xo) = 2300 y se desea aceptar una
solución de peor calidad 1% inferior (μ = 0.01) con una probabilidad del 13%
(Φ = 0.13), entonces:





Algoritmo Simulated Annealing:
Cálculo de la temperatura Tk :

Existen varios criterios para determinar la tasa de disminución de la
temperatura:

1. Tasa constante: Tk+1 = β Tk ; con β en el intervalo [0.5 , 0.99].

2. Tasa variable, propuesta 1:













Algoritmo Simulated Annealing:
Cálculo de la temperatura Tk :

3. Tasa variable, propuesta 2:













Algoritmo Simulated Annealing:
Algoritmo Simulated Annealing:
Algoritmo Simulated Annealing:
Algoritmo Simulated Annealing:
Algoritmo Simulated Annealing:
Optimización matemática


Algoritmo Scatter Search
o
Búsqueda Dispersa





Algoritmo Scatter Search o
Búsqueda Dispersa:

•Es una técnica de búsqueda sistemática que usa un
conjunto limitado de soluciones denominadas
soluciones de referencia.

•Combina procedimientos metaheurísticos y
procedimientos heurísticos.

•Es una técnica evolutiva.

• Utiliza población.
• Requiere de una función de adaptación para el
manejo de la infactibilidad.
• Utiliza dos conjuntos de soluciones: el de soluciones
de buena calidad y el de soluciones diversas.
• Aplica selección y combinación de soluciones.
• Al igual que GRASP, Tabu Search y Simulated
Annealing opera sobre atributos para explorar la
vecindad.
• Aplica una etapa de mejoramiento basada en
heurísticas.
Algoritmo Scatter Search o
Búsqueda Dispersa – características:
Algoritmo Scatter Search o
Búsqueda Dispersa – componentes:
generación-diversificación
selección
combinación
mejoramiento
actualización
Mecanismo de Generación-Diversificación:

Su función es generar un conjunto de soluciones diversas y de
buena calidad. Sus características principales son:

•Se aplica antes de iniciar el proceso iterativo y en ocasiones dentro
del proceso iterativo.

•Permite construir un conjunto P de soluciones, a partir del cual se
construye un subconjunto de soluciones de referencia b.

•Las soluciones en P pueden construirse determinística o
aleatoriamente.

•Las soluciones en P pueden ser factibles o infactibles.

Algoritmo Scatter Search o
Búsqueda Dispersa – componentes:
Mecanismo de Generación-Diversificación:

• Puede incluir una rutina de mejoramiento.

•Se sugiere un tamaño de P del orden de 100 soluciones.
Algoritmo Scatter Search o
Búsqueda Dispersa – componentes:
Mecanismo de Generación-Diversificación:

•El conjunto de referencia b debe cumplir: , si P tiene
tamaño 100, b debe tener un tamaño entre 5 y 10.

•Las soluciones de mejor calidad se almacenan en b1 y las más
diversas en b2.
Algoritmo Scatter Search o
Búsqueda Dispersa – componentes:
menor distancia
respecto a b1
mayor distancia
respecto a b1
Mecanismo de Selección:

•Selecciona parejas o ternas de soluciones para combinar.

•En lo posible deben seleccionarse el 80% de todas las posibles
combinaciones entre pares de soluciones y algunas ternas. Puede
usarse sensibilidad o aleatoriedad.
Algoritmo Scatter Search o
Búsqueda Dispersa – componentes:
Mecanismo de Combinación:

•Combina dos o más soluciones del conjunto de referencia b con el
propósito de generar soluciones intermedias o centroides.

•Puede incluir combinaciones convexas, no convexas o especiales.

•La cantidad de soluciones que se obtienen del mismo par o terna de
soluciones depende de la calidad de estas (explotación).
Algoritmo Scatter Search o
Búsqueda Dispersa – componentes:
Mecanismo de Combinación:

•Combinar soluciones es equivalente a intensificar.

•En el proceso de combinación deben seleccionarse adecuadamente
los pesos de las soluciones que se combinan.

•Puede exigirse factibilidad o permitir infactibilidad en las soluciones
resultantes.
Algoritmo Scatter Search o
Búsqueda Dispersa – componentes:
Mecanismo de Mejoramiento:

•Utiliza búsqueda local para mejorar la calidad de las soluciones
resultantes del proceso de combinación.

•El proceso de mejoramiento puede ser aleatorio o puede aplicar
indicadores de sensibilidad y técnicas heurísticas, e inclusive técnicas
exactas.

•Puede exigirse factibilidad o permitir infactibilidad en las soluciones
resultantes.
Algoritmo Scatter Search o
Búsqueda Dispersa – componentes:
Mecanismo de Mejoramiento:

•Debe permitir generar múltiples instancias a partir de una solución.
Puede apoyarse en conceptos de vecindad.

•Algunas implementaciones no aplican este mecanismo.
Algoritmo Scatter Search o
Búsqueda Dispersa – componentes:
Mecanismo de Actualización del conjunto de referencia:

•Consiste en extraer las soluciones de mejor calidad y las más
diversas del conjunto de soluciones resultantes del proceso de
combinación y mejoramiento para determinar si pueden reemplazar
soluciones del conjunto de referencia b.

•Compara cada solución combinada y mejorada con las soluciones de
b1 y la reemplaza por la peor solución de b1 si la nueva solución es de
mejor calidad.



Algoritmo Scatter Search o
Búsqueda Dispersa – componentes:
Mecanismo de Actualización del conjunto de referencia:

•Compara cada solución combinada y mejorada que no entra a b1 y la
reemplaza por la solución menos diversa de b2 si la nueva solución es
más diversa respecto al nuevo conjunto b1, respecto a la solución
menos diversa existente en b2.



Algoritmo Scatter Search o
Búsqueda Dispersa – componentes:
Mecanismo de Actualización del conjunto de referencia:

•El conjunto de referencia conserva un tamaño b constante, pero el
valor y la diversidad de las soluciones va mejorando a lo largo del
proceso de búsqueda.

•Si ninguna solución es reemplazada después de algunos ciclos, puede
darse por finalizado el proceso o puede reiniciarse a partir de un
nuevo conjunto P.


Algoritmo Scatter Search o
Búsqueda Dispersa – componentes:
Algoritmo
Scatter Search:


Algoritmo Scatter Search o
Búsqueda Dispersa – componentes: