590 likes | 917 Views
Un Algoritmo de Búsqueda Tabú para el Problema de la Paginación de Avisos Clasificados. Federico Abramzón Martín Maceratesi Oscar Quevedo Irene Loiseau XII CLAIO La Habana, Cuba, octubre 2004. Hoja de Ruta. Objetivos del trabajo Descripción del Problema Marco Teórico
E N D
Un Algoritmo de Búsqueda Tabú para el Problema de la Paginación de Avisos Clasificados Federico Abramzón Martín Maceratesi Oscar Quevedo Irene Loiseau XII CLAIO La Habana, Cuba, octubre 2004
Hoja de Ruta • Objetivos del trabajo • Descripción del Problema • Marco Teórico • Representación propuesta • Implementación • Resultados • Conclusiones
Objetivos • Resolver el Problema de la Paginación de Avisos Clasificados (PPAC) • Relevamiento del Estado del Arte • Utilización de métodos de Búsqueda Heurística • Aplicación de Técnicas de Mejoramiento (Búsqueda Tabú) • Implementación de un prototipo
Descripción del Problema PPAC • Encontrar una manera adecuada de disponer los avisos clasificados en las páginas de una publicación, de acuerdo a una serie de criterios gráficos • Compactación • Armonía • Aplicaciones prácticas • Páginas Amarillas (PA) • Rubros Clasificados de un diario
Ventajas de disponer de este tipo de herramienta • Automatizar el proceso de compaginación • Minimizar costos de producción (tiempo + recursos) > Beneficio Económico • Prolongar el “Cierre de Edición” • Incluir mayor cantidad de avisos en la publicación
Avisos Lineales Avisos de Relleno Encabezados de Sección Avisos Destacados Anclas Elementos de una Publicación de este tipo Secciones o Rubros • Encabezados • Avisos Destacados • Avisos Lineales (caso part: Anclas) Avisos de Relleno • Fillers • Burbujas
Definiciones y criterios generales de diseño • Página Grilla (o Matriz)subdividida en filas y columnas. • Intersección fila y columna módulo. • Cada aviso pertenece a un tipo determinado: Destacado,Lineal, Encabezado o Relleno. • Avisos Destacados y Lineales pertenecen a una determinada Sección. • Avisos Lineales y Encabezados de Sección: • Ancho: 1 columna • Alto: número prefijado de módulos (1 o +) • Avisos Destacados diferentes Formatos: • Ancho: [1, máx(cols pág)] • Alto: número prefijado de módulos (según formato aviso) • Los avisos de una Sección dada: “bajo el alcance del Encabezado de Sección” correspondiente (en la página de inicio o fin de Sección, o en una página entre ellas). • Preferentemente, los avisos no deberían mezclarse con los pertenecientes a otras Secciones. • Los Avisos Lineales: en general, ubicados en un determinado orden (alfabético). • Los Avisos Destacados: ubicados lo más cerca posible del borde inferior de la página, y del comienzo de Sección. • No se permite ubicar un Encabezado de Sección, si no existe al menos un Aviso Lineal asociado debajo suyo. • En cada página, los Avisos Lineales deben ubicarse por encima de los Avisos Destacados.
Otros detalles a considerar • Estilo de Layout • Agrupación de Avisos Destacados • Piramidal (“apilar”) • Bloques horizontales (“acostar”) • En forma de “U”
PPAC: Datos de Entrada / Salida • Entrada: • Avisos Destacados: Identif., Dimensiones, Sección [y Pág y/o Posic] • Avisos Lineales: Identif., Cant. de módulos (o filas) y Sección • Espacio Reservado (Fillers “Fijos”): Identif., Dimensiones [y Pág y/o Posic] • Salida: • Especificación precisa: Pág y Posic de cada aviso
Objetivos del método de paginación • Minimización de la superficie cubierta por Avisos de Relleno (Fillers y Burbujas) • Forma de publicidad Cota inferior • Minimización de la cantidad de páginas • Cant. fija de avisos pagos = Minimizar los Rellenos (desperdicio)
PPAC: Complejidad • Problema de Optimización Combinatoria • Combinación de 2 variantes de Bin-packing: • Ubicación de Avisos Destacados (bi-dimensional) • “Cortes” de Avisos Lineales NP-hard • Difícil de formular mediante un Modelo Matemático • Entre los posibles enfoques: • Técnicas Branch & Cut • Técnicas Heurísticas (de tiempo polinomial determinístico)
Trabajos previos • Publicaciones científicas y académicas • Métodos Basados en Reglas • Métodos Basados en Restricciones • Programación Dinámica • Búsqueda Heurística • Relevamiento de productos comerciales • SCS/ClassPag de SCS • VIP de VTT • Calligramme Directory • ADSNG/PAGE de Amdocs
Hoja de Ruta • Objetivos • Descripción del Problema • Marco Teórico • Representación propuesta • Implementación • Resultados • Conclusiones
Heurística Toma en cuenta el conocimiento adquirido en experiencias pasadas (tanto positivas como negativas). Cada persona “filtra” esta información y define un patrón de comportamiento.
Vecindario Dado S, un conjunto de Soluciones Factibles, se define como Vecindario de S al conjunto N(S), tal que todas las soluciones de N(S) puedan ser obtenidas a partir de aplicar una función de Movimiento válida a S, según la Heurística subyacente. Opt B A F ...... s C D E
Búsqueda Descendente Comienza con alguna solución inicial y se mueve (función movimiento) de vecino en vecino, tanto como le sea posible, mientras disminuya el valor de la función objetivo.
Metaheurísticas • Objetivos • escapar de óptimos locales movimientos de no mejora • explorar la estructura básica del problema • adaptarse a implementaciones particulares • Las más promisorias... • Búsqueda Tabú • Algoritmos Genéticos • Simulated Annealing • Grasp
N(s) N(s,k)= N(s) - T(s,k) S N(S) T Búsqueda Tabú (BT) • Estrategia que permite admitir movimientos de No Mejora para escapar de óptimos locales • Uso de Memoria Flexible • Mem. de Corto plazo: evitar ciclos • Qué tan “Reciente” ... • Mem. de Largo plazo: sacar ventaja de la historia de la búsqueda • Qué tan “Frecuente” ...
Elementos principales de un algoritmo BT • Representación de Solución Candidata • Movimiento Vecindario • Lista Tabú - Retención • Criterio de Parada • Criterio de Aspiración • Función Evaluación
M. Teórico: BT - Algoritmo básico • Elegir una solución inicial i; i*=i; k=0. • k=k+1; Generar un subconjunto N* de N(i,k), tal que no cumpla las condiciones tabú, o cumpla el criterio de aspiración. • Elegir el mejor j є N* con respecto a f(j), y hacer i=j. • Si f(j) < f(i*), hacer i*=j. • Actualizar la lista tabú y condiciones de aspiración. • Si no se cumplen las condiciones de parada, volver a (2).
BT – Más detalles • Diversificación: Orientar la búsqueda hacia otras zonas • Incrementar la retención de movimientos tabú • Reiniciar el algoritmo con nueva Solución Inicial • Utilizar información de frecuencia • Intensificación: Analizar en profundidad una región determinada • Reducir la retención de movimientos tabú (riesgo de ciclos) • Reglas de selección contemplando atributos de buenas soluciones • Combinación de estas técnicas • Variación dinámica de la retención • Soluciones Elite: “memorizar” buenas soluciones para su posterior análisis
Hoja de Ruta • Objetivos • Descripción del Problema • Marco Teórico • Representación propuesta • Implementación • Resultados • Conclusiones
Aplicación de BT • A la asignación de Avisos Destacados a las páginas • Y adicionalmente ... • Decoding (método determinístico): • Ubicación de Avisos Destacados en la página • Fluido de Avisos Lineales por encima de Avisos Destacados
12 3 8 10 5 9 11 1 2 4 6 7 1 2 3 4 5 6 7 8 9 10 11 ... 1 2 3 4 5 6 7 8 Representación: Solución Candidata • Se almacena el primer Aviso Destacado de cada página Cortes de Página (CP)
... 5 6 7 8 9 10 11 ... • Join: eliminar un Corte de Página • Join: eliminar un Corte de Página • Join: eliminar un Corte de Página • Join: eliminar un Corte de Página • Split: agregar un Corte de Página • Split: agregar un Corte de Página 4 4 4 4 4 6 6 6 5 5 5 5 5 • Shift: mover un Corte de Página • Shift sin acotar: equivalente a eliminar un CP (join) y ubicarlo en otra posición (split) • Shift acotado: el CP puede ser movido sólo entre los dos CP adyacentes (causa el efecto de mover destacados entre páginas adyacentes) • Shift: mover un Corte de Página • Shift sin acotar: equivalente a eliminar un CP (join) y ubicarlo en otra posición (split) • Shift acotado: el CP puede ser movido sólo entre los dos CP adyacentes (causa el efecto de mover destacados entre páginas adyacentes) • Shift: mover un Corte de Página • Shift sin acotar: equivalente a eliminar un CP (join) y ubicarlo en otra posición (split) Movimientos Posibles • Shift: mover un Corte de Página • Shift sin acotar: equivalente a eliminar un CP (join) y ubicarlo en otra posición (split) • Shift: mover un Corte de Página
1 2 3 4 5 6 7 8 9 10 11 ... 1 2 3 4 5 6 4 Movimientos Tabú • Realizado un Movimiento, podemos restringir: • Que ese CP no vuelva a la posición de origen • Que ningún CP vuelva desde la posición destino • Que ningún CP ocupe la posición origen • Realizado un Movimiento, podemos restringir: • Que ese CP no vuelva a la posición de origen • Que ningún CP vuelva desde la posición destino • Realizado un Movimiento, podemos restringir: • Realizado un Movimiento, podemos restringir: • Que ese CP no vuelva a la posición de origen
Retención Alternativas analizadas: • Retención fija • Se fija un valor para toda la corrida del algoritmo • Retención variable • Variación de retención por períodos • Variación de retención por cada inserción
Criterios de Aspiración Alternativas analizadas: • Movimientos Tabú que superen la calidad de la mejor solución encontrada (global) • Movimientos Tabú mejores que las últimas N soluciones generadas (local)
Función Evaluación • Penalizaciones (relativas y/o absolutas) sobre: • Overflow (avisos fuera de la página) • Avisos fuera de orden (avisos menores en páginas previas a uno mayor) • Avisos fuera de sección (aviso previo a su encabezado de sección) • Generación de avisos de relleno • Violación de preferencia par/impar • Distancia de los avisos al encabezado
Criterio de parada Alternativas analizadas: • Cantidad máxima de iteraciones • Cantidad máxima de movimientos de no mejora • Valor alcanzado por la Función Evaluación
V1 V2 V3 Heurísticas propuestas • Solución Inicial • Heurística Constructiva • Solución no necesariamente factible • Estimación de cantidad de páginas por rubro • Distribución proporcional de destacados y lineales por rubro • Movimientos de mejora • Shift acotado • Ubicación de avisos en la página • Decoding: método determinístico • Utilización de Ventanas de Optimización • Particionamiento del problema • Solapamiento entre ventanas
Resumiendo ... • Solución Candidata: Representación de Cortes de Página. • Ubicación determinística de avisos en la página (Decoding). • Movimiento: Shift acotado. • Criterio Tabú: Marcar como tabú la posición original. • Retención: Variable por cada inserción. • Criterio de Aspiración: cuando un movimiento tabú supere la mejor solución encontrada hasta el momento (global). • Función Evaluación: Penalizamos el Overflow, Fuera de Sección, Violación preferencia par/impar, generación de Rellenos (Fillers y Burbujas) y Distancia. • Criterio de Parada: Cantidad de iteraciones y Umbral de la Función Evaluación. • Solución Inicial: Generada por Heurística Constructiva. • Utilización de Ventanas de Optimización.
Hoja de Ruta • Objetivos • Descripción del Problema • Marco Teórico • Representación propuesta • Implementación • Resultados • Conclusiones
.PAG Interfase Gráfica .INI .IN Motor Pagination: Arquitectura del prototipo • Módulos • Interfase Gráfica • Motor • Archivos • .PAG • .IN • TS.INI
Pagination: Demo ... • Visualización de una publicación • Reserva de espacio • Fijación de Avisos Destacados • Repaginación • Parametrizaciones
Hoja de Ruta • Objetivos • Descripción del Problema • Marco Teórico • Representación propuesta • Implementación • Resultados • Conclusiones
Lotes de Prueba • Semi-reales: extracción de Las Páginas Amarillas (PA) • PASF: sin la fijación de avisos. • PACF: con Aviso Destacado fijado manualmente. • Aleatorios: a través de un Generador Random que también implementamos • RND100 • RND1000
Ajuste de Parámetros • Parámetros de la Función Evaluación: • Overflow • Burbujas • Fillers • Avisos Fuera de Sección • Distancia • Parámetros de la Búsqueda Tabú (BT): • % Vecinos • Retención en Lista Tabú • Cantidad de Iteraciones • Tamaño de Ventanas de Optimización
Ajuste BT: % Vecinos Comparativa BT – Porcentaje de Vecinos (retención baja) Comparativa BT – Porcentaje de Vecinos (retención alta)
Resultados: Parámetros elegidos de acuerdo a la experimentación
Resultados: Influencia Sol. Inicial Solución Inicial generada mediante la Heurística Constructiva Vs. Generación de una Solución Inicial “Mala” (Todos los Destacados más allá de la última página de la ventana)
Resultados: Influencia Sol. Inicial (PACF) Solución Inicial con Heurística Constructiva Solución Inicial “Mala”
Resultados: Influencia Sol. Inicial (PASF) Solución Inicial con Heurística Constructiva Solución Inicial “Mala”
Resultados: Influencia Sol. Inicial (RND) Solución Inicial con Heurística Constructiva Solución Inicial “Mala”