Luis Brassara Leonel Spett

Slides:



Advertisements
Presentaciones similares
Tema 4. Juegos simultáneos con información incompleta.
Advertisements

Diseño y análisis de algoritmos
Planificación de Monoprocesadores
funciones Por: Carlos Alberto García Acosta
Grupo 4 Matías Melgar Pablo Carbonell
1.2 Decisiones de la comunicación organizacional
Resolución de Problemas Algoritmos y Programación
ADMINISTRACIÓN DEL CAMBIO.
Investigación de Operaciones II
KRIGING.
Tema 3 Revisión de diversos métodos robustos aplicados en algunos problemas fotogramétricos.
PROGRAMACION DE ESTRUCTURAS DE DATOS
Álgebra elemental.
Supongamos que nos plantean el siguiente problema:
Sports Scheduling Luis Brassara Leonel Spett. El problema Construir un fixture para un torneo. El torneo tiene equipos, partidos y una duración determinada.
GRAFOS HUGO ARAYA CARRASCO.
Teoria de grafos.-clase 4
Universidad de los Andes-CODENSA
ANALISIS DE DATOS CON EXCEL
La Derivada. Ya vimos: los conceptos, métodos ó instrumentos necesarios para establecer el “comportamiento” de una función.  en un entorno de x o [ 
1 Planteamiento del problema ¿Tenemos los humanos la capacidad de percibir si nos miran desde atrás? O, más exactamente: ¿Es defendible que existen otras.
Población y Muestra.
Programación Lineal Unidad 1 Parte 3.
Optimización, Búsqueda Heurística
Diseño y análisis de algoritmos
ANALISIS DE DATOS CATEGORICOS
Diseño y análisis de algoritmos
Estructura de Datos II Equipo 4 Equipo 7 Acosta Montiel Miguel A.
Complejidad de los problemas de decisión
Mt. Martín Moreyra Navarrete.
(Organización y Manejo de Archivos)
Descomposición Factorial Unidad 5
PROGRAMACIÓN DE RECURSOS.
Material de apoyo Unidad 4 Estructura de datos
Investigación Experimental
ESTADISTICA TEMA y 223.
Gerenciamiento Técnico de Proyectos
Radicales y sus operaciones
ESTADÍSTICAS DESCRIPTIVA
Fracciones equivalentes
PREPARATORIA FEDERAL POR COOPERACION “LUZAC”
Universidad Nacional de Colombia Curso Análisis de Datos Cuantitativos.
Tema 3, manual: cap. 3 ¿cómo jugamos en la vida real cuando no existen acciones dominadas? Recomendaciones o consejos de los expertos (pero son eso: recomendaciones,
Grupo Continental Control de Procesos.
Capacidad de Proceso.
ESTADÍSTICA DESCRIPTIVA
Una introducción a la computación evolutiva
Estructura de Datos M.C. José Andrés Vázquez Flores FCC/BUAP
Capítulo 1. Conceptos básicos de la Estadística
Sabemos reconocerlas, y calcularlas como soluciones de sistemas de ecuaciones, o de desigualdades Buscamos métodos de cálculo generales y eficientes Problemas.
Ecuaciones Algebraicas
Pruebas de hipótesis.
DIAGRAMA DE FLECHAS O RUTA CRITICA
Explicar las causas que afectan la calidad. Una vez definidos y seleccionados correctamente los problemas en la gran mayoría de casos es preciso recopilar.
Estimación y contraste de hipótesis
Diseños Generales. 2 Propósito implícito del diseño experimental El propósito implícito de todo diseño experimental consiste en imponer restricciones.
Estadística Reporte Ejecutivo
Control Estadístico de Procesos
MEDIDAS DE TENDENCIA CENTRAL

TEMA: DECISIONES BAJO RIESGO –TEORIA DE JUEGOS Ing. Larry D. Concha B.
Clase N°11 Métodos de reducción de varianza
INFERENCIA ESTADÍSTICA
ESTADÍSTICA DESCRIPTIVA
OPTIMIZACION DEL DESEMPEÑO DE ERROR
Fundamentos de Computación
Método Simplex Es un procedimiento sistemático y eficiente para encontrar y probar soluciones situadas en los puntos extremos de la región de soluciones.
MEDIDAS DE DISPERSIÓN Pedro Godoy Gómez. Miden qué tanto se dispersan las observaciones alrededor de su media. MEDIDAS DE DISPERSIÓN.
LOGO Medidas de posición Pedro Godoy G. Media Aritmética Valor representativo de un conjunto de datos Para datos no agrupados 1, x2, x3, x4,…………………………,
Transcripción de la presentación:

Luis Brassara Leonel Spett Sports Scheduling Luis Brassara Leonel Spett

El problema Construir un fixture para un torneo. El torneo tiene equipos, partidos y una duración determinada y el fixture debe indicar qué equipos jugarán cada partido y en qué fecha y estadio lo harán. Además, dependiendo del torneo, pueden existir restricciones adicionales. Por ejemplo, un equipo no puede jugar más de un partido por día, un equipo desearía ser local con determinada frecuencia, etc. En particular, trataremos torneos en los que todos los equipos se enfrentan entre sí una o más veces, conocidos como ligas.

Ejemplo* * Por cuestiones de espacio el fixture no esta completo

(Luca di Gaspero y Andrea Schaerf) Primer Paper A Composite Neighborhood Tabu Search Approach to the Traveling Tournament Problem (Luca di Gaspero y Andrea Schaerf) 8 de Mayo de 2006

Traveling Tournament Problem (TTP) Problema propuesta por Easton (2001) Realizar el fixture de un torneo (double round-robin) El objetivo es minimizar la distancia total de viajes (existen restricciones adicionales).

Motivación del problema Razones económicas En el este de Europa y EEUU las ganancias del negocio dependen en gran medida de la calidad del fixture.

Input/Output del problema Número entero positivo (par) Matriz de distancias de n x n. Output: Fixture de n equipos. Con 2n – 2 rondas Cada equipo juega una vez por ronda Cada equipo juega exactamente 2 veces contra otro.

Función objetivo Minimizar la distancia total de viajes Se deben satisfacer además: H1, No Repeat: si t1 y t2 juegan en la ronda ri, no pueden jugar el próximo partido en la ronda ri+1. H2, At most: un equipo no puede jugar más de 3 partidos consecutivos de local o visitante.

Espacio de búsqueda Espacio de búsqueda Todos los fixtures correctos incluidos los que violan las restricciones H1 y H2.

Función de costo Suma ponderada de las violaciones de H1 y H2 + distancia de viajes. El peso de H1 y H2 varía dinámicamente duramente la búsqueda para poder ampliar el espacio de búsqueda.

Estado inicial Se generan en dos pasos: Elegir patrón para el torneo (con nros del 0 a n-1) Asignar aleatoriamente los equipos a los números. Para conseguir el patrón se utiliza cononical pattern (Werra, 1981).

Vecinos Analizaron cinco posibilidades: N1, SwapHomes N2, SwapTeams N3, SwapRounds N4, SwapMatches N5, SwapMatchRound

Vecinos – N1, SwapHomes Atributos: <t1, t2>, donde t1, t2 Î T. Precondición: t1 != t2 Efecto: Intercambia la posición de local/visitante de los 2 partidos entre t1 y t2.

Vecinos – N2, SwapTeams Atributos: < t1, t2>, donde t1, t2 Î T. Precondición: t1 != t2 Efecto: Intercambia t1 y t2 en todo el fixture.

Vecinos – N3, SwapRounds Atributos: <r1, r2>, donde r1, r2 Î R. Precondición: r1 != r2 Efecto: todos los partidos asignados a r1 son movidos a r2 y viceversa.

Vecinos – N4, SwapMatches Atributos: <r, t1, t2> donde r Î R y t1, t2 Î T. Precondición: t1 != t2, t1 y t2 no juegan juntos en la ronda r. Efecto: los rivales de t1 y t2 en r son intercambiados. Nota: requiere cambios extras para no caer fuera del espacio de búsqueda.

Vecinos – N5, SwapMatchRound Atributos: <t, r1, r2> donde t Î T y r1, r2 Î R. Precondición: r1 != r2, t no juega contra el mismo rival en r1 y r2. Efecto: los rivales de t en las rondas r1 y r2 son intercambiados. Nota: requiere cambios extras para no caer fuera del espacio de búsqueda.

Fixture válidos luego de N4 y N5 Repair chain: conjunto de movimientos necesarios para obtener un fixture dentro del espacio de búsqueda. Repair chain para N4(r, t1, t2)

Análisis de vecinos El candidato natural para usar como vecinos es la unión de los Ni Sin embargo, realizaron un análisis de cada uno de ellos para identificar las mejores combinaciones posibles.

Movimientos equivalentes Siendo Mi el conjunto de movimientos que corresponde al conjunto de estados (vecinos) que produce Ni, puede ocurrir que: | Mi | > | Ni | O sea, 2 movimientos o más desde el estado actual, provocan el mismo estado siguiente.

Inconvenientes de movimientos equivalentes Si un movimiento no está en la lista tabu, pero su movimiento equivalente si lo está, de no detectarlo, si estaría permitiendo el intercambio. Produce que se cicle en la búsqueda de la solución.

Detección de movimientos equivalentes Equivalencias triviales: simétricas. Por ejemplo: N1<t1, t2> y N1<t2, t1>. Solución: considerar mov. donde t1 < t2 Los movimientos N5<t, r1, r2> donde repair chain está compuesta por t1, …, tk es equivalente a N5<ti, r1, r2> con 1 <= i <= k Solución: considerar mov. donde el t es el menor del resto de los equipos del repair chain

Detección de movimientos equivalentes (cont.) Análogamente, N4<r, t1, t2> es equivalente a N4<r1, t1, t2> si r1 está en el repair chain del primero. Para casos menos triviales realizaron experimentos y obtuvieron los siguientes resultados:

Movimientos equivalentes entre tipo de vecinos Hasta aquí hemos visto mov. equivalentes dentro de los Ni Pueden existir casos donde Ni Ç Nj != Æ ( i != j )

Detección de movimientos equivalentes entre tipo de vecinos El conflicto entre N3 y N5 se da cuando la longitud del movimiento de N5 es igual a n. Para el caso de N4 y N5, se detectó que eliminado los mov. de N4 de tam. 2 se eliminaba el conflicto. Con todo esto, se logró eliminar todos los duplicados, sin perder ningún estado accesible.

Calidad de los movimientos Variaciones de los costos en función del movimiento (solo distancias). N2 y N3 tienen un promedio alto. Generan modificaciones en la solución demasiado perturbadoras. Para N4 y N5 observaron que para movimientos de tamaño menor, los resultados mejoraban.

Composición de vecinos Basado en los cálculos anteriores se decidió probar con las siguientes combinaciones: CN1 = Unión Ni (1 <= i <= 5) CN2 = N1 U N4 U N5 CN3 = N1 U N4<=4 U N5<=6 CN4 = N1 U N4SCC<=4 U N5<=6

Composición de vecinos (cont.) CN2 es seleccionada descartando N2 y N3 debido a los malos resultados que produjeron. En CN3 se modifica N4 y N5, limitando el tamaño del movimiento. CN4 se busca clausurar el repair chain lo antes posible.

Características comunes Tamaño lista tabu: es dinámica. Cada mov. permanece en la lista por un nro de iteraciones seleccionada aleatoriamente entre tmin y tmax. Criterio de aspiración: un movimiento tabu es aceptado si por él se llega a una mejor solución que la que se tiene actualmente. Criterio de parada: basado en el nro de iteraciones desde la última mejora (parámetro).

Resultados obtenidos Instancias utilizadas: NLx, data real de la Liga Nacional de Baseball de US CIRCx, instancias inventadas con las ciudades ubicadas en círculos CONx, matriz de distancias constante BRA24, data real del campeonato de fútbol de Brasil Para instancias de 4, 6, 8 equipos se obtuvieron los mejores resultados conocidos. Se enfocaron en instancias de al menos 10 equipos.

Resultados obtenidos (cont.) Mediante el procedimiento RACE (Birattari – 2004) se concluyó que CN4 tenía la mejor performance.

Resultados obtenidos (cont.) Los resultados son comparables con los de Lim (2005) y levemente peores que los de Anagnostopoulos (2005). Sin embargo, los tiempos de ejecución fueron menores.

Mejores resultados Negrita: mejores resultados al momento. *: el resultado está probado que es el óptimo.

Conclusiones La intuición que tenían al realizar el análisis analítico sobre las distintas estructuras de vecinos fue confirmada a través de la experimentación. Sus mejores soluciones son comparables con los mejores resultados que existen en la literatura.

Segundo paper “An evolutionary tabu search algorithm and the NHL scheduling problem” Publicado por Daniel Costa en 1994 Presenta una metaheurística híbrida con características de Algoritmos Genéticos, fundamentalmente, y Tabu Search para construir un fixture para la NHL (National Hockey League).

Motivación Comparación entre Algoritmos Genéticos y Tabu Search Los Algoritmos Genéticos primero obtienen de alguna forma una población inicial y luego cada iteración consiste en tres etapas consecutivas: reproducción, cruza y mutación, que ya hemos visto detalladamente en clase. En cada iteración se trata con un conjunto de soluciones que intercambian información entre sí en las etapas anteriormente nombradas. No requieren demasiada información adicional del problema (aunque las soluciones deben poder representarse como una cadena finita de un alfabeto finito). Esto último lleva a que se reduzcan los parámetros a ser ajustados pero a veces también acota el alcance de la búsqueda, comprometiendo la calidad de la solución.

Motivación Comparación entre Algoritmos Genéticos y Tabu Search Tabu Search comienza con una solución inicial a través de la cual, mediante movimientos propios de problema, se tratarán de alcanzar otras soluciones vecinas mejores. En cada iteración trata con una única solución actual. Se elige un subconjunto del conjunto de vecinos y de este toma al mejor vecino, volviéndose la solución actual*. Evita los ciclos mediante una lista de movimientos tabú. El tamaño del subconjunto de vecinos, el tamaño de la lista tabú, etc. serán parámetros. Su elección tiene incidencia en la calidad de la solución y suele necesitarse información adicional del problema para ajustarlos adecuadamente. * Es evidente que la solución actual puede empeorar, por eso se mantiene además la mejor solución hallada hasta el momento.

Propuesta Metaheurística híbrida En vistas a complementar las ventajas de los Algoritmos Genéticos y Tabu Search, el autor propone una metaheurística híbrida. En esencia es un Algoritmo Genético con la diferencia que en la etapa de mutación hace un Tabu Search.

La NHL Equipos Los 26 equipos de la NHL están divididos en dos conferencias, separadas a su vez en divisiones.

La NHL Partidos En cada temporada se deben jugar 1066 partidos. Cada equipo debe jugar 82 partidos, 41 de local (L) y 41 de visitante (V). Los equipos de las divisiones Pacific y Central deben jugar 6 veces (3L,3V) con cada equipo de su división mientras que los equipos de las divisiones Northeast y Atlantic lo harán 5 veces (algunos 3L,2V y otros 2L,3V). Todos los equipos juegan 4 veces (2L,2V) contra cada equipo de su misma conferencia y 2 veces (1L,1V) con los de la otra conferencia.

La NHL Restricciones adicionales Un equipo nunca juega más de 1 partido al día. Los directivos de los equipos entregan una planilla con 56 fechas en las que su estadio estará disponible de las cuales se usaran 41. Se trata de minimizar la distancia total recorrida por los equipos durante la temporada. Un equipo no debería jugar partidos durante 3 días seguidos así como tampoco debería jugar más de 3 partidos en 5 días. Un equipo debería jugar relativamente seguido mientras esta fuera de casa. Mientras está viajando, no deberían tener más de 3 días libres, es decir, sin partidos. No todos los días de la temporada se pueden jugar partidos, por ejemplo por fechas especiales como Navidad o por eventos especiales como el Juego de las Estrellas.

La NHL Restricciones adicionales No todos los estadios están disponibles todos los días de la temporada, por ejemplo pueden estar reservados para un concierto. Los partidos deberían estar distribuidos en forma pareja. Un mismo partido, es decir un partido entre los mismos equipos y en el mismo estadio, entre equipos de la misma división deben estar separados al menos por 14 días. Cuando no son de la misma división la diferencia debe ser de al menos 30 días. Un equipo no puede estar de viaje más de 14 días y, en esa condición, no puede jugar más de 7 partidos seguidos. Si un equipo jugó un partido y luego recorrió más de 900 millas para jugar otro, entonces tiene que tener al menos 1 día de descanso.

La NHL Formulación matemática Particionemos el conjunto C formado por las restricciones anteriores en los subconjuntos Ca y Cb, donde Ca tendrá las restricciones esenciales y Cb las restricciones relajadas. Un fixture o schedule será aceptable si satisface todas las restricciones de C y factible si al menos satisface Ca.

La NHL Formulación matemática La función objetivo o de fitness será: Evalúa para cada schedule factible S cuan no-aceptable este es, o sea, en que medida viola las restricciones relajadas. Cada función fi determina el grado en que se violó la restricción relajada i en S y cada peso wi le da a cada una de estas restricciones una importancia distinta.

La NHL Formulación matemática El problema se reduce a buscar un schedule S*X de f mínima, donde X es el conjunto finito de los schedules factibles. El tamaño de X y la complejidad de f dependen de la manera en que se particiona el conjunto de restricciones C. Teniendo en cuenta esto…

La NHL Formulación matemática Un equipo nunca juega más de 1 partido al día. 1.1 Un equipo no puede jugar más de 1 partido por día. 1.2 Un equipo no puede jugar más de 2 partidos por día. 1.3 Un equipo no puede jugar de local y visitante un mismo día. Los directivos de los equipos entregan una planilla con 56 fechas en las que su estadio estará disponible de las cuales se usaran 41. Se trata de minimizar la distancia total recorrida por los equipos durante la temporada. Un equipo no debería jugar partidos durante 3 días seguidos así como tampoco debería jugar más de 3 partidos en 5 días.

La NHL Formulación matemática Un equipo debería jugar relativamente seguido mientras esta fuera de casa. Mientras está viajando, no deberían tener más de 3 días libres, es decir, sin partidos. No todos los días de la temporada se pueden jugar partidos, por ejemplo por fechas especiales como Navidad o por eventos especiales como el Juego de las Estrellas. No todos los estadios están disponibles todos los días de la temporada, por ejemplo pueden estar reservados para un concierto.

La NHL Formulación matemática Los partidos deberían estar distribuidos en forma pareja. Un mismo partido, es decir un partido entre los mismos equipos y en el mismo estadio, entre equipos de la misma división deben estar separados al menos por 14 días. Cuando no son de la misma división la diferencia debe ser de al menos 30 días. Un equipo no puede estar de viaje más de 14 días y, en esa condición, no puede jugar más de 7 partidos seguidos. Si un equipo jugó un partido y luego recorrió más de 900 millas para jugar otro, entonces tiene que tener al menos 1 día de descanso.

La NHL Formulación matemática f1 indica cuántas veces un equipo jugó dos partidos un mismo día. f2 indica cuántas veces no se respeto la disponibilidad de un estadio. f3 indica el total de distancia (en cientos de millas) recorrida por los equipos a lo largo de la temporada. f4 indica cuántas veces un equipo jugó partidos durante 3 días seguidos o jugó más de 3 partidos en 5 días. f5 indica cuántos veces un equipo que estaba de viaje tuvo más de 3 días libres, es decir, sin partidos.

Aplicación Población inicial Por como fue formulado el problema, los individuos se corresponderán con schedules factibles. Hemos visto que los equipos hacen viajes o road trips para enfrentarse a los demás equipos, pudiendo enfrentar a más de un equipo antes de volver a casa. Una forma de obtener un schedule es planificar para cada equipo los road trips que hagan falta hasta que queden programados todos sus partidos como visitante. Al mismo tiempo, se irán programando los partidos como local para los equipos que serán enfrentados en cada road trip. Si cada partido en el road trip es programado teniendo en cuenta las restricciones esenciales, nuestro schedule será factible.

Aplicación Población inicial Veamos algunas definiciones: Sea t un equipo. R(t) denotará el conjunto de partidos de visitante que aún quedan por programar para t y T = (t1, …, tn) denotará una lista de equipos ordenados por orden decreciente de |R(t)|. Sea t un equipo y sean d1 y d2 días consecutivos en las que el estadio del equipo t estará disponible que además verifican que | d2 – d1 | ≥ 3. I(t) denotará una lista de intervalos (d1,d2), llamados intervalos libres, ordenados decrecientemente según su duración. Sean t1 y t2 equipos. [t1,t2] denotará un partido en el que juegan t1 y t2 en el estadio de t2.

Aplicación Población inicial Mientras queden por programar partidos en la temporada: Sea t1 el primer equipo en T. Comenzar un viaje para t1 eligiendo el primer intervalo (d1,d2) en I(t1) que contenga un día d tal que existe un equipo t2 que en ese día tiene su estadio disponible, todavía quedan por programar partidos [t1,t2] y no se viola ninguna restricción esencial. Si no hay ningún intervalo que satisfaga las condiciones entonces se violará la restricción relajada relacionada con la disponibilidad de los estadios. Si hay más de un equipo t2 elegir aquel que se encuentre más lejos de t1. Si hay más de un día d elegir la más cercana al medio del intervalo (d1,d2). Programar el partido [t1,t2] en el día d. Continuar el viaje para t1 programando partidos ahora en los intervalos resultantes I1=(d1,d) y I2 = (d,d2) de la misma forma que antes, salvo que ahora se priorizarán los equipos que se encuentran más cerca de t2.

Aplicación Población inicial Hemos visto que un individuo de la población se corresponderá con un schedule factible y además vimos un método para obtener uno de estos schedules. Sin embargo, más que un individuo necesitamos una población. Esta población será conseguida con el mismo método que antes, reordenando la lista de equipos T = (t1, …, tn) y las listas de intervalos I(ti) cada vez de una forma diferente.

Aplicación Población inicial Para cada individuo de la población los valores promedios para cada fi que se obtienen son f1 = 230, f2 = 60, f3 = 8200, f4 = 1100 y f5 = 0. Si bien se podría haber empleado más esfuerzo para obtener mejores poblaciones iniciales, esto no se hizo ya que no hay garantías de que esto lleve a mejores poblaciones finales.

Aplicación Reproducción Dada una población P con n schedules tendremos que elegir n schedules para la próxima población P’, desde luego un mismo schedule podrá estar más de una vez. Asociemos a cada schedule SP una probabilidad: La constante M debería ser tal que le de una probabilidad positiva pero relativamente pequeña al peor schedule. Se tomo M = fmax + (fmax – fmin) / n. Consideremos una ruleta en la que para cada schedule en la población hay un casillero cuyo tamaño depende de la probabilidad del schedule. Elegiremos los n schedules para P’ tirando n veces la ruleta, así el número esperado de veces que un schedule S aparecerá en P’ será n * p(S).

Aplicación Cruza Veamos algunas definiciones: σ denota una permutación de los elementos 1, …, n Un frame FS,t para un schedule S y un equipo t es una cadena de 0s y 1s de longitud tan larga como días tiene la temporada. FS,t[d] = 0 si en el schedule S en el día d el equipo t está en casa y FS,t[d] = 1 si el equipo está de viaje. Por convención, un equipo está en casa en los días que hay entre el último partido como visitante y el próximo partido como local. Del mismo modo, un equipo está de viaje en los días que hay entre el último partido como local y el próximo partido como visitante. Además, un equipo está en casa antes del primer partido de la temporada y después del último.

Aplicación Cruza Veamos algunas definiciones: El costo de un partido p es una medida basada en el grado de violación a las restricciones relajadas por parte de p, siempre en el contexto de un schedule específico. En cada schedule un mismo partido, es decir un partido entre los mismos equipos y en el mismo estadio, estará programado una cantidad determinada de veces. En caso de que esta cantidad supere a la establecida por la liga, se dice que esos partidos son redundantes en el schedule.

Aplicación Cruza La cruza consistirá en obtener una permutación aleatoria σ de los schedules de la población S1, …, Sn para después hacer que cada schedule Sσ(i) le envíe una solicitud de cooperación schedule Sσ(i mod n + 1), lo cual denotaremos Sσ(i)  Sσ(i mod n + 1). A grandes rasgos, la solicitud de cooperación dará lugar a un schedule Si que tendrá todos los partidos de Sσ(i mod n + 1) más todos los partidos de Sσ(i) que sea posible poner juntos sin cambiar el frame de Sσ(i mod n + 1). Tras esto, se quitarán los partidos redundantes de Si en base a su costo por lo que Si además de ser un schedule factible tal vez sea más aceptable. Para no perder el frame del mejor schedule involucrado en una solicitud de cooperación, la solicitud Sσ(i)  Sσ(i mod n + 1) solo se realiza bajo determinadas circunstancias. Si Sσ(i) es mejor que Sσ(i mod n + 1) y si una solicitud Sσ(i mod n + 1)  Sσ(i) no fue hecha todavía entonces se hace la solicitud inversa Sσ(i mod n + 1)  Sσ(i). Los schedules Si así creados conformarán la población de la siguiente etapa del algoritmo.

Aplicación Cruza Veamos la solicitud de cooperación Sa  Sb más en detalle: Hacer una copia de Sb y llamarla S. FS,t = FSb,t para todo equipo t. Para cada día d de la temporada y para cada partido [t1,t2] jugado en el día d en Sa, programar el partido [t1,t2] en S si los frames de Sa y S son compatibles, esto es, FSa,t1[d] = FS,t1[d] y FSa,t2[d] = FS,t2[d]. Establecer una lista L de todos los partidos redundantes en S, ordenarla por orden decreciente según el costo de cada partido. Mientras L no sea vacía: Quitar de S el primer partido j de L. Quitar de L a este partido j. Si los partidos iguales a j ya no son redundantes en el schedule S, quitarlos de L. Reordenar la lista L si algún costo de algún partido cambió.

Aplicación Tabu Search Para un schedule S definimos a los vecinos N(S) como aquellos schedules que pueden ser obtenidos a partir de S cambiando un partido de un día a otro. Para alcanzar más rápido una región buena entre los schedules factibles, solo se cambian de día aquellos partidos que violan al menos una restricción relajada, que denominaremos partidos conflictivos. No se tiene en cuenta la restricción de distancia ya que es difícil de evaluar para un solo partido.

Aplicación Tabu Search Se crearán un número de pares (gi, wi) donde gi es un partido conflictivo y wi una semana distinta a la semana en la que el partido se encuentra programado. Para cada par (gi,wi) buscaremos el mejor día di en la semana wi para programar gi. No se considerarán días en la misma semana en que estaba programado ya que probablemente ya fue puesto antes en el mejor día de esa semana. Así, cada par tendrá asociado un movimiento gi  di . El número m de vecinos que consideraremos, que equivale al número de pares (gi,wi) que crearemos, debería ser una proporción del número total. Se tomo m = prop * |N(S)| con 0 < prop < 1. Para reducir el tiempo empleado en buscar un vecino, si un vecino es mejor que la solución actual entonces el número de vecinos considerados será m / 2.

Aplicación Tabu Search Para evitar ciclos mantendremos una lista tabú de movimientos en la que se encontrarán los movimientos reversos a los realizados con anterioridad. En vistas de diversificar la exploración en el espacio de búsqueda, el tamaño de la lista tabú de movimientos T es generado aleatoriamente entre los límites inferiores y superiores tmin y tmax, respectivamente.

Aplicación Tabu Search En determinadas circunstancias un movimiento en la lista tabú puede ser permitido. Más precisamente, esto ocurrirá cuando f(S’) < A(f(S)), donde S es la solución actual, S’ es el vecino al que lleva el movimiento tabú y A es la función de aspiración. Como función de aspiración se suele tomar A(Z) = f(S*), donde S* es la mejor solución encontrada hasta el momento alcanzada desde los S tales que f(S) = Z. Inicialmente será A(Z) = Z para todos los posibles valores de Z = f(S) y a medida que realizamos movimientos de S a S’ la actualizamos del siguiente modo: A(f(S)) = min(A(f(S), f(S’)) A(f(S’)) = min(A(f(S’), f(S)) En nuestro caso, en vez de f usamos una versión simplificada f’(S) = f1(S) + f2(S) de la misma, sin los pesos w1 y w2 ni las funciones componente f3, f4 y f5. De este modo, nos concentraremos en las dos primeras restricciones relajadas y reduciremos significativamente el número de valores A(Z = g(S)) que deberemos mantener durante el proceso.

Aplicación Tabu Search El Tabu Search para cada schedule de la población terminará tras un número dado de iteraciones niter independiente de la iteración en la que se halló el mejor schedule. Una población tiende a converger prematuramente si n o niter son pequeños. Si tras la cruza en la población hay un schedule S que está más de n / 3 veces entonces se dice que la población está en una crisis de diversidad. Para salir de esta crisis, con la mitad de las apariciones de este schedule S se hará algo particular. Si tras niter / 2 iteraciones del Tabu Search la mejor solución encontrada sigue siendo S, nos quedaremos con la mejor solución (distinta de S) de las últimas niter / 2 iteraciones. Existe cierta esperanza de que la diversidad incorporada de esta manera se pueda propagar a través de las siguientes generaciones.

Resultados Las pruebas fueron realizadas en una estación de trabajo Sillicon Graphics de 9 Mflops y los datos que se usaron en ellas corresponden a las temporadas de la NHL del 89/90, 91/92 y 93/94. La función objetivo se terminó de definir tomando los pesos wi como w1 = 26, w2 = 13, w3 = 1, w4 = 10 y w5 = 2. Estos pesos llevaron a schedules comparables a los schedules oficiales de la NHL armados manualmente. Llamemos TSn a un algoritmo compuesto por n Tabu Search clásicos corriendo por separado (es decir, sin intercambiar información entre sí) y llamemos ETSn a nuestro algoritmo cuando trata con población de tamaño n.

Resultados Para determinar |T|, el tamaño de la lista de movimientos tabú, y prop, la proporción que consideraremos del número total de vecinos, se corrieron varios TS5 con niter = 5000 para 0 < |T| < 300 y para prop = 0.005, 0.2 y 0.4. Se observó* que los mejores resultados se daban cuando 10 < |T| < 80. En general, |T| debería ser proporcional al número posible de movimientos, que en nuestro problema estará dado por npartidos * nsemanas. Como en las temporadas para las que se hicieron las pruebas este número no cambia demasiado, se decidió generar aleatoriamente un |T| entre tmin = 10 y tmax = 80, que estarán fijos, cada 50 iteraciones. Se observó * también que con prop = 0.2 o 0.4 los resultados eran similares, aunque con prop = 0.005 la calidad de las soluciones se veía significativamente degradada. Hubo inclinación por prop = 0.2 por ser un buen compromiso entre el tiempo de CPU requerido y la calidad de las soluciones. * En el paper no se exhibió ninguna tabla o gráfico con esta información.

Resultados Llamemos ngen al número de generaciones creadas en un ETSn y nitertot al número de iteraciones de Tabu Search que se hará para un individuo de la población, queda claro que nitertot = ngen * niter y que cuanto más grande sea las soluciones serán de más calidad. Se decidió tomar nitertot = 20000 y, a partir de esto, ver cual es la forma más adecuada de tomar ngen y niter. Para determinarlo se corrieron 5 ETS8 con distintas poblaciones iniciales. Se observó que un número de generaciones menor a 4 es insuficiente pero también que cuando las generaciones son demasiadas terminan por acotar la búsqueda del Tabu Search en una dirección dada. Las descomposiciones en 8 x 2500, 10 x 2000, 20 x 1000 y 40 x 50 fueron las que dieron mejores resultados. Para el resto de las pruebas se usará la descomposición 20 x 1000.

Resultados

Resultados El último parámetro a estudiar es el tamaño de la población n. Para determinarlo se corrieron 5 ETS para 1 < n < 50. Se observó que la calidad de las soluciones aumenta notablemente a medida que n va de 1 a 8 aunque a partir de ahí la diferencia empieza a ser cada vez menor. Para n mayores a 30-40 esta diferencia se vuelve insignificante.

Resultados

Resultados Habiéndose fijado ya todos los parámetros, se compararon los resultados entre los schedules de ETS8 y TS8, ambos con la misma población inicial, y los oficiales. En primer lugar, se observó que la población final de ETS8 es en promedio entre un 3 y 6% mejor que la de TS8 . La competencia y la cooperación presentes en ETS8, representadas por las etapas de reproducción y cruza, respectivamente, parecen mejorar la performance del algoritmo respecto a TS8. En segundo lugar, se observó que la población final de ETS8 es más homogénea que la de TS8 ya que la diferencia entre fmax y fmin es mucho menor para el primero. Esto se explica a partir del intercambio de información que se lleva a cabo en ETS8 pero no en TS8, haciendo a este último más dependiente de la población inicial.

Resultados

Conclusiones Se introdujo una metaheurística híbrida con características de Algoritmos Genéticos y Tabu Search esperando complementar las ventajas de cada una. Esta metaheurística fue aplicada al problema de Sports Scheduling, para el caso particular de la NHL, como ejemplo de problema con muchas restricciones. Los resultados fueron prometedores ya que mostraron que la interacción entre Tabu Search y Algoritmos Genéticos en este tipo de problemas puede ser más conveniente que correrlos por separado. La clave del éxito sin dudas está en la competencia y cooperación que le aportan los Algoritmos Genéticos en las etapas de reproducción y cruza al Tabu Search.

Conclusiones Desde el punto de vista de la función f, los schedules de ETS8 son mejores que los oficiales. Sin embargo, los objetivos expresados en la función f pueden no ser precisamente los objetivos reales. Los schedules de ETS8 pueden ser un muy buen borrador del schedule oficial, que será determinado en reuniones entre los organizadores de la NHL y los directivos de los equipos donde discutirán, negociarán, priorizarán, etc. posibles modificaciones. El tiempo empleado en hallar los schedules que servirán como borradores (80 minutos para 20 generaciones de ETS8) más el tiempo de las reuniones inevitables para conciliar los intereses entre las partes será significativamente menor al tiempo que se empleaba haciendo los schedules manualmente.