sistema inteligente de corte en la - um.es · de forma que optimicen alguna función del área que...
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
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
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
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
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