sistema inteligente de corte en la - um.es · de forma que optimicen alguna función del área que...

48
Sistema Inteligente de Corte en la Industria Textil Strip Packing Problem Jesús David Beltrán Cano, José Eduardo Calderón Benito, Rayco Jorge Cabrera ([email protected][email protected]) Departamento de Estadística, Investigación Operativa y Computación, Universidad de La Laguna Tutores: José Andrés Moreno Pérez, José Marcos Moreno Vega INTRODUCCIÓN Uno de los problemas más importantes en la industria textil es el de determinar el patrón de corte con que obtener las piezas necesarias para confeccionar la ropa. El patrón de corte determina la posición de cada pieza en el rollo rectangular de tela. El objetivo es obtener la distribución que usa menos tela. Aunque las piezas requeridas para la confección son irregulares, para abordar el problema se considera el menor rectángulo que contiene a cada pieza y entonces se determina el mejor patrón de corte para los rectángulos. Este último problema es conocido como Strip Packing Problem. 1

Upload: duongkhanh

Post on 20-Sep-2018

216 views

Category:

Documents


0 download

TRANSCRIPT

Sistema Inteligente de Corte en la

Industria Textil

Strip Packing Problem

Jesús David Beltrán Cano, José Eduardo Calderón Benito,

Rayco Jorge Cabrera

([email protected][email protected])

Departamento de Estadística, Investigación Operativa y

Computación, Universidad de La Laguna

Tutores: José Andrés Moreno Pérez, José Marcos Moreno Vega

INTRODUCCIÓN

Uno de los problemas más importantes en la industria textil es el de determinar el

patrón de corte con que obtener las piezas necesarias para confeccionar la ropa. El patrón

de corte determina la posición de cada pieza en el rollo rectangular de tela. El objetivo es

obtener la distribución que usa menos tela. Aunque las piezas requeridas para la confección

son irregulares, para abordar el problema se considera el menor rectángulo que contiene a

cada pieza y entonces se determina el mejor patrón de corte para los rectángulos. Este

último problema es conocido como Strip Packing Problem.

1

En el Strip Packing Problem, dado un objeto rectangular de amplitud fija w y altura

indeterminada, y un conjunto, R, de rectángulos con al menos uno de sus lados menor que

w, se desea empaquetar el conjunto R en el objeto rectangular utilizando el menor espacio

posible (o lo que es lo mismo, se pretende minimizar la altura del empaquetado). El Strip

Packing Problem pertenece a la clase de los problemas de corte y empaquetado. Estos

tienen gran interés práctico, ya que aparecen frecuentemente en actividades relacionadas

con la industria textil, de confección de calzado, carga de contenedores o almacenaje en

naves industriales. El ahorro económico que supone la correcta resolución de estos

problemas justifica la dedicación que le ha prestado la comunidad científica.

Las estrategias empleadas hasta ahora en la resolución del Strip Packing Problem

pertenecen, en su gran mayoría, a la clase de los Procedimientos Heurísticos. Se han

aplicado al problema diferentes implementaciones de los Algoritmos Genéticos, Recocido

Simulado y heurísticas diseñadas especialmente para el problema. En estas

implementaciones se trabaja con dos elementos: una ordenación de las piezas rectangulares

a cortar y un procedimiento de colocación que, dado una pieza, determina la posición que le

corresponde dentro del objeto rectangular. Las estrategias de resolución buscan, por tanto,

la ordenación que suministra la mejor solución. Aunque, en general, los procedimientos

heurísticos suministran soluciones de alta calidad con un uso razonable de recursos

(principalmente, tiempo), las estrategias diseñadas para el Strip Packing Problem están aún

lejos de poder ser consideradas de utilidad práctica: sólo se han resuelto problemas

pequeños y con gran esfuerzo computacional.

Por otra parte, no han sido considerados criterios de verificación de soluciones y

finalización que sean dependientes del problema y que aporten una base sólida para

considerar que el patrón de corte propuesto sea satisfactorio. Suele finalizarse la búsqueda

tras un tiempo prefijado de CPU o tras evaluar un número dado de patrones de corte.

Además, en las estrategias de resolución actuales los expertos no pueden interactuar con el

sistema, con lo que el conocimiento práctico que poseen no puede emplearse durante la

búsqueda de patrones de corte.

2

Otra debilidad de los trabajos desarrollados hasta el momento es que se centran en

uno de los módulos del sistema: el módulo de búsqueda. El resto de módulos no han

recibido atención hasta ahora y no conocemos ningún desarrollo integral de todos los

módulos que conforman el sistema.

OBJETIVOS

El objetivo principal de la investigación es diseñar un sistema informático que, dado

un conjunto de piezas rectangulares, determine eficientemente un patrón de corte

satisfactorio para el usuario. Además, el sistema debe poseer características adicionales

como son: poseer un interfaz gráfico que facilite la lectura y presentación de la solución o

soluciones encontradas, usar conocimiento del experto para guiar la búsqueda de soluciones

y emplear criterios de parada apropiados que aseguren que la solución encontrada es de alta

calidad.

Es propósito de la investigación que el sistema sea modular. De esta forma, se

facilita la incorporación de nuevos módulos y la validación del sistema. Los módulos

contemplados inicialmente son:

• Módulo de Búsqueda: es el núcleo del sistema. Se encarga de realizar la búsqueda

del patrón satisfactorio para el usuario. Las salidas de este módulo irán al Módulo de

verificación de soluciones y finalización.

• Módulo de Verificación de Soluciones y Finalización: Evaluando la calidad de los

patrones de corte encontrados hasta el momento por el Módulo de Búsqueda, el mejor

patrón que teóricamente puede obtenerse, y la cantidad de recursos empleados, determina si

el patrón encontrado reúne características suficientes para considerarlo satisfactorio para el

usuario. Si la respuesta es afirmativa, finaliza el proceso.

• Módulo de Interacción: Es el encargado de interactuar con el experto para obtener el

conocimiento que puede mejorar el rendimiento de la búsqueda.

3

• Módulo Gráfico de Presentación: Interfaz para la recogida de datos y presentación

de soluciones al usuario.

Para la consecución del objetivo principal enunciado anteriormente, se han

planteado diferentes subobjetivos. A continuación se enumeran agrupados según el módulo

al que hacen referencia.

• Módulo de Búsqueda:

1. Implementar y evaluar diferentes estrategias de búsqueda para el problema.

2. Comparar las estrategias de búsqueda entre sí y seleccionar la que presenta

un mejor comportamiento.

3. Obtener estrategias de búsqueda que permitan resolver problemas de gran

dimensión.

• Módulo de Verificación de Soluciones y Finalización:

4. Proponer criterios de verificación dependientes del problema que,

considerando características diferentes a la calidad de un patrón, indiquen si

el mismo puede mejorarse. Estos criterios se emplearán, por tanto, como

criterios de finalización para la búsqueda.

5. Comparar los criterios propuestos con otros clásicos.

• Módulo de Interacción:

6. Desarrollar el sistema de tal forma que pueda usar el conocimiento práctico

que tiene el experto en el diseño de patrones de corte.

7. Evaluar si la interacción produce mejores patrones de corte.

• Módulo Gráfico de Presentación:

8. Diseñar e implementar el módulo gráfico para lectura de datos y presentación de

soluciones.

4

I

MÓDULO DE BÚSQUEDA CAPÍTULO 1

PROCEDIMIENTOS CONSTRUCTIVOS ADAPTATIVOS (GRASP) PARA EL

STRIP PACKING PROBLEM

1. Introducción

En un problema de empaquetado de rectángulos se dispone de un conjunto de piezas

rectangulares con longitudes conocidas y se desean distribuir éstas en un objeto rectangular

de forma que optimicen alguna función del área que ocupan. Un forma alternativa de

interpretar el problema supone que se dispone de un objeto rectangular desde el que hay

que obtener el conjunto de piezas realizando cortes perpendiculares a los ejes.

Las restricciones pueden imponer que la distribución siga un patrón preestablecido,

que el número de veces que puede usarse cada pieza esté acotado o que las piezas tengan

asociado un beneficio. Por patrón entendemos el tipo de corte que está permitido. Un corte

es tipo guillotina si atraviesa el objeto desde un lado del mismo hasta el lado opuesto. En

un corte no guillotina, lo anterior no es cierto.

Pueden considerarse las siguientes tres situaciones referidas al conocimiento que se

tiene del objeto en que hay que distribuir las piezas.

1 El alto y el ancho del objeto son conocidos (figura 1.1(a)): se pretende, por tanto,

distribuir en el objeto aquellas piezas que optimicen la función objetivo considerada.

2 Sólo es conocido el ancho (figura 1.1(b)): se desea encontrar la distribución de

piezas que minimiza la altura del objeto. Restricciones tecnológicas pueden imponer que el

corte sea tipo guillotina, aunque, en general, esta restricción no suele considerarse.

Ejemplos de estos problemas se encuentran en [2] y [7].

5

3 No son conocidos ni el alto, ni el ancho (figura 1.1(c)): el propósito es distribuir

las piezas de tal forma que el rectángulo que esta distribución determina sea el de menor

área. En [8] se emplea este problema para particionar una malla dada de procesadores en

submallas a las que asignar tareas que pueden ejecutarse independientemente.

2. Strip Packing Problem

En lo que sigue se trata el problema del empaquetado rectangular bidimensional no

guillotina (Strip Packing Problem) que se formula como sigue. Dado un objeto rectangular

de amplitud fija w y altura infinita, y un conjunto, R = {R(w1, h1), . . . ,R(wn , hn)}, de

rectángulos con al menos uno de sus lados, wi, hi, menor que w, se desea empaquetar el

conjunto R en el objeto rectangular utilizando el menor espacio posible. En este problema

está permitido rotar los objetos y los cortes pueden ser de tipo no guillotina (ver figura

1.1(b)).

6

En general, se suelen representar las soluciones de este problema a través de una

permutación que indica el orden en que los rectángulos son considerados para su inclusión

en el objeto, junto a un procedimiento que indica la posición que ocupa el rectángulo en el

objeto. Entre los procedimientos comúnmente empleados para obtener la posición se

encuentra el conocido como Bottom-Left. Consta de los siguientes pasos. Colocar el primer

rectángulo en la esquina inferior izquierda del objeto. Colocar el siguiente en la esquina

superior derecha. Bajar el rectángulo tanto como sea posible. A continuación, moverlo

hacia la izquierda tanto como sea posible y, en su caso, volver a bajarlo tanto como sea

posible. Repetir lo anterior mientras queden rectángulos por colocar. En la figura 1.2(b) se

muestra un ejemplo en el que los rectángulos 1, 2, 3, 4, 5 y 6 se han empaquetado,

siguiendo este orden, con la estrategia Bottom-Left.

Nótese que al aplicar la estrategia Bottom-Left, pueden formarse áreas no

aprovechables (desperdicios) (ésto ocurre en el ejemplo de la figura 1.2(b) al incluir el

rectángulo 4). Bottom-Left-Fill (BLF) es otra estrategia de colocación que, antes de colocar

un rectángulo según la estrategia Bottom-Left, comprueba si se puede colocar éste en

alguno de los desperdicios que se han generado hasta el momento.

Con cualquiera de las representaciones anteriores se pueden diseñar varias de las

metaheurísticas de búsqueda más conocidas: Simulated Anhealing, Algoritmos Genéticos,

... En [7] se proponen varias de estas metaheurísticas y se analiza el comportamiento de las

mismas. Además, se enumeran los trabajos más importantes relativos al problema del

empaquetado rectangular bidimensional no guillotina.

3. Métodos constructivos

En un método constructivo se añade iterativamente elementos a una estructura,

inicialmente vacía, hasta obtener una solución del problema. La elección del elemento a

incluir se basa en una evaluación heurística, que mide la conveniencia de considerar este

elemento como parte de la solución. La función heurística es dependiente del problema y

7

expresa el conocimiento que sobre el mismo se tiene. Si la evaluación de un elemento

depende de los elementos previamente incluidos en la solución se dice que el método es

adaptativo.

Además de la función heurística, es necesaria una estrategia que indique qué

elemento se escoge. Una de las estrategias más conocidas es la greedy en la que se

selecciona el elemento que optimiza la función heurística. Esta estrategia suele dar pobres

resultados en la mayoría de los casos. Por ello se han propuesto estrategias alternativas.

Una de ellas consiste en elegir, no el mejor elemento, sino uno de los mejores al azar. Al

conjunto de los mejores elementos se le llama Lista Restringida de Candidatos (LRC).

GRASP (Greedy Randomized Adaptive Search Procedure) [6] es un procedimiento

heurístico que consta de varias etapas. A una fase constructiva, en la que se escoge

iterativamente y al azar un elemento de la lista restringida de candidatos, le sigue una fase

de postprocesamiento en la que se mejora la solución obtenida en la fase anterior. Como

postprocesamiento suele emplearse una simple búsqueda local descendente. Los anteriores

pasos se reiteran hasta que se cumpla el criterio de parada. La mejor solución obtenida es la

propuesta por el algoritmo. La lista restringida de candidatos puede construirse de varias

formas. Algunas de las posibilidades son:

1 por cardinalidad: la lista está formada por los k (parámetro fijado por el usuario)

elementos con mayor evaluación de la función heurística;

2 por rango: la lista está formada por los elementos cuya evaluación está a una

distancia no superior a un umbral fijado por el usuario. Esto es, dado un valor α� [0 , 1], la

lista restringida de candidatos la forman los elementos cuya evaluación está en el intervalo

[(1 - �)MAX, MAX], siendo MAX la evaluación del mejor elemento;

3 por intersección de las dos anteriores: en cada iteración del proceso constructivo,

la lista la forman los elementos que pertenecen simultáneamente a los dos conjuntos

anteriores.

8

Los elementos que determinan completamente la técnica GRASP son: la función

heurística, la forma en que se construye la lista restringida de candidatos, el método de

postprocesamiento y el criterio de parada.

En la primera versión de nuestro procedimiento (y en todas las implementaciones a

que se hace referencia en el presente capítulo), se finaliza la búsqueda después de un

número dado, niter, de pasadas del bucle anterior. En la fase de postprocesamiento, si

existe, se determina la mejor colocación de los últimos k (parámetro) rectángulos incluidos

en la solución. Para ello se emplea el procedimiento de postprocesamiento descrito en la

página 8. Para definir las listas restringidas de candidatos, y, por tanto, las correspondientes

funciones heurísticas, es preciso introducir el concepto de contorno.

3.1 Contorno

La inclusión de un rectángulo cualquiera en el objeto, determina un contorno

superior rectangular como el que se muestra en la figura 1.2(a). Además, es posible que se

obtengan áreas no aprovechables, llamadas desperdicios, como el que se obtiene al incluir

el rectángulo 4 en el objeto de la figura 1.2(a). El contorno, C, puede representarse por

medio del conjunto de segmentos horizontales (tomados de izquierda a derecha) que lo

forman. Es decir:

� � � � � ��� CCC xxyxxyxxyC 2122

21

212

11

1 ,,,...,,,,,,�

con iy altura del i-ésimo segmento ix1 punto inicial del i-ésimo segmento ix2 punto final del i-ésimo segmento

9

Además, y . Nótese que, intuitivamente, es preferible un contorno

formado por pocos niveles a otro con muchos niveles. Esto es así, ya que, en general, la

posibilidad de obtener desperdicios aumenta con el número de niveles.

011 �x wxC

�2

3.2 Lista restringida de candidatos

Sea t la iteración actual del proceso constructivo y supongamos que R = R1 � R2,

siendo R1 el conjunto de los rectángulos previamente incluidos en el objeto y R2 = R \ R1.

Sea C(t) el contorno determinado por los rectángulos de R1. Evaluaremos la conveniencia

de incluir un rectángulo de R2 en el objeto por la forma que tendrá el contorno C(t) tras su

inclusión. Las diferentes evaluaciones que proponemos pretenden aprovechar mejor el

espacio disponible y suavizar el contorno.

1 Lista restringida de candidatos 1: sea dado �1 � [0, 1] y supongamos que � �iii xxy 21 ,, es

el segmento del contorno con menor altura. La lista restringida de candidatos se construye

como sigue:

LRC1 = � �� :, 2RhwR jj � � ������ 10 12 �jii wxx � ��20 12 ����� j

ii hxx

10

Es decir, la lista está formada por aquellos rectángulos que mejor se ajustan al ancho

del segmento inferior del contorno. El ajuste viene determinado por el valor de �1.

2 Lista restringida de candidatos 2: sea dado �2 � [0, 1], � �iii xxy 21 ,, el segmento del

contorno con menor altura y supongamos que los segmentos anterior y posterior a éste,

respectivamente � �12

11

1 ,, ��� iii xxy y � �12

11

1 ,, ��� iii xxy , son tales que (ver figura

1.2(a)). La lista restringida de candidatos se construye como sigue:

1��

iy1��

ii yy

LRC2 = � �� :, 1LCRhwR jj � � ������� 20 1

�jii wyy � ��20 1

������

jii hyy

Esto es, la lista está constituida por los rectángulos que mejor se ajustan al hueco

formado los puntos � � � � � � � �11

11121 ,,,,,,, ��� iiiiiiii yxyxyxyx . El ajuste viene dado por los valores

de �1 y �2. Si LRC1 � LRC2 = �, hacer LRC2 = LRC1.

3 Lista restringida de candidatos 3: en las condiciones anteriores, si LRC2 = �, se

construye la lista restringida de candidatos como sigue:

LRC3 = � �� :, 1LCRhwR jj � � ������� 30 1

�jii wyy � ��30 1

������

jii hyy

Ahora, la lista está formada por los rectángulos que mejor se ajustan al hueco que

determinan los puntos � � � � � � � �11

1221 ,,,,,,, �� iiiiiiii yxyxyxyx . El ajuste viene dado por los

valores de �1 y �3. Si LRC1 � LRC3 = �, hacer LRC3 = LRC1.

Para que las definiciones anteriores tengan sentido, debe haber, al menos, un

rectángulo de R2, digamos , tal que ),( rr hwR

� � � �2010 1212 �� ��������� rii

rii hxxwxx . Si ningún elemento de R2 cumple la

anterior condición, se ubica dentro del objeto el rectángulo que mejor se ajusta a , y

se reconstruye el contorno. Si no existe tal rectángulo, se reconstruye el contorno

eliminando, convenientemente, el segmento

ii xx 12 �

� �ii xx 21 ,, .iy

11

3.3 Postprocesamiento

Una de las situaciones anómalas que puede presentarse al aplicar los métodos

constructivos anteriores se muestra en la figura 1.2. Consideremos la ubicación del

rectángulo 6. Cualquiera de los métodos anteriores lo ubicaría según se indica en la figura

1.2(b). La bondad de esta nueva situación depende del instante en que se produce. En las

primeras iteraciones del método, la situación es aconsejable. No obstante, en las últimas

iteraciones puede producir soluciones de baja calidad. En particular, si nos encontramos en

la última iteración, sería preferible ubicarlo como se muestra en la figura 1.2(c). Por ello, se

propone el siguiente procedimiento de mejora, que se aplica a la solución obtenida en la

fase constructiva.

Procedimiento de mejora: extraer los últimos k (parámetro) rectángulos de la solución.

Supongamos, por simplicidad, que son {R1, R2 , . . . , Rk}. Para cada permutación, (Ri1 ,

Ri2 , . . . , Rik), de los rectángulos:

1.) Hacer j = 1. Colocar el rectángulo Rij en la posición más profunda del objeto y

con la orientación que suponga una menor altura relativa. Actualizar el contorno.

2.) Hacer j = j+1. Tomar el rectángulo Rij de la permutación y empaquetarlo

siguiendo el proceso anterior.

3.) Si j = k, parar; en caso contrario repetir el paso 2.

Devolver la mejor de las soluciones obtenidas con el método anterior.

3.4 Métodos

Combinando las listas restringidas de candidatos LRC1, LRC2 y LRC3 y la anterior

técnica de postprocesamiento se obtienen varios GRASPs. En GRASPi, i = 1, 2, 3, en cada

12

iteración, se escoge al azar un elemento de LRCi, y se reconstruye el contorno. El proceso

anterior se reitera mientras queden rectángulos por incluir en el objeto.

En GRASPi, i = 4, 5, tras una fase constructiva empleando, respectivamente, los

métodos GRASPi, i = 2, 3, se aplica la técnica de postprocesamiento descrita en la página 8.

4. Experiencia computacional

La experiencia computacional se desarrolló en dos etapas. Estas coinciden con los

objetivos principales de cualquier experimentación con técnicas heurísticas: ajustar

convenientemente los parámetros que definen la técnica, y comparar el comportamiento de

la heurística propuesta frente a otros procedimientos de resolución conocidos para el

problema. Se emplearon diferentes tipos de problemas para cada etapa: problemas

generados aleatoriamente para la primera y problemas tests para la segunda.

El lenguaje empleado para programar los procedimientos fue C (compilador Turbo

C), la máquina sobre la que se ejecutaron los programas un K6II a 450Mhz con 64Mb de

memoria RAM y el paquete estadístico usado para el análisis de los resultados el SPSS para

Windows Versión 8.0.1S.

4.1 Ajuste de parámetros

Para obtener problemas aleatorios se implementó un generador que, dado el ancho

del objeto rectangular, w, el número de rectángulos, n, y el valor objetivo óptimo, hopt,

suministra un conjunto de n rectángulos que pueden ubicarse en un objeto rectangular de

amplitud w utilizando una altura hopt. En la figura 1.1(b) se muestra uno de los problemas

obtenidos con este generador.

Dada la naturaleza estocástica de los métodos propuestos, ejecuciones repetidas

sobre el mismo problema y con la misma elección de los parámetros pueden suministrar

diferentes resultados. Por ello, una vez fijado los valores de los parámetros, cada problema

13

fue resuelto 5 veces. Se tomó niter = 40. Se generaron problemas aleatorios de diferentes

tamaños (ver tablas 1.1 y 1.2) para cubrir una amplia variedad de situaciones. Los mismos

problemas fueron usados para cada uno de los GRASPs. Como variable respuesta se tomó

el valor objetivo medio de las niter pasadas del bucle del GRASP.

Los parámetros interés de estudio fueron �1, (�1, �2) y (�1, �2, �3) para los

métodos GRASP1, GRASP2 y GRASP3, respectivamente. Para cada uno de los parámetros

se seleccionaron tres niveles: �1 = 0, 0.1, 0.2, �2 = 0, 0.1, 0.2 y �3 = 0, 0.1, 0.2 (�2 = �3),

y se consideraron todas las combinaciones posibles como tratamientos a estudiar. Se

obtienen, por tanto, 3 tratamientos para GRASP1, y 9 para GRASP2 y GRASP3. Estos son,

respectivamente, T�1 y T�1, �2 .

Se optó por la aplicación de métodos no paramétricos para el análisis de los datos,

ya que los contrastes previos de normalidad e igualdad de varianzas dieron respuestas

negativas. Se usó el test de Friedman (ver, por ejemplo, [5]) para el análisis de los

tratamientos con las 5 ejecuciones como bloques. Cuando se rechazó la hipótesis nula de

igualdad de tratamientos se empleó el test de comparaciones múltiples de Friedman ([5]

pág. 274) para determinar las diferencias entre los tratamientos.

En las tablas 1.1 y 1.2 se recoge el p-valor asociado con el estadístico de Friedman

para los problemas considerados. Además, para aquellos problemas en los que se rechazó la

hipótesis nula de igualdad de tratamientos, se muestra el tratamiento con menor rango

promedio y, cuando el test de comparaciones múltiples de Friedman no detectó diferencias

significativas entre ellos, el tratamiento con el segundo menor rango promedio (entre

paréntesis).

De los resultados obtenidos se concluye que:

1 GRASP1: el valor apropiado de �1 es 0, es decir, el que se corresponde con un

mejor ajuste;

14

2 GRASP2: los valores de los parámetros dependen del tamaño del problema. Así,

para problemas con 200 rectángulos o más, el tratamiento que presenta mejor

comportamiento es T0,0, con la única excepción del problema (n = 200, w = 60, hopt =

100). Para problemas con 100 rectángulos, no existe una conclusión clara, ya que podría

escogerse entre los tratamientos T0,0 y T0,0:2. Nos hemos decantado por esta última

elección, teniendo en cuenta el número de veces que aparecen T0,0 y T0,0:2 como el mejor

o el segundo mejor tratamiento. Cuando n = 50, las conclusiones son aún menos claras si

comparamos por el número de veces que aparece un tratamiento como el mejor. Tener en

cuenta el segundo mejor tratamiento, clarifica: el tratamiento apropiados es T0,0.1.

3 GRASP3: usando las medidas anteriores se sigue que, para problemas con 200

rectángulos o menos, las elecciones recomendadas son �1 = 0 y �2 = �3 = 0.2. Para

problemas con 300 rectángulos, �1 = �2 = �3 = 0.

En los métodos GRASP4 y GRASP5, se fijó el valor de �1, �2 y �3 según la

información obtenida en el análisis anterior, y se tomó k = 6 en todos los casos.

15

16

4.2 Comparativa y resultados para problemas grandes

Los problemas tests usados para comparar el comportamiento de nuestras

propuestas aparecen en el trabajo de Hopper y Turton [7] (disponibles en la siguiente

dirección:

mscmga.ms.ic.ac.uk/jeb/orlib/stripinfo.html).

17

Se trata de una batería de 21 problemas agrupados en 7 categorías de 3 problemas

cada una. En las cuatro primeras columnas de la tabla 1.3 se recogen las características de

estos problemas. La columna 5 de dicha tabla muestra el valor objetivo obtenido y el

tiempo requerido (en minutos) por un Recocido Simulado que emplea la estrategia Bottom-

Left Fill (SA + BLF) (los valores han sido extraídos del trabajo de Hopper y Turton [7]).

Este procedimiento es el que suministra mejores soluciones de entre todas las propuestas de

Hopper y Turton [7]. Según nuestro conocimiento, es el mejor procedimiento conocido

hasta el momento en cuanto a la calidad de las soluciones que encuentra.

Desde la columna 6 hasta la 10 se presentan las mejores soluciones y el tiempo (en

segundos) requerido por nuestras propuestas. Para los métodos GRASP1, GRASP2 y

GRASP3 no se muestran tiempos, ya que éstos son insignificantes. Hay que destacar la

considerable disminución que se produce en el tiempo cuando se emplea cualquiera de

nuestras propuestas. Para la categoría C7 se pasa de 4181 minutos a 0.80 segundos y se

obtienen soluciones mejores a las obtenidas por SA+BLF. Otra característica destacable es

el lento crecimiento que se produce en el tiempo con el aumento del tamaño del problema.

18

Por último, para mostrar el comportamiento de nuestras propuestas en problemas

grandes, se resolvieron con GRASP4 y GRASP5 problemas con 1000 rectángulos. En la

tabla 1.4 se muestran los resultados obtenidos. En las primeras tres columnas se recogen el

número de rectángulos, la anchura del objeto rectangular y el objetivo óptimo. Las últimas

cuatro columnas muestran la mejor solución obtenida y el tiempo (en segundos) requerido

por GRASP4 y GRASP5. Hay que destacar la calidad de las soluciones obtenidas y el poco

tiempo empleado en obtenerlas.

5. Conclusiones y cuestiones abiertas

Hemos diseñado e implementado diferentes procedimientos constructivos para el

problema del empaquetado rectangular bidimensional no guillotina. Además, hemos

analizado estadísticamente la influencia de los correspondientes parámetros sobre la calidad

de las soluciones. Este estudio nos permitió ajustar convenientemente los valores de

aquellos. A continuación, comparamos la calidad de las soluciones obtenidas frente a las

propuestas del trabajo de Hopper y Turton [7]. De los resultados obtenidos se sigue que

nuestros métodos presentan un comportamiento superior al de tales propuestas: suministran

soluciones de alta calidad en mucho menos tiempo. No obstante, quedan cuestiones abiertas

que deben resolverse apropiadamente. A continuación enumeramos algunas de las

investigaciones que se desarrollarán en los capítulos siguientes.

1 Mejorar el postprocesamiento. Tras obtener una solución, aplicamos un

postprocesamiento en el que se realiza una búsqueda exhaustiva del mejor orden de

19

empaquetado para los últimos k rectángulos de la solución. Debido a la explosión

combinatoria que se origina, hemos tenido que limitar esta búsqueda a unos pocos

rectángulos. Pretendemos mejorar esta fase aplicando otras estrategias de búsqueda:

multiarranque, recocido simulado, ... como postprocesamiento.

2 Determinar apropiadamente el parámetro para la fase de postprocesamiento.

Hasta ahora el valor de k para el postprocesamiento se determina a priori por el usuario.

Sería conveniente disponer de un método que, atendiendo a las características de la

solución, determine cuál es el rectángulo a partir del cual realizar el postprocesamiento.

3 Diseñar criterios de parada eficientes y eficaces. El criterio de parada usado no

emplea ningún conocimiento acerca de la calidad de las soluciones encontradas durante la

búsqueda. El uso de esta información probablemente mejore el comportamiento de

GRASP.

20

CAPÍTULO 2

FASE DE POSTPROCESAMIENTO

1. Introducción

Muchas técnicas heurísticas de resolución de problemas aplican procedimientos de

mejora a soluciones previamente obtenidas. Los procedimientos de mejora más conocidos

son las Búsquedas Locales en las que, una vez definido el concepto de entorno de una

solución, se escoge una solución del mismo que mejore a la solución inicial. Si esta

solución existe, el procedimiento reitera el paso anterior con ella. En caso contrario, se

finaliza la búsqueda. La gran mayoría de los procedimientos de mejora que pueden

aplicarse a una solución son variantes de las Búsquedas Locales o emplean a estas como

elementos importantes de su diseño.

Presentamos un procedimiento alternativo para mejorar la calidad de una solución

del problema del empaquetado rectangular bidimensional no guillotina. El procedimiento

tiene su origen en el análisis de la técnica constructiva GRASP descrita en el capítulo 1. Se

ha observado que esta técnica tiende a ubicar de forma incorrecta los rectángulos en las

últimas iteraciones del método constructivo. Por ello, se propone reconstruir la solución

obtenida por el método constructivo extrayendo los últimos rectángulos de la solución para

ubicarlos usando una técnica heurística. Realizamos un análisis de la solución obtenida por

el método constructivo para determinar qué rectángulos deben extraerse de la solución. Con

ello, adaptamos el procedimiento de mejora al problema y así aumentamos la eficiencia del

mismo.

El presente capítulo se estructura de la siguiente forma. En la sección 2 se describe

el análisis de la solución que da lugar al procedimiento de mejora. Por último, se muestra la

experiencia computacional realizada y se enumeran las conclusiones que se siguen de los

resultados obtenidos.

21

2. Análisis del contorno

A pesar de que la fase de postprocesamiento propuesta en el capítulo 1 (página 8)

mejora la calidad de las soluciones obtenidas en la fase constructiva, tiene dos

inconvenientes.

1 Valores limitados del parámetro m: dado que se realiza una búsqueda exhaustiva

entre todas las posibles combinaciones de los últimos m rectángulos, hay que limitar esta

búsqueda a valores pequeños de m.

2 Obligación de fijar a priori el valor de k: soluciones diferente requerirán,

posiblemente, reconstruir desde puntos distintos. Fijar a priori el valor de k impide que la

fase de postprocesamiento se adapte a la solución obtenida en la fase constructiva.

Para subsanar estos inconvenientes, se propone analizar el contorno superior que se

obtiene en cada iteración del proceso constructivo y determinar de esta forma el valor de k,

y realizar una búsqueda heurística entre todas las combinaciones de los últimos m

rectángulos.

La fase constructiva de un GRASP para el problema del empaquetado de

rectángulos bidimensional no guillotina consta de n iteraciones (con n el número de

rectángulos a empaquetar). Sea C(t) el contorno superior que se obtiene al incluir un

rectángulo en la t-ésima iteración.

Asociado al contorno C(t) pueden considerarse varios valores que miden la suavidad

del mismo. Uno de estos valores es la altura media de los niveles que se define como

AlturaMedia (C(t)) = � �� ����

c

i

iytCyc 1

1 � nt ,...,1�

donde c es el número de niveles del contorno y

22

� �� � }{max,...,1

i

ciytCy

� nt ,...,1�

Convenimos que AlturaMedia(C(0)) = 0. Sea asimismo

�AlturaMedia(t) = AlturaMedia(C(t - 1)) - AlturaMedia(C(t)), t = 1,…, n

el incremento que se produce en la altura media del contorno al incluir el rectángulo de la t-

ésima iteración.

Proponemos dos formas de obtener la iteración (o equivalentemente el número de

rectángulos) a partir de la cual aplicar el método de mejora.

1 Mayor incremento en la altura media. Aplicar el procedimiento de mejora a partir

de la iteración en que se produce un mayor incremento en la altura media. Es decir, si t* es

la iteración que maximiza

�AlturaMedia(t) = AlturaMedia(C(t - 1)) - AlturaMedia(C(t)), t = 1,…, n

se extraen los rectángulos empaquetados en las iteraciones que van desde la t* hasta la n.

2 Menor altura media. Aplicar el procedimiento de mejora a partir de la iteración en

que el contorno es más suave. Es decir, si t* es la iteración que minimiza

AlturaMedia(C(t)), t = 1,..., n

se extraen los rectángulos empaquetados en las iteraciones que van desde la t* + 1 hasta la

n.

3. Búsqueda heurística

Nótese que una vez determinada la iteración, t*, a partir de la cual reconstruir, se

obtiene un nuevo problema de empaquetado de dimensión menor en el que la frontera

inferior del objeto en que se deben incluir los rectángulos viene dada por el contorno C(t*).

23

Este nuevo problema puede abordarse por cualquiera de las técnicas heurísticas de

resolución de problemas. Hemos experimentado con una Búsqueda Local Descendente.

1 Búsqueda Local Descendente. Dada una permutación de los rectángulos y el

movimiento consistente en intercambiar el orden de dos ellos, realizar el mejor de los

movimientos mientras sea posible. Los rectángulos se empaquetan siguiendo los pasos 1, 2

y 3 del procedimiento de mejora descrito en el capítulo 1 (página 8).

4. Experiencia computacional

Para evaluar el comportamiento de nuestras propuestas de mejora de las soluciones

obtenidas en la fase constructiva del GRASP, se resolvieron diferentes problemas

generados aleatoriamente. Cada problema fue resuelto 5 veces realizando 20 pasadas del

bucle Fase Constructiva, Fase de Postprocesamiento. El valor que determina el umbral de

ajuste en el proceso constructivo del GRASP se fijó a � = 0.

En la tabla 2.1 se muestran los resultados obtenidos en la experiencia

computacional. Las tres primeras columnas describen el problema: número de rectángulos

(n), ancho del objeto rectangular (w) y altura óptima (hopt). A continuación aparecen 12

columnas agrupadas en dos grupos de 6 columnas. Cada grupo se corresponde con uno de

los criterios propuestos para obtener la iteración a partir de la cual aplicar el método de

mejora.

En las columnas 4 y 5 se recogen el mejor valor objetivo (Obj) y el valor objetivo

medio obtenido en las 20 fases constructivas del GRASP. En las columnas 6 y 8 se

muestran estos mismos valores tras la fase de postprocesamiento. Las columnas 7 y 9

almacenan las mejoras producidas tras la fase de postprocesamiento. La descripción de las

columnas que van desde la 10 hasta la 15 es similar.

24

Por cada problema se muestran 5 filas de resultados (una por cada una de las 5

ejecuciones del GRASP realizadas) más una que recoge los valores medios de las mejoras.

De los resultados obtenidos podemos concluir lo siguiente.

1 La fase de postprocesamiento mejora la calidad de las soluciones. La mejora se

produce tanto en el mejor valor objetivo como en el valor objetivo medio. Aunque la

mejora pueda parecer no significativa hay que señalar que las soluciones generadas en la

fase constructiva son, en la gran mayoría de los casos, de alta calidad. Por ello, el efecto de

la mejora puede parecer menor.

2 Existe una ligera diferencia en el comportamiento de los criterios. Aunque las

diferencias no son significativas, se observa que, para problemas con el mismo número de

rectángulos, el criterio basado en el mayor incremento en la altura media produce una

mayor mejora en el mejor valor objetivo de aquellos problemas con hopt menor. Para los

problemas con mayor hopt, el criterio que suministra mayores mejoras es el basado en la

menor altura media.

3 La técnica GRASP propuesta es eficaz en la resolución del problema. La distancia

que existe entre el mejor valor objetivo encontrado por GRASP y el valor objetivo óptimo

es inferior en todos lo casos a 2 unidades (para cuatro problemas es inferior a 1 unidad y

para los otros dos es inferior a 2 unidades). Este comportamiento ya se observó en la amplia

experiencia computacional desarrollada en el capítulo 1.

25

26

II

MÓDULO DE VERIFICACIÓN Y FINALIZACIÓN

CAPÍTULO 3

CRITERIOS DE PARADA

1. Introducción

Muchos problemas de indudable interés práctico pueden formularse como sigue:

optimizarX�Sf(X);

con S el conjunto de soluciones o región factible y f(X) la función objetivo. Optimizar

significa minimizar o maximizar (dependiendo del problema) la función objetivo. Es decir,

se pretende encontrar la solución que optimiza la función objetivo. No obstante, para

muchos problemas, este objetivo es inalcanzable con una cantidad moderada de recursos

(principalmente, tiempo). Por ello, se sacrifica la optimalidad y se diseñan procedimientos

de resolución que proporcionan soluciones de alta calidad usando una cantidad razonable

de recursos. Son las llamadas técnicas heurísticas de resolución de problemas.

Las heurísticas pueden ser dependientes del problema o independientes del mismo.

Las primeras, conocidas como heurísticas, son válidas únicamente para el problema

particular para el que han sido diseñadas, mientras que las segundas, las llamadas

metaheurísticas, pueden aplicarse a cualquier problema.

El presente trabajo se estructura como sigue. En la próxima sección se enumeran

algunas propiedades deseables en una regla de parada y se clasifican las reglas en

dependientes o independientes del problema. La sección 3 se dedica al estudio de las reglas

de parada que proponemos. A continuación, se describe la experiencia computacional y se

analizan los resultados obtenidos. Por último, en la sección 4 se enumeran las conclusiones

y trabajos futuros.

27

2. Reglas de parada

En cualquier procedimiento de búsqueda de soluciones para un problema dado, uno

de los elementos más importantes es el criterio de parada empleado. La regla de parada es

responsable, en gran medida, del grado de eficiencia y eficacia del procedimiento de

solución.

En ocasiones, el criterio de parada viene determinado por la búsqueda empleada.

Así ocurre, por ejemplo, en una Búsqueda Local Descendente: el proceso de búsqueda

finaliza cuando se encuentra una solución mejor que todas sus vecinas. Otras veces se

emplean criterios de parada como finalizar después de un tiempo de CPU fijado a priori, o

después de un número fijo de evaluaciones de la función objetivo. Estos criterios suelen ser

poco eficaces, dado que no emplean ninguna información sobre la evolución de la

búsqueda.

Se obtienen criterios de paradamás eficaces al realizar un estudio del procedimiento,

estudiar la función objetivo, estudiar la región factible, analizar la evolución de la búsqueda

o evaluar las caracteríticas de las soluciones obtenidas. En todo caso, cualquiera que sea la

regla de parada empleada, ésta debe asegurar un equilibrio entre eficiencia y eficacia.

En [3] se enumeran las siguientes propiedades deseables de una regla de parada:

1 Dependencia del problema: si se conoce alguna propiedad de la región factible o de la

función objetivo, ésta debe incluirse en el procedimiento para obtener reglas de parada. Así,

en [9] se estudia la distribución del valor objetivo de los óptimos locales de la función

objetivo y se obtienen reglas de parada empleando esta información.

2 Dependencia muestral: cuando se ejecuta una heurística para resolver un problema, se

obtiene información de varias variables: valor objetivo, distancia entre óptimos locales,

tamaño de la región de atracción de los óptimos locales, iteraciones necesarias para obtener

28

el óptimo global, etc. El análisis de estos valores puede suministrar reglas de parada

apropiadas. En [10] se aproxima la variable número de iteraciones necesarias para

encontrar el óptimo global por medio de una distribución normal, que se emplea para

obtener una regla de parada.

3 Dependencia del método: el estudio teórico de algunas heurísticas permite obtener reglas

de parada que, al menos a nivel teórico, aseguran la convergencia al óptimo global del

problema. Quizás el estudio más amplio en este sentido ha sido el realizado para el

Recocido Simulado (ver [1]).

4 Dependencia del costo y del recurso: cuando se decide finalizar un procedimiento

heurístico y se aporta como solución al problema la mejor solución encontrada, se incurre

en dos pérdidas: una de finalización, que depende de la distancia entre el valor objetivo

óptimo y aquel que suministra la heurística, y una de ejecución, que es función de la

cantidad de recursos empleados. Estas pérdidas deben influir activamente en el criterio de

parada. Obviamente, se pretende obtener una regla de parada que minimice ambas pérdidas.

En [4] se realiza un amplio estudio de esta alternativa, y se proponen y analizan diversas

reglas de parada.

Las reglas de parada, al igual que los procedimientos de solución, pueden

clasificarse en generales y específicas para un problema.

1 Reglas de parada generales o independientes del problema. Son reglas de parada

aplicables a cualquier problema de optimización. Esto es así, dado que se basan en

principios o estudios de uso general. Pertenecen a esta clase, los criterios poco eficaces de

finalizar la búsqueda tras un número fijo de evaluaciones de la función objetivo, o al

alcanzar un tiempo prefijado de CPU. También pertenecen a esta categoría los planes de

enfriamiento que se obtienen para el Recocido Simulado [1] y las reglas de parada que se

encuentran en [4], [9] y [10].

29

2 Reglas de parada dependientes del problema. En esta categoría se incluyen las reglas de

parada que emplean propiedades o características específicas del problema (o soluciones

del problema) que se aborda. En el presente trabajo se describen y analizan reglas de parada

específicas para el problema del empaquetado rectangular bidimensional no guillotina.

3. Reglas de parada para el Strip Packing Problem

Es relativamente sencillo para un experto, determinar si una solución del problema

del empaquetado rectangular bidimensional no guillotina puede mejorarse o no de forma

eficiente. Esto es así, ya que, además de la altura del empaquetado, analiza otras

características de la solución como: área de los desperdicios, forma del contorno superior o

distribución de los items en el objeto.

Esta información puede emplearse en un procedimiento de resolución de problemas

para desarrollar reglas de parada apropiadas para el mismo. En el presente trabajo,

proponemos varias reglas de parada específicas para el problema del empaquetado de

rectángulos y evaluamos el comportamiento de las mismas.

Las reglas de parada propuestas emplean el valor de varios parámetros que

caracterizan la bondad de una solución. El valor alcanzado en una solución del problema se

compara con el valor que se considera deseable. Es decir, con el valor que satisface al

decisor o que caracteriza una situación no mejorable eficientemente. El resultado de esta

comparación indica si se debe continuar o no la búsqueda. Hay que señalar que los criterios

de parada que proponemos pueden usarse en cualquier procedimiento de búsqueda.

Dada una solución arbitraria,X, del problema del empaquetado de rectángulos,

podemos representar el contorno superior de la misma por un conjunto de segmentos (o

niveles), tomados de izquierda a derecha (ver figura 1.1(b)), como el que sigue:

� � � � � ��� CCC xxyxxyxxyC 2122

21

212

11

1 ,,,...,,,,,,�

30

donde: iy altura del i-ésimo segmento ix1 punto inicial del i-ésimo segmento ix2 punto final del i-ésimo segmento

Además, y . 011 �x wxC

�2

En la figura 1.1(b) se observa también que, como consecuencia del proceso de

búsqueda, pueden aparecer en la solución áreas no aprovechadas, llamadas desperdicios.

Dada una solución X, la posibilidad de obtener una solución mejor que ésta

depende, en gran medida, de la forma del contorno superior y del área total de sus

desperdicios. En general, las soluciones con contornos superiores suaves y desperdicios

pequeños son difícilmente mejorables.

Sea f(X) el valor objetivo de X y denotemos por Desperdicio(X), al área total de los

desperdicios de esta solución. Nótese que

� � }{max,...,1

i

ciyXf

Para medir la suavidad del contorno superior usamos dos valores: la altura media de

los niveles del contorno, y el área delimitada por este contorno y la línea imaginaria

horizontal de altura f(X). Respectivamente

AlturaMedia(X) = � �� ���

c

i

iyXfc 1

1

y

31

AreaSuperior(X) = � � � �� ���

���

c

i

iii yXfxx1

12

Valores próximos a cero se corresponden con contornos suaves.

Así, la combinación de Desperdicio(X), AlturaMedia(X) y AreaSuperior(X)

suministra dos medidas que pueden usarse para evaluar la calidad de una solución y, por

tanto, como criterios de parada de cualquier procedimiento de resolución para este

problema.

1 Primer criterio de parada. Finalizar la búsqueda cuando

Desperdicio(X) ≤ �1 ^ AlturaMedia(X) ≤ �2

2 Segundo criterio de parada. Finalizar la búsqueda cuando

Desperdicio(X) ≤ �1 ^ AreaSuperior(X) ≤ �3

4. Experiencia computacional

En el capítulo 1 se encuentra la descripción completa de la técnica GRASP para el

problema del empaquetado de rectángulos que se ha usado en la experiencia

computacional. Corresponde con el método que hemos llamado GRASP1. Es decir, emplea

la lista restringida de candidatos definida dada por la expresión 1.3 (página 7) y no se

desarrolla ninguna fase de postprocesamiento.

Para medir la bondad de las reglas de parada propuestas, se resolvieron, empleando

GRASP, diferentes problemas generados aleatoriamente. Como criterios de parada se

usaron las reglas propuestas (se fijó también un número máximo de fases constructivas

(1000) que en muy pocos casos se alcanzó. Estos casos están señalados con * en las tablas

3.1, 3.2 y 3.3). Las variables respuestas empleadas en el estudio son el mejor valor objetivo

obtenido y el número de fases constructivas desarrolladas. Cada problema fué resuelto 5

32

veces. El valor que determina el umbral de ajuste en el proceso constructivo del GRASP se

fijó a � = 0.

Las tres primeras columnas de las tablas 3.1, 3.2 y 3.3 describen el problema:

número de rectángulos (n), ancho del objeto (w) y altura óptima (hopt). A continuación se

muestran los parámetros que definen las reglas de parada y los resultados medios obtenidos

con cada una de ellas (valor objetivo medio (Obj) y número medio de fases constructivas

(Iter)).

Sea A = el área total de los rectángulos. Los valores de �1 indican el

porcentaje de A que se considera en la regla de parada. Los valores de �2 son absolutos:

indican la altura media que se toma. Un valor de �3 igual a k significa que el área superior

contemplado en la correspondiente regla de parada debe ser menor que k � w.

��

n

i ii hw1

De los resultados obtenidos se concluye lo siguiente:

1 Para un valor fijo del parámetro �1, en general, se obtienen mejores valores objetivos al

decrementar �2 en la regla de parada 1, y �3 en la regla de parada 2. Sin embargo, el

número de iteraciones, a un valor fijo de �1, aumenta al incrementar el valor de �2 o �3.

2 Las dos reglas de parada son eficaces y eficientes. La diferencia entre el mejor valor

objetivo y el valor objetivo óptimo es igual o inferior a 2.2, y el número máximo de

iteraciones fue inferior a 50.

3 No parece existir una diferencia significativa entre las reglas de parada que indique que

una de ellas es superior a la otra.

33

34

35

36

5. Conclusiones y cuestiones abiertas

Se han propuesto y analizado dos reglas de parada que pueden usarse en cualquier

procedimiento de resolución del problema del empaquetado rectangular bidimensional no

guillotina.

Las reglas se basan en el valor de ciertos parámetros que caracterizan situaciones

difícilmente mejorables con un esfuerzo computacional razonable. Del análisis de la

experiencia computacional se concluye que las reglas de parada son eficaces y eficientes.

Como trabajos futuros enumeramos los siguientes:

1 Fijar apropiadamente el valor de los parámetros que determinan las reglas de parada.

Para la experiencia computacional, se fijaron diferentes valores para los parámetros �1, �2

y �3 de las reglas de parada 1 y 2. Es deseable que el sistema que implementa las reglas de

parada sea capaz de ajustar, en base a la información que se extrae de la evolución de la

búsqueda, el valor de estos parámetros.

2 Proponer y analizar nuevas reglas de parada. Se obtienen nuevas reglas de parada,

usando otros parámetros para caracterizar la bondad de una solución.

37

CAPÍTULO 4

REGLAS DE PARADA DEPENDIENTES E INDEPENDIENTES DEL

PROBLEMA. ESTUDIO COMPARATIVO PARA EL STRIP PACKING PROBLEM

1. Introducción

Las Metaheurísticas de Búsqueda son procedimientos generales de resolución de

problemas. Se caracterizan por ser aplicables a una gran variedad de problemas y por

presentar, en la gran mayoría de los casos, un buen comportamiento. Es decir, suministran

soluciones de alta calidad con un uso razonable de recursos (principalmente tiempo).

Dentro de las metaheurísticas destacan las metaheurísticas de búsqueda por entornos. En

estas, se considera, explícita o implícitamente, el concepto de estructura de entorno. Una

estructura de entorno es una aplicación que, a cada solución del problema, asocia un

conjunto de soluciones cercanas a la misma en algún sentido. Estas soluciones son las

soluciones vecinas de la dada, y forman su entorno.

En una búsqueda por entorno, se realizan movimientos, desde la solución actual a

alguna de su entorno, hasta que se cumpla el criterio de parada. El mecanismo que se usa

para generar y aceptar una solución del entorno de la actual determina las diferentes

metaheurísticas de búsqueda. Este mecanismo puede ser tan sencillo como generar una

solución aleatoria y aceptarla siempre, o consistir en la aplicación de un proceso complejo,

como aplicar un procedimiento sofisticado de mejora. En todo caso, la búsqueda debe

finalizar cuando se tenga cierta certeza de que se ha encontrado una solución de calidad.

Esto puede conseguirse a través del criterio de parada usado en la búsqueda, ya que se

pueden analizar las características de las soluciones encontradas y finalizar el

procedimiento cuando estas características indiquen que se ha alcanzado una solución

difícilmente mejorable.

En el presente trabajo, se realiza un estudio comparativo entre reglas de parada

dependientes del problema y reglas independientes del mismo para el Strip Packing

Problem. El estudio pretende comparar la eficiencia y eficacia de varias heurísticas cuando

38

se usan reglas de parada de los tipos anteriores. El capítulo se estructura como sigue. En la

próxima sección se describen las Metaheurísticas de Búsqueda usadas en la experiencia

computacional. Por último, en la sección 4 se muestran los resultados computacionales

obtenidos y se enumeran las conclusiones.

2. Metaheurísticas de Búsqueda

A continuación se describen las búsquedas por entornos usadas para comparar las

reglas de parada dependientes e independientes del problema que definimos en el tercer

capítulo.

1 Búsqueda Aleatoria Pura: Generar aleatoriamente soluciones del problema hasta que se

cumpla el criterio de parada. Devolver la mejor solución encontrada.

2 Búsqueda Local: Dada una solución inicial, determinar la mejor solución vecina de ésta.

Si la nueva solución es mejor que la inicial, continuar el proceso con ella. En caso

contrario, finalizar la búsqueda. Devolver la mejor solución encontrada.

3 Búsqueda Multiarranque: Aplicar búsquedas locales desde soluciones de inicio generadas

aleatoriamente hasta que se cumpla el criterio de parada.

4 Búsqueda por entorno variable: Se parte de una solución inicial y de un conjunto de

entornos Nk, k = 1,…, kmax definidos sobre cualquier solución. Sea k = 1. Aplicar una

búsqueda local con la estructura de entorno Nk hasta que se alcanza un óptimo local. Sea k

= k+1. Generar aleatoriamente una solución vecina del óptimo encontrado en la estructura

Nk. Aplicar una búsqueda local con estructura N1 desde la solución generada. Si se obtiene

un óptimo local mejor que el actual, repetir el proceso con esta nueva solución. En caso

contrario, hacer k = k + 1, generar una nueva solución vecina del óptimo actual en la

estructura Nk y repetir. Cuando k = kmax, se genera una nueva solución de inicio y se repite

el proceso hasta alcanzar un número máximo de iteraciones.

39

5 Greedy Randomized Adaptive Search Procedure (GRASP) [6]: Sea dada una función

heurística h que mide la conveniencia de incluir un elemento como parte de la solución. En

cada iteración, determinar el valor de la función h sobre todos los elementos disponibles.

Construir una lista restringida de candidatos (LRC) con los mejores elementos según el

valor de h (en general, en LRC se incluyen los m (parámetro fijado por el usuario) mejores

elementos). Seleccionar aleatoriamente un elemento de LRC e incluirlo en la solución

parcial. Repetir el proceso anterior hasta que se obtenga una solución del problema. La

anterior fase constructiva se repite hasta que se cumpla el criterio de parada. El GRASP

para el problema del empaquetado rectangular bidimensional no guillotina usado en la

experiencia computacional se describe en el capítulo 1.

3. Reglas de parada dependientes del problema

En general, la calidad de una solución se evalúa atendiendo únicamente al valor

objetivo. Sin embargo, existen otros valores de la solución que indican la calidad de ésta y

la posibilidad que existe de mejorarla. En el problema del empaquetado rectangular algunos

de estos valores son: área de los desperdicios, forma del contorno superior o distribución de

los items en el objeto.

En el capítulo 3 se usaron algunos de estos valores para evaluar las soluciones del

problema del empaquetado rectangular bidimensional y para diseñar, por tanto, reglas de

parada. Las reglas de parada propuestas emplean el valor de varios parámetros que

caracterizan la bondad de una solución. El valor alcanzado en una solución del problema se

compara con el valor que se considera deseable. Es decir, con el valor que satisface al

decisor o que caracteriza una situación no mejorable eficientemente. El resultado de esta

comparación indica si se debe continuar o no la búsqueda. Recordamos ahora los elementos

que nos permitieron definir la regla de parada.

40

Dada una solución arbitraria,X, del problema del empaquetado de rectángulos,

podemos representar el contorno superior de la misma por un conjunto de segmentos (o

niveles), tomados de izquierda a derecha (ver figura 1.1(b)), como el que sigue:

� � � � � ��� CCC xxyxxyxxyC 2122

21

212

11

1 ,,,...,,,,,,�

donde: iy altura del i-ésimo segmento ix1 punto inicial del i-ésimo segmento ix2 punto final del i-ésimo segmento

Además, y . 011 �x wxC

�2

En la figura 1.1(b) se observa también que, como consecuencia del proceso de

búsqueda, pueden aparecer en la solución áreas no aprovechadas, llamadas desperdicios.

Dada una solución X, la posibilidad de obtener una solución mejor que ésta

depende, en gran medida, de la forma del contorno superior y del área total de sus

desperdicios. En general, las soluciones con contornos superiores suaves y desperdicios

pequeños son difícilmente mejorables.

Sea f(X) el valor objetivo de X y denotemos por Desperdicio(X), al área total de los

desperdicios de esta solución. Nótese que

� � }{max,...,1

i

ciyXf

Para medir la suavidad del contorno superior usamos la altura media de los niveles

del contorno definida como:

41

AlturaMedia(X) = � �� ���

c

i

iyXfc 1

1

Valores próximos a cero se corresponden con contornos suaves.

Así, la combinación de Desperdicio(X) y AlturaMedia(X) puede usarse para evaluar

la calidad de una solución y, por tanto, como criterio de parada de cualquier procedimiento

de resolución para este problema.

1 Criterio de parada. Finalizar la búsqueda cuando

Desperdicio(X) ≤ �1 ^ AlturaMedia(X) ≤ �2

(4.1)

En la experiencia computacional, los parámetros �1 y �2 se fijaron atendiendo al

siguiente convenio. Sea A = el área total de los rectángulos. Los valores de �1

indican el porcentaje de A que se considera en la regla de parada. Si, por ejemplo, se toma

�1 = 0.01, esto quiere decir que el porcentaje de desperdicios debe ser menor o igual al 1%

del área total de los rectángulos a empaquetar. Los valores de �2 son absolutos: indican la

altura media que se toma.

��

n

i ii hw1

4. Experiencia Computacional

Para comparar la eficiencia y eficacia de la regla de parada dependiente del

problema frente a las reglas de parada independientes del mismo, se resolvieron problemas

de empaquetado con las diferentes metaheurísticas de búsqueda enumeradas en la sección

2. Para cada metaheurística se usó la regla de parada dependiente del problema descrita

anteriormente y una regla de parada independiente del problema. Para evitar un número

excesivo de iteraciones al usar la regla de parada dependiente del problema, se impuso que,

en cualquier caso, no se alcanzase el valor de 1000 en el parámetro que determina la regla

de parada independiente del problema. Las reglas de parada independientes del problema

42

consideradas son: Búsqueda Aleatoria, número máximo de iteraciones (niter); Búsqueda

Multiarranque, número máximo de búsquedas locales (nbl); GRASP: número máximo de

fases constructivas (ncons); Búsqueda por entornos variable: número de máximo de

iteraciones (niter). Los problemas tests usados son los correspondientes a las categorías C1,

C2,…, C6 de Hopper y Turton [7].

Las tablas 4.1, 4.2, 4.3 y 4.4 recogen, respectivamente, los resultados obtenidos con

la Búsqueda Aleatoria Pura, la Búsqueda Multiarranque, VNS y GRASP. La primera

columna de estas tablas indica la categoría de problemas de Hopper y Turton considerados.

A continuación aparecen los mejores valores objetivos y el tiempo de CPU consumido por

las correspondientes heurísticas para los dos tipos de reglas de parada. Se trata de valores

promedios sobre los 3 problemas de cada categoría. Cada uno de estos problemas fue

resuelto 10 veces con cada heurística. Para las reglas independientes del problema se

consideraron varios valores para el parámetro que determina dichas reglas. Esto se refleja

en las correspondientes tablas de resultados. Para las reglas de parada dependientes del

problema se fijó experimentalmente los valores de �1 y �2 (ver 4.1) para cada categoría.

De los resultados obtenidos se concluye que:

1 La regla de parada dependiente del problema es más eficaz que la regla de

parada independiente del mismo. En casi todos los casos, se obtuvieron mejores

soluciones con el primer tipo de regla de parada. La única heurística para la que este

hecho no fue cierto es la Búsqueda Aleatoria Pura. Esto se explica por el mayor

número de iteraciones desarrolladas con la regla independiente del problema, y por

la baja calidad de las soluciones obtenidas con la Búsqueda Aleatoria Pura.

2 Cuanto mejor es la heurística mas recomendable es usar reglas de parada

dependientes del problema. En heurísticas que suministran soluciones de baja

calidad, como la Búsqueda Aleatoria Pura, es improbable que se encuentre una

solución que cumpla el criterio de parada dependiente del problema. El caso

43

contrario se presenta para el GRASP, que es capaz de encontrar soluciones que

satisfacen el criterio de parada en pocas iteraciones.

44

45

CONCLUSIONES

Hasta el momento se han alcanzado algunos de los objetivos previamente

planteados. Así,

a) Se han diseñado, implementado y evaluado diferentes estrategias de búsqueda

para el problema. La evaluación se ha realizado sobre los problemas tests usados por la

comunidad científica y sobre problemas generados aleatoriamente. Los resultados

obtenidos permiten afirmar que nuestra estrategia GRASP (Greedy Randomized Adaptive

Search Procedures) es la que presenta un mejor comportamiento. Por ello, se considera esta

estrategia en el Módulo de Búsqueda.

b) Se han resuelto problemas significativamente mayores que aquellos resueltos

hasta ahora. El tamaño de los problemas resueltos es hasta 5 veces mayores que los

resueltos con las estrategias conocidas.

Es decir, se han alcanzado los objetivos 1, 2 y 3 que se enumeraron en la

introducción de este trabajo. Estos hacen referencia al Módulo de Búsqueda que ha sido,

por tanto, diseñado e implementado.

c) Se han propuesto diferentes criterios de verificación dependientes del problema

que indican si un patrón de corte puede mejorarse. Además, se han comparado entre sí y

con otros criterios de verificación independientes del problema que pueden encontrarse en

la literatura científica. De la comparativa se concluye que con nuestros criterios de

verificación se obtienen mejores patrones de corte y que, además, existe una base más

sólida para finalizar la búsqueda.

Esto es, se han alcanzados los objetivos 4 y 5 (ver introducción) que hacen

referencia al Módulo de Verificación y Finalización.

46

En estos momentos se dispone de un sistema eficiente y eficaz que suministra

patrones de corte de alta calidad. El sistema incluye criterios de verificación y finalización

apropiados para el problema que muestran un muy buen comportamiento. Nuestras

propuestas han sido validadas sobre problemas obtenidos de la bibliografía científica y

generados aleatoriamente. Es de destacar que hemos resuelto de forma satisfactoria

problemas de mayor tamaño que aquellos previamente considerados en trabajos publicados

en revistas científicas con índice de impacto.

Actualmente, estamos diseñando el Módulo de Interacción y el Módulo Gráfico de

Presentación. A estos módulos corresponden los objetivos 6, 7 y 8 que no han sido, por

tanto, alcanzados aún. Para el Módulo de Interacción tenemos planteadas ideas que deben

ser evaluadas experimentalmente. Las mismas indican qué tipo de conocimiento puede ser

útil para mejorar el comportamiento de nuestro sistema y cómo incluirlo en el Módulo de

Búsqueda. En cuanto al Módulo Gráfico de Presentación, es nuestra intención mantener

reuniones con directivos de empresas del sector textil para determinar los requerimientos de

este módulo.

47

Referencias

[1] Aarts, E, Korst, J. Simulated Annealing and Boltzmann Machines. John Wiley and Sons

(1989)

[2] S. Benati. An algorithm for a cutting stock problem on a strip. Journal of Operational

Research Society Vol. 48 pp. 288-294 (1997)

[3] Boender, C.G.E., Rinnooy Kan, A.H.G., Vercellis, C.: Stochastic Optimization

Methods. Stochastics in Combinatorial Optimization (1986) 94–112

[4] Boender, C.G.E., Rinnooy Kan: Bayesian Stopping Rules for Multistart Global

Optimization Methods. Mathematical Programming 37 (1987) 59–80

[5] W.W. Daniel. Applied Nonparametric Statistics. PWS-Kent Publishing Company,

Boston, 1990.

[6] Feo, T. A., Resende, M.G.C. Greedy Randomized Adaptive Search Procedures. Journal

of Global Optimization 6 (1995) 109–133

[7] Hopper, E., Turton, B.C.H. A Review of the Application of Meta-Heuristics Algorithms

to 2D Strip Packing Problems. Artificial Intelligence Review 16 (2001) 257–300

[8] I. Hwang. An efficient processor allocation algorithm using two dimensional packing.

Journal of Parallel and Distributed Computing Vol. 42 pp. 75-81 (1997)

[9] Los, M., Lardinois, C. Combinatorial Programming, Statistical Optimization and the

Optimal Transportation Network Problem. Transportation Research 2 (1982) 89–124

[10] Moreno-Vega, J. M., Moreno, J. A. Una Regla de Parada para la Búsqueda con

Arranque Múltiple. Actas de las I Jornadas de Informática. (1995) 271–280

48