Está en la página 1de 8

Implementacin de un Sistema de Optimizacin para el Corte de Materia Prima Mediante un Algoritmo Anytime

C. Carrascosa, M.A. Hernndez, M. Rebollo, F. Barber, V. Botti, E. Onainda Departamento de Sistemas Informticos y Computacin Universidad Politcnica de Valencia Camino de Vera s/n 46020 Valencia . E-mail: {carrasco, mhernand, mrebollo, fbarber, vbotti, onaindia}@ dsic.upv.es Presentado en: II Jornadas de transferencia tecnolgica de inteligencia artificial. Actas de las Jornadas
(Ed. F. Martn, F. Triguero). ISBN 84-8498-764-7. Pg: 45-52. Mlaga. 1997

Palabras clave: Cutting stock, IDA* , optimizacin, anytime progresivo. Keywords: Cutting stock, IDA* , optimization, progressive anytime. RESUMEN. El presente artculo analiza la aplicacin de tcnicas heursticas al problema de planificacin y control del proceso de corte de materia prima continua. Dicho problema es relevante en multitud de empresas de diversa ndole (papelera, cartonera, textil, maderera, metalrgica,...) en las que se requiere cortar lminas o bobinas de materia prima para producir piezas de determinadas dimensiones, minimizando las prdidas de material que se generan. Para su resolucin planteamos utilizar una variacin de una tcnica clsica dentro del campo de la Inteligencia Artificial: los algoritmos IDA*. Con el fin de incrementar el rendimiento global de la aplicacin, incluimos dos mejoras. La primera es una poda que reduce el espacio de estados a travs del estudio detallado de las restricciones del proceso. La segunda mejora es una aproximacin anytime progresivo que permite detener en cualquier momento el clculo de la solucin, garantizando siempre una respuesta. ABSTRACT. The present paper analyzes the application of heuristic methods to the planification problem and to the control of the cutting process of continuous raw material. This problem is relevant in many different kinds of industries (paper, board, textile, mill, metallurgical,...). At those industries, it is required to cut wafers or reels of raw material to produce pieces of determined dimensions, minimizing the material wastes that are generated. An approach of a classic technique within the Artificial Intelligence field, the IDA* algorithm, is used to solve the problem. To increase the global application performance, two improvements are provided. The first one is a pruning technique that reduces the state space through the detailed study of the process constraints. The second one is a progressive anytime approximation that allows to stop computation at any time, and always guarantees an answer. 1.- INTRODUCCIN. El problema de planificacin y control del proceso de corte de materia prima continua es relevante en multitud de empresas de diversa ndole, como la papelera, cartonera, textil, maderera o metalrgica, en las que se requiere cortar lminas o bobinas de materia prima para producir piezas de determinadas dimensiones, minimizando las prdidas de material que se generan. Se trata de un problema que se ha tratado ampliamente en el sector de la investigacin de operaciones, donde se le conoce como cutting stock problem. Los mtodos que se utilizan

habitualmente para resolverlo estn basados en tcnicas de programacin lineal [Gilmore 65], tratando el problema como un CSP (Constraint Satisfaction Problem problema de satisfaccin de restricciones), o bien utilizando tcnicas de programacin dinmica [Christofides 95]. Estos mtodos no resultan apropiados debido al gran nmero de combinaciones que se generan. En el presente artculo se proponen el uso de tcnicas heursticas que logran una resolucin eficiente, garantizando la obtencin de la solucin ptima (la que minimiza la merma). Para su resolucin se utiliza una variacin de una tcnica clsica dentro del campo de la Inteligencia Artificial: los algoritmos IDA* [Korf 90]. Con el fin de incrementar el rendimiento global de la aplicacin, se incluyen dos mejoras. La primera es una serie de podas que reducen el espacio de estados a travs del estudio detallado de las restricciones fsicas del proceso. La segunda mejora es una aproximacin anytime que permite detener en cualquier momento el clculo de la solucin, garantizando siempre una respuesta. De esta forma, se consigue un mtodo que proporciona una respuesta en un tiempo finito cuya calidad va aumentando progresivamente hasta que alcanza la solucin ptima.

2.- PLANTEAMIENTO DEL PROBLEMA. El problema consiste en distribuir un conjunto de pedidos P = (p1, p2,... , pn) sobre una bobina de materia prima de longitud indeterminada y de ancho fijo A1, con el objetivo de minimizar las prdidas de material que se generan en el proceso de corte. Se considera prdida nicamente a los deshechos laterales. En adelante se usar el trmino merma para referirse a estos deshechos. Cada pedido pi est formado por un nmero de hojas de una determinada dimensin, especificando su largo l(pi) y su ancho a(pi). Debido al tipo de materia prima que se va a cortar, estas medidas no son intercambiables, manteniendo siempre la orientacin especificada. Otro dato requerido es la cantidad total solicitada q(pi), medida en Kg. 3.- ANLISIS PRELIMINAR. A la hora de resolver un problema del tipo one-dimensional cutting stock problem, slo va a interesar una dimensin (como su propio nombre indica), dicha dimensin es en este caso el ancho de la bobina. Con tal de facilitar el planteamiento del problema intentando reducir su complejidad, se ha representado el espacio de soluciones siguiendo la siguiente representacin: El mtodo que se sigue para obtener la planificacin ptima es determinar la mejor combinacin de los pedidos, teniendo en cuenta que para minimizar la merma se debe aprovechar al mximo el ancho de la bobina, tal y como se ha comentado anteriormente. Para ello existen dos opciones: Un nico pedido pi dispuesto en paralelo un mximo de Ni veces a lo largo del ancho de la bobina de manera que se cumple que Ni a(pi) A (1) Varios pedidos pi, pi+1 ,..., pj, donde cada pedido pk se coloca Nk veces en paralelo y se cumple que

N
k=i
1

a( p k ) A

(2)

Este tipo concreto de problema se conoce como one-dimensional cutting stock problem, pues trabaja con una sola dimensin de la bobina: su ancho, despreciando su longitud.

Una vez que se establece una combinacin de pedidos vlida, se mantiene hasta que finaliza uno de ellos (se alcanza la cantidad solicitada). A esta combinacin es a lo que se denomina lnea, y se define como aquel intervalo del largo de la bobina en que el/los pedido/s que cubren sta son constantes. Por ejemplo, en la Figura 1, aparecen tres lneas: l1, l2 y l3, cuyos lmites estn establecidos por la conclusin de los pedidos p2, p1, y p5 respectivamente. l1 l2 p5 p4 p1 p1 p1 p3 l3 l4

p2 A

p4 p4

Figura 1: Distribucin de pedidos sobre una bobina2

El primer paso, independientemente del mtodo que se elija para resolver el problema, es calcular todas las posibles lneas. Este es el punto de partida del algoritmo de optimizacin de corte. 4.- ESTUDIO DE LA COMPLEJIDAD DEL PROBLEMA. Sea c el nmero de hojas que se pueden cortar simultneamente en una lnea3 y sea n el nmero total de pedidos que hay que servir. Por cada pedido pi, hay un mximo de mi combinaciones en paralelo, donde mi c. Las combinaciones seran: Servir el pedido pi slo, servir el pedido pi dos veces en paralelo, ..., servir el pedido pi mi veces en paralelo a lo largo del ancho de la bobina. n i=1 mi combinaciones, cuya obtencin en el peor caso es del orden de As, pueden aparecer m = max( mi ) i =1,..., n O(nm), siendo . Sea r el nmero de pedidos que se puede servir en paralelo y se cumple que r c. El nmero total de lneas se calcula como el nmero de combinaciones existentes entre todos los pedidos, tomados de r en r:
( mn ) = r mn! mn (mn 1) ... ( mn ( r + 1)) ( mn r )! = = r!( mn r )! r!( mn r )! mn ( mn 1) ... (mn ( r + 1)) 1 r 1 r = i =0 ( nm i ) i =0 nm O ( ( nm) r ) r! r! r!

El coste temporal en el peor caso de la generacin de todas las combinaciones posibles ser O((mn)r). Este orden representa tambin el coste espacial. Sin embargo, ste ltimo se puede ver reducido drsticamente porque se invalida un nmero alto de combinaciones por varios motivos,
2 3

La zona sombreada representa el desperdicio que se produce en cada lnea, o merma lineal. El nmero de hojas viene determinado por el nmero de cuchillas de la mquina. En este tipo de maquinaria, suelen usarse dos cuchillas para eliminar una pequea franja del borde exterior de las bobinas y el resto para cortar los pedidos. En ese caso, una mquina con c+1 cuchillas puede obtener un mximo de c hojas en paralelo.

entre los que figuran rebasar el ancho de la bobina y la repeticin de pedidos en distinto orden. En este ltimo caso, se hace referencia a que, a efectos prcticos, se pueden considerar equivalentes las lneas compuestas como las que aparecen en las siguientes figuras: Pi Pi Pi Pj Pj

Pj

Pj

Pi

Pi

Pi

Figura 2: Equivalencia de lneas con pedidos distribuidos en distinto orden.

Estas y otras consideraciones son las que dan lugar a las podas que se efectuarn con posterioridad sobre el espacio de soluciones. Este coste es para un caso genrico. Cuando se aplique este desarrollo a una mquina real concreta, tanto r como m sern conocidos.

5.- DISEO DEL ALGORITMO DE RESOLUCIN. Una vez que se tienen calculadas estas lneas, se podra calcular la solucin al problema como la mejor combinacin de lneas que sirve todos los pedidos, entendiendo como "mejor combinacin" aquella que nos produce la mnima merma. Hallar esta mejor solucin, seleccionndola de entre todas las soluciones posibles, es un problema que se incluye en la categora de los problemas NP-completos, cuya resolucin tiene un coste factorial. Para que dicha resolucin sea tratable, se ha decidido incorporar conocimiento heurstico que permite reducir la complejidad de este problema, y realizar una resolucin del problema que, pese a no ser una aplicacin de tiempo real, tiene una estructura de algoritmo anytime progresivo [Garca-Forns96] [Garca - Forns 97], ya que le informa al usuario en cada momento de las caractersticas de la mejor solucin calculada hasta el momento (en concreto del porcentaje de merma y de cuanto tiempo estima que le falta hasta terminar por completo de buscar la mejor solucin) pudiendo ste parar el proceso de bsqueda cuando la mejor solucin calculada hasta el momento sea lo bastante satisfactoria. Dentro de la resolucin del problema, hay que indicar en primer lugar que se han diseado cuatro aproximaciones, que se ejecutan segn un orden donde cada una es ms completa (y por tanto con un coste espacial y temporal superior) que la anterior, y adems se usa el resultado devuelto por una aproximacin como cota superior de la solucin a calcular con la siguiente. De forma resumida, dichos algoritmos son: 1) Planificar el corte de los pedidos segn la ecuacin (1): Esto supone que las lneas van a estar compuestas por un nico pedido dispuesto en paralelo a lo largo del ancho de la bobina. 2) Planificar el corte de los pedidos mediante un algoritmo de coste lineal que incorpora en cada paso la lnea de menor merma lineal en la solucin. 3) Planificar el corte de los pedidos usando un algoritmo de tipo EIDA (Extended Iterative Deepening - A): Versin del algoritmo IDA* [Korf 90] utilizando una aproximacin basada en la expansin de los k - mejores sucesores que no garantiza la solucin ptima. 4) Planificar el corte de los pedidos utilizando un algoritmo de tipo EIDA* (Extended Iterative Deepening - A*): Versin del algoritmo IDA* que utiliza una expansin del tipo primero el mejor, a diferencia del algoritmo IDA* normal que utiliza una expansin en profundidad. En ambos algoritmos se utiliza una cota superior que se utiliza para podar aquellos nodos cuya funcin heurstica f(n) exceda dicha cota superior. Adems, esta cota superior se va modificando dinmicamente conforme se expanden los nodos.

En las dos ltimas aproximaciones, se han utilizado una serie de funciones de estimacin del camino mnimo propias de la topologa del problema en cuestin. 6.- IMPLEMENTACIN. El algoritmo comentado se ha implementado para la planificacin del proceso de corte de una cortadora dplex4 de cartn. Para ello, se ha desarrollado una aplicacin en entorno Windows 95, utilizando la herramienta de desarrollo Visual C++. 6.1. Caractersticas de la aplicacin 6.1.1. Entrada Los pedidos a planificar sern seleccionados de entre toda la cartera disponible de la empresa basndose en el tipo de cartn del que se deben servir, y en la fecha mxima que se puede demorar la entrega del pedido al cliente. Adems, despus de esta seleccin un poco vasta el usuario puede visualizar el conjunto de pedidos seleccionado y eliminar alguno, obligar a que se planifique, o bien deja a la aplicacin la decisin de realizarlo o no. Otro parmetro de entrada que puede configurar el usuario es el porcentaje de merma mxima que considera aceptable.
Figura 3: Ventana de seleccin de los pedidos a cortar

6.1.2. Proceso de Clculo Mientras se est realizando el proceso de clculo, existe una interaccin con el usuario por medio de una ventana en la que se va reflejando el estado actual de la mejor solucin en curso, en funcin del tipo de aproximacin que se est utilizando en ese momento, y una estimacin del tiempo restante hasta que finalice el nivel actual. Adems, y como ya se ha comentado anteriormente, se le ofrece al usuario la posibilidad de interrumpir este proceso en cualquier instante y quedarse con la mejor solucin hasta el momento.

Figura 4: Ventana del proceso de clculo.

Este tipo de mquina se caracteriza porque puede disponer como mximo dos pedidos distintos en paralelo, replicados un total de ocho veces entre los dos.

6.1.3. Salida Una vez finalizado el proceso de clculo, bien sea de forma normal o porque lo ha detenido el usuario, la aplicacin devuelve una lista con informacin diversa sobre los pedidos planificados as como el porcentaje de merma global obtenido. Adems permite visualizar en detalle la solucin calculada, bien en forma de tabla bien en formato grfico (representacin de la disposicin de los pedidos sobre la bobina, que puede ser proporcional a la longitud de los mismos o no, segn quiera el usuario).
Figura 5: Primera ventana de la solucin.

Figura 6: Ventana de la solucin en formato texto.

Figura 7: Ventana de la solucin en formato grfico.

7.- PRUEBAS. La aplicacin que se comenta aqu es un prototipo que est en fase de depuracin. Para realizar la misma, hemos partido del histrico de un ao de la empresa para la cual se ha desarrollado dicha aplicacin. Partiendo de dicho histrico se ha realizado un generador automtico de pruebas. En el grfico de la Figura 8 se muestra una comparativa de una batera de pruebas. En concreto, se comparan las medias de 20 pruebas con 1, 2 y hasta 15 pedidos, repetidas 6 veces (dejndole un mximo de 20, 40, 60, 90 y 120 segundos) y, por ltimo, calculando la solucin ptima. En particular, en el grfico se puede comprobar la desviacin que sufren dichas pruebas con tiempo limitado con respecto a la solucin ptima. As, se puede observar cmo esta diferencia disminuye conforme aumenta el tiempo que se le deja al sistema para calcular la solucin. El problema, claro est, es que no se puede establecer en qu momento se va a encontrar una solucin mejor que la actual. Lo que s se observa es que al aumentar el nmero de pedidos se necesita ms tiempo para encontrar la solucin ptima, como es lgico. De hecho, se puede calcular una relacin entre el nmero de lneas que existen en el espacio de soluciones inicial y el nmero de nodos que se van a generar en la resolucin del problema, lo que dar una estimacin tambin del tiempo necesario para dicha resolucin (ste es el mtodo empleado para la barra de progreso de la ventana de clculo ver Figura 4). Como se ve en el grfico, el incremento de la bondad de la solucin al aumentar el tiempo de clculo no es cuantificable a priori, ya que va a depender de la topologa del problema.
Merma normalizada frente a la merma ptima
1,4

1,2

Merma - Merma ptima

0,8

0,6

Merma 20s.- Merma pt. Merma 40s.- Merma pt. Merma 60s.- Merma pt. Merma 90s.- Merma pt. Merma 120s.- Merma pt.

0,4

0,2

0 1 2 3 4 5 6 7 8 N de Pedidos 9 10 11 12 13 14 15

Figura 8: Desviacin del resultado ptimo

9.- CONCLUSIONES. Se ha desarrollado una aplicacin basada en tcnicas de inteligencia artificial para la optimizacin de un sistema de corte. Dicha aplicacin se encuentra en fase de pruebas en la empresa para la cual se lleva a cabo. El mtodo implementado le permite al usuario detener el proceso de clculo cuando haya encontrado una solucin que sea lo suficientemente satisfactoria. En caso de no detener el proceso de clculo, ste encontrar la solucin ptima.

REFERENCIAS.
[Gilmore 65] P. C. Gilmore and R. E. Gomory, "Multistage Cutting Stock Problem of Two and more Dimensions", Operations Research Vol. 3, 94 - 120 (1965). [Korf 90] Richard E. Korf, "Real - Time Heuristic Search", Artificial Intelligence 42, 189 - 211 (1990). [Garca - Forns 96] A. Garca - Forns, and A. Terrasa, and V. Botti, "Engineering a tool for building hard predictable real - time artificial intelligent systems", Proceedings of the 21st IFAC / IFIP Workshop on REAL TIME PROGRAMMING pp. 155 - 160, Brazil, 1996. [Garca - Forns 97] A. Garca - Forns, A. Terrasa, V. Botti, and A. Crespo, "Analysing the schedulability of hard real - time artificial intelligent systems", Engineering Applications of ARTIFICIAL INTELLIGENCE (to appear). [Buchanan 81] J. T. Buchanan, Generalized allocation problem in building design. Part I: Formulation, Computer aided design, volume 13, number 4, july 1981. [Amaral 90] Carlos Amaral, Joo Bernardo, and Joaquim Jorge, Marker making using Automatic Placement of Irregular Shapes for the Garment Industry, Computer Graphics in Portugal (1990). [Christofides 95] Nicos Christofides, Eleni Hadjiconstantinou, An exact algorithm for orthogonal 2-D cutting problems using guillotine cuts, European Journals of Operational Research, 83, 21 38 (1995). [Hadjiconstantinou 95] Eleni Hadjiconstantinou, Nicos Christofides, An exact algorithm for general, orthogonal, two dimensional knapsack problems, European Journals of Operational Research, 83, 39 56 (1995). [Bentley 80] Jon Louis Bentley, and Derick Wood, An Optimal Worst Case Algorithm for Reporting Intersections of Rectangles, IEEE Transactions on Computers, vol. C 29, N 7, July 1980.