Sie sind auf Seite 1von 27

Curso: Optimización II.

Clase 2: Algoritmo de Búsqueda Tabú.


Estructura del curso
Clase 1: Heurística codiciosa.

Clase 2: Algoritmo de búsqueda tabú.


Unidad 1: Métodos Heurísticos y
Metaheurísticos.
Clase 3: Algoritmo de recocido simulado.

Clase 4: Algoritmo genético y aplicación de metaheurística a programas lineales entero.

Clase 5: Procesos Estocáticos.

Clase 6: Solemne
Unidad 2: Cadenas de Markov
Optimización II Clase 7: Cadenas de Markov.

Clase 8: Ecuaciones de Chapman-Kolmogorov y clasificación de estados.

9: Modelo de colas y Proceso de nacimiento y muerte

Clase 10: Teoría de espera en procesos exponenciales de nacimiento y muerte

Unidad 3: Sistemas de Colas Clase 11: Modelo de colas con distribuciones no exponenciales

Clase 12: Modelo de colas con disciplina de prioridades y disciplina de cola.

Clase 13: Solemne


Estructura del curso
Clase 1: Heurística codiciosa.

Clase 2: Algoritmo de búsqueda tabú.


Unidad 1: Métodos Heurísticos y
Metaheurísticos.
Clase 3: Algoritmo de recocido simulado.

Clase 4: Algoritmo genético y aplicación de metaheurística a programas lineales entero.

Clase 5: Procesos Estocáticos.

Clase 6: Solemne
Unidad 2: Cadenas de Markov
Optimización II Clase 7: Cadenas de Markov.

Clase 8: Ecuaciones de Chapman-Kolmogorov y clasificación de estados.

9: Modelo de colas y Proceso de nacimiento y muerte

Clase 10: Teoría de espera en procesos exponenciales de nacimiento y muerte

Unidad 3: Sistemas de Colas Clase 11: Modelo de colas con distribuciones no exponenciales

Clase 12: Modelo de colas con disciplina de prioridades y disciplina de cola.

Clase 13: Solemne


Resultado de Aprendizaje de la Clase
Utiliza el algoritmo de búsqueda tabú para encontrar una mejor solución que
el óptimo local.
¿Por qué es importante este tema?
Este tema es importante debido a que presenta al estudiante el método de
búsqueda tabú para encontrar mejores soluciones que las obtenidas en la
heurística codiciosa.
Introducción
La heurística codiciosa presentada en la clase 1 comparte una estrategia
común con la metahurística: En la iteración k la búsqueda se mueve a un
nuevo punto Xk+1 ϵN(Xk) sólo si el nuevo punto mejora el valor de la función
objetivo F(X). Si no se puede hallar una Xk+1 mejor en N(Xk) o si se llega a una
cantidad de iteraciones especificada por el usuario, la solución se encuentra
atrapada en un óptimo local y la búsqueda termina.
La metaheurística está diseñada principalmente para escapar del
entrampamiento en el óptimo local al permitir movimientos inferiores, si es
necesario. Se espera que la flexibilidad agregada a la búsqueda conduzca a
una mejor solución.
Metahurística
Tal como se mencionó en la introducción, la metaheurística está diseñada
principalmente para escapar del entrampamiento en el óptimo local de
manera que la flexibilidad agregada a la búsqueda conduzca a una mejor
solución.
A diferencia de la heurística codiciosa, la cual siempre termina cuando se
llega a un óptimo local, la terminación de una búsqueda metaheurística se
basa en los siguientes puntos de referencia:
1. La cantidad de iteraciones de búsqueda excede una cantidad
especificada.
2. La cantidad de iteraciones desde la última mejor solución excede una
cantidad especificada.
3. La vecindad asociada con el punto de búsqueda actual, o está vacía o no
puede conducir a un nuevo movimiento de búsqueda viable.
4. La calidad de la mejor solución actual es aceptable.
Metahurística
Los algoritmos metaheurísticos que se consideran dentro del programa de la
cátedra son:
• Búsqueda tabú.
• Recocido simulado.
• Algoritmo genético.

Estos algoritmos difieren principalmente en la forma en que la búsqueda


escapa de un óptimo local.

Cada metaheurística se ilustrará por medio de dos ejemplos:


1. El primero, que se ocupa de una función F(x) de una sola variable, está
diseñado para explicar los fundamentos de la metaheurística.
2. El segundo, que se ocupa del más complejo problema de secuenciación
de tareas en un taller, revela complejidades adicionales en la
implementación de la metaheurística.
Algoritmo de Búsqueda Tabú
Cuando la búsqueda se queda atrapada en un óptimo local, la búsqueda tabú
(BT) selecciona el siguiente movimiento de búsqueda (posiblemente inferior)
de una manera que prohíbe temporalmente, volver a examinar las soluciones
anteriores.

El instrumento principal para alcanzar este resultado es la lista tabú que


recuerda los movimientos de la búsqueda anterior y los deshabilita durante
un periodo de tenencia especificada. Cuando un movimiento tabú completa
su tenencia, se elimina de la lista tabú y se hace disponible para futuros
movimientos.

Para el ejemplo 1, se retomará el ejercicio resuelto en la clase 1.


Algoritmo de Búsqueda Tabú
Para la iteración k (del ejemplo resuelto en la Figura 1: Ejemplo clase 1
clase 1) sean:
xk= Solución de prueba actual
N(xk)= Vecindad de xk
Lk= Lista tabú de valores inadmisibles de x en
la iteración k
T= Periodo de permanencia tabú expresado
en cantidad de iteraciones sucesivas
x*= Mejor solución encontrada durante la
búsqueda.
Fuente: Taha (2004)
Algoritmo de Búsqueda Tabú
En términos de la función F(x) de la figura asociada al ejemplo de la clase 1,
los valores factibles son 1,2,…,8. En la iteración k, el conjunto de vecindades
de xk puede definirse como N(xk) = {xk - q,… xk - 1, xk + 1,…, xk + q} - Lk donde q
es una constante entera. La definición excluye implícitamente los puntos de
solución no factibles.

Por ejemplo, en el caso en que xk= 3, q= 4 y Lk = {6}, N(xk)= {-1, 0, 1, 2, 4, 5, 6,


7} – {6} = {1, 2, 4, 5, 7}. Los elementos tachados son no factibles.

Como se explicó en la clase 1, el siguiente movimiento de búsqueda xk+1


puede seleccionarse como el mejor entre todas las soluciones en N(xk), o
como un elemento aleatorio de N(xk) (selección de caminata aleatoria). Este
ejemplo utiliza una selección aleatoria.
Algoritmo de Búsqueda Tabú
La tabla que se muestra a continuación proporciona 5 iteraciones del
algoritmo de BT.

Tabla 1. Minimización mediante el algoritmo de BT de F(x), en la figura 1 con período


de permanencia tabú t = 3 y N(xk) = {xk- 4, …, xk- 1, xk+ 1, …, xk+ 4} - Lk

0.0935
0.3128
0.4039
0.1861
0.4839
0.6712

Fuente: Taha (2004)


Algoritmo de Búsqueda Tabú
La búsqueda se inicia en x0= 1 (seleccionado al azar desde {1,2,…,8},
utilizando R= 0.0935).Defina la vecindad con q = 4 y considere un periodo de
permanencia fijo t=3 iteraciones.

Para ilustrar los cálculos, N(x0= 1) = {2,3,4,5}. En la iteración 1, L1 = {1} y


R1= 0.3128 seleccione x1=3 a partir de N(x0),la cual resulta N(x1) = {1,2,4,5,6,7}
- {1} = {2,4,5,6,7} y actualiza la lista tabú en la iteración 2 para L2 = {1,3}.

Se elimina un elemento de la lista tabú según el primero en entrar es el


primero en salir después de un periodo de permanencia de t=3 iteraciones
sucesivas. Por ejemplo el elemento {1} permanece en la lista tabú durante las
iteraciones 1, 2, y 3 hasta que se elimina en la iteración 4.
Algoritmo de Búsqueda Tabú
Ejemplo de secuenciación de tareas.

Considere el caso de secuenciar n tareas en una sola máquina. El tiempo de


procesamiento de la tarea j es tj y su fecha límite es dj (medida a partir de
cero).

Si la tarea j se completa con anticipación a su fecha límite se incurre en un


costo de retención (almacenamiento) hj por unidad de tiempo.

Una tarea j retrasada provoca un costo de penalización pj por unidad de


tiempo.
Algoritmo de Búsqueda Tabú
Ejemplo de secuenciación de tareas.

Defina
jik = La tarea j ocupa la posición i durante la iteración k
sk = Secuencia de tareas utilizada en la iteración k
N(sk) = Secuencias de las vecindades de sk
Lk = Lista tabú en la iteración k
t=Periodo de permanencia expresado en cantidad de iteraciones sucesivas
zk = Costo total (retención + penalización) de la secuencia sk
s*= Mejor secuencia disponible durante la búsqueda
z* = Costo total asociado con s*
Algoritmo de Búsqueda Tabú
Ejemplo de secuenciación de tareas.

La tabla que se presenta a continuación, suministra los datos para un


problema de 4 tareas:

Fuente: Taha (2004)


Algoritmo de Búsqueda Tabú
Ejemplo de secuenciación de tareas.

Entre las posibles opciones para determinar la vecindad, N(sk), a partir de sk


se encuentran las siguientes:

1. Intercambiar las posiciones de pares sucesivos de tareas.


2. Intercambiar las posiciones de pares implícitos de cada dos tareas.
3. Intercambiar la posición de una tarea con otra seleccionada al azar de
entre las tareas restantes.
Algoritmo de Búsqueda Tabú
Ejemplo de secuenciación de tareas.

En este ejemplo se utiliza la primera definición.

Para demostrar su uso considere s0 = (1-2-3-4).


El conjunto de vecindades es N(s0) = {(2-1-3-4),(1-3-2-4, (1-2-4-3)}, el cual
corresponde a intercambiar las posiciones (en s0) de las tareas 1, y 2, las
tareas 2 y 3, y las tareas 3 y 4, respectivamente.
La selección del siguiente movimiento s1 a partir de N(s0) puede hacerse al
azar o basado en el criterio de costo mínimo. Este ejemplo emplea la
selección aleatoria.
Algoritmo de Búsqueda Tabú
Ejemplo de secuenciación de tareas.
A continuación se presenta una tabla que resume 5 iteraciones suponiendo
un período de permanencia t = 3 iteraciones. La secuencia (3-1-2-4) en la
iteración 2 proporciona la mejor solución con z* = 126

Fuente: Taha (2004)


Algoritmo de Búsqueda Tabú
Ejemplo de secuenciación de tareas.

A continuación se detalla la forma de obtención de los costos totales


reflejados en la tabla de la lámina anterior para la secuencia s2 (3-1-2-4) de la
segunda iteración.

Por lo tanto, z = Costo de


retención + Costo de penalización
= 20 + (10 + 88 + 8) = $126.

Fuente: Taha (2004)


Algoritmo de Búsqueda Tabú
Ejemplo de secuenciación de tareas.

La heurística funciona de la siguiente manera:

En la iteración 1, R = 0.5124 selecciona la secuencia s1 = (1-3-2-4) al azar de


N(s0). La lista tabú asociada es L1 = {3-2}, lo que significa que las posiciones de
las tareas 2 y 3 no pueden cambiarse durante el periodo de permanencia (es
decir, durante dos iteraciones sucesivas).

Ésta es la razón por la que la secuencia (1-2-3-4) se excluye en N(s1).El mismo


razonamiento aplica a las secuencias tachadas en iteraciones subsiguientes.
Observe que los cálculos en la tabla anterior aplican R sólo a elementos
cercanos admisibles (no tachados).
“Afinación fina” de la Búsqueda Tabú
Con el propósito de mejorar la calidad de la solución final, se considera que
los siguientes refinamientos pueden resultar efectivos:
1. Criterio de aspiración. El diseño de la BT imposibilita los movimientos que
aparecen en la lista tabú. Sin embargo, ocurre una excepción cuando un
movimiento imposibilitado conduce a una solución mejorada.

2. Intensificación y diversificación. Por lo general se aplican dos estrategias


adicionales, llamadas intensificación y diversificación, cuando una cadena
de iteraciones sucesivas no produce mejoras.
Intensificación: demanda un examen más
completo de los puntos de solución cercanos.

Diversificación: intenta desplazar la búsqueda


a regiones de solución no exploradas.
Preguntas
• ¿Qué es la Programación Metaheurística?

• ¿En qué consiste el algoritmo de Búsqueda Tabú?


Resumen de la clase
Programación
Metaheurística

Búsqueda Tabú

Función de una sola


variable

Secuencia de tareas
Bibliografía
Bibliografía Obligatoria:
• Investigación de Operaciones
– Taha Hamdy (2004), Pearson Educación.
Taller Práctico Colaborativo
Título
• Algoritmo de Búsqueda Tabú.

Resultado de Aprendizaje
• Utiliza el algoritmo de búsqueda tabú para
encontrar una mejor solución que el óptimo local.

Tiempo
• 80 minutos (5 min. organización, 75 min. desarrollo del
taller).
Actividad online Clase 2
Guía
• Algoritmo de Búsqueda Tabú.
• Tiempo de Desarrollo: 40 minutos.
• Lleve el desarrollo de la Guía y las principales dudas a la siguiente.
Clase presencial.

Control
• Control Sumativo.
• Tiempo para el desarrollo: 40 minutos.

Das könnte Ihnen auch gefallen