Rectangle Packing Problem Moisés Domínguez García Antonio José Medina Rivero Beatriz A....
-
Upload
reyna-barrio -
Category
Documents
-
view
3 -
download
0
Transcript of Rectangle Packing Problem Moisés Domínguez García Antonio José Medina Rivero Beatriz A....
![Page 1: Rectangle Packing Problem Moisés Domínguez García Antonio José Medina Rivero Beatriz A. Izquierdo Marrero Johannes Matiasch.](https://reader036.fdocuments.net/reader036/viewer/2022062511/54d53720497959c2518b49a5/html5/thumbnails/1.jpg)
Rectangle Packing Problem
Moisés Domínguez GarcíaAntonio José Medina RiveroBeatriz A. Izquierdo Marrero
Johannes Matiasch
![Page 2: Rectangle Packing Problem Moisés Domínguez García Antonio José Medina Rivero Beatriz A. Izquierdo Marrero Johannes Matiasch.](https://reader036.fdocuments.net/reader036/viewer/2022062511/54d53720497959c2518b49a5/html5/thumbnails/2.jpg)
Índice◦Introducción
2Rectangle Packing Problem
![Page 3: Rectangle Packing Problem Moisés Domínguez García Antonio José Medina Rivero Beatriz A. Izquierdo Marrero Johannes Matiasch.](https://reader036.fdocuments.net/reader036/viewer/2022062511/54d53720497959c2518b49a5/html5/thumbnails/3.jpg)
Rectangle Packing Problem 3
Bibliografía:
http://en.wikipedia.org/wiki/Packing_problem
http://www.csc.liv.ac.uk/~epa/index.html
Transparencias sobre Corte y Empaquetado-Vienna University of Technology
![Page 4: Rectangle Packing Problem Moisés Domínguez García Antonio José Medina Rivero Beatriz A. Izquierdo Marrero Johannes Matiasch.](https://reader036.fdocuments.net/reader036/viewer/2022062511/54d53720497959c2518b49a5/html5/thumbnails/4.jpg)
Rectangle Packing Problem 4
Heurística
Una heurística es una técnica que encuentrasoluciones buenas (casi óptimas) con un costecomputacional razonable, pero que no es capaz, enmuchos casos, de garantizar ni la factibilidad, ni laoptimalidad, ni establecer lo cerca de laoptimalidad que está una solución factibleparticular.
Colin R. Reeves
![Page 5: Rectangle Packing Problem Moisés Domínguez García Antonio José Medina Rivero Beatriz A. Izquierdo Marrero Johannes Matiasch.](https://reader036.fdocuments.net/reader036/viewer/2022062511/54d53720497959c2518b49a5/html5/thumbnails/5.jpg)
Rectangle Packing Problem 5
Rectangle Packing Problem
o Descripción del problema:
Dado un conjunto de n items bidimensionales(rectángulos),{i1 , i2 , . . . , in }, de
dimensiones respectivas (h(i1), w(i1)), (h(i2),
w(i2)), . . . , (h(in), w(in)), encontrar el
rectángulo de menor área que los contiene. Nose permiten rotaciones ni solapamientos de lositems.
![Page 6: Rectangle Packing Problem Moisés Domínguez García Antonio José Medina Rivero Beatriz A. Izquierdo Marrero Johannes Matiasch.](https://reader036.fdocuments.net/reader036/viewer/2022062511/54d53720497959c2518b49a5/html5/thumbnails/6.jpg)
Rectangle Packing Problem 6
Ejemplo para la colocación de 50 rectángulos:
![Page 7: Rectangle Packing Problem Moisés Domínguez García Antonio José Medina Rivero Beatriz A. Izquierdo Marrero Johannes Matiasch.](https://reader036.fdocuments.net/reader036/viewer/2022062511/54d53720497959c2518b49a5/html5/thumbnails/7.jpg)
Rectangle Packing Problem 7
Criterios de evaluación
-) Duración del ejecución (en ms)
-) Porcentaje de Basura :
basura (%) = ((areaut - areamin) * 100) / areaut
-) 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.
![Page 8: Rectangle Packing Problem Moisés Domínguez García Antonio José Medina Rivero Beatriz A. Izquierdo Marrero Johannes Matiasch.](https://reader036.fdocuments.net/reader036/viewer/2022062511/54d53720497959c2518b49a5/html5/thumbnails/8.jpg)
Rectangle 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!
![Page 9: Rectangle Packing Problem Moisés Domínguez García Antonio José Medina Rivero Beatriz A. Izquierdo Marrero Johannes Matiasch.](https://reader036.fdocuments.net/reader036/viewer/2022062511/54d53720497959c2518b49a5/html5/thumbnails/9.jpg)
Rectangle 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.
![Page 10: Rectangle Packing Problem Moisés Domínguez García Antonio José Medina Rivero Beatriz A. Izquierdo Marrero Johannes Matiasch.](https://reader036.fdocuments.net/reader036/viewer/2022062511/54d53720497959c2518b49a5/html5/thumbnails/10.jpg)
Rectangle Packing Problem 10
Paso 3: Fijar el ancho
-) Heurística de Mediana:
#mediana = n / Z2 Z ... valor heurístico
n ... #rectángulos-) Heurística de Máximos:
#máximos = log5(nZ)
El ancho fijado (anchof) es la suma de las #mediana / los #máximos.
-) Dependiendo de la mínima área posible: anchof = (areamin * (1 + 1/n)
![Page 11: Rectangle Packing Problem Moisés Domínguez García Antonio José Medina Rivero Beatriz A. Izquierdo Marrero Johannes Matiasch.](https://reader036.fdocuments.net/reader036/viewer/2022062511/54d53720497959c2518b49a5/html5/thumbnails/11.jpg)
Rectangle 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)
![Page 12: Rectangle Packing Problem Moisés Domínguez García Antonio José Medina Rivero Beatriz A. Izquierdo Marrero Johannes Matiasch.](https://reader036.fdocuments.net/reader036/viewer/2022062511/54d53720497959c2518b49a5/html5/thumbnails/12.jpg)
Rectangle Packing Problem 12
Paso 5: Conseguir la solución inicial mediante GRASP
Tipos de GRASP:
- BottomLeft
- BottomLeftImproved
- BestFit
- MultiGRASP (!)
![Page 13: Rectangle Packing Problem Moisés Domínguez García Antonio José Medina Rivero Beatriz A. Izquierdo Marrero Johannes Matiasch.](https://reader036.fdocuments.net/reader036/viewer/2022062511/54d53720497959c2518b49a5/html5/thumbnails/13.jpg)
Rectangle Packing Problem 13
Implementación BottomLeft
freeSpace: contiene todo el espacio libre
1) 2)
1) {<(7,0),1>, <(5,1),3>, <(0,2),3>, <(0,4),8>}2) {<(7,0),1>, <(5,1),3>, <(4,4),4>, <(0,6),8>}
![Page 14: Rectangle Packing Problem Moisés Domínguez García Antonio José Medina Rivero Beatriz A. Izquierdo Marrero Johannes Matiasch.](https://reader036.fdocuments.net/reader036/viewer/2022062511/54d53720497959c2518b49a5/html5/thumbnails/14.jpg)
Rectangle Packing Problem 14
BottomLeft vs. BottomLeftImproved
freeSpace: contiene todo el espacio libre
BL: BLI:
BL: {<(7,0),1>, <(5,1),3>, <(4,4),4>, <(0,6),8>}BLI: {<(7,0),1,>, <(5,1),3,>, <(0,2),3,2>, <(4,4),4,>, <(0,6),8,>}
![Page 15: Rectangle Packing Problem Moisés Domínguez García Antonio José Medina Rivero Beatriz A. Izquierdo Marrero Johannes Matiasch.](https://reader036.fdocuments.net/reader036/viewer/2022062511/54d53720497959c2518b49a5/html5/thumbnails/15.jpg)
Rectangle 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)
![Page 16: Rectangle Packing Problem Moisés Domínguez García Antonio José Medina Rivero Beatriz A. Izquierdo Marrero Johannes Matiasch.](https://reader036.fdocuments.net/reader036/viewer/2022062511/54d53720497959c2518b49a5/html5/thumbnails/16.jpg)
Rectangle Packing Problem 16
Ejemplo BestFit (n = 100)
% basura: 14.382109%
![Page 17: Rectangle Packing Problem Moisés Domínguez García Antonio José Medina Rivero Beatriz A. Izquierdo Marrero Johannes Matiasch.](https://reader036.fdocuments.net/reader036/viewer/2022062511/54d53720497959c2518b49a5/html5/thumbnails/17.jpg)
Rectangle Packing Problem 17
Ejemplo BottomLeft (n = 100)
% basura: 11.593794%
![Page 18: Rectangle Packing Problem Moisés Domínguez García Antonio José Medina Rivero Beatriz A. Izquierdo Marrero Johannes Matiasch.](https://reader036.fdocuments.net/reader036/viewer/2022062511/54d53720497959c2518b49a5/html5/thumbnails/18.jpg)
Rectangle Packing Problem 18
Ejemplo BottomLeftImproved (n = 100)
% basura: 4.8690095%
![Page 19: Rectangle Packing Problem Moisés Domínguez García Antonio José Medina Rivero Beatriz A. Izquierdo Marrero Johannes Matiasch.](https://reader036.fdocuments.net/reader036/viewer/2022062511/54d53720497959c2518b49a5/html5/thumbnails/19.jpg)
Rectangle 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: 4.3545365
![Page 20: Rectangle Packing Problem Moisés Domínguez García Antonio José Medina Rivero Beatriz A. Izquierdo Marrero Johannes Matiasch.](https://reader036.fdocuments.net/reader036/viewer/2022062511/54d53720497959c2518b49a5/html5/thumbnails/20.jpg)
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
![Page 21: Rectangle Packing Problem Moisés Domínguez García Antonio José Medina Rivero Beatriz A. Izquierdo Marrero Johannes Matiasch.](https://reader036.fdocuments.net/reader036/viewer/2022062511/54d53720497959c2518b49a5/html5/thumbnails/21.jpg)
Rectangle 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.
![Page 22: Rectangle Packing Problem Moisés Domínguez García Antonio José Medina Rivero Beatriz A. Izquierdo Marrero Johannes Matiasch.](https://reader036.fdocuments.net/reader036/viewer/2022062511/54d53720497959c2518b49a5/html5/thumbnails/22.jpg)
Rectangle Packing Problem 22
Búsqueda local: HybridNeighborhood_All
Idea: intercambiar 2 rectángulos distintos en el orden; en la 1a iteración cogalo a la última posición (2a 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.
![Page 23: Rectangle Packing Problem Moisés Domínguez García Antonio José Medina Rivero Beatriz A. Izquierdo Marrero Johannes Matiasch.](https://reader036.fdocuments.net/reader036/viewer/2022062511/54d53720497959c2518b49a5/html5/thumbnails/23.jpg)
Rectangle 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.
![Page 24: Rectangle Packing Problem Moisés Domínguez García Antonio José Medina Rivero Beatriz A. Izquierdo Marrero Johannes Matiasch.](https://reader036.fdocuments.net/reader036/viewer/2022062511/54d53720497959c2518b49a5/html5/thumbnails/24.jpg)
Rectangle 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) + 2
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.
![Page 25: Rectangle Packing Problem Moisés Domínguez García Antonio José Medina Rivero Beatriz A. Izquierdo Marrero Johannes Matiasch.](https://reader036.fdocuments.net/reader036/viewer/2022062511/54d53720497959c2518b49a5/html5/thumbnails/25.jpg)
Rectangle 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:
anchof (i) = anchof (i-1) + i * -1i
Ejemplo (anchof (0) = 10):
anchof (1) = 9
anchof (2) = 11
anchof (3) = 8
anchof (4) = 12
...
Funciona MUY bien con muchos rectángulos. Funciona bien con todos los GRASPs!
![Page 26: Rectangle Packing Problem Moisés Domínguez García Antonio José Medina Rivero Beatriz A. Izquierdo Marrero Johannes Matiasch.](https://reader036.fdocuments.net/reader036/viewer/2022062511/54d53720497959c2518b49a5/html5/thumbnails/26.jpg)
Rectangle 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.
![Page 27: Rectangle Packing Problem Moisés Domínguez García Antonio José Medina Rivero Beatriz A. Izquierdo Marrero Johannes Matiasch.](https://reader036.fdocuments.net/reader036/viewer/2022062511/54d53720497959c2518b49a5/html5/thumbnails/27.jpg)
Rectangle Packing Problem 27
Variable Neighborhood Search
Idea: Generar aleatoriamente un vecino x’ del k-ésimo entorno de x (x’ Nk(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 N1 (k := 1). En otro caso, hacer k := k + 1.
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.
![Page 28: Rectangle Packing Problem Moisés Domínguez García Antonio José Medina Rivero Beatriz A. Izquierdo Marrero Johannes Matiasch.](https://reader036.fdocuments.net/reader036/viewer/2022062511/54d53720497959c2518b49a5/html5/thumbnails/28.jpg)
Rectangle Packing Problem 28
Recocido Simulado
Idea: Crear una solución x’ Nk(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 paccept y T está reducido. Repetir hasta criterio de terminación está conseguido (p.ex.: T < Tmin).
Implementación: Variar el ancho fijado en un entorno definido aleatoriamente. Utilisar geometric cooling con alpha eligible para reducir T.
T0 = areaut – areamin
paccept = e -|areaut(x’) - areaut(x)|/T
Funciona bien con muchos rectángulos con poco gasto al mismo tiempo.
![Page 29: Rectangle Packing Problem Moisés Domínguez García Antonio José Medina Rivero Beatriz A. Izquierdo Marrero Johannes Matiasch.](https://reader036.fdocuments.net/reader036/viewer/2022062511/54d53720497959c2518b49a5/html5/thumbnails/29.jpg)
Rectangle Packing Problem 29
En total
BottomLeft x 5BottomLeftImproved x 5BestFit x 1
11MultiGRASP x 2
22 GRASPs
Representaciones x 2Búsquedas locales x 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 Simulado x 1
21 heurísticas de mejora
representacion de soluciónes x 2= 22 x 21 x 2 = 924 heurísticas combinadas!!!
![Page 30: Rectangle Packing Problem Moisés Domínguez García Antonio José Medina Rivero Beatriz A. Izquierdo Marrero Johannes Matiasch.](https://reader036.fdocuments.net/reader036/viewer/2022062511/54d53720497959c2518b49a5/html5/thumbnails/30.jpg)
Rectangle 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
![Page 31: Rectangle Packing Problem Moisés Domínguez García Antonio José Medina Rivero Beatriz A. Izquierdo Marrero Johannes Matiasch.](https://reader036.fdocuments.net/reader036/viewer/2022062511/54d53720497959c2518b49a5/html5/thumbnails/31.jpg)
Rectangle Packing Problem 31
Evaluación GRASPs
![Page 32: Rectangle Packing Problem Moisés Domínguez García Antonio José Medina Rivero Beatriz A. Izquierdo Marrero Johannes Matiasch.](https://reader036.fdocuments.net/reader036/viewer/2022062511/54d53720497959c2518b49a5/html5/thumbnails/32.jpg)
Rectangle Packing Problem 32
BottomLeft vs. BottomLeftDecreasingHeight
![Page 33: Rectangle Packing Problem Moisés Domínguez García Antonio José Medina Rivero Beatriz A. Izquierdo Marrero Johannes Matiasch.](https://reader036.fdocuments.net/reader036/viewer/2022062511/54d53720497959c2518b49a5/html5/thumbnails/33.jpg)
Rectangle Packing Problem 33
Representación BottomLeft vs. BottomLeftImproved
![Page 34: Rectangle Packing Problem Moisés Domínguez García Antonio José Medina Rivero Beatriz A. Izquierdo Marrero Johannes Matiasch.](https://reader036.fdocuments.net/reader036/viewer/2022062511/54d53720497959c2518b49a5/html5/thumbnails/34.jpg)
Rectangle Packing Problem 34
Evaluación GRASPs
![Page 35: Rectangle Packing Problem Moisés Domínguez García Antonio José Medina Rivero Beatriz A. Izquierdo Marrero Johannes Matiasch.](https://reader036.fdocuments.net/reader036/viewer/2022062511/54d53720497959c2518b49a5/html5/thumbnails/35.jpg)
Rectangle Packing Problem 35