Un algoritmo Tabu Search Un algoritmo Tabu Search para el Traveling para el Traveling
Tournament ProblemTournament Problem
Andrés Cardemil
Guillermo Durán
Fixtures Deportivos
• n equipos • Juegan todos contra todos r veces
1. Si r=1 se llama Single Round Robin (SRR)2. Si r=2 se llama Double Round Robin (DRR)
con un partido de local y uno de visitante
Descripción:
Restricciones
• Cada equipo no puede jugar mas de 3 partidos seguidos de local o visitante.HAP – Home away pattern
• Todos los equipos juegan igual cantidad de partidos de local y visitante
• 2 equipos tengan HAP complementarios• No tener partido y revancha seguidos. • Fixture espejado (para los DRR)
Objetivo:
• Minimizar la cantidad de fechas• Minimizar la distancia de viajes de los
equipos(Esto puede ser también minimizar costos, tiempo de viajes u otras variables combinadas)
Traveling Tournament Problem(TTP)
• Fue propuesto por Easton, Nemhauser y Trick en 2001
• Abstrae algunos aspectos claves de la confección de fixtures combinando condiciones en el HAP y el objetivo de minimizar distancias.
• Imput: 1. un numero n que representa la cantidad de
equipos2. Una matriz DIST de tamaño nxn tal que
DIST (i,j) = “costo de ir de i a j” (costo puede significar tiempo de viaje, costo económico del viaje, distancia entre las ciudades)
Traveling Tournament Problem(TTP)
• Objetivo: Armar un fixture de un torneo DRR (de 2x(n-1) rondas) que verifique:
1. Se minimiza la distancia total recorrida por los equipos
2. Los HAP de todos los equipos no contienen VVVV ó LLLL
3. No hay partido y revancha entre 2 equipos en fechas consecutivas
4. Arrancan todos los equipos y terminan el torneo en casa.
Traveling Tournament Problem(TTP)
Un ejemplo de fixture valido:
RONDA A B C D
1 B @A D @C
2 C D @A @B
3 @D C @B A
4 @B A @D C
5 D @C B @A
6 @C @D A B
Complejidad:
• es NP-Hard (Incluso sacando la restricción del HAP)
• Es muy difícil, para instancias con tamaño n=8 ó 10 no se conocen las soluciones óptimas.
Distintos abordajes del problema:
• Easton, Nemhauser y Trick: Constraint Programing y Programación Lineal Entera
• Dendist, Laburthe, Rottembourgh: Constraint Programing y Relajación Lagrangiana
• Crauels y Oudheusden: Colonia de Hormigas• Zhang: Constraint Programing, Simulated
Annealing y técnicas de Hill-Climbing• Shen-Hantao: Propusieron una nueva
metaheurisitca para este problema
Función de evaluación:
• Tr,k= dist. Que recorre el equipo k desde la ciudad donde juega la ronda r-1 hasta donde juega la ronda r.
• M = matriz de R x n. | |= Oponente en la ronda r del equipo k Mr,k > 0 sii el equipo k juega de local Mr,k < 0 sii el equipo k juega de visitante
• Asignamos M0,k >0 y MR+1,k>0 para todo k
Tr,k =
DIST ( | Mr-1,k |, | Mr,k | ) si Mr,k, Mr,k<0
DIST ( | Mr-1,k |, k ) si Mr,k<0, Mr,k>0
DIST ( k, | Mr,k | ) si Mr,k>0, Mr,k<0
0 si no
Ce = Σ T e,r (la suma desde r=1 hasta R+1)
f(M)= Σ Ce (la suma desde e=1 hasta n)
(varios) Vecindarios:1. IPR: Intercambio parcial de rondas
(transforma un fixture DDR en otro DDR pero no un TTP en otro TTP)
2. IR: Intercambio de rondas(ídem 1.)
3. IE: intercambio de equipos (transforma DDR en DDR y TTP en TTP)
4. IL: intercambio de localías (ídem 1.)
Lista Tabú
• Se guardan los últimos t movimientos en la lista (t es un parámetro)
• t se puede modificar según la cantidad de iteraciones.
• La lista es FIFO, el primero que llega es el primero en irse. (cola?)
Aspiración: • Se permite pasar a un vecino prohibido si
es mejor que el mejor hasta el momento.• Si todos los vecinos están prohibidos, se
cambia de vecindario (en el orden en que fueron mostrados antes)
Optimizaciones Locales• El algoritmo cada cierta cantidad de
iteraciones realiza pequeñas optimizaciones locales.
• Se hace mediante las siguientes operaciones (realizadas en este orden):
1. Permutación de 2 y 3 rondas2. Permutación de 2 y 3 equipos3. Permutación de localías4. Inversión de tours (todas)5. Modificaciones de los HAP
Intensificación:
• Se usan 2 métodos:
1. Disminución de la lista tabú2. Optimización del recorrido de algunos
equipos
Diversificación:
• Después de cierta cantidad de iteraciones sin mejoras:
• Se hacen varios movimientos de IPR consecutivos (sin importar si los vecinos por donde se mueve son soluciones factibles) y luego se aplica optimización local para “factibilizar” la solución
• También aporta a la diversificación cambiar los vecindarios.
Criterio de Parada:
• Hay 2 cotas a alcanzar para que el algoritmo se detenga:
1. Cantidad total de iteraciones2. Cantidad de iteraciones sin mejoras
Parámetros del algoritmo:1. Cant-Máx-Iter (100.000 a 5.000.000)2. Cantidad máxima de iteraciones sin mejoras
(0,5 . Cant-Máx-Iter)3. Tamaño máximo de la lista tabú (entre n-3 y
n+3)4. Cantidad de iteraciones durantes las cuales se
intensifica (entre 3.000 y 7.000)5. Cada cuantas iteraciones se cambia el tamaño
de la lista tabú (entre 2.000 y 50.000)6. Cada cuantas operaciones se realizan
optimizaciones locales. (cada 2n iteraciones)
Conclusiones:
(paper)