Post on 15-Jan-2015
Búsqueda Tabú
Grupo 4
Matías Melgar
Pablo Carbonell
Cronograma (1)
Introducción. Ideas Básicas de TS. Algoritmo y sus propiedades. Eficiencia de los métodos iterativos. Uso Eficiente de la Memoria. Aplicaciones.
– Problema de colorear el grafo con la cantidad mínima de colores.– Problema de encontrar el máximo conjunto de vértices
independientes.– Problema de Planificación de cursos.
Conclusiones.
Cronograma (2)
Taburoute (una nueva heurística para el problema de ruteo de vehículos).– Introducción.– Algoritmo.– Resultados computacionales.– Conclusiones.
Introducción
Los orígenes de esta técnica son de los ’70, su forma actual fue presentada por Glover en 1986, y los primeros modelos teóricos son de 1992.
No se conoce ninguna prueba clara de la convergencia pero la técnica ha mostrado una eficacia notable en muchos problemas.
Existen refinamientos de esta técnica para aplicaciones específicas.
Ideas básicas de Tabu Search (1)
Para mejorar la eficiencia del proceso de exploración, es necesario registrar no sólo información local (como el valor actual de la función) sino que además información relacionada al proceso de exploración.
Lleva un registro del itinerario recientemente realizado, de forma de restringir los posibles vecinos sobre los que voy a avanzar.– La estructura de vecindad es dinámica
Ideas básicas de Tabu Search (2)
Metaheurística– Dado que TS incluye en sus propias reglas
algunas técnicas heurísticas, decimos que es una metaheuristica.
– Su papel es dirigir y orientar la búsqueda de otro procedimiento (más local) de búsqueda.
Clasificación de Tabu Search
Es determinística (vs. aleatoria) Es basada en un individuo (vs. poblaciones) Es de trayectoria (vs. constructiva)
– Es un método iterativo.– Hay que definir la vecindad utilizada.
Utiliza memoria.
Reformulación de la búsqueda local
Algoritmo– 1. Elegir una solución inicial i en S– 2. Generar un subconjunto V* de N(i)– 3. Elegir el mejor j en V* (es decir tales que f(j)<=f(k) para
cualquier k en V *) – 4. Si f(j) >= f(i) entonces terminar. Si no, establecer i=j e ir al paso 2
Para V* = N(i) tenemos el caso de la búsqueda local. El problema de este algoritmo es que nos quedamos atrapados
en mínimos locales. Tenemos que agregar la posibilidad de avanzar según pasos
que no mejoren la solución– Con esto, el riesgo de repetir soluciones aumenta, la solución es
utilizar memoria para descartar los ya visitados.
Otra aproximación
Algoritmo– 1. Elegir una solución inicial i en S. Establecer i*=i.– 2. Agregar i a la lista tabú.– 3. Elegir el mejor j en V* = N(i) \ ListaTabu.– 4. Si f(i) < f(i*) asignar i*=i.– 5. Si se cumple alguna condición de fin, terminar. Si no
asignar i=j e ir al paso 2.
El caso de búsqueda local es el caso particular en que la condición de parada es f(i)>=f(i*)
Condiciones de parada
Cantidad de iteraciones. Tiempo máximo de CPU. Alcanzar una solución i que sea mejor que
un cierto valor fijado al inicio. No obtener una nueva mejor solución i*
luego de una cierta cantidad de iteraciones. Todos los vecinos del paso actual están
incluidos en la lista tabú.
Largo de la lista Tabú
Una lista tabú de largo N, nos garantiza que no se van a crear ciclos de largo inferior a N.
La cantidad de casos a agregar a la lista puede ser muy grande.
Al modelar el problema se decide el largo de la lista Tabú.
Información a guardar en la lista Tabú
Por razones de eficiencia, sólo guardo una parte de la información que describe a las soluciones recorridas.
El problema de guardar sólo una parte de la solución, es que puede haber otras soluciones aún no visitadas que en esa parte de la información sea igual.
Lo que se hace es definir un criterio de aspiración para aceptar soluciones por más que estén en la lista tabú.
El criterio de aspiración más común es habilitar las mejores soluciones, aún cuando ellas hayan sido visitadas recientemente.
Varias Listas Tabú
Por motivos de eficiencia se pueden utilizar varias listas Tr al mismo tiempo.
Cada lista Tr guarda un componente de la solución.
Los componentes que agrego a las listas son componentes que reciben el status tabú, es decir componentes no permitidos para futuras soluciones.
Algoritmo Tabu Search
s <- GenerarSolucionInicial
InicializarListasTabu(TL1… TLn)
While no condicion_fin do
- V* <- {z de N(s) tal que z no pertenece a la lista o bien z cumple las condiciones de aspiración)
- s <- mejorSolución(s, V*)
- Actualizo listas tabú y condiciones de aspiración
End While
Eficiencia del método
La eficiencia depende principalmente de cómo esté modelado el problema.
Importante: definir correctamente la estructura de vecindad y función objetivo.
Secundario: ajustar parámetros. Un modelo es bueno cuando al aplicar la
técnica, ésta no es muy sensible a la elección de parámetros.
Modelado Efectivo
Elegir un punto inicial i tal que existe un camino desde i al óptimo i*.
– Si no hay, entonces no tengo forma de llegar– Puede ser difícil lograr que se cumpla esta condición: lo
que se hace es trabajar sobre un espacio de soluciones factibles extendido
Elegir una topología que no tenga muchos “valles” o “llanuras”
Se puede modificar la función objetivo en tiempo de ejecución, de forma de remplazar los valles ya visitados por altas montañas
Implementación efectiva
En cada paso puede ser necesario evaluar muchas condiciones y es importante realizar este cómputo en una manera eficiente.
Frecuentemente, es posible y más rápido calcular cuánto varía la función objetivo al desplazarme al vecino, que evaluar a nuevo la función objetivo– A veces se recurre a otras heurísticas para
calcular la variación al desplazarme al vecino
Usar la memoria de forma efectiva
Elegir un tamaño adecuado para las listas tabú– Si son muy chicas, se producen ciclos– Si son muy grandes, se vuelven muy restrictivas
Una manera eficaz para evitar esta dificultad es utilizar una lista del tabú con tamaño variable.
– Cada elemento de la lista pertenece a ella para un número de iteraciones (limitado por valores máximos y mínimos dados)
El uso de la memoria puede ayudar a intensificar la búsqueda en "buenas“ regiones o a diversificar la búsqueda hacia regiones inexploradas.
Aplicaciones de Ejemplo
The Graph Coloring Problem– Tengo que colorear países en un mapa utilizando
una cantidad mínima de colores distintos
The Maximum Independent Set Problem– Tengo que buscar en un grafo, un subconjunto
vértices de tamaño máximo, tales esos vértices no comparten aristas
The Course Scheduling Problems– Planificar horarios de clases
The Graph Coloring Problem
Grafo: Un país es un vértice, una frontera es una arista Consiste en particionar el grafo en k conjuntos, un conjunto para cada
color Para relajar el problema, se asume que el valor k es dado al algoritmo Solución inicial: pintar de colores arbitrarios Vecindad: en cada paso busco una arista que una dos vértices de mismo
color, y cambio el color de uno de los vértices Función objetivo: se cuenta la cantidad de países que comparten colores,
se intenta minimizar ese valor– Aquí es más fácil evaluar cómo cambia la función objetivo al desplazarme al
vecino, que evaluar nuevamente La lista tabú registra los pares (vértice, color) indicando que no puedo
volver a pintar el mismo vértice del mismo color durante N pasos (N es el largo de la lista tabú)
The Maximum Independent Set Problem
Para relajar el problema, se busca un conjunto que sea de un tamaño k dado
Solución inicial: elijo k vértices arbitrarios Vecindad: intercambio un vértice de la solución actual
con un vértice de afuera de ese conjunto Función objetivo: cuento la cantidad de aristas que
unen los vértices de la solución actual, esa cantidad tiene que llegar a cero
Tres listas tabú– Lista con las soluciones visitadas recientemente– Lista con vértices introducidos recientemente– Lista con vértices quitados recientemente
k=3
The Course Scheduling Problems
Es un problema similar al de los países de colores– Cada clase a dictar es un vértice– Cada período es un color– Una arista entre dos vértices, implica que las dos clases no
se pueden dictar al mismo tiempo
En la vida real las escuelas tienen restricciones adicionales con las que es difícil trabajar (disponibilidad salones grandes, uso de proyectores u otros recursos, clases con duración distinta, lograr que los horarios sean compactos, restricciones geográficas y de precedencia)
Conclusiones
Los ejemplos anteriores muestran el rango de aplicaciones para los cuales se utiliza búsqueda Tabú.
Si bien parece necesario tener que ajustar varios parámetros, existen estudios teóricos que indican un alto grado de libertad para elegir estos parámetros.
Por el momento, esta técnica aparenta ser un enfoque complejo para grandes problemas de optimización, en vez de ser un método elegante y simple.
Un problema que se presenta al utilizar esta técnica es que a la complejidad del problema a resolver se le agrega complejidad inherente a la propia técnica.
Búsqueda Tabú aplicada a VRP
TABUROUTE es una nueva heurística para el problema de ruteo de vehículos con restricciones de capacidad y largo de ruta.
Las soluciones vecinas se obtienen quitando un vértice de su ruta actual e insertándolo en otra ruta
El problema está relajado de forma de aceptar soluciones vecinas que no cumplen las restricciones
TABUROUTE es la heurística de mejor desempeño para un cierto conjunto de problemas benchmark, y produce frecuentemente la mejor solución conocida
Vehicle Routing Problem
Tenemos un grafo G = (V, A), donde el vértice v0 es el “depósito” desde el cual construyo las rutas, y los demás vértices son “ciudades”
En el depósito hay m vehículos idénticos Cada arco tiene asociada una distancia no negativa Para simplificar: “costo” = “tiempo” = “distancia” El objetivo es construir un conjunto de costo mínimo de rutas tales
que– (a) Todas las rutas comienzan y terminan en el depósito– (b) Cada ciudad es visitada exactamente una vez por exactamente un vehículo– (c) Se cumplen ciertas restricciones auxiliares– (d) Cada ciudad tiene asociada una demanda qi. La demanda total asociada a
un vehículo no puede exceder la capacidad Q del vehículo.– (e) Cada ciudad requiere ser atendida en un tiempo máximo Di, y el tiempo total
de cada ruta (incluyendo los servicios) no puede superar un cierto valor L
Vehicle Routing Problem - Ejemplo
Depósito
32
4 53
3
3
34
2
3
3
4
53
Constantes:
m = 5 (cantidad de vehículos)
Q = 11.5 (capacidad de un vehículo)
L = 25 (duración máxima de una ruta)
(8.3, 10)(1.6, 14)
(0.0, -)
(1.6, 9)
(6.1, 4)(2.7, 3)
(2.6, 11)
(3.7, 9)(0.4, 3)
(1.4, 3)
(0.0, -)
(demanda, tiempo)
2
TABUROUTE – Estructura de Sols.
Una solución es un conjunto de rutas (R1, ..., Rm) donde m [1, m], y Rr = (v0, vr1, vr2, ... v0)
Las rutas R1...Rm pueden ser factibles o no según las restricciones (esto es para relajar la estructura de vecindad)
Una solución vecina es una solución obtenida luego de quitar un vértice de su ruta actual y colocarlo en otra ruta. Esto se realiza utilizando las heurísticas GENI y US.
TABUROUTE – Función objetivo
Para las soluciones factibles S, asociamos la función objetivo (suma de los costos)
r Rvv
ij
rji
cSF),(
1 )(
Además, para cualquier solución S asociamos un objetivo F2(S)– La función F2 es igual a F1, pero penaliza las
soluciones que no sean factibles El algoritmo se desplaza utilizando F2 como
criterio
TABUROUTE - Resultados
Problema n CW MJ AG DV GM CMT1 FJ CMT2 OSA PF OTS T TR TRStandard Best
1 50 585 575 556 586 532 547 524 534 528 536 524,61 524,61 524,61 524,612 75 900 910 885 885 874 883 857 871 838,62 842 844 835,32 835,77 835,323 100 886 882 860 889 851 851 833 851 829,18 851 835 828,98 829,45 826,144 150 1204 1259 1085 1133 1079 1093 1014 1064 1058 1081 1044,35 1029,64 1036,16 1031,075 199 1540 1545 1351 1424 1389 1418 1420 1386 1378 - 1334,55 1300,89 1322,65 1311,356 50 619 599 577 593 560 565 560 560 555,43 560 555,43 555,43 555,43 555,437 75 976 969 939 963 933 969 916 924 909,68 929 911 909,68 913,23 909,688 100 973 999 913 914 888 915 885 885 866,75 887 866,75 865,94 865,94 865,949 150 1426 1289 1210 1292 1230 1245 1230 1217 1164,1 1227 1184 1164,24 1177,76 1162,8910 199 1800 1770 1464 1559 1518 1508 1518 1509 1417,9 - 1417,85 1403,21 1418,51 1404,7511 120 1079 1100 1047 1058 1266 1066 - 1092 1042,1 1049 1042,11 1073,05 1073,47 1042,1112 100 831 879 834 828 937 827 825 816 819,59 826 819,59 819,56 819,56 819,5613 120 1634 1590 1551 1562 1770 1612 - 1608 1550,2 1631 1547 1550,15 1573,81 1545,9314 100 877 883 874 882 949 876 848 878 866,37 866 866,37 886,37 866,37 866,37
PF, OTS, y T son otras variantes de Tabu Search
Conclusiones del paper
TABUROUTE tiene mejor desempeño que las demás heurísticas existentes
TABUROUTE produce frecuentemente las best known solutions Hay que implementar dos mecanismos:
– El hecho de permitir soluciones no factibles, penalizándolas en la función objetivo.
– Aplicar él algoritmo GENI para ejecutar las inserciones Es posible utilizar una solución inicial no factible Otras conclusiones
– Puede utilizarse en contextos en que la cantidad de vehículos sea variable o acotada, o con distintas características
– Se pueden agregar fácilmente restricciones adicionales, como que ciertas ciudades requieren ciertos vehículos
– Existen variantes con varios depósitos, y rutas primarias y secundarias
Preguntas