un algoritmo de búsqueda tabú para el problema de la paginación de avisos clasificados
Post on 12-Jan-2016
62 Views
Preview:
DESCRIPTION
TRANSCRIPT
Un Algoritmo de Búsqueda Tabú para Un Algoritmo de Búsqueda Tabú para el Problema de la Paginación de Avisos el Problema de la Paginación de Avisos
ClasificadosClasificados
Federico AbramzónFederico Abramzón
Martín MaceratesiMartín Maceratesi
Oscar Quevedo Oscar Quevedo
Irene LoiseauIrene Loiseau
XII CLAIOXII CLAIO
La Habana, Cuba, octubre 2004La Habana, Cuba, octubre 2004
Hoja de RutaHoja de Ruta
Objetivos del trabajoObjetivos del trabajo Descripción del ProblemaDescripción del Problema Marco TeóricoMarco Teórico Representación propuestaRepresentación propuesta ImplementaciónImplementación ResultadosResultados ConclusionesConclusiones
ObjetivosObjetivos
Resolver el Problema de la Paginación de Resolver el Problema de la Paginación de Avisos Clasificados (PPAC)Avisos Clasificados (PPAC)
Relevamiento del Estado del ArteRelevamiento del Estado del Arte Utilización de métodos de Búsqueda Utilización de métodos de Búsqueda
HeurísticaHeurística Aplicación de Técnicas de Mejoramiento Aplicación de Técnicas de Mejoramiento
(Búsqueda Tabú)(Búsqueda Tabú) Implementación de un prototipoImplementación de un prototipo
Descripción del Problema PPACDescripción del Problema PPAC
Encontrar una manera adecuada de disponer los Encontrar una manera adecuada de disponer los avisos clasificados en las páginas de una avisos clasificados en las páginas de una publicación, de acuerdo a una serie de criterios publicación, de acuerdo a una serie de criterios gráficosgráficos CompactaciónCompactación ArmoníaArmonía
Aplicaciones prácticasAplicaciones prácticas Páginas Amarillas (PA)Páginas Amarillas (PA) Rubros Clasificados de un diarioRubros Clasificados de un diario
Ventajas de disponer de este tipo Ventajas de disponer de este tipo de herramientade herramienta
Automatizar el proceso de compaginaciónAutomatizar el proceso de compaginación Minimizar costos de producción (tiempo + Minimizar costos de producción (tiempo +
recursos) recursos) > Beneficio Económico > Beneficio Económico Prolongar el “Cierre de Edición”Prolongar el “Cierre de Edición” Incluir mayor cantidad de avisos en la Incluir mayor cantidad de avisos en la
publicaciónpublicación
Elementos de una Publicación de este tipoElementos de una Publicación de este tipo
Secciones o Secciones o RubrosRubros
EncabezadosEncabezados Avisos DestacadosAvisos Destacados Avisos LinealesAvisos Lineales
(caso part: Anclas)(caso part: Anclas)
Avisos de RellenoAvisos de Relleno FillersFillers BurbujasBurbujasAvisos
Destacados
Encabezados de Sección
Anclas
Avisos Lineales
Avisos deRelleno
Definiciones y criterios generales de diseñoDefiniciones y criterios generales de diseño
PáginaPágina Grilla (o Matriz) subdividida en filas y columnas. Grilla (o Matriz) subdividida en filas y columnas. Intersección fila y columna Intersección fila y columna módulo. módulo. Cada aviso pertenece a un tipo determinado: Cada aviso pertenece a un tipo determinado: Destacado,Destacado, LinealLineal, , EncabezadoEncabezado o o Relleno.Relleno. Avisos DestacadosAvisos Destacados y y LinealesLineales pertenecen a una determinada pertenecen a una determinada Sección.Sección. Avisos LinealesAvisos Lineales y y Encabezados de SecciónEncabezados de Sección::
Ancho: 1 columnaAncho: 1 columna Alto: número prefijado de módulos (1 o +)Alto: número prefijado de módulos (1 o +)
Avisos DestacadosAvisos Destacados diferentes Formatos: diferentes Formatos: Ancho: [1, máx(cols pág)]Ancho: [1, máx(cols pág)] Alto: número prefijado de módulos (según formato aviso)Alto: número prefijado de módulos (según formato aviso)
Los avisos de una Los avisos de una SecciónSección dada: “bajo el alcance del dada: “bajo el alcance del Encabezado de SecciónEncabezado de Sección” ” correspondiente (en la página de inicio o fin de correspondiente (en la página de inicio o fin de SecciónSección, o en una página entre ellas)., o en una página entre ellas).
Preferentemente, los avisos no deberían mezclarse con los pertenecientes a otras Preferentemente, los avisos no deberían mezclarse con los pertenecientes a otras SeccionesSecciones..
Los Los Avisos LinealesAvisos Lineales: en general, ubicados en un determinado orden (alfabético).: en general, ubicados en un determinado orden (alfabético). Los Los Avisos DestacadosAvisos Destacados: ubicados lo más cerca posible del borde inferior de la página, y del : ubicados lo más cerca posible del borde inferior de la página, y del
comienzo de comienzo de SecciónSección.. No se permite ubicar un No se permite ubicar un Encabezado de SecciónEncabezado de Sección, si no existe al menos un , si no existe al menos un Aviso LinealAviso Lineal
asociado debajo suyo.asociado debajo suyo. En cada En cada páginapágina, los , los Avisos LinealesAvisos Lineales deben ubicarse por encima de los deben ubicarse por encima de los Avisos DestacadosAvisos Destacados..
Otros detalles a considerarOtros detalles a considerar
Estilo de LayoutEstilo de Layout Agrupación de Agrupación de Avisos Avisos
DestacadosDestacados Piramidal (“apilar”)Piramidal (“apilar”) Bloques horizontales Bloques horizontales
(“acostar”)(“acostar”) En forma de “U”En forma de “U”
PPAC: Datos de Entrada / SalidaPPAC: Datos de Entrada / Salida
Entrada:Entrada: Avisos DestacadosAvisos Destacados: Identif., Dimensiones, : Identif., Dimensiones, SecciónSección [y [y
Pág y/o Posic]Pág y/o Posic] Avisos LinealesAvisos Lineales: Identif., Cant. de módulos (o filas) y : Identif., Cant. de módulos (o filas) y
SecciónSección Espacio Reservado (Fillers “Fijos”)Espacio Reservado (Fillers “Fijos”): Identif., : Identif.,
Dimensiones [y Pág y/o Posic]Dimensiones [y Pág y/o Posic]
Salida:Salida: Especificación precisa: Pág y Posic de cada avisoEspecificación precisa: Pág y Posic de cada aviso
Objetivos del método de Objetivos del método de paginaciónpaginación
Minimización de la superficie cubierta por Minimización de la superficie cubierta por Avisos de Relleno (FillersAvisos de Relleno (Fillers y y Burbujas)Burbujas) Forma de publicidad Forma de publicidad Cota inferior Cota inferior
Minimización de la cantidad de páginasMinimización de la cantidad de páginas Cant. fija de avisos pagos = Minimizar los Cant. fija de avisos pagos = Minimizar los
RellenosRellenos (desperdicio) (desperdicio)
PPAC: ComplejidadPPAC: Complejidad
Problema de Optimización CombinatoriaProblema de Optimización Combinatoria Combinación de 2 variantes de Bin-packing:Combinación de 2 variantes de Bin-packing:
Ubicación de Ubicación de Avisos DestacadosAvisos Destacados (bi-dimensional) (bi-dimensional) ““Cortes” de Cortes” de Avisos LinealesAvisos Lineales
NP-hardNP-hard Difícil de formular mediante un Modelo Difícil de formular mediante un Modelo
MatemáticoMatemático Entre los posibles enfoques:Entre los posibles enfoques:
Técnicas Branch & CutTécnicas Branch & Cut Técnicas Heurísticas (de tiempo polinomial Técnicas Heurísticas (de tiempo polinomial
determinístico)determinístico)
Trabajos previosTrabajos previos
Publicaciones científicas y académicasPublicaciones científicas y académicas Métodos Basados en ReglasMétodos Basados en Reglas Métodos Basados en RestriccionesMétodos Basados en Restricciones Programación DinámicaProgramación Dinámica Búsqueda HeurísticaBúsqueda Heurística
Relevamiento de productos comercialesRelevamiento de productos comerciales SCS/ClassPag de SCSSCS/ClassPag de SCS VIP de VTTVIP de VTT Calligramme DirectoryCalligramme Directory ADSADSNGNG/PAGE de Amdocs/PAGE de Amdocs
Hoja de RutaHoja de Ruta
ObjetivosObjetivos Descripción del ProblemaDescripción del Problema Marco TeóricoMarco Teórico Representación propuestaRepresentación propuesta ImplementaciónImplementación ResultadosResultados ConclusionesConclusiones
HeurísticaHeurí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.
VecindarioVecindario
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.
s
C
A
B
D E
F......
Opt
Búsqueda DescendenteBú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ísticasMetaheurí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
Búsqueda Tabú (BT)Búsqueda Tabú (BT)
N(s) N(s,k) = N(s) - T(s,k)
Estrategia que permite admitir movimientos de No Estrategia que permite admitir movimientos de No Mejora para escapar de óptimos localesMejora para escapar de óptimos locales
Uso de Memoria FlexibleUso de Memoria Flexible Mem. de Corto plazo: evitar ciclosMem. de Corto plazo: evitar ciclos
Qué tan “Reciente” ...Qué tan “Reciente” ... Mem. de Largo plazo: sacar ventaja de la historia de la búsquedaMem. de Largo plazo: sacar ventaja de la historia de la búsqueda
Qué tan “Frecuente” ...Qué tan “Frecuente” ...
S
N(S) T
Elementos principales de un algoritmo Elementos principales de un algoritmo BTBT
Representación de Solución CandidataRepresentación de Solución Candidata Movimiento Movimiento Vecindario Vecindario Lista Tabú - RetenciónLista Tabú - Retención Criterio de ParadaCriterio de Parada Criterio de AspiraciónCriterio de Aspiración Función EvaluaciónFunción Evaluación
M. Teórico: BT - Algoritmo básicoM. Teórico: BT - Algoritmo básico
1. Elegir una solución inicial i; i*=i; k=0.2. 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.
3. Elegir el mejor j є N* con respecto a f(j), y hacer i=j.4. Si f(j) < f(i*), hacer i*=j.5. Actualizar la lista tabú y condiciones de aspiración.6. Si no se cumplen las condiciones de parada, volver a
(2).
BT – Más detallesBT – Más detalles
Diversificación: Orientar la búsqueda hacia otras zonasDiversificación: Orientar la búsqueda hacia otras zonas Incrementar la retención de movimientos tabúIncrementar la retención de movimientos tabú Reiniciar el algoritmo con nueva Solución InicialReiniciar el algoritmo con nueva Solución Inicial Utilizar información de frecuenciaUtilizar información de frecuencia
Intensificación: Analizar en profundidad una región Intensificación: Analizar en profundidad una región determinadadeterminada Reducir la retención de movimientos tabú (riesgo de ciclos)Reducir la retención de movimientos tabú (riesgo de ciclos) Reglas de selección contemplando atributos de buenas solucionesReglas de selección contemplando atributos de buenas soluciones
Combinación de estas técnicasCombinación de estas técnicas Variación dinámica de la retenciónVariación dinámica de la retención
Soluciones Elite: “memorizar” buenas soluciones para su Soluciones Elite: “memorizar” buenas soluciones para su posterior análisisposterior análisis
Hoja de RutaHoja de Ruta
ObjetivosObjetivos Descripción del ProblemaDescripción del Problema Marco TeóricoMarco Teórico Representación propuestaRepresentación propuesta ImplementaciónImplementación ResultadosResultados ConclusionesConclusiones
Aplicación de BTAplicación de BT
A la asignación de A la asignación de Avisos DestacadosAvisos Destacados a las a las páginaspáginas
Y adicionalmente ...Y adicionalmente ... Decoding (método determinístico):Decoding (método determinístico):
Ubicación de Ubicación de Avisos DestacadosAvisos Destacados en la página en la página Fluido de Fluido de Avisos LinealesAvisos Lineales por encima de por encima de Avisos Avisos
DestacadosDestacados
Representación: Solución Representación: Solución CandidataCandidata
Se almacena el primer Se almacena el primer Aviso DestacadoAviso Destacado de cada de cada página página Cortes de Página (CP) Cortes de Página (CP)
87653 421
...1110987654321
1 2
3
4
5
6 7
8
9 11
10
12
Shift: mover un Corte de PáginaShift: mover un Corte de Página Shift: mover un Corte de PáginaShift: mover un Corte de Página Shift sin acotar: equivalente a eliminar un CP (join) y ubicarlo Shift sin acotar: equivalente a eliminar un CP (join) y ubicarlo
en otra posición (split)en otra posición (split)
Shift: mover un Corte de PáginaShift: mover un Corte de Página Shift sin acotar: equivalente a eliminar un CP (join) y ubicarlo Shift sin acotar: equivalente a eliminar un CP (join) y ubicarlo
en otra posición (split)en otra posición (split)
Shift: mover un Corte de PáginaShift: mover un Corte de Página Shift sin acotar: equivalente a eliminar un CP (join) y ubicarlo en otra Shift sin acotar: equivalente a eliminar un CP (join) y ubicarlo en otra
posición (split)posición (split) Shift acotado: el CP puede ser movido sólo entre los dos CP Shift acotado: el CP puede ser movido sólo entre los dos CP
adyacentes (causa el efecto de mover adyacentes (causa el efecto de mover destacadosdestacados entre páginas entre páginas adyacentes)adyacentes)
Shift: mover un Corte de PáginaShift: mover un Corte de Página Shift sin acotar: equivalente a eliminar un CP (join) y ubicarlo en otra Shift sin acotar: equivalente a eliminar un CP (join) y ubicarlo en otra
posición (split)posición (split) Shift acotado: el CP puede ser movido sólo entre los dos CP Shift acotado: el CP puede ser movido sólo entre los dos CP
adyacentes (causa el efecto de mover adyacentes (causa el efecto de mover destacadosdestacados entre páginas entre páginas adyacentes)adyacentes)
Movimientos Posibles Movimientos Posibles
......111110109988776655......
44 55 66
Join: eliminar un Corte de PáginaJoin: eliminar un Corte de Página
44 55 66
Join: eliminar un Corte de PáginaJoin: eliminar un Corte de Página
5544
Split: agregar un Corte de PáginaSplit: agregar un Corte de Página
Join: eliminar un Corte de PáginaJoin: eliminar un Corte de Página
5544
Split: agregar un Corte de PáginaSplit: agregar un Corte de Página
Join: eliminar un Corte de PáginaJoin: eliminar un Corte de Página
44 55 66
Movimientos TabúMovimientos Tabú
...1110987654321
1 2 3 4 5 6
Realizado un Movimiento, podemos restringir:Realizado un Movimiento, podemos restringir: Que ese CP no vuelva a la posición de origenQue ese CP no vuelva a la posición de origen
Realizado un Movimiento, podemos restringir:Realizado un Movimiento, podemos restringir: Que ese CP no vuelva a la posición de origenQue ese CP no vuelva a la posición de origen Que ningún CP vuelva desde la posición destinoQue ningún CP vuelva desde la posición destino Que ningún CP ocupe la posición origenQue ningún CP ocupe la posición origen
Realizado un Movimiento, podemos restringir:Realizado un Movimiento, podemos restringir: Que ese CP no vuelva a la posición de origenQue ese CP no vuelva a la posición de origen Que ningún CP vuelva desde la posición destinoQue ningún CP vuelva desde la posición destino
Realizado un Movimiento, podemos restringir:Realizado un Movimiento, podemos restringir:
4
Alternativas analizadas:Alternativas analizadas: Retención fijaRetención fija
Se fija un valor para toda la corrida del Se fija un valor para toda la corrida del algoritmoalgoritmo
Retención variableRetención variable Variación de retención por períodosVariación de retención por períodos Variación de retención por cada inserciónVariación de retención por cada inserción
RetenciónRetención
Criterios de AspiraciónCriterios de Aspiración
Alternativas analizadas: Alternativas analizadas: Movimientos Tabú que superen la calidad Movimientos Tabú que superen la calidad
de la mejor solución encontrada (global)de la mejor solución encontrada (global) Movimientos Tabú mejores que las últimas Movimientos Tabú mejores que las últimas
N soluciones generadas (local)N soluciones generadas (local)
Función EvaluaciónFunción Evaluación
Penalizaciones (relativas y/o absolutas) sobre:Penalizaciones (relativas y/o absolutas) sobre: Overflow (avisos fuera de la página)Overflow (avisos fuera de la página) Avisos fuera de orden (avisos menores en páginas Avisos fuera de orden (avisos menores en páginas
previas a uno mayor)previas a uno mayor) Avisos fuera de sección (aviso previo a su Avisos fuera de sección (aviso previo a su
encabezado de sección)encabezado de sección) Generación de avisos de rellenoGeneración de avisos de relleno Violación de preferencia par/imparViolación de preferencia par/impar Distancia de los avisos al encabezadoDistancia de los avisos al encabezado
Criterio de paradaCriterio de parada
Alternativas analizadas: Alternativas analizadas: Cantidad máxima de iteracionesCantidad máxima de iteraciones Cantidad máxima de movimientos de no Cantidad máxima de movimientos de no
mejoramejora Valor alcanzado por la Función EvaluaciónValor alcanzado por la Función Evaluación
Heurísticas propuestasHeurísticas propuestas
Solución InicialSolución Inicial Heurística ConstructivaHeurística Constructiva Solución no necesariamente factibleSolución no necesariamente factible Estimación de cantidad de páginas por rubroEstimación de cantidad de páginas por rubro Distribución proporcional de destacados y lineales por rubroDistribución proporcional de destacados y lineales por rubro
Movimientos de mejoraMovimientos de mejora Shift acotadoShift acotado
Ubicación de avisos en la páginaUbicación de avisos en la página Decoding: método determinísticoDecoding: método determinístico
Utilización de Ventanas de OptimizaciónUtilización de Ventanas de Optimización Particionamiento del problemaParticionamiento del problema Solapamiento entre ventanasSolapamiento entre ventanas
V1 V2 V3
Resumiendo ...Resumiendo ...
Solución Candidata: Representación de Cortes de Página.Solución Candidata: Representación de Cortes de Página. Ubicación determinística de avisos en la página (Decoding).Ubicación determinística de avisos en la página (Decoding). Movimiento: Shift acotado.Movimiento: Shift acotado. Criterio Tabú: Marcar como tabú la posición original.Criterio Tabú: Marcar como tabú la posición original. Retención: Variable por cada inserción.Retención: Variable por cada inserción. Criterio de Aspiración: cuando un movimiento tabú supere la mejor Criterio de Aspiración: cuando un movimiento tabú supere la mejor
solución encontrada hasta el momento (global).solución encontrada hasta el momento (global). Función Evaluación: Penalizamos el Overflow, Fuera de Sección, Violación Función Evaluación: Penalizamos el Overflow, Fuera de Sección, Violación
preferencia par/impar, generación de Rellenos (Fillers y Burbujas) y preferencia par/impar, generación de Rellenos (Fillers y Burbujas) y Distancia.Distancia.
Criterio de Parada: Cantidad de iteraciones y Umbral de la Función Criterio de Parada: Cantidad de iteraciones y Umbral de la Función Evaluación.Evaluación.
Solución Inicial: Generada por Heurística Constructiva.Solución Inicial: Generada por Heurística Constructiva. Utilización de Ventanas de Optimización.Utilización de Ventanas de Optimización.
Hoja de RutaHoja de Ruta
ObjetivosObjetivos Descripción del ProblemaDescripción del Problema Marco TeóricoMarco Teórico Representación propuestaRepresentación propuesta ImplementaciónImplementación ResultadosResultados ConclusionesConclusiones
Pagination: Arquitectura del Pagination: Arquitectura del prototipoprototipo
Interfase Gráfica
Motor
.PAG
.IN
.INI
MódulosMódulos Interfase Interfase
GráficaGráfica MotorMotor
ArchivosArchivos .PAG.PAG .IN.IN TS.INITS.INI
Pagination: Algoritmo principalPagination: Algoritmo principal
Pagination() Load Parameters Load Sections Load Fixed Fillers While exists data Init Window Load Displads & Lineads (for this Window) Generate InitialSolution (for this Window) BestSolution = TabuSearch(InitialSolution, Window) Save BestSolution EndWhileEnd
Pagination: Algoritmo BT Pagination: Algoritmo BT implementadoimplementado
TabuSearch(IniSol, Window) Declare BestSol, BestLocalSol, ActualSol, TmpSol BestSol=IniSol ActualSol=IniSol BestValue=GetValue(BestSol) CycleCounter=0 While not StopCriteria(BestValue, CycleCounter) BestLocalValue=MAXVALUE For each Mv of Neighborhood(ActualSol) TmpSol=Move(ActualSol, Mv) Decoding(TmpSol, Window) TmpValue=Eval(TmpSol) If not Tabu(Mv, CycleCounter) or AspCriteria(TmpValue, BestValue) If TmpValue < BestLocalValue BestLocalValue=TmpValue BestLocalSol=TmpSol BestLocalMv=Mv EndIf EndIf EndFor If BestLocalValue < BestValue BestValue= BestLocalValue BestSol=BestLocalSol EndIf SetTabu(ActualSol, BestLocalMv, CycleCounter) ActualSol=BestLocalSol CycleCounter=CycleCounter+1 EndWhileReturn BestSol
Pagination: Demo ...Pagination: Demo ...
Visualización de una publicación Reserva de espacio Fijación de Avisos Destacados Repaginación Parametrizaciones
Hoja de RutaHoja de Ruta
ObjetivosObjetivos Descripción del ProblemaDescripción del Problema Marco TeóricoMarco Teórico Representación propuestaRepresentación propuesta ImplementaciónImplementación ResultadosResultados ConclusionesConclusiones
Lotes de PruebaLotes de Prueba
Lotes Destacados % Area Lineales % Area Secciones Páginas
PASF/PACF 126 66,72 2.280 32,15 75 51
RND100 202 47,20 8.341 51,73 100 115
RND1000 1.554 38,70 98.619 60,22 1000 1140
Semi-reales: extracción de Semi-reales: extracción de Las Páginas Amarillas Las Páginas Amarillas (PA)(PA) PASF: sin la fijación de avisos.PASF: sin la fijación de avisos. PACF: con PACF: con Aviso DestacadoAviso Destacado fijado manualmente. fijado manualmente.
Aleatorios: a través de un Generador Random que Aleatorios: a través de un Generador Random que también implementamostambién implementamos RND100RND100 RND1000RND1000
Ajuste de ParámetrosAjuste de Parámetros
Parámetros de la Función Evaluación:Parámetros de la Función Evaluación: OverflowOverflow BurbujasBurbujas FillersFillers Avisos Fuera de SecciónAvisos Fuera de Sección DistanciaDistancia
Parámetros de la Búsqueda Tabú (BT):Parámetros de la Búsqueda Tabú (BT): % Vecinos% Vecinos Retención en Lista TabúRetención en Lista Tabú Cantidad de IteracionesCantidad de Iteraciones
Tamaño de Ventanas de OptimizaciónTamaño de Ventanas de Optimización
Ajuste BT: % VecinosAjuste BT: % Vecinos
0,001,002,003,004,005,006,007,008,009,00
20 40 60 80 100
% Vecinos
Va
lor
po
nd
era
do
PACF
PASF
RND
Comparativa BT – Porcentaje de Vecinos (retención baja)
0,00
1,00
2,00
3,00
4,00
5,00
6,00
7,00
20 40 60 80 100
% Vecinos
Va
lor
po
nd
era
do
PACF
PASF
RND
Comparativa BT – Porcentaje de Vecinos (retención alta)
Ajuste BT: # Iteraciones (PACF)Ajuste BT: # Iteraciones (PACF)
0
20000
40000
60000
80000
100000
120000
140000
160000
180000
1 40 79 118
157
196
235
274
313
352
391
430
469
508
547
586
625
664
703
742
781
820
859
898
937
976
Ciclos
Fu
nci
ón
Eva
luac
ión
Ajuste BT: # Iteraciones (PASF)Ajuste BT: # Iteraciones (PASF)
0
50000
100000
150000
200000
250000
300000
350000
400000
1 40 79 118
157
196
235
274
313
352
391
430
469
508
547
586
625
664
703
742
781
820
859
898
937
976
Ciclos
Fu
nci
ón
Eva
luac
ión
Ajuste BT: # Iteraciones (RND100)Ajuste BT: # Iteraciones (RND100)
0
20000
40000
60000
80000
100000
120000
140000
160000
180000
200000
1 40 79 118
157
196
235
274
313
352
391
430
469
508
547
586
625
664
703
742
781
820
859
898
937
976
Ciclos
Fu
nci
ón
Eva
luac
ión
Resultados: Resultados: Parámetros elegidos de acuerdo a la Parámetros elegidos de acuerdo a la
experimentaciónexperimentación
Lote PACF Lote PASF Lote RND General
# Iteraciones 1.000 1.000 1.000 1.000
# Vecinos 20 % 20 % 40 % 40%
Retención (A/B) 200/300 200/300 200/300 200/300
Overflow 400 500 900 500
Burbujas 6 8 6 8
Fillers 1 7 2 2
Fuera de Sección 900 800 1000 800
Distancia 100 100 100 100
Resultados: Comportamiento de BTResultados: Comportamiento de BT
PACF PASF RND100 RND1000
Mejor sol. Promedio Mejor sol. Promedio Mejor sol. Promedio Mejor sol. Promedio
Valor Solución 36.680 36.700 36.116 36.146 18.366 18.740 116.506 120.498
Total Ciclos 6.000 6.000 6.000 6.000 13.000 13.000 127.000 127.000
Ciclo mejor solución 335 807 128 911 2.747 2.754 31.037 25.721
% Convergencia 5,58 13,44 2,13 15,19 21,13 21,19 24,44 20,25
Vecinos analizados 101.454 102.076 102.700 101.939 167.610 169.333 1.290.121 1.290.145
Posiciones Tabú 45.456 45.763 46.025 45.658 84.544 85.096 693.180 692.605
% Pos. Tabú 44,80 44,83 44,81 44,79 50,44 50,25 53,73 53,68
Crit. Asp. Aplicados 38 30 32 41 81 93 1.000 958
% Crit. Asp. 0,084 0,066 0,070 0,089 0,096 0,109 0,144 0,138
Mov. No mejora 3.075 3.073 3.042 3.063 6.358 6.421 61.024 61.023
% No mejora 51,25 51,22 50,70 51,05 48,91 49,39 48,05 48,05
Resultados: Influencia Sol. InicialResultados: Influencia Sol. Inicial
Solución Inicial generada mediante la Solución Inicial generada mediante la Heurística ConstructivaHeurística Constructiva
Vs.Vs.
Generación de una Solución Inicial “Mala” Generación de una Solución Inicial “Mala” (Todos los Destacados más allá de la (Todos los Destacados más allá de la
última página de la ventana)última página de la ventana)
Resultados: Influencia Sol. Inicial Resultados: Influencia Sol. Inicial (PACF)(PACF)
0
20000
40000
60000
80000
100000
120000
140000
160000
180000
1 40 79 118
157
196
235
274
313
352
391
430
469
508
547
586
625
664
703
742
781
820
859
898
937
976
Ciclos
Fu
nci
ón
Eva
luac
ión
sol. actual sol. mejor
0
20000
40000
60000
80000
100000
120000
1 40 79 118
157
196
235
274
313
352
391
430
469
508
547
586
625
664
703
742
781
820
859
898
937
976
Ciclos
Fu
nci
ón
Eva
luac
ión
sol. actual sol. mejor
Solución Inicial con Heurística Constructiva Solución Inicial “Mala”
Resultados: Influencia Sol. Inicial Resultados: Influencia Sol. Inicial (PASF)(PASF)
0
50000
100000
150000
200000
250000
300000
350000
400000
1 40 79 118
157
196
235
274
313
352
391
430
469
508
547
586
625
664
703
742
781
820
859
898
937
976
Ciclos
Fu
nci
ón
Eva
luac
ión
sol. actual sol. mejor
0
200000
400000
600000
800000
1000000
1200000
1400000
1600000
1800000
1 40 79 118
157
196
235
274
313
352
391
430
469
508
547
586
625
664
703
742
781
820
859
898
937
976
Ciclos
Fu
nci
ón
Eva
luac
ión
sol. actual sol. mejor
Solución Inicial con Heurística Constructiva Solución Inicial “Mala”
Resultados: Influencia Sol. Inicial Resultados: Influencia Sol. Inicial (RND)(RND)
0
20000
40000
60000
80000
100000
120000
140000
160000
180000
200000
1 40 79 118
157
196
235
274
313
352
391
430
469
508
547
586
625
664
703
742
781
820
859
898
937
976
Ciclos
Fu
nci
ón
Eva
luac
ión
sol. actual sol. mejor
0
10000
20000
30000
40000
50000
60000
70000
1 40 79 118
157
196
235
274
313
352
391
430
469
508
547
586
625
664
703
742
781
820
859
898
937
976
Ciclos
Fu
nci
ón
Eva
luac
ión
sol. actual sol. mejor
Solución Inicial con Heurística Constructiva Solución Inicial “Mala”
Resultados: Tiempos de Resultados: Tiempos de procesamientoprocesamiento
Hardware utilizadoHardware utilizado Pentium III – 700MhzPentium III – 700Mhz 128 MB de RAM128 MB de RAM
PlataformaPlataforma Windows 2000 - Edición ProfesionalWindows 2000 - Edición Profesional
Lotes de 51 páginas:Lotes de 51 páginas: 75 Secciones (126 75 Secciones (126 Avisos DestacadosAvisos Destacados)) Tamaño de Ventana: 10 páginasTamaño de Ventana: 10 páginas aprox. 2 minutos aprox. 2 minutos 1.000 iteraciones / Ventana1.000 iteraciones / Ventana 40 % Vecinos40 % Vecinos
Lote de 1.140 páginas:Lote de 1.140 páginas: 1.000 Secciones (1.554 1.000 Secciones (1.554 Avisos DestacadosAvisos Destacados)) Tamaño de Ventana: 10 páginasTamaño de Ventana: 10 páginas aprox. 25 minutos aprox. 25 minutos 1.000 iteraciones / Ventana1.000 iteraciones / Ventana 40 % Vecinos40 % Vecinos
Resultados: Comparación conResultados: Comparación con Las Páginas AmarillasLas Páginas Amarillas
REAL PACF PASF
Páginas 51 51 51
Páginas en Overflow 0 0 0
Fuera de sección 0 0 0
% Fillers 1,60 1,72 1,69
% Burbujas 0,00 0,03 0,07
#Avisos a dist.0 28 25 24
# Avisos a dist.1 17 19 28
# Avisos a dist.2 27 27 18
# Avisos a dist.3 7 7 8
# Avisos a dist.4 12 17 17
# Avisos a dist.5 13 11 11
# Avisos a dist.6 3 11 11
# Avisos a dist.7 11 1 1
# Avisos a dist.8 2 2 2
# Avisos a dist.9 6 6 6
““Disimulado” con Disimulado” con justificado verticaljustificado vertical
Intervención manualIntervención manual
0
5
10
15
20
25
30
#0 #1 #2 #3 #4 #5 #6 #7 #8 #9
Dist. desde encabezado
Can
t. d
e a
vis
os
REAL
PACF
PASF
Comparativa BT – Distribución de Avisos Destacados en páginas
Hoja de RutaHoja de Ruta
ObjetivosObjetivos Descripción del ProblemaDescripción del Problema Marco TeóricoMarco Teórico Representación propuestaRepresentación propuesta ImplementaciónImplementación ResultadosResultados ConclusionesConclusiones
ConclusionesConclusiones
Estrategia aplicable al Estrategia aplicable al Problema de PaginaciónProblema de Paginación.. Comparación con PA.Comparación con PA. Representación elegida produjo buenos resultados con Representación elegida produjo buenos resultados con
Búsqueda Tabú.Búsqueda Tabú. Componentes elegidos tuvieron muy buen desempeño.Componentes elegidos tuvieron muy buen desempeño. Robustez: no depende de la Solución Inicial implementada.Robustez: no depende de la Solución Inicial implementada. Rápida convergencia a “buenas soluciones”.Rápida convergencia a “buenas soluciones”. Tiempos aceptables para sistemas interactivos.Tiempos aceptables para sistemas interactivos. Parámetros de Referencia: buenos resultados sobre varios Parámetros de Referencia: buenos resultados sobre varios
lotes de prueba (de diferentes características).lotes de prueba (de diferentes características). Interfase: las funcionalidades implementadas superan Interfase: las funcionalidades implementadas superan
nuestras propias expectativas.nuestras propias expectativas.
Posibles MejorasPosibles Mejoras
Distribución de Distribución de Avisos DestacadosAvisos Destacados en la en la página:página: Combinar las heurísticas implementadasCombinar las heurísticas implementadas
Combinaciones de los métodos “apilar” y “acostar” podrían Combinaciones de los métodos “apilar” y “acostar” podrían llevarnos a obtener mejores resultados.llevarnos a obtener mejores resultados.
Desarrollar nuevas heurísticasDesarrollar nuevas heurísticas Búsqueda localBúsqueda local Método exhaustivoMétodo exhaustivo
““Reconocimiento de Bloques”Reconocimiento de Bloques” Tratar dos o más Tratar dos o más Avisos DestacadosAvisos Destacados como un único objeto y como un único objeto y
reubicarlos como talreubicarlos como tal
Posibles Mejoras (cont.)Posibles Mejoras (cont.)
Búsqueda Tabú:Búsqueda Tabú: Incluir atributos de FrecuenciaIncluir atributos de Frecuencia
Incorporar características de uso de Memoria de Largo Incorporar características de uso de Memoria de Largo PlazoPlazo
Implementar Soluciones EliteImplementar Soluciones Elite Para el mantenimiento de buenas soluciones obtenidas Para el mantenimiento de buenas soluciones obtenidas
a lo largo de la búsqueda, para posteriores a lo largo de la búsqueda, para posteriores profundizacionesprofundizaciones
Ampliar el Criterio de ParadaAmpliar el Criterio de Parada Cantidad de iteraciones de no mejora (como alternativa Cantidad de iteraciones de no mejora (como alternativa
para la finalización)para la finalización)
Trabajos futurosTrabajos futuros
Desarrollo de aplicación comercial, tomando como base el Desarrollo de aplicación comercial, tomando como base el prototipo implementado (con la estrategia propuesta)prototipo implementado (con la estrategia propuesta)
Funcionalidades adicionales:Funcionalidades adicionales: Elementos “Ancla”: identificar rápidamente (por orden alfabético) un Elementos “Ancla”: identificar rápidamente (por orden alfabético) un
Aviso LinealAviso Lineal que referencie a un que referencie a un Aviso DestacadoAviso Destacado dentro de la dentro de la publicación. publicación.
Justificar verticalmente los Justificar verticalmente los Avisos LinealesAvisos Lineales: “disimular” el espacio de : “disimular” el espacio de desperdicio en las columnas.desperdicio en las columnas.
Manejar contenido dentro de los avisos: incluir gráfica y texto dentro Manejar contenido dentro de los avisos: incluir gráfica y texto dentro de los elementos (de los elementos (Avisos DestacadosAvisos Destacados, , LinealesLineales y y de Rellenode Relleno), mejoraría ), mejoraría la orientación del usuario del sistema.la orientación del usuario del sistema.
Salida para impresión en formato standard: formato Postscript y/o EPS.Salida para impresión en formato standard: formato Postscript y/o EPS. Iniciar o retomar el proceso de paginación desde una página Iniciar o retomar el proceso de paginación desde una página
cualquiera (y no necesariamente desde la primera página).cualquiera (y no necesariamente desde la primera página).
Preguntas …Preguntas …
top related