Está en la página 1de 48

ALGORTMICA

2010 2011

Parte I. Introduccin a las Metaheursticas

Tema 1. Metaheursticas: Introduccin y Clasificacin


Parte II. Mtodos Basados en Trayectorias y Entornos

Tema 2. Algoritmos de Bsqueda Local Bsicos

Tema 3. Algoritmos de Enfriamiento Simulado

Tema 4. Algoritmos de Bsqueda Tab

Tema 5. Mtodos Basados en Trayectorias Mltiples I: Mtodos Multiarranque Bsicos y GRASP

Tema 6. Mtodos Basados en Trayectorias Mltiples II: ILS y VNS


Parte III. Mtodos Basados en Poblaciones

Tema 7. Algoritmos Genticos


Parte IV. Intensificacin y Diversificacin

Tema 8. Estudio del Equilibrio entre Intensificacin y Diversificacin


Parte V. Metaheursticas Hbridas: Poblaciones y Trayectorias

Tema 9. Algoritmos Memticos

Tema 10. Modelos Hbridos II: Scatter Search


Parte VI. Paralelizacin de Metaheursticas

Tema 11. Metaheursticas en Sistemas Descentralizados


Parte VII. Conclusiones

Tema 12. Algunas Consideraciones sobre la Adaptacin de Metaheursticas a la Resolucin de Problemas


1

ALGORTMICA
TEMA 4. Algoritmos de Bsqueda
Tab
1. INTRODUCCIN
2. LA ESTRUCTURA DE LA BSQUEDA TAB
3. ALGUNOS DATOS DE LA WEB SOBRE SU USO
4. EJEMPLO: VIAJANTE DE COMERCIO
5. APLICACIONES
A. Daz y otros. Optim izacin Heurstica y Redes N euronales. P araninfo, 1996
F. Glover, B. M elin. Bsqueda Tab. I nteligencia Artificial VI I :2 (2003) 29-47.
F. Glover, M. Laguna. Tabu Search. Kluwer Academic, 1997.
2

1. INTRODUCCIN
Problemas de la Bsqueda Local (Tema 2)
Un mal diseo de la funcin objetivo puede guiar mal la bsqueda y dar
lugar a que se obtengan soluciones de baja calidad
SOLUCIONES: 3 opciones para salir de los ptimos locales

Permitir movimientos de empeoramiento de la solucin actual


(Ejemplo: Enfriamiento Simulado, Bsqueda Tab, )
Modificar la estructura de entornos
(Ejemplo: Bsqueda Tab, Bsqueda Descendente Basada en
Entornos Variables: VND, Bsqueda en Entornos Variables:
VNS, )
Volver a comenzar la bsqueda desde otra solucin inicial
(Ejemplo: Bsquedas Multiarranque, ILS, Bsqueda Tab, )
3

1. INTRODUCCIN
La Bsqueda Tab es un procedimiento de bsqueda por entornos
cuya caracterstica distintiva es el uso de memoria adaptativa y
estrategias especiales de resolucin de problemas
La memoria adaptativa permite:

restringir el entorno de bsqueda, e

introducir mecanismos de reinicializacin de la bsqueda


mediante intensificacin sobre zonas del espacio de bsqueda ya
visitadas, o diversificacin sobre posibles zonas del espacio de
bsqueda poco visitadas

Glover, F. "Tabu Search Part I", ORSA Journal on Computing 1989 1: 3, 190-206.
Glover, F. "Tabu Search Part II", ORSA Journal on Computing 1990 2: 1, 4-32.
4

1. INTRODUCCIN
MEMORIA ADAPTATIVA:
ENTORNOS TABU RESTRINGIDOS

MEMORIA ADAPTATIVA.
ESTRATEGIA ESPECIAL DE INTENSIFICACIN
SOBRE SOLUCIONES YA VISITADAS Las mejores, distantes,

2. LA ESTRUCTURA DE LA BSQUEDA TAB


2.1. Fundamentos
2.2. Memoria de Corto Plazo: Generacin de
Entornos Restringidos en la Bsqueda Tab
2.3. Ejemplo de Uso de la Memoria de Corto
Plazo
2.4. Memoria de Largo Plazo: Intensificacin y
Diversificacin de la Bsqueda
2.5. Ejemplo de Uso de la Memoria de Largo
Plazo
6

2. LA ESTRUCTURA DE LA BSQUEDA TAB


2.1. Fundamentos
La Bsqueda Tab (TS) es una tcnica de bsqueda por entornos
caracterizada por dos aspectos principales:

Permite movimientos de empeoramiento para escapar de


ptimos locales.
Para evitar recorridos cclicos, incorpora un mecanismo de
generacin de vecinos modificado que evita la exploracin de
zonas del espacio de bsqueda que ya han sido visitadas:
GENERACIN DE ENTORNOS TAB RESTRINGIDOS

Emplea mecanismos de reinicializacin para mejorar la


capacidad del algoritmo para la exploracin-explotacin del
espacio de bsqueda: INTENSIFICACIN Y DIVERSIFICACIN

2. LA ESTRUCTURA DE LA BSQUEDA TAB


2.1. Fundamentos

Para realizar las dos tareas anteriores, hace uso de dos


estructuras de memoria adaptativas distintas:

Memoria de corto plazo o Lista tab


Memoria de largo plazo

La memoria de corto plazo guarda informacin que permite guiar


la bsqueda de forma inmediata, desde el comienzo del
procedimiento (GENERACIN DE ENTORNOS TAB
RESTRINGIDOS)

2. LA ESTRUCTURA DE LA BSQUEDA TAB


2.1. Fundamentos

La memoria de largo plazo guarda informacin que permite guiar


la bsqueda a posteriori, despus de una primera etapa en la que
se han realizado una o varias ejecuciones del algoritmo
aplicando la memoria a corto plazo
La informacin guardada en esta memoria se usa para comenzar
con la bsqueda desde otra solucin inicial de acuerdo a dos
filosofas distintas:
Intensificar la bsqueda, volviendo a visitar zonas del espacio
prometedoras (que contenan buenas soluciones), ya
exploradas parcialmente
Diversificar la bsqueda, visitando nuevas zonas no
exploradas an
9

2. LA ESTRUCTURA DE LA BSQUEDA TAB


2.2. Memoria de Corto Plazo: Generacin
de Entornos Restringidos en la
Bsqueda Tab
Modificacin de las Estructuras de Entorno

La TS extiende la bsqueda local sustituyendo E(Sact) por otro


entorno E*(Sact) E(Sact). En cada iteracin, se acepta siempre el
mejor vecino de dicho entorno, tanto si es peor como si es mejor
que Sact

La memoria de corto plazo (lista tab) permite a la TS determinar


E*(Sact) y as organizar la manera en la que se explora el espacio
10

2. LA ESTRUCTURA DE LA BSQUEDA TAB


2.2. Memoria de Corto Plazo: Generacin de
Entornos Restringidos en la Bsqueda Tab

Las soluciones admitidas en E*(Sact) dependen de la estructura de la


lista tab:

Lista de soluciones tab: Se identifican soluciones ya visitadas y se


marcan como tab para no volver a ellas, eliminndolas del
vecindario de Sact

Lista de movimientos tab: Se eliminan del entorno todos los


vecinos resultantes de aplicar sobre Sact un movimiento realizado
anteriormente

Lista de valores de atributos tab: Se eliminan del entorno todos


aquellos vecinos con un par (atributo,valor) determinado que ya
presentara alguna solucin explorada anteriormente

Los atributos o movimientos seleccionados son designados


como tab-activos y las soluciones que contienen elementos
tab-activos se convierten en soluciones tab

11

2. LA ESTRUCTURA DE LA BSQUEDA TAB


2.2. Memoria de Corto Plazo: Generacin de
Entornos Restringidos en la Bsqueda Tab

EJEMPLO:
Lista tab de soluciones:
LT = { (1,3,2,4), (3,1,2,4), (3,2,1,4) }
Operador de vecino: 2-opt
Sact = (1,2,3,4)
Vecindario reducido de Sact:
E*(Sact) = {(2,1,3,4), (3,2,1,4), (4,2,3,1), (1,3,2,4), (1,4,3,2), (1,2,4,3) }
(1,3,2,4)

(1,2,4,3)

(3,2,1,4)

(1,2,3,4)

(2,1,3,4)

(1,4,3,2)

(4,2,3,1)

12

2. LA ESTRUCTURA DE LA BSQUEDA TAB


2.2. Memoria de Corto Plazo: Generacin de
Entornos Restringidos en la Bsqueda Tab

EJEMPLO:
Lista tab de movimientos:
LT = { (1,3), (2,4) }
Operador de vecino: 2-opt
Sact = (1,2,3,4)
Vecindario reducido de Sact:
E*(Sact) = {(2,1,3,4), (3,2,1,4), (4,2,3,1), (1,3,2,4), (1,4,3,2), (1,2,4,3) }
(1,4,3,2)

(1,2,4,3)

(3,2,1,4)

(1,2,3,4)

(2,1,3,4)

(1,3,2,4)

(4,2,3,1)

13

2. LA ESTRUCTURA DE LA BSQUEDA TAB


2.2. Memoria de Corto Plazo: Generacin de
Entornos Restringidos en la Bsqueda Tab

TENENCIA TAB

Un atributo/movimiento o solucin que se haya incluido en la


lista tab en algn momento de la bsqueda no permanece en
ella para siempre

Se denomina tenencia tab al intervalo de tiempo durante el


que un atributo/movimiento permanece tab-activo o una
solucin es tab

Este parmetro se mide en nmero de iteraciones. Una vez


transcurrido el valor especificado, el elemento en cuestin deja
de ser tab activo y se elimina de la lista
14

2. LA ESTRUCTURA DE LA BSQUEDA TAB


2.2. Memoria de Corto Plazo: Generacin de
Entornos Restringidos en la Bsqueda Tab

NIVELES DE ASPIRACIN

El criterio de aspiracin introduce un elemento importante de


flexibilidad en la bsqueda tab

El estado tab de un movimiento o atributo puede ser ignorado si


se cumplen ciertas condiciones, en la forma de niveles de
aspiracin

Por ejemplo, un vecino que sea mejor que cualquiera de las


soluciones encontradas anteriormente merece ser considerado
admisible, incluso aunque dicho vecino sea una solucin tab

Una solucin tab dejar de serlo y se incluir en el entorno


factible si supera un cierto nivel de aspiracin
15

2. LA ESTRUCTURA DE LA BSQUEDA TAB


2.2. Memoria de Corto Plazo: Generacin de
Entornos Restringidos en la Bsqueda Tab

ESTRATEGIAS PARA LA LISTA DE CANDIDATOS

Las estrategias para la lista de candidatos se usan para restringir


el nmero de vecinos examinados en una iteracin dada, para los
casos en los que E*(Sact) es grande o la evaluacin de sus
elementos es costosa

Se busca el mejor movimiento disponible que pueda ser


determinado con una cantidad apropiada de esfuerzo

As, no se genera el entorno reducido completo sino una parte


del mismo y se toma el mejor vecino. La seleccin adecuada de
candidatos puede reducir apreciablemente los tiempos de
ejecucin

16

2.2. Memoria de Corto Plazo: Generacin de


Entornos Restringidos en la Bsqueda Tab

2. LA ESTRUCTURA DE LA BSQUEDA TAB


Examen de la Lista de Candidatos
Generar un movimiento para crear una nueva solucin
candidata S a partir de Sact

Prueba Tab
S no es tab

Identificar el movimiento que se realiz para crear


S y comprobar si es tab-activo

Evaluar S
Cvecino C(S)

Realizar el movimiento elegido

Si Cvecino es mejor que Cmejor-vecino


Entonces Cmejor-vecino Cvecino Smejor-vecino S

Prueba de Fin
Se han generado
suficientes vecinos?

Prueba de Aspiracin
Satisface S un nivel
de aspiracin?
NO

Actualizacin del Mejor Vecino

NO

S es tab

Sact Smejor-vecino
Cact Cmejor-vecino
S
Introducir el nuevo elemento tab
de Smejor-vecino en la lista tab
Eliminar de ella aquellos elementos
cuya tenencia tab haya expirado

17

2. LA ESTRUCTURA DE LA BSQUEDA TAB


2.2. Memoria de Corto Plazo: Generacin de
Entornos Restringidos en la Bsqueda Tab

ESTRUCTURAS DE MEMORIA DE CORTO PLAZO

Sea I = {1, 2, ..., n} un conjunto de ndices para una coleccin de


atributos y sea S una solucin al problema

Sea i I, el estado tab-activo de un atributo Si se representa por


el ndice i, que puede almacenarse en un vector o lista

El estado tab de Si = k se representa guardando el par ordenado


<i, k> en la lista

Para el caso de un intercambio de dos ndices i,j I, se guardara


el par <i, j>

18

2. LA ESTRUCTURA DE LA BSQUEDA TAB


2.2. Memoria de Corto Plazo: Generacin de
Entornos Restringidos en la Bsqueda Tab

Para facilitar la gestin de la tenencia tab de los atributos (el


nmero de iteraciones que son tab-activos), lo mejor es
implementar una lista circular

Cuando se llena la lista, se comienza a insertar de nuevo por el


principio, borrando lo que hubiera en esas posiciones

As, la tenencia tab de todos los atributos equivale al tamao de


la lista. La eleccin de un valor para la tenencia tab suele ser
experimental, siendo una funcin del nmero total de atributos
(p.e., [n/3, 3n])
19

2. LA ESTRUCTURA DE LA BSQUEDA TAB


2.3. Ejemplo de Uso de la Memoria de Corto Plazo: Diseo
de un Material Formado por un Nmero de Capas
Aislantes

Problema de permutaciones que consiste en encontrar el orden de las


capas que maximiza el valor de aislamiento total del material compuesto.
Supongamos que se consideran 7 capas para un material particular y
que evaluar el valor de aislamiento total de una ordenacin particular es
un procedimiento computacionalmente costoso. Maximizamos una
funcin de aislamiento

20

2. LA ESTRUCTURA DE LA BSQUEDA TAB


2.3. Ejemplo de Uso de la Memoria de Corto Plazo

Movimiento - Permutacin

Intercambio de las capas 5 y 6

Estructura de datos de la Lista Tab

Se impide el intercambio de las capas i y j mientras el movimiento sea tab-activo

21

2. LA ESTRUCTURA DE LA BSQUEDA TAB


2.3. Ejemplo de Uso de la Memoria de Corto Plazo

Iteracin 0
22

2. LA ESTRUCTURA DE LA BSQUEDA TAB


2.3. Ejemplo de Uso de la Memoria de Corto Plazo

Iteracin 1 (Tenencia Tab = 3)


23

2. LA ESTRUCTURA DE LA BSQUEDA TAB


2.3. Ejemplo de Uso de la Memoria de Corto Plazo

Iteracin 2
24

2. LA ESTRUCTURA DE LA BSQUEDA TAB


2.3. Ejemplo de Uso de la Memoria de Corto Plazo

Iteracin 3
25

2. LA ESTRUCTURA DE LA BSQUEDA TAB


2.3. Ejemplo de Uso de la Memoria de Corto Plazo

Iteracin 4
26

2. LA ESTRUCTURA DE LA BSQUEDA TAB


2.4. Memoria de Largo Plazo: Intensificacin y Diversificacin de
la Bsqueda

En algunas aplicaciones, las componentes de la memoria TS de corto


plazo son suficientes para producir soluciones de muy alta calidad

No obstante, en general, la TS se vuelve mucho ms potente incluyendo


memoria de largo plazo y sus estrategias de reinicializacin asociadas

La memoria de largo plazo se puede usar de dos modos distintos:

Estrategias de Intensificacin

Estrategias de Diversificacin

Una estructura muy empleada es la memoria de frecuencias, que


registra el nmero de veces que cada valor de un atributo ha
pertenecido a soluciones visitadas en la bsqueda
27

2.4. Memoria de Largo Plazo:


Intensificacin y Diversificacin de la Bsqueda

2. LA ESTRUCTURA DE LA BSQUEDA TAB


ESTRATEGIAS DE INTENSIFICACIN

Se basan en una reinicializacin de la bsqueda que efecta un regreso a


regiones atractivas del espacio para buscar en ellas ms extensamente

Se mantiene un registro de las mejores soluciones visitadas, insertando una


nueva solucin cada vez que se convierte en la mejor global

Se puede introducir una medida de diversificacin para asegurar que las


soluciones registradas difieran una de otra en un grado deseado

Tenemos cuatro variantes resultantes de combinar soluciones/memoria:

Solucin desde la que se reinicializa:

Reanudar el proceso desde la mejor de las soluciones registradas

Usar una pila de mejores soluciones de longitud limitada y escoger la cabeza


de la pila

Restauracin de la memoria de corto plazo:

Almacenar la memoria de corto plazo en el momento que se encontr cada


una de las mejores soluciones para restaurarla cuando se reanude la
bsqueda desde dicha solucin

Borrar la memoria de corto plazo para iniciar la bsqueda desde cero


28

2.4. Memoria de Largo Plazo:


Intensificacin y Diversificacin de la Bsqueda

2. LA ESTRUCTURA DE LA BSQUEDA TAB


Enfoque simple de intensificacin en TS
Realizar una serie de iteraciones haciendo uso
de la memoria de corto plazo

Crear e ir manteniendo una lista de k soluciones lite


(por ejemplo, k=5, ..., 20)

Cuando el algoritmo se estanque (es decir, cuando la proporcin de aceptacin de


nuevas soluciones mejores caiga por debajo de un umbral):
Si se lleg al lmite de iteraciones o la lista de soluciones lite est vaca, Parar
si no, escoger una solucin lite y eliminarla de la lista

Continuar la ejecucin del algoritmo de TS desde la solucin escogida


(opcionalmente restaurar la memoria de corto plazo)
Si durante las iteraciones actuales se encuentran soluciones vlidas para la estrategia
de seleccin de soluciones lite, incluirlas en la lista
(reemplazando a otras si la lista est llena)

29

2.4. Memoria de Largo Plazo:


Intensificacin y Diversificacin de la Bsqueda

2. LA ESTRUCTURA DE LA BSQUEDA TAB


ESTRATEGIAS DE DIVERSIFICACIN

Conducen la bsqueda hacia nuevas regiones del espacio de bsqueda


no exploradas an

La bsqueda se reinicializa cuando se estanca, partiendo de una


solucin no visitada

Esta solucin se genera a partir de la memoria de frecuencias, dando


mayor probabilidad de aparicin a los valores menos habituales

OSCILACIN ESTRATGICA

Interaccin efectiva entre intensificacin y diversificacin consistente


en escoger aleatoriamente una u otra cuando la bsqueda se estanque
30

2.4. Memoria de Largo Plazo:


Intensificacin y Diversificacin de la Bsqueda

2. LA ESTRUCTURA DE LA BSQUEDA TAB


Enfoque simple de diversificacin en TS
Realizar una serie de iteraciones haciendo uso
de la memoria de corto plazo

Mantener la memoria de frecuencias en funcin de los


valores de atributos de las soluciones aceptadas

Cuando el algoritmo se estanque, generar aleatoriamente una nueva


solucin inicial a partir de la memoria de frecuencias, dando mayor
probabilidad de aparicin a los valores de atributos menos usados

Continuar la bsqueda a partir de esa solucin usando la memoria de corto


plazo de la forma habitual
Seguir actualizando la memoria de frecuencias

Cuando el algoritmo se estanque de nuevo, estudiar si se da la


condicin de parada global.
Si es as, Parar, si no, generar una nueva solucin inicial

31

2.4. Memoria de Largo Plazo:


Intensificacin y Diversificacin de la Bsqueda

2. LA ESTRUCTURA DE LA BSQUEDA TAB


ESTRUCTURAS DE MEMORIA DE LARGO PLAZO (FRECUENCIAS)

Si las variables son binarias, se puede usar un vector de


dimensin n, para almacenar el nmero de veces que cada
variable tom el valor 0 ( 1)

Si son enteras, se utiliza una matriz bidimensional, como


contador de las veces que la variable i toma el valor k: M[i,k]

Si son permutaciones de orden, se puede utilizar una matriz


bidimensional, como contador de las veces que el valor i ha ido
seguido del j: M[i,j]
32

2.4. Memoria de Largo Plazo:


Intensificacin y Diversificacin de la Bsqueda

2. LA ESTRUCTURA DE LA BSQUEDA TAB


USO DE LA MEMORIA DE FRECUENCIAS

Existen dos posibilidades:


1) Generar directamente la nueva solucin inicial a partir de la
informacin almacenada en la memoria de frecuencias M, dando
mayor probabilidad de aparicin a los valores menos habituales
2) Usar la informacin almacenada en M para modificar temporalmente
el caso del problema, potenciando los valores heursticos de los
atributos menos usados en la bsqueda
Aplicar un algoritmo greedy sobre ese caso modificado para generar
la solucin inicial. Restaurar el caso original del problema antes de
continuar con la bsqueda
33

2.5. Ejemplo de Uso de la Memoria de Largo Plazo

2. LA ESTRUCTURA DE LA BSQUEDA TAB


Problema: Diseo de un Material
Formado por un Nmero de Capas
Aislantes
Ejemplo de estructura de memoria con
diagonal superior como lista tab, y
diagonal inferior midiendo la frecuencia
de aparicin de las capas del material
en las posiciones correspondientes,
para poder diversificar la bsqueda en
futuras reinicializaciones

Estructura de Memoria Complementaria:


Memoria a Largo Plazo

Al reinicializar, se generara una nueva


solucin en la que en cada posicin se
le dara ms probabilidad a la capa que
menos frecuentemente la hubiera
ocupado en el pasado
34

3.

ALGUNOS DATOS DE LA WEB


SOBRE SU USO

http://www.google.es
Bsqueda: tabu search

Resultados (21 Octubre


de 2009):
323.000 de "tabu
search".

35

3.

ALGUNOS DATOS DE LA WEB


SOBRE SU USO

http://scholar.google.es
Resultados:
46.000 de "tabu
search".

Tabu Search--Part I
F Glover - INFORMS Journal on Computing, 1989 - joc.journal.informs.org
... Tabu SearchPart I. Fred Glover ... This paper presents the fundamental principles
underlying tabu search as a strategy for combinatorial optimization problems. ...
Citado por 3229 - Bsqueda en la web

36

4. EJEMPLO: VIAJANTE DE COMERCIO


1. Generacin de la solucin inicial: aleatoria
2. Esquema de representacin: Representacin de orden
mediante permutacin {1,,n}
3. Operador de generacin de vecinos: seleccionar dos
ciudades e intercambiarlas (2-opt)
4. Funcin objetivo (minimizacin):
n 1

C ( S ) = (D[S [i ], S [i + 1]]) + D[S [n], S [1]]


i =1

Los vecinos se evalan con el clculo optimizado de la


funcin objetivo:
C(S) = C(S) D(S[i-1],S[i]) D(S[i],S[i+1]) - D(S[j-1],S[j])
D(S[j],S[j+1]) + D(S[i-1],S[j]) + D(S[j],S[i+1]) +
D(S[j-1],S[i]) + D(S[i],S[j+1])

37

4. EJEMPLO: VIAJANTE DE COMERCIO


5. Lista tab (L): Cada vez que se acepta una solucin, se almacena
en la lista tab el movimiento que provoc dicha solucin
Para ello, se almacenan las dos ciudades intercambiadas y las
nuevas posiciones que ocupan (i,j,Pos(i),Pos(j)). No se permiten
intercambios que den lugar a que la ciudad i ocupe la posicin
Pos(i), o la ciudad j la posicin Pos(j)
Ejemplo:

(1 2 4 3 8 5 7 6)
(1 2 5 3 8 4 7 6)
L = L {movimento ms antiguo} + {(4,5,6,3)}
Para decidir si un movimiento es tab activo, hay que tener en
cuenta que (i,j,Pos(i),Pos(j)) = (j,i,Pos(j),Pos(i))
38

4. EJEMPLO: VIAJANTE DE COMERCIO


6. Estrategia de seleccin de vecinos: Examinar 50 movimientos
(todos distintos) y escoger el mejor de acuerdo a los criterios tab
7. Criterio de aspiracin: Tener menor coste que la mejor solucin
obtenida hasta el momento
8. Estrategias de reinicializacin:
a) Generar una solucin aleatoria y continuar el algoritmo a partir de ella
(diversificacin)
b) Volver a la mejor solucin obtenida hasta el momento y continuar el
algoritmo a partir de ella (intensificacin)
c) Generar una nueva solucin greedy a partir de la memoria a largo plazo
y continuar el algoritmo a partir de ella (diversificacin controlada)

39

4. EJEMPLO: VIAJANTE DE COMERCIO

Memoria a largo plazo: Se usa una matriz simtrica frec que almacena el
nmero de veces que cada par de ciudades han estado consecutivas en
alguna de las soluciones aceptadas durante la bsqueda
Para reinicializar provocando diversidad, se aplica el algoritmo greedy sobre
una matriz de distancias modificada de forma que valores altos de frecuencia
entre un par de ciudades supongan un valor alto de distancia entre ellas:

d (i, j ) = d (i, j ) + (d max d min )

frec(i, j )
frecmax

siendo dmax y dmin la mayor y menor distancia existente entre dos ciudades, y
frecmax la frecuencia ms alta existente en la matriz de memoria a largo
plazo. El parmetro dicta el grado de alteracin de la distancia (p.e., =0,3)

La alteracin de distancias slo se usa para generar la solucin diversa con el


greedy y no afecta a la funcin objetivo en la bsqueda posterior
40

4. EJEMPLO: VIAJANTE DE COMERCIO

Hay distintas posibilidades para la lista tab del algoritmo de BT


para el Viajante de Comercio. La eleccin de una de ellas da lugar a
un algoritmo distinto:
1. Vector (i,j,Pos(i),Pos(j)): Vector que evita cualquier intercambio que d
lugar a una solucin en la que las ciudades i y j ocupen las posiciones
Pos(i) y Pos(j) respectivamente
2. Vector (i,j,Pos(i),Pos(j)): Mismo vector que evita un intercambio que d
lugar a una solucin en la que la ciudad i ocupe la posicin Pos(i) o la j
ocupe la posicin Pos(j)
3. Vector (i,Pos(i)): Para evitar que la ciudad i vuelva a la posicin Pos(i)
4. Ciudad i: Para evitar que la ciudad i se mueva a la izquierda de su
posicin actual

41

4. EJEMPLO: VIAJANTE DE COMERCIO


5. Ciudad i: Para evitar que la ciudad i se mueva (cambie su posicin)
6. Vector (j,Pos(j)): Para evitar que la ciudad j vuelva a la posicin Pos(j)
7. Ciudad j: Para evitar que la ciudad j se mueva a la derecha de su
posicin actual
8. Ciudad j: Para evitar que la ciudad j se mueva (cambie su posicin)
9. Ciudades i y j: Para evitar que ambas ciudades cambien su posicin
actual

En las condiciones 3 a 9 se supone que las ciudades i y j estn situadas de


tal forma que Pos(i)<Pos(j). La condicin 1 es la menos restrictiva y la
condicin 9 la ms restrictiva. El nivel restrictivo de las condiciones 3, 4 y 5
es creciente
42

5. APLICACIONES: SI

Generacin de la solucin inicial: aleatoria

Esquema de representacin:
S=

Instancia no seleccionada

Instancia 6

Instancia seleccionada

Operador de generacin de vecinos: Escoger una instancia y


cambiar su estado de no seleccionada a seleccionada o viceversa.

Funcin objetivo (maximizacin):

tasa_clas + (1 - ) porc_red

43

5. APLICACIONES: SI (II)
5. Lista tab: Cada vez que se acepta una solucin, se
almacena en la lista tab el movimiento que provoc dicha
solucin. Tenencia tab inicial: 50
Para ello, se almacena la instancia cuyo estado va a ser
cambiado
Ejemplo:

(0 1 1 0 0 1 1 0)
(0 1 0 0 0 1 1 0)
L = L {instancia ms antigua} + {3}
44

5. APLICACIONES: SI (III)
6. Estrategia de seleccin de vecino: Examinar 30 vecinos y
escoger el mejor de acuerdo a los criterios tab
7. Criterio de aspiracin: Tener mayor coste que la mejor
solucin obtenida hasta el momento
8. Estrategias de reinicializacin:

Generar una solucin aleatoria y continuar el algoritmo a partir


de ella (diversificacin)
Volver a la mejor solucin obtenida hasta el momento y
continuar el algoritmo a partir de ella (intensificacin)
Generar una nueva solucin poco frecuente a partir de la
memoria a largo plazo y continuar el algoritmo a partir de ella
(diversificacin controlada)
45

5. APLICACIONES: SI (IV)

Memoria a largo plazo: Se usa un vector frec que almacena el


nmero de veces que cada instancia ha pertenecido al subconjunto S
en alguna de las soluciones aceptadas durante la bsqueda
Para reinicializar provocando diversidad, se incluir o no la instancia j
en S dando menor probabilidad de ser incluida cuanto mayor valor
tenga en frecj. Esta probabilidad es:

frec j

S , si u < 1
num_soluciones
Instancia j
frec j
S , si u 1

num_soluciones
donde u es un valor aleatorio uniforme en [0,1]
46

5. APLICACIONES: SI (V)

Se realizan 4 reinicializaciones (separadas por un nmero de


iteraciones constante) durante el desarrollo del algoritmo

Cada vez que se va a realizar una reinicializacin, se escoge una de


las tres opciones segn la siguiente distribucin de probabilidades:

0,25: Nueva solucin actual aleatoria


0,25: Volver a la mejor solucin generada
0,50: Solucin poco frecuente a partir de la memoria a largo plazo

Independientemente de la reinicializacin realizada, se modifica el


tamao de la lista tab para provocar un cambio ms efectivo en el
comportamiento del algoritmo. El tamao de cada lista se incrementa
o decrementa en un 50% (modificacin sobre el tamao actual
independiente para cada lista)

Tras la reinicializacin, las listas de corto plazo se inicializan a cero,


mientras que la de largo plazo no se modifica
47

ALGORTMICA
2010 - 2011

Parte I. Introduccin a las Metaheursticas

Tema 1. Metaheursticas: Introduccin y Clasificacin


Parte II. Mtodos Basados en Trayectorias y Entornos

Tema 2. Algoritmos de Bsqueda Local Bsicos

Tema 3. Algoritmos de Enfriamiento Simulado

Tema 4. Algoritmos de Bsqueda Tab

Tema 5. Mtodos Basados en Trayectorias Mltiples I: Mtodos Multiarranque Bsicos y GRASP

Tema 6. Mtodos Basados en Trayectorias Mltiples II: ILS y VNS


Parte III. Mtodos Basados en Poblaciones

Tema 7. Algoritmos Genticos


Parte IV. Intensificacin y Diversificacin

Tema 8. Estudio del Equilibrio entre Intensificacin y Diversificacin


Parte V. Metaheursticas Hbridas: Poblaciones y Trayectorias

Tema 9. Algoritmos Memticos

Tema 10. Modelos Hbridos II: Scatter Search


Parte VI. Paralelizacin de Metaheursticas

Tema 11. Metaheursticas en Sistemas Descentralizados


Parte VII. Conclusiones

Tema 12. Algunas Consideraciones sobre la Adaptacin de Metaheursticas a la Resolucin de Problemas


48

También podría gustarte