• No se han encontrado resultados

Sistema Inteligente de Corte en la Industria Textil Strip Packing Problem

N/A
N/A
Protected

Academic year: 2021

Share "Sistema Inteligente de Corte en la Industria Textil Strip Packing Problem"

Copied!
48
0
0

Texto completo

(1)

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.

(2)

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.

(3)

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

(4)

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.

(5)

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].

(6)

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)).

(7)

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

(8)

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 - a)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.

(9)

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:

(

) (

) (

)}

{

y x x y x x yC xC xC C 2 1 2 2 2 1 2 1 2 1 1 1, , , , , ,..., , , = con i

y altura del i-ésimo segmento

i

x1 punto inicial del i-ésimo segmento

i

(10)

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.

0 1 1 =

x xC =w

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 a1 Î [0, 1] y supongamos que

(

yi xi xi

)

2 1,

, es

el segmento del contorno con menor altura. La lista restringida de candidatos se construye como sigue: LRC1 =

{

R

(

wj,hj

)

ÎR2 :

(

2 - 1 - j £a1

)

Ú i i x w x

(

2 - 1 - j £a2

)}

i i x h x

(11)

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 a1.

2 Lista restringida de candidatos 2: sea dado a2 Î [0, 1],

(

yi xi xi

)

2 1,

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

respectivamente

(

1

)

2 1 1 1, - , -- i i i x x y y

(

1

)

2 1 1 1, + , + + i i i x x

y , son tales que (ver figura

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

1 -< yi 1 + < i i y y LRC2 =

{

R

(

wj,hj

)

ÎLCR1:

(

0£ +1 - - £a2

)

Ú j i i y w y

(

0£ +1- - £a2

)}

j i i y h y

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

formado los puntos

(

) (

) (

) (

1

)

1 1 1 1 2 1, , , , + , + , , + i i i i i i i i y x y x y x y

x . El ajuste viene dado por los valores

de a1 y a2. 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 =

{

R

(

wj,hj

)

ÎLCR1:

(

0£ -1- - £a3

)

Ú j i i y w y

(

0£ -1- - £a3

)}

j i i y h y

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

determinan los puntos

(

) (

) (

) (

1

)

1 1 2 2

1i,yi , xi,yi , xi,yi- , xi,yi

-x . El ajuste viene dado por los

valores de a1 y a3. Si LRC1 Ç LRC3 = Æ, hacer LRC3 = LRC1.

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

rectángulo de R2, digamos R(wr,hr), tal que

(

x2i -x1i -wr £a1

) (

Ú 0£ x2i -x1i -hr £a2

)

. 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

i i x x2 - 1

(

xi xi

)

2 1, , . i y

(12)

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

(13)

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

(14)

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 a1, (a1, a2) y (a1, a2, a3) para los métodos GRASP1, GRASP2 y GRASP3, respectivamente. Para cada uno de los parámetros se seleccionaron tres niveles: a1 = 0, 0.1, 0.2, a2 = 0, 0.1, 0.2 y a3 = 0, 0.1, 0.2 (a2 = a3), 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, Ta1 y Ta1, a2 .

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 a1 es 0, es decir, el que se corresponde con un mejor ajuste;

(15)

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 a1 = 0 y a2 = a3 = 0.2. Para problemas con 300 rectángulos, a1 = a2 = a3 = 0.

En los métodos GRASP4 y GRASP5, se fijó el valor de a1, a2 y a3 según la información obtenida en el análisis anterior, y se tomó k = 6 en todos los casos.

(16)
(17)

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:

(18)

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.

(19)

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

(20)

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.

(21)

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.

(22)

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 i y t C y c 1 1

)

n t =1,...,

(23)

( )

( )

max{ } ,..., 1 i c i y t C y = + = t =1,...,n

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

DAlturaMedia(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

DAlturaMedia(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*).

(24)

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 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.

(25)

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.

(26)
(27)

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.

(28)

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

(29)

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].

(30)

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:

(

) (

) (

)}

{

y x x y x x yC xC xC C 2 1 2 2 2 1 2 1 2 1 1 1, , , , , ,..., , , =

(31)

donde:

i

y altura del i-ésimo segmento

i

x1 punto inicial del i-ésimo segmento

i

x2 punto final del i-ésimo segmento

Además, y 1 0 .

1 =

x xC =w

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 c i y X f = =

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 i y X f c 1 1 y

(32)

AreaSuperior(X) =

å

(

)

(

( )

)

=-c i i i i x f X y x 1 1 2

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) ≤ a1 ^ AlturaMedia(X) ≤ a2

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

Desperdicio(X) ≤ a1 ^ AreaSuperior(X) ≤ a3

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

(33)

veces. El valor que determina el umbral de ajuste en el proceso constructivo del GRASP se fijó a b = 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 a1 indican el porcentaje de A que se considera en la regla de parada. Los valores de a2 son absolutos: indican la altura media que se toma. Un valor de a3 igual a k significa que el área superior contemplado en la correspondiente regla de parada debe ser menor que k × w.

å

= ×

n i 1wi hi

De los resultados obtenidos se concluye lo siguiente:

1 Para un valor fijo del parámetro a1, en general, se obtienen mejores valores objetivos al decrementar a2 en la regla de parada 1, y a3 en la regla de parada 2. Sin embargo, el número de iteraciones, a un valor fijo de a1, aumenta al incrementar el valor de a2 o a3. 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.

(34)
(35)
(36)
(37)

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 a1, a2 y a3 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.

(38)

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

(39)

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.

(40)

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.

(41)

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:

(

) (

) (

)}

{

y x x y x x yC xC xC C 2 1 2 2 2 1 2 1 2 1 1 1, , , , , ,..., , , = donde: i

y altura del i-ésimo segmento

i

x1 punto inicial del i-ésimo segmento

i

x2 punto final del i-ésimo segmento

Además, y 1 0 .

1 =

x xC =w

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 c i y X f = =

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

(42)

AlturaMedia(X) =

å

(

( )

)

= -c i i y X f c 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) ≤ a1 ^ AlturaMedia(X) ≤ a2 (4.1)

En la experiencia computacional, los parámetros a1 y a2 se fijaron atendiendo al siguiente convenio. Sea A = el área total de los rectángulos. Los valores de a1 indican el porcentaje de A que se considera en la regla de parada. Si, por ejemplo, se toma a1 = 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 a2 son absolutos: indican la altura media que se toma.

å

= ×

n i 1wi hi

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

(43)

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 a1 y a2 (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

(44)

contrario se presenta para el GRASP, que es capaz de encontrar soluciones que satisfacen el criterio de parada en pocas iteraciones.

(45)
(46)

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.

(47)

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.

(48)

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

Referencias

Documento similar

Proporcione esta nota de seguridad y las copias de la versión para pacientes junto con el documento Preguntas frecuentes sobre contraindicaciones y

Cedulario se inicia a mediados del siglo XVIL, por sus propias cédulas puede advertirse que no estaba totalmente conquistada la Nueva Gali- cia, ya que a fines del siglo xvn y en

En estos últimos años, he tenido el privilegio, durante varias prolongadas visitas al extranjero, de hacer investigaciones sobre el teatro, y muchas veces he tenido la ocasión

Sanz (Universidad Carlos III-IUNE): &#34;El papel de las fuentes de datos en los ranking nacionales de universidades&#34;.. Reuniones científicas 75 Los días 12 y 13 de noviembre

(Banco de España) Mancebo, Pascual (U. de Alicante) Marco, Mariluz (U. de València) Marhuenda, Francisco (U. de Alicante) Marhuenda, Joaquín (U. de Alicante) Marquerie,

The part I assessment is coordinated involving all MSCs and led by the RMS who prepares a draft assessment report, sends the request for information (RFI) with considerations,

 Tejidos de origen humano o sus derivados que sean inviables o hayan sido transformados en inviables con una función accesoria..  Células de origen humano o sus derivados que

d) que haya «identidad de órgano» (con identidad de Sala y Sección); e) que haya alteridad, es decir, que las sentencias aportadas sean de persona distinta a la recurrente, e) que