La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Rectangle Packing Problem Moisés Domínguez García Antonio José Medina Rivero Beatriz A. Izquierdo Marrero Johannes Matiasch.

Presentaciones similares


Presentación del tema: "Rectangle Packing Problem Moisés Domínguez García Antonio José Medina Rivero Beatriz A. Izquierdo Marrero Johannes Matiasch."— Transcripción de la presentación:

1 Rectangle Packing Problem Moisés Domínguez García Antonio José Medina Rivero Beatriz A. Izquierdo Marrero Johannes Matiasch

2 Índice Índice Introducción 2 Rectangle Packing Problem

3 Bibliografía: Transparencias sobre Corte y Empaquetado -Vienna University of Technology 3Rectangle Packing Problem

4 Heurística Heurística Una heurística es una técnica que encuentra soluciones buenas (casi óptimas) con un coste computacional razonable, pero que no es capaz, en muchos casos, de garantizar ni la factibilidad, ni la optimalidad, ni establecer lo cerca de la optimalidad que está una solución factible particular. Colin R. Reeves 4Rectangle Packing Problem

5 Rectangle Packing Problem 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. 5Rectangle Packing Problem

6 Ejemplo para la colocación de 50 rectángulos: 6Rectangle Packing Problem

7 Criterios de evaluación -) Duración del 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. 7Rectangle Packing Problem

8 Resolviendo el problema Paso 1: Crear la entrada -) Leer los rectángulos de una lista en el código. -) Crear rectángulos con tamanos diferentes totalmente de hazard. -) Cortar un rectángulo de tamano selecionado en piezas sabemos la solución óptima! 8Rectangle Packing Problem

9 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. 9Rectangle Packing Problem

10 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) 10Rectangle Packing Problem

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

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

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

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

15 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) 15Rectangle Packing Problem

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

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

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

19 Ejemplo MultiGRASP / BLImproved (n = 100) Idea: ejecutar un normal GRASP con anchos fijados diferentes -> utilisa BestFit, BottomLeft o BottomLeftImproved as nested GRASP % basura: Rectangle Packing Problem

20 Paso 6: Mejorar la solución inicial - Búsquedas locales (todos sin/con 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 20Rectangle Packing Problem

21 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 los permutaciones diferentes) o con muchos rectángulos. - Funciona bien con BottomLeft y BottomLeftImproved. 21Rectangle Packing Problem

22 Búsqueda local: HybridNeighborhood_All - Idea: intercambiar 2 rectángulos distintos en el orden; en la 1 a iteración cogalo a la última posición (2 a iteración: penúltima,...) y 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 puede encontrar casi todos los permutaciones diferentes) o con muchos rectángulos. - Funciona bien con BottomLeft y BottomLeftImproved. 22Rectangle Packing Problem

23 Búsqueda local: HybridNeighborhood_End - Idea: Intercambiar 2 rectángulos distintos en el orden; empieza al fin del orden con (kStart+1)-rectángulos, para la próxima iteración intercambia increment- rectángulos más. Siempre intercambia estes rectángulos con otro rectángulo en cualquiera 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. 23Rectangle Packing Problem

24 Búsqueda local: DeterministicNeighborhood - Idea: intercambiar 2 rectángulos distintos en el orden; siempre utilisar el mismo esquema; la posición más a la izquierda se calcula con la formula seguiente: 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. 24Rectangle Packing Problem

25 Búsqueda local: VariableWidth - Idea: probar diferentes anchos fijados alrededor del original simétricamente; por eso utilisa 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! 25Rectangle Packing Problem

26 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 de mejorarlos con una búsqueda local - Funciona MUY bien con muchos rectángulos. - Funciona MUY bien con búsqueda local VariableWidth. 26Rectangle Packing Problem

27 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 nested búsqueda local (al menos teóricamente) valen todas las búsquedas locales de antes. - Funciona bien con muchos rectángulos. - Funciona mejor con la búsqueda local VariableWidth. 27Rectangle Packing Problem

28 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á modificado. Si x es peor que x, tambien puede ser acceptado con probabilidad p accept y T está reducido. Repetir hasta criterio de terminación está conseguido (p.ex.: T < T min ). - Implementación: Variar el ancho fijado en un entorno definido aleatoriamente. Utilisar geometric cooling con alpha eligible 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 con poco gasto al mismo tiempo. 28Rectangle Packing Problem

29 En total BottomLeft x 5 BottomLeftImproved x 5 BestFit x 1 11 MultiGRASPx 2 22 GRASPs Representacionesx 2 Búsquedas localesx 6 (teóricamente tambien sin/con entorno dinámino!) Búsqueda multiarranque x 6 (nested búsqueda local) Variable Neighborhood Search x 6 (nested búsqueda local) Recocido Simuladox 1 21 heurísticas de mejora representacion de soluciónesx 2 = 22 x 21 x 2 = 924 heurísticas combinadas!!! 29Rectangle Packing Problem

30 Evaluación - Cada heurística evaluada con cada número de rectángulos siempre al menos 3 veces valor medio - Cada heurística evaluada con 3 diferentes números 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 30Rectangle Packing Problem

31 Evaluación GRASPs 31Rectangle Packing Problem

32 BottomLeft vs. BottomLeftDecreasingHeight 32Rectangle Packing Problem

33 Representación BottomLeft vs. BottomLeftImproved 33Rectangle Packing Problem

34 Evaluación GRASPs 34Rectangle Packing Problem

35 35Rectangle Packing Problem


Descargar ppt "Rectangle Packing Problem Moisés Domínguez García Antonio José Medina Rivero Beatriz A. Izquierdo Marrero Johannes Matiasch."

Presentaciones similares


Anuncios Google