6
4.4. Aplicación del algoritmo de la búsqueda tabú Selección de la solución inicial: El siguiente paso consiste en generar una solución inicial, ésta puede ser el resultado de una heurística, de una selección aleatoria o de una asignación arbitraria realizada por el experto (el que tiene el know how del problema). En este caso sea la solución inicial : x 0 = 4 5 3 6 7 1 2 Al evaluar en EXCEL se encuentra que la función objetivo vale 4. Colisionan las reinas: {(2,6) (6,7) (4,5) (1,2)} Se itera para seleccionar la siguiente solución: Se realizan los intercambios posibles (movimientos) mientras no se cumpla la condición de parada. Iteración 1 (k=1) El vecindario está conformado por todas las posibles combinaciones de 7 elementos tomados de 2 en 2, es decir, 7!/(2!*5!) = 21 Se evalúan las 21 posibles soluciones y se seleccionan las 5 mejores # alternativa Permutación Colisiones 1 1 2 7 2 1 3 7 # alternat Permutación Colisiones 3 1 4 5 6 1 7 2 4 1 5 3 8 2 4 2 5 1 6 3 10 2 6 2 6 1 7 2 19 5 6 2 7 2 3 5 4 1 5 3 8 2 4 2 9 2 5 4 10 2 6 2 11 2 7 3 12 3 4 8 13 3 5 4 14 3 6 3 15 3 7 5 16 4 5 6 17 4 6 4 18 4 7 3 19 5 6 2 20 5 7 5 21 6 7 3 Hay 4 movimientos que producen 2 colisiones y 6 movimientos que producen 3 colisiones. Cuando hay empates se puede utilizar un mecanismo aleatorio para seleccionar el mejor movimiento. 60

búsqueda tabú

Embed Size (px)

DESCRIPTION

Aplicación del algoritmo de la búsqueda tabú

Citation preview

Page 1: búsqueda tabú

4.4. Aplicación del algoritmo de la búsqueda tabú

Selección de la solución inicial:

El siguiente paso consiste en generar una solución inicial, ésta puede ser el

resultado de una heurística, de una selección aleatoria o de una asignación

arbitraria realizada por el experto (el que tiene el know how del problema).

En este caso sea la solución inicial :

x0 = 4 5 3 6 7 1 2

Al evaluar en EXCEL se encuentra que la función objetivo vale 4.

Colisionan las reinas: {(2,6) (6,7) (4,5) (1,2)}

Se itera para seleccionar la siguiente solución:

Se realizan los intercambios posibles (movimientos) mientras no se cumpla la condición de parada. Iteración 1 (k=1) El vecindario está conformado por todas las posibles combinaciones de 7 elementos tomados de 2 en 2, es decir, 7!/(2!*5!) = 21

Se evalúan las 21 posibles soluciones y se seleccionan las 5 mejores

# alternativa Permutación Colisiones 1 1 2 7 2 1 3 7 # alternat Permutación Colisiones 3 1 4 5 6 1 7 2 4 1 5 3 8 2 4 2 5 1 6 3 10 2 6 2 6 1 7 2 19 5 6 2 7 2 3 5 4 1 5 3 8 2 4 2 9 2 5 4

10 2 6 2 11 2 7 3 12 3 4 8 13 3 5 4 14 3 6 3 15 3 7 5 16 4 5 6 17 4 6 4 18 4 7 3 19 5 6 2 20 5 7 5 21 6 7 3

Hay 4 movimientos que producen 2 colisiones y 6 movimientos que producen 3 colisiones. Cuando hay empates se puede utilizar un mecanismo aleatorio para seleccionar el mejor movimiento.

60

Page 2: búsqueda tabú

Se escoge la permutación 1,7

La solución siguiente resulta de intercambiar las reinas 1 y 7

x1 = 2 5 3 6 7 1 4

La función objetivo vale 2, colisionan las reinas: {(2,6) (4,5)}

La lista tabú, contiene los movimientos considerados prohibidos, en

este caso se registran los atributos de las permutaciones (el intercambio de

reinas).

Para prevenir que las reinas vuelvan a su lugar anterior, se registrará en

la lista tabú los 3 últimos movimientos. El tamaño de la lista (tabú tenure) es

tres.

Solución actual x1 Estructura de la lista tabú Mejores 5 candidatos

2 5 3 6 7 1 4 2 3 4 5 6 7 cambio colisiones 1 3 2 4 1

2 1 6 2

3 2 5 2

4 3 5 2

5 3 6 2

El movimiento (1,7) está penalizado durante 3 iteraciones

6

Si se intercambian las reinas 2 y 4 la función objetivo valdrá 1, sólo hay

una colisión {(1,4)}

Se itera una vez más, k=2

Solución actual x2 Estructura de la lista tabú Mejores 5 candidatos

2 6 3 5 7 1 4 2 3 4 5 6 7 cambio colisiones 1 2 1 3 1

2 3 1 2 2

3 1 4 2

4 1 6 2

5 1 7 2T

El movimiento (1,7) está penalizado durante 2 iteraciones y el movimiento (2,4) durante 3 iteraciones

6

61

Page 3: búsqueda tabú

Entre los 21 vecinos hay 1 movimiento que produce una colisión y 8

movimientos que producen 2 colisiones, se pueden seleccionar al azar o

sistemáticamente tomar los primeros, en este caso el vecino (1,7) está

marcado como movimiento tabú, por lo tanto aún si fuera el mejor no sería

elegido para la siguiente iteración.

Se selecciona la permutación (1,3), es decir se intercambian las reinas 1 y 3; la

función objetivo no mejora, hay una colisión: {(1,5)}

Se itera una vez más, k = 3

Solución actual x3 Estructura de la lista tabú Mejores 5 candidatos

3 6 2 5 7 1 4 2 3 4 5 6 7 cambio colisiones 1 3 1 1 3 1T

2 2 1 7 1T

3 5 7 2

4 6 7 2

5 1 2 3

El movimiento (1,7) está penalizado durante 1 iteración y el movimiento (2,4) durante 2 iteraciones y el (1,3) durante 3 iteraciones

6

Las permutaciones (1,3) o (1,7) son las mejores en esta iteración, pero

como son tabú no pueden ser elegidas. La permutación de las reinas 5 y 7 a

pesar de que produce 2 colisiones y la función objetivo desmejora es la elegida

para ser la solución en la siguiente iteración. Las colisiones que se producen

son: {(3,5) (4,5)}

k = 4

Solución actual x4 Estructura de la lista tabú Mejores 5 candidatos

3 6 2 5 4 1 7 2 3 4 5 6 7 cambio colisiones 1 2 0 4 7 1

2 1 5 7 1T 3 1 5 2

4 2 5 2

5 3 2 4 3T

Observar como decrecen los tiempos de permanencia en la lista Tabú

6

62

Page 4: búsqueda tabú

La elección del movimiento (4,7) produce una sola colisión y no es tabú.

k=5

Solución actual x5 Estructura de la lista tabú Mejores 5 candidatos

3 6 2 7 4 1 5 2 3 4 5 6 7 cambio colisiones

1 1 0 1 3 0T 2 0 5 6 1

3 5 7 1T 4 3 1 6 2

5 2 1 7 2

6

El movimiento (1,3) es el mejor en la iteración k = 5, pero es tabú, sin

embargo realizar este movimiento produce el mejor valor encontrado hasta el

momento: cero colisiones, es por eso que se recurre al criterio de aspiración

para sobrepasar la condición de tabú y permitir que la siguiente solución sea (2;

6; 3; 7; 4; 1; 5) con la cual se obtiene una función objetivo igual a cero, es decir

es una solución de elite. Por la naturaleza del problema no hay otras soluciones

mejores, (no hay colisiones negativas) pero el proceso continúa para tratar de

encontrar otras soluciones.

Si el objetivo es encontrar una solución con cero colisiones, el criterio de

aspiración consistente en quitarle la restricción tabú a un movimiento que

produce el “óptimo” es válido, pero como se verá cuando se procese en un

programa computacional, esto ocasiona que no se diversifique la búsqueda y

no se encuentren más soluciones.

“tradicionalmente en la literatura la noción de mejor movimiento corresponde a

aquel que lleva a un mejor cambio en la función objetivo y frecuentemente se

asume por convención. Sin embargo, la filosofía de la búsqueda tabú ve “el

mejor” en el contexto, teniendo en cuenta una variedad de dimensiones

además del cambio en la función objetivo.”[4]

[4] Laguna, Manuel “A Guide to implementing Tabu search”, Investigación Operativa v. 4, n. 1, pp. 17 Abril 1994

63

Page 5: búsqueda tabú

Podría ser deseable incrementar el porcentaje de movimientos tabú, esto

se puede lograr ya sea incrementando el tamaño de la lista tabú, (tabu tenure)

el número de iteraciones que un movimiento está en la lista tabú o cambiando

la restricción tabú.

Como el tamaño de la lista es un número finito, en algún momento un

movimiento saldrá de la lista tabú y podrá ser elegido, con lo que se corre el

riesgo de ciclado – una misma solución vuelve a ocurrir repetidas veces cada

cierto tiempo - , para diversificar la búsqueda se usará la memoria de largo

plazo, en este caso, la estructura que registra la frecuencia de ocurrencia de

los movimientos.

Supongamos que no se está considerando ningún criterio de aspiración y se

han realizado ya 75 iteraciones

Solución actual x75 Frecuencias Mejores 5 candidatos

5 3 1 6 4 2 7 1 cambio FO freq

2 7 4 7 1 7 3 8 7 5 7 1T 5 4 4 5 0 1 2 2 7 5 4 0 0 5 1 4 2T 4 6 3 4 0 4 4 1 6 2 3

7 4 0 0 7 5 4

La lista tabú es: 1 2 3 4 5 6 7

1 2

2

3

4 1

5 3

6

La solución x75 es (5, 3, 1, 6, 4, 2, 7) y al evaluar los 5 mejores

candidatos para pasar a x76 se observa que el elegido debería ser el

64

Page 6: búsqueda tabú

movimiento 4,7 pues da un valor para la función objetivo igual a una colisión,

pero, al revisar la tabla de frecuencias se observa que dicho movimiento ha

ocurrido 7 veces en el pasado, hay otros candidatos no tabú con menor

frecuencia y además hay otros movimientos que tienen frecuencia cero, lo que

implica que hay regiones no exploradas que podrían contener otras soluciones

con menos colisiones.

• Por lo tanto el movimiento 4,7 a pesar de no ser tabú debe ser

penalizado para que no vuelva a ocurrir hasta que la frecuencia de los

otros lo supere.

• El candidato (5, 7) no puede ser elegido por ser tabú.

• El candidato (1, 2) es no tabú, pero entre los otros candidatos no tabú

hay uno que tiene menor frecuencia de ocurrencias en el pasado.

• Por lo tanto el elegido para conformar la siguiente solución debería ser el

movimiento (1, 6) para diversificar la búsqueda.

Este movimiento llevará el proceso de búsqueda a regiones menos exploradas.

El procedimiento se repite hasta superar el máximo número de iteraciones

permitidas.

Consideraciones previas al análisis de los resultados

• Es claro que la implementación computacional del algoritmo es

imprescindible para encontrar soluciones.

• Es evidente también que el algoritmo está en función del tipo de

problema, en este caso el movimiento es un intercambio de reinas, en el

problema del agente viajero o en un problema de secuenciación un

movimiento podría ser insertar un nodo y desplazar los otros, etc.

• En líneas generales lo central del método es la búsqueda inteligente,

alternando estrategias de intensificación con estrategias de

diversificación, penalizando la ocurrencia de un movimiento en algunos

casos y propiciándola en otros casos, todo sobre la base de la memoria.

65