Moisés Domínguez García Antonio José Medina Rivero Beatriz A. Izquierdo Marrero Johannes Matiasch 131069105 Heurísticas 12 de Enero 2009.

Slides:



Advertisements
Presentaciones similares
Algoritmos de ordenación
Advertisements

El problema de Cutting Sheets
Non-guillotine 2D bin packing problem Eduardo Pérez Mederos Miguel Monterrey Varela Jaime González Valdés Óscar Mateos López.
ANÁLISIS ESTADÍSTICO de los RESULTADOS DEL AJUSTE
Tipos de errores Error de escala Error sistemático Error aleatorio Error total.
Bioestadística Distribuciones muestrales para variables cuantitativas.
8-Puzle consiste en un tablero cuadrado (3x3) en el que hay situados 8 bloques cuadrados numerados (con lo cual se deja un hueco del tamaño de un bloque).
1 Problemas de decisión Tipo particular de problemas de optimización Sistemas que evolucionan con el tiempo Se toman decisiones en momentos sucesivos de.
Búsqueda Binaria Castillo Soria Luis Fernando Méndez Tinajero Armando Pérez Ramos Susana.
Funciones en lenguaje C 2 Funciones Definición: – Las funciones son los bloques de construcción básicos de C. Dentro de ellas se da toda la actividad.
¿Qué es Excel? Taller Básico de Excel (3/5)
Internet Protocols (IPs)
Ram Delta Systems We bring you a better future… Co-Med On Line
Estructuras de Control en Visual Basic.net
TABLAS DE FRECUENCIAS CON DATOS AGRUPADOS 8° BÁSICO
Excel: Fórmulas y funciones
Técnica de evaluación y revisión de programas
Introducción La optimización trata de buscar el punto óptimo de una función objetivo cumpliendo con una serie de restricciones. El proceso de optimización.
INVESTIGACIÓN DE OPERACIONES
Estructuras de Control en Visual Basic.net
FUNCIONES EN EXCEL 2007.
Clase 8: Contraste de Hipótesis
Unidad 7: Nivel Interno Algunos Conceptos Importantes
Universidad Católica de Valencia Lección Inaugural: Curso
CREAR DIAGRAMA DE FLUJO
Matemáticas Discretas FACULTAD DE INGENIERIA DE SISTEMAS, CÓMPUTO Y TELECOMUNICACIONES Docente: Carlos A. Ruiz De La Cruz Melo Correo:
Programación Orientada Objetos
Introducción a la Física Newtoniana
Estadística Básica Curso de Estadística Básica MCC. Manuel Uribe Saldaña MCC. José Gonzalo Lugo Pérez SESION 3 MEDIDAS DE TENDENCIA CENTRAL Y MEDIDAS DE.
ALGORITMOS es un conjunto preescrito de instrucciones o reglas bien definidas, ordenadas y finitas que permite realizar una actividad mediante pasos.
Unidad 2. Algoritmos Unidad 4. Control de flujo
3.1 AREAS.
Introducción a las estructuras de datos
CODIFICACION DEL CANAL
Límites de sucesión INTEGRANTES : MIGUEL ANGEL ANTONIO PACHECO
Estructuras de Repetición Pseudocodigo1 Estructuras de Repetición Algoritmos Mientras Hacer-Mientras Para.
Juan José Bravo B., M.Sc. Solución de Modelos de Programación Lineal El Metodo Simplex Juan José Bravo B, M.Sc. ©
La mayoría de las variables aleatorias que se presentan en los estudios relacionados con las ciencias sociales, físicas y biológicas, por ejemplo, el peso.
La mayoría de las variables aleatorias que se presentan en los estudios relacionados con las ciencias sociales, físicas y biológicas, por ejemplo, el peso.
Capítulo 10 Test de Hipótesis Capítulo 10 Test de Hipótesis.
ESTIMACIÓN (Inferencia Estadística) Intervalos de Confianza
Excel Macros Macros Automáticas.
INFORMÁTICA II BLOQUE I: ALGORITMOS Y DIAGRAMAS DE FLUJO
Medidas de Tendencia Central
Antonio Jesús Roa Valverde
Sistemas de Representación Grafica
CÓMO RESOLVER LOS PROBLEMAS
Expositores: María Gracia León Nelson Arol Ruiz
Estructura de Datos M.C. J. Andrés V. F. FCC/BUAP
Commit out of order Ciclo 1: Detecto un load que fallo en L2 en el tope del ROB Load R3(F5)=R4(F4)+R2(F2) R2(F6)=R1(F1)+R3(F5) Branch R3(F5)
SISTEMAS U. D. 5 * 4º ESO E. Angel Prieto Benito
TEMAS *Arboles Binarios *listas Abiertas y Cerradas - Inserción - Recorrido - Eliminación *Pilas - Concepto - Inserción - Recorrido -
M. en TI. Omar Téllez Barrientos DOCENTE DE INFORMÁTICA GENERACIÓN DE PSEUDOCÓDIGOS Y ALGORITMOS
Análisis de rendimiento de dos algoritmos de búsqueda secuencial de texto con sus respectivas variantes Mauricio Ulate Quirós
Algoritmos de caminos más cortos
METODOS DE ORDENAMIENTO CHRISTIAN MICHAEL OBANDO GARCES JOAO ADRIAN BARIONUEVO.
RAZONAMIENTO CUANTITATIVO
Nelson Baloian, José A. Pino
Estructuras de Repetición Algoritmos
Texturizado.
Tamaño de la muestra. En una muestra probabilística cada individuo de la población a estudiar tiene una probabilidad conocida y no nula de ser seleccionado.
CIRCUITOS DIGITALES Profesor: Elmer Hugo Arellanos Tafur Unidad : 2 Semana : 7 Sesión : 12 Semestre: I.
Implementación de algoritmo para juegos. Algoritmo Minimax  El algoritmo de minimax en simples palabras consiste en la elección del mejor movimiento.
Espacio de estados: un problema se divide en un conjunto de pasos de resolución desde el inicio hasta el objetivo. Los estados y su relación de accesibilidad.
Diagrama de fujo. QUE ES UN DIAGRAMA DE FLUJO ? Un diagrama de flujo es la representación gráfica del flujo o secuencia de rutinas simples. Tiene la ventaja.
ALGORITMO DE ORDENAMIENTO POR BURBUJA. El método de la burbuja es uno de los mas simples, es tan fácil como comparar todos los elementos de una lista.
ORDENAMIENTO POR EL MÉTODO DEL SHAKER SORT (SACUDIDA)
UNIDAD V ESTRUCTURAS REPETITIVAS (Para)
Guías Modulares de Estudio Cálculo diferencial – Parte B.
Transcripción de la presentación:

Moisés Domínguez García Antonio José Medina Rivero Beatriz A. Izquierdo Marrero Johannes Matiasch Heurísticas 12 de Enero 2009

/40 Índice ◦Introducción  Bibliografía  Descripción del Problema  Criterios de Evaluación ◦Resolviendo el Problema Paso 1: Crear la entrada Paso 2: Preparar la entrada Paso 3: Fijar el ancho Paso 4: Seleccionar la representación de soluciones Paso 5: Conseguir la solución inicial mediante GRASP Paso 6: Mejorar la solución inicial ◦Evaluación ◦Trabajo Futuro ◦Ejecución del Problema Rectangle Packing Problem

/40 Bibliografía ◦Packing Problem (Wikipedia) ◦Packing-based VLSI module placement using genetic algorithm with sequence-pair representation.  A. Drakidis, R.J. Mack, R.E. Massara.  IEE Proc-Circuits Devices Syst., Vol. 153 No. 6 (2006) pp ◦Efficient Algorithms for 2-D Rectangle packing  ◦Cutting and Packing  Jakob Puchinger, Andreas M. Chwatal  Vienna University of Technology  neAD/folien/2dbp_slides.pdf Rectangle Packing Problem

/40 Rectangle Packing Problem o Descripción del problema: Dado un conjunto de n items bidimensionales (rectángulos),{i 1, i 2,..., i n }, de dimensiones respectivas (h(i 1 ), w(i 1 )), (h(i 2 ), w(i 2 )),..., (h(i n ), w(i n )), encontrar el rectángulo de menor área que los contiene. No se permiten rotaciones ni solapamientos de los items. Rectangle Packing Problem

/40 Ejemplo para la colocación de 50 rectángulos Rectangle Packing Problem

/40 Criterios de evaluación Criterios de evaluación -) Duración de la ejecución (en ms) -) Porcentaje de Basura basura (%) = ((area ut - area min ) * 100) / area ut -) Perímetro p = 2a* 2b Si el porcentaje de basura es igual en 2 soluciones distintas, la solución más optima es la que se obtiene del menor perímetro. Rectangle Packing Problem

/40 Resolviendo el problema Paso 1: Crear la entrada -) Leer los rectángulos de una lista en el código. -) Crear rectángulos con tamaños diferentes totalmente al azar. -) Cortar un rectángulo de tamaño selecionado en piezas  sabemos la solución óptima! Rectangle Packing Problem

/40 Paso 2: Preparar la entrada (Ordenación de los rectángulos) Criterios de ordenación: -) Primero la altura de forma descendiente y luego la anchura de forma descendiente. -) Primero la anchura de forma descendiente y luego la altura de forma descendiente. -) Primero la altura de forma ascendente y luego la anchura de forma ascendente. -) Primero la anchura de forma ascendente y luego la altura de forma ascendente. -) Seleccionamos aleatoriamente según el orden de creación. Rectangle Packing Problem

/40 Paso 3: Fijar el ancho -) Heurística de Mediana: #mediana =  n / Z 2  Z... valor heurístico n... #rectángulos -) Heurística de Máximos: #máximos =  log 5 (n Z )  El ancho fijado ( ancho f ) es la suma de las #mediana / los #máximos. -) Dependiendo de la mínima área posible: ancho f =   (area min * (1 + 1/  n)  Rectangle Packing Problem

/40 Paso 4: Seleccionar la representación de soluciones -) BottomLeft en combinación con el orden de la entrada -) BottomLeftImproved en combinación con el orden de la entrada -) Idea y prueba (pero ya no funciona): Bidirectional-Coding (valdría tambien como GRASP) Rectangle Packing Problem

/40 Paso 5: Conseguir la solución inicial mediante GRASP Tipos de GRASP: - BottomLeft - BottomLeftImproved - BestFit - MultiGRASP (!) Rectangle Packing Problem

/40 Implementación BottomLeft freeSpace: contiene todo el espacio libre 1) 2) 1) {,,, } 2) {,,, } Rectangle Packing Problem

/40 BottomLeft vs. BottomLeftImproved freeSpace: contiene todo el espacio libre BL: BLI: BL: {,,, } BLI: {,,,, } Rectangle Packing Problem

/40 SortedDoubleLinkedList Estructura de datos para realizar el freeSpace DoubleLinkedList: Clave: punto (X,Y) Criterias de orden “Y” : Y -> X (para BottomLeft y BottomLeftImproved) “X” : X -> Y (para BestFit) Rectangle Packing Problem

/40 Ejemplo BestFit (n = 100) % basura: % Rectangle Packing Problem

/40 Ejemplo BottomLeft (n = 100) % basura: % Rectangle Packing Problem

/40 Ejemplo BottomLeftImproved (n = 100) % basura: % Rectangle Packing Problem

/40 Ejemplo MultiGRASP / BLImproved (n = 100) Idea: ejecutar un GRASP “normal” con anchos fijados diferentes  utiliza BestFit, BottomLeft o BottomLeftImproved como GRASP anidado % basura: Límite Inferior: el ancho mayor de todos los rectángulos Límite Superior: Mínimo {ancho f * 3; Σ ancho rectángulos} Rectangle Packing Problem

/40 Paso 6: Mejorar la solución inicial - Búsquedas locales (todos con/sin entorno dínamico) -AleatoricNeighborhood -HybridNeighborhood_All -HybridNeighborhood_End -DeterministicNeighborhood -VariableWidth - Búsqueda multiarranque (sólo después de MultiGRASP) - Variable Neighborhood Search - Recocido Simulado - Lista de tabu para no probar el mismo intento otra vez Rectangle Packing Problem

/40 Búsqueda local: AleatoricNeighborhood - Idea: intercambiar 2 (o más) rectángulos distintos en el orden; selecionarlos sólo aleatoriamente - Ejemplo: [1, 2, 3, 4, 5, 6] [1, 2, 5, 4, 3, 6] [4, 2, 5, 1, 3, 6] [5, 2, 4, 1, 3, 6]... - Funciona bien con muy pocos rectángulos (se puede encontrar casi todos las permutaciones diferentes) o con muchos rectángulos. - Funciona bien con BottomLeft y BottomLeftImproved. Rectangle Packing Problem

/40 Búsqueda local: HybridNeighborhood_All - Idea: intercambiar 2 rectángulos distintos de orden; en la 1 a iteración coger la última posición (2 a iteración: penúltima,...) e intercambiarlo con otro rectángulo en cualquiera posición aleatoriamente - Ejemplo: [R3, R2, R0, R1] [R1, R2, R0, R3] [R0, R2, R1, R3] [R0, R3, R1, R2] [R3, R0, R1, R2] [R3, R2, R1, R0]... - Funciona bien con muy pocos rectángulos (se pueden encontrar casi todas las permutaciones diferentes) o con muchos rectángulos. - Funciona bien con BottomLeft y BottomLeftImproved. Rectangle Packing Problem

/40 Búsqueda local: HybridNeighborhood_End - Idea: Intercambiar 2 rectángulos distintos de orden; empieza al final del orden con (kStart+1)-rectángulos, para la próxima iteración intercambia increment- rectángulos más. Siempre intercambia estos rectángulos con otros rectángulos en cualquier posición aleatoriamente. - Ejemplo (kStart=1, increment=1): [R3, R1, R2, R0][R0, R2, R1, R3] [R3, R0, R2, R1][R1, R2, R0, R3] [R2, R0, R3, R1][R1, R3, R0, R2] [R2, R0, R1, R3][R1, R3, R2, R0] [R2, R0, R3, R1][R1, R2, R3, R0] [R2, R3, R0, R1][R0, R2, R3, R1] [R2, R1, R0, R3][R0, R1, R3, R2] [R0, R1, R2, R3]... - Funciona bien con muchos rectángulos. - Funciona bien con BestFit. Rectangle Packing Problem

/40 Búsqueda local: DeterministicNeighborhood - Idea: intercambia 2 rectángulos distintos de orden; siempre utiliza el mismo esquema; la posición más a la izquierda se calcula con la fórmula siguiente: pos =  1/2 +  (1/4 + 2 * #iterations)  Ejemplo (#iterations = 8): [R4, R3, R2, R1, R0, R5] [R4, R3, R2, R1, R5, R0] [R4, R3, R2, R0, R5, R1] [R4, R3, R1, R0, R5, R2] [R4, R2, R1, R0, R5, R3] [R4, R2, R1, R5, R0, R3] [R4, R2, R0, R5, R1, R3] [R4, R1, R0, R5, R2, R3] - Funciona bien con muchos rectángulos. - Funciona bien con BestFit. Rectangle Packing Problem

/40 Búsqueda local: VariableWidth - Idea: probar diferentes anchos fijados alrededor del original simétricamente; por eso utiliza la función para calcular el ancho fijado para la iteración i: ancho f (i) = ancho f (i-1) + i * -1 i - Ejemplo (ancho f (0) = 10): ancho f (1) = 9 ancho f (2) = 11 ancho f (3) = 8 ancho f (4) = Funciona MUY bien con muchos rectángulos. - Funciona bien con todos los GRASPs! Rectangle Packing Problem

/40 Búsqueda multiarranque - Idea: después de ejecutar MultiGRASP ya tenemos un conjunto de soluciones donde podemos buscar mínimos (y máximos) con poco gasto  buscamos mínimos y probamos como mejorarlos con una búsqueda local - Funciona MUY bien con muchos rectángulos. - Funciona MUY bien con búsqueda local VariableWidth. Rectangle Packing Problem

/40 Variable Neighborhood Search - Idea: Generar aleatoriamente un vecino x’ del k- ésimo entorno de x (x’  N k (x)). Aplicar una búsqueda local desde x’; sea x’’ el óptimo local obtenido. Si x’’ es mejor que x, mover (x := x’’) y continuar la búsqueda con N 1 (k := 1). En otro caso, hacer k := k Implementación: Intercambio de k rectángulos aleatoriamente (como AleatoricNeighborhood). Para la búsqueda local “anidada” (al menos teóricamente) valen todas las búsquedas locales anteriores. - Funciona bien con muchos rectángulos. - Funciona mejor con la búsqueda local VariableWidth. Rectangle Packing Problem

/40 Recocido Simulado - Idea: Crear una solución x’  N k (x) aleatoriamente. Si x’ es mejor que x  x := x’, la temperatura T no está modificada. Si x’ es peor que x, tambien puede ser aceptado con probabilidad p accept y T está reducido. Repetir hasta el criterio de parada (p.ej.: T < T min ). - Implementación: Variar el ancho fijado en un entorno definido aleatoriamente. Utilizar geometric cooling con alfa elegible para reducir T. T 0 = area ut – area min p accept = e -|area ut (x’) - area ut (x)|/T - Funciona bien con muchos rectángulos y con poco gasto al mismo tiempo. Rectangle Packing Problem

/40 En total BottomLeft x 5 (ordenes diferentes) BottomLeftImproved x 5 (ordenes diferentes) BestFit x 1 11 MultiGRASPx 2 22 GRASPs Búsquedas Localesx 5 (teóricamente también con/sin entorno dinámico!) Búsqueda Multiarranque x 5 (búsquedas locales “anidadas”) Variable Neighborhood Search x 5 (búsquedas locales “anidadas”) Recocido Simuladox 1 16 heurísticas de mejora Representacion de solucionesx 2 = 22 x 16 x 2 = 712 heurísticas combinadas!!! Rectangle Packing Problem

/40 Evaluación - Cada heurística está evaluada con cada número de rectángulos siempre al menos 3 veces  valor medio - Cada heurística está evaluada con 3 números diferentes de rectángulos, es decir con 10, 100 y 2000 rectángulos. - Siempre con los mismos ajustes. - Equipo para la evaluación: -Intel Pentium Cual Core 1.73 GHz -2 GB RAM -Windows Vista 32-Bit Rectangle Packing Problem

/40 GRASPs Rectangle Packing Problem

/40 BottomLeft vs. BottomLeftDecreasingHeight Rectangle Packing Problem

/40 Representación BottomLeft vs. BottomLImproved Rectangle Packing Problem

/40 AleatoricNeighborh. vs. DeterministicNeighborh. Rectangle Packing Problem

/40 DeterministicNeighborhood vs. VariableWidth Rectangle Packing Problem

/40 GRASPs Rectangle Packing Problem

/40 Heurísticas combinadas Rectangle Packing Problem

/40 Heurísticas combinadas Rectangle Packing Problem

/40 Heurísticas con BottomLeft(Improved) Rectangle Packing Problem

/40 Solución optima encontrada (n=15) Rectangle Packing Problem

/40 Trabajo futuro -) Implementar “threads”  paralelismo (para MultiGRASP, búsqueda multiarranque) -) Probar/implementar nueva representación (p.ej. Component-Graph, Bidireccional-Coding,...) -) Identificar grupos de rectángulos “óptimos” -) GRASP LinePacking (GRASP de dos fases)  solución guillotina! -) Adaptar el GUI/nuevo GUI para strip-packing Rectangle Packing Problem