Artículos
Optimización de corte de rollos mediante un algoritmo genético
Optimization of rolls cutting by a genetic algorithm
Optimización de corte de rollos mediante un algoritmo genético
Conciencia Tecnológica, núm. 62, 2021
Instituto Tecnológico de Aguascalientes
Recepción: 08 Junio 2021
Aprobación: 15 Octubre 2021
Resumen: Un algoritmo genético se propone para determinar la secuencia de corte de rollos de papel auto-adherible en diferentes anchos, que se utiliza principalmente como materia prima para la fabricación de etiquetas, y donde las longitudes de los requerimientos, llamadas cintas, están definidas por los clientes o por especificaciones del proceso de producción. El objetivo es determinar la programación del proceso de corte de rollos, es decir, obtener la mejor configuración en el corte de los rollos satisfaciendo los requerimientos de las demandas, pero a su vez minimizando los residuos y el nivel de inventario en el proceso mencionado.
Palabras clave: programación de operaciones, optimización, algoritmo genético.
Abstract: A genetic algorithm is proposed to determine the sequence of cutting rolls of self-adhesive paper in different widths, which is used as raw material for the manufacture of labels mainly, and where the lengths of the requirements, called tapes, are defined by the customers or by specifications of the production process. The objective is to determine the programming of the roll cutting process, i.e., to obtain the best configuration in the cutting of the rolls, satisfying the requirements of the demands, but at the same time minimizing waste and the level of inventory in the aforementioned process.
Keywords: operations scheduling, optimization, genetic algorithm.
Introducción
El papel auto-adherible es aquel que contiene algún tipo de pegamento en uno de sus lados para poder adherirse temporal o permanentemente en alguna superficie. La etiqueta, uso principal del papel auto-adherible, tiene un origen tan antiguo, como la escritura misma. Su finalidad es añadir información a los objetos. Se utiliza comúnmente en el etiquetado de productos comestibles, farmacéuticos y de cuidado personal, así como para empaque y etiquetado de envíos.
El papel auto-adherente tiene 3 componentes, el papel principal, el adhesivo y el papel de respaldo. El papel principal tiene la información y diseño deseado en uno de sus lados y el adhesivo del otro lado. El adhesivo puede ser de tener diferentes bases como solvente o agua, dependiendo de la superficie donde se va a colocar.
Empresas tales como, como Green Bay Packaging Inc., que se dedican a la fabricación de rollos gigantes de papel auto-adherible, se los venden a imprentas que se dedican a la elaboración de las etiquetas. El ancho de cada rollo gigante, también llamado rollo master, es más amplio, si se le compara con el ancho de los requerimientos de los clientes, por lo que se deben cortar según las medidas solicitadas por los consumidores. Los rollos recortados pueden manejarse con más facilidad y ser procesados para su propósito final. Los rollos de papel auto-adherente no son de tamaño variable porque no es económicamente factible fabricar un rollo de una dimensión específica. Tampoco es necesario que los clientes adquieran un rollo completo si sus necesidades son menores. Es posible solicitar rollos ya cortados, es decir, más pequeños y con medidas precisas. Este genera un problema para el fabricante, al dividir el rollo máster se genera una cinta de desperdicio. Para una solución óptima, es necesario satisfacer las necesidades de los clientes y reducir el desperdicio de papel. Es claro que se debe optimizar el corte de los rollos, con la finalidad de utilizar la menor cantidad de rollos, buscando generar la menor cantidad de desperdicio y cumpliendo con el cliente en tiempo y forma. A manera ilustrativa, la Figura 1 representa lo previamente comentado.

El departamento encargado de determinar la mejor configuración para cortar el rollo master, tiene un importante reto ya que puede afectar de manera considerable en las ganancias de una empresa (Dutta, 2001), optimizando tanto los recursos disponibles económicos, así como en términos medioambientales (eliminación y manejo de recursos), buscando mejorar la necesidad de planeación y configuración de corte adecuada, cumpliendo con los requerimientos de demanda, inventario de materia prima y de producto terminado.
Algunos autores como Kantorovich (1939), Gilmore y Gomory (1963), y Dyckhoff (1990) han abordado este problema de corte, lo han clasificado de acuerdo con su grado de complejidad, como un problema NP-hard (por sus siglas inglés Nondeterministic Polynomial), ya que el espacio de soluciones llega a ser muy amplio por las condiciones y restricciones que puede llegar a involucrar, en especial las diferentes combinaciones de corte existentes en el entorno que se estudie (Wongprakornku y Charnsetikul, 2010). Respecto a esto, varios autores presentan diferentes estrategias de solución tales como heurísticas (Yamase et. al, 2006; Yamase y otros, 2007) y meta heurísticas (Cui et. al, 2009).
En esta propuesta de investigación se desarrolla un algoritmo genético que permita el proceso de planeación y la programación de rollos de papel auto-adherible, respondiendo las siguientes inquietudes.
¿Cuántos rollos master cortar y en qué dimensiones?
¿Cuántas tiras de desperdicio se tendrá? o bien ¿Cuánta área desperdiciada se tendría?
Conocer estos dos elementos permite dar solución a la siguiente pregunta. ¿cómo configurar el corte de rollos con el fin de satisfacer los requerimientos de la demanda y, a su vez, minimizar los desperdicios y niveles de inventario en una empresa de papel auto-adherible?
Fundamentos teóricos.
El modelo matemático planteado por Clautiaux, Alves, Valério de Carvalho, & Rietz (2011), consiste en buscar nM, la mínima cantidad de rollos master a cortar, para satisfacer nC, la cantidad de rollos de tamaño c solicitados por el cliente para minimizar la función objetivo del desperdicio. La finalidad según Gracia Calandin (2010) consiste en satisfacer las demandas de unas determinadas piezas que se deben obtener mediante el fraccionamiento o la partición de un objeto más grande disponible en inventario. Persiguiendo el objetivo de minimizar los recortes o piezas residuales generadas por el corte. Haciéndose evidente la generación de un plan de corte que sea efectivo en términos del costo, pues no solamente se debe buscar minimizar el desperdicio del material, sino que, a su vez, se vea traducido en ahorros significativos para las empresas, dado que se deben considerar también los costos asociados a los niveles de inventario de materia prima y de producto en proceso (Abbasi & Sahir, 2010).
Por lo tanto, el problema de corte de rollo es un problema de optimización, específicamente de programación lineal entera, para el cuál su solución óptima tiene como resultados económicos y ambientales significativos. Entre sus objetivos se consideran algunos de los siguientes:
Maximizar el uso de material en inventario, con la finalidad de minimizar la cantidad de material en inventario para una lista de materiales dados.
Minimizar el número de cortes, mejorando la eficiencia y la productividad reduciendo los tiempos de procesamiento.
Minimizar el desperdicio.
Mejorar la rentabilidad, reduciendo costos de operación y costo de inventario; o reduciendo los precios de los productos, cumpliendo con los requerimientos de los clientes y las restricciones técnicas que puedan existir.
· Mejorar la rentabilidad, reduciendo costos de operación y costo de inventario; o reduciendo los precios de los productos, cumpliendo con los requerimientos de los clientes y las restricciones técnicas que puedan existir.
Los problemas de programación lineal entera pueden ser resueltos de una manera práctica a través de técnicas basadas en inteligencia artificial, como los algoritmos genéticos. Un algoritmo es una serie de pasos organizados que describe el proceso que se debe seguir, para dar solución a un problema específico. Un algoritmo genético (o AG para abreviar) es una técnica de programación inspirada en la reproducción de los seres vivos y que imita a la evolución biológica como estrategia para resolver problemas de optimización. En general, los algoritmos genéticos (AGs) resuelven problemas mediante el uso de programas de computación que imitan el funcionamiento de la inteligencia natural (Conogasi, 2018).
Los AGs hacen evolucionar una población de individuos, o conjunto de soluciones posibles del problema, sometiéndola a acciones aleatorias semejantes a las que actúan en la evolución biológica tales como mutaciones y recombinaciones genéticas; así como también a una selección de acuerdo con algún criterio, en función del cual se decide cuáles son los individuos más adaptados, que sobreviven, y cuáles los menos aptos, que son descartados.
Un AG funciona de la siguiente manera. Dado un problema específico de optimización a resolver, el AG requiere de un conjunto inicial de soluciones potenciales a ese problema, codificadas de alguna manera y de una función de aptitud que permite evaluar cuantitativamente a cada solución. Estas soluciones se suelen generar aleatoriamente, o bien pueden ser soluciones que ya se sabe que funcionan, con el objetivo de que el AG depure las opciones válidas hasta escoger la mejor. Cada una de las soluciones potenciales es evaluada por la función de aptitud, una ecuación matemática, que le da una calificación para saber qué tan “buena” es con respecto a las demás soluciones. Las mejores soluciones se conservan y se les permite reproducirse. Se realizan múltiples copias de ellas, y a algunas de ellas se les introduce, con cierta probabilidad, cambios aleatorios o mutaciones durante el proceso de copia. Luego, esta descendencia digital prosigue con la siguiente generación, formando un nuevo acervo de soluciones que son sometidas a una ronda de evaluación de aptitud. Las soluciones que han empeorado, o no han mejorado, con los cambios en su código son eliminadas. De nuevo, se seleccionan y copian estos individuos vencedores hacia la siguiente generación con cambios aleatorios, y el proceso se repite. Las expectativas son que la aptitud media de la población se incrementará en cada generación y, por tanto, repitiendo este proceso cientos o miles de rondas, pueden encontrarse mejores soluciones al problema bajo estudio.
Materiales y métodos.
El desarrollo del AG en este escrito requiere que, durante la inicialización, cada uno de los individuos sea codificado en un cromosoma. Cada cromosoma tiene varios genes, que corresponden a cada uno de los parámetros del problema. Para poder trabajar con estos genes en la computadora, es necesario codificar los cromosomas en una cadena, es decir, una serie de símbolos (números o letras). Las formas más empleadas para codificar un cromosoma son: la codificación binaria, codificación de valores finitos, uso de números enteros y uso de números reales. La elección de la codificación dependerá del problema a resolver, así que es preciso estudiar la codificación más óptima según el caso que se esté estudiando; porque la mayoría de las veces, una codificación correcta es la clave de una buena resolución del problema.
La población se define como un conjunto de N soluciones factibles con M cromosomas. La aptitud de un cromosoma se mide en términos de una función objetivo adecuada, se considera que un cromosoma más apto produce un mejor valor para la función objetivo. La idea final del algoritmo genético consiste en seleccionar a dos padres a partir de la población. En seguida los genes de los dos padres se cruzan y posiblemente mutan para producir hijos. La descendencia reemplaza los dos cromosomas más débiles, los que arrojan un peor resultado, y se repite el proceso de seleccionar nuevos padres.
Para implementar el algoritmo genético a un problema real requiere detalles adicionales que serán específicos de cada problema. De igual manera, las reglas para seleccionar los padres y crear hijos pueden variar. Por ejemplo, los padres se pueden seleccionar totalmente al azar de una población, o pueden consistir en los dos cromosomas más aptos.
El algoritmo genético se puede aplicar de la siguiente manera:
Paso 1:
Genere una población aleatoria X de N cromosomas factibles.
Para cada cromosoma s en la población seleccionada, evalúe su aptitud asociada. Se obtiene s* como la mejor solución disponible hasta ahora.
Se codifica cada cromosoma mediante una representación binaria o numérica.
Paso 2:
Se seleccionan dos cromosomas padres de la población.
Se realiza la cruza de los genes padres para crear dos hijos.
Se mutan los genes del hijo de manera aleatoria.
Si las soluciones obtenidas no son factibles, se repite el paso 2 hasta lograr la factibilidad, si no es así, reemplace los dos padres más débiles con los nuevos hijos para formar una nueva población X y actualice s*, a continuación, vaya al paso 3.
Paso 3:
Si se alcanza una condición de terminación, deténgase; * es la mejor solución disponible. En caso contrario repita el paso 2.
Funciones del algoritmo genético.
Para una corrida de producción específica, se desea a partir de un rollo “master” de 1000u, realizar los siguientes cortes que se muestra en la Tabla 1.

Secuencias de corte
La finalidad de elaborar las secuencias de corte es generar un conjunto de combinaciones, las cuáles contendrán la información que determinará como se debe cortar cada rollo “master” para obtener los diferentes tamaños de cintas. Se pueden tener tantas combinaciones como se desee, pero se debe procurar que en al menos en una de las combinaciones se realice un corte de cada tamaño.
Para este trabajo se decidió realizar la secuencia de corte de la siguiente manera para generar una combinación:
Se toma la medida del requerimiento (cinta) más largo dentro del conjunto posible. Véase Tabla 1
Se determina cuantas cintas se pueden obtener utilizando un rollo “master”.
Se calcula el residuo.
El residuo obtenido se compara con las otras medidas de corte y en caso de que se pueda realizar un corte adicional, se hace el mismo procedimiento desde a) hasta c), dando preferencia a la medida de cinta más larga.
Se construye la primera combinación de corte donde su primer componente contiene la información de cuantas cintas se cortan de la primera medida, su segundo componente de la combinación contiene la información de la segunda medida, etc.
Se repite el proceso desde a) hasta f) para construir la siguiente combinación, pero utilizando la siguiente medida de cinta demandada, de mayor a menor.
Una vez terminada la última medida se tienen las posibles secuencias de corte.
Utilizando esta metodología las combinaciones deben quedar como se muestra en la Tabla 2:
Nótese que la medida de 152u esta solicitada por dos registros, véase Tabla 1, por lo que se ha unido ambas demandas en Tabla 2.

Población inicial
La finalidad de esta parte del código es generar una población inicial de soluciones, los cuales recibe el nombre de cromosomas padres. Estos padres contendrán la información de cuantos rollos “master” se cortarán según las secuencias de corte generados. Para la obtención de los cromosomas de los padres, se realizará de manera aleatoria.
En la Tabla 3 podemos observar un ejemplo de cómo se expresa un cromosoma padre:

La lectura para el cromosoma padre del ejemplo de la Tabla 3, indica que se cortarán dos rollos con la secuencia de corte A, un rollo con la secuencia de corte B, dos rollos con la secuencia de corte o combinación C, etc. Las secuencias ya fueron previamente descritas en la Tabla 2.
Aptitud
La aptitud nos indica que tan bueno será un cromosoma padre en relación con el objetivo. Para evaluar cuáles individuos representan una mejor solución al problema, debe determinarse un criterio. En este reporte se propusieron dos, el número de rollos a cortar y el número de cintas que faltan para satisfacer la demanda. El primer criterio obedece a la condición de minimizar el desperdicio generado al hacer los cortes. El segundo se utiliza para encontrar la solución en la cual se pueda garantizar la demanda que amparan las órdenes de compra. Se definió que el segundo era más importante ya que, aunque se busca reducir el desperdicio, es necesario cumplir con las necesidades del cliente.
Tomando como ejemplo el cromosoma padre de la Tabla 3, en la Tabla 4 podemos observar los cortes obtenidos de cada una de las medidas, al hacer una comparación con la demanda se puede obtener cuantos rollos faltan para completar la demanda, lo ideal es que está quede en cero.

Se observa que de la medida 199 faltan 6 cintas, de la medida 152 faltan 8 cintas, de la 95 faltan 4 y de la 89 faltan 2. Por lo que la aptitud del individuo respecto a la demanda es de 
La aptitud con respecto al corte de rollos sería la sumatoria de los rollos cortados que en este caso fue de 15 rollos “masters”. Véase Tabla 3.
En la Tabla 5 y 6 se puede observar otro ejemplo.


Del ejemplo de la Tabla 5, se puede observar que la aptitud respecto a la demanda es de
pero la aptitud respecto al corte de rollo es de 22.
Para cuantificar la aptitud de los padres, se realizará por medio de dos códigos, el primer código que cuantificará la aptitud respecto a la demanda y el segundo código la aptitud respecto al corte de los rollos.
Selección
La selección consiste, en que un parte de cada generación existente se selecciona con la finalidad de criar una nueva generación. Su selección dependerá principalmente de la aptitud, donde aquellos padres que tengan un mejor resultado en la función objetivo respecto a la aptitud serán seleccionados y los otros serán descartados.
Primeramente, se deberán seleccionar dos padres, en este caso se hará de manera aleatoria, y se pondrán a competir, por torneo. El torneo consiste en que de los dos padres seleccionados se hace una comparación en cuanto a aptitud, y aquel que beneficie más a la función objetivo será seleccionado y el otro será descartado.
La finalidad es quedarse con la mitad de los padres que tengan una mejor aptitud respecto a la función objetivo.
Cruza
La cruza consiste en generar una población de segunda generación, a partir de la mitad de los padres seleccionados previamente, de manera aleatoria de esa muestra se tomarán dos padres y se realizará la cruza, tomando cierta información del padre uno y otra información del padre dos para generar un hijo o también llamado descendiente (offspring).
En la Tabla 7 se puede observar cómo se estructura un padre ‘A’ con su información P1 y un padre ‘S’ con su información P2. Se realizará un proceso de manera aleatoria, con una probabilidad cincuenta y cincuenta, para cada parte del vector tomar o P1 o P2 y construir el descendiente con la cruza de los dos padres que se puede observar en la Tabla 8.


Mutación
La mutación se obtiene a partir de los descendientes obtenidos, intercambiar y/o modificar información dentro del mismo individuo. La mutación se puede presentar en un solo descendiente o en todos los descendientes, eso dependerá del diseño del algoritmo. Para este trabajo únicamente se realizará la mutación en dos descendientes del total de la población.
A manera de ejemplo, si se tiene el descendiente de la Tabla 9. En la posición 0 se tiene la información A, en la 1 se tiene la de B, etc., la mutación realizará un cambio entre cada componente, podemos observar en la Tabla 10 que el descendiente tuvo un cambio en posición de la 3 a la 6 y viceversa.





Reemplazo generacional
Su finalidad es determinar quién se queda o se descarta de entre los padres o los descendientes: Existen diferentes formas de realizarlo, una de ellas es reemplazo 50-50 en el cuál la mitad de los padres se queda y la mitad de los hijos también. El reemplazo por torneo es aquel en el cuál se ponen a competir los padres con los hijos para determinar quién es más apto en términos de la función objetivo. Finalmente, el reemplazo del 100% en el cuál todos los padres se van y los hijos son los que se quedan, ver diagrama de flujo.
Resultados y discusión.
Se realizaron 10 corridas, cada corrida con 20 generaciones, el promedio de las cintas faltantes y de los rollos “masters” utilizados se puede observar en la Tabla 11.

De la Tabla 11 se observa que se ha llegado al objetivo en cumplir con los clientes, uno de ellos es la corrida 8, la desventaja de esta corrida es que es cuando más se utilizaron rollos “masters”, en comparación con la corrida 1, que es el mejor resultado, cortando 26.6 rollos masters.
Las corridas 2, 3, 4, 6, 9 y 10 no cumplen con los requisitos de los clientes, pero se puede observar que no es mucho lo que falta en promedio para las cintas faltantes y que ajustando en algún valor del vector se puede cumplir con los requisitos.
Se observa también que algunas corridas con cintas faltantes tienen una peor actitud en cuanto a los rollos utilizados de algunos que si cumplen, por ejemplo, la corrida 10 utiliza 27 rollos masters, faltando 3.4 cintas en comparación con la corrida 1 que no tiene cintas faltantes y en promedio utiliza menor cantidad de rollos.
En la Figura 2 se puede observar un diagrama de barras en comparación de las cintas faltantes y los rollos masters.
Se observa en la Figura 2 que entre más rollos masters se utilizan menos son las cintas faltantes, pero a su vez se deben considerar los costos de materia prima para utilizar un rollo master más.
En la Figura 3 se puede observar el promedio de uso de los rollos masters tomando en cuenta que según la Tabla 11 el mínimo promedio de rollos masters es de 26.6.
La eficiencia del método es comparada con aquellos algoritmos actuales que se han publicado para resolver el problema de corte de rollos. Los resultados se muestran en la Figura 4.

Conclusiones.
Un acercamiento para resolver el problema de corte, entre ellos el corte de rollos masters, que es muy frecuente en procesos industriales, es presentado en este trabajo, con la finalidad de reducir las cintas de desperdicio y el uso de rollos masters.
El uso del algoritmo genético como acercamiento, cumplió con la finalidad, ya que se ha podido reducir considerablemente el uso de rollos “masters”, cumpliendo con los requisitos del cliente, y reduciendo el desperdicio. Es un método muy eficaz ya que permite tener un acercamiento de una buena solución al momento del problema de corte.
Entre las mejoras que se pueden hacer para trabajos futuros es hacer también el conteo de cuantos metros lineales se tienen de desperdicio, hacer una comparación de cuál de los métodos de reemplazo son más eficaces y eficientes, entre reemplazo cincuenta-cincuenta, reemplazo por torneo y el reemplazo utilizado en este trabajo que es el del 100 por ciento.
Referencias.
Abbasi, J. A., & Sahir, M. H. (2010). Development of optimal cutting plan using linear programming tools and MATLAB algorithm. International Journal of Innovation, Management and Technology, 1(5), 483.
Araujo, S.A.D., Poldi, K.C., & Smith, J. (2014). A genetic algorithm for the one-dimensional cutting stock problem with setups. Pesquisa Operacional, 34(2), 165-187.
Clautiaux, F., Alves, C., Valério de Carvalho, J., & Rietz, J. (2011). New stabilization procedures for the cutting stock problem. INFORMS Journal on Computing, 23(4), 530-545.
Conogasi. (2018). Algoritmos genéticos. 2021, Conogasi.org, https://conogasi.org/articulos/algoritmos-geneticos/
Cui, Y. & Lu, Y. (2009). Heuristic algorithm for a cuttings rock problem in the Steel bridge construction. Computers & Operations Research. 36: 612-622
Dyckhoff, H. (1990). A typology of cutting and packing problems. European Journal of Operational Research, 44, 145-159.
Dyckhoff, H. (1990). A typology of cutting and packing problems. European Journal of Operational Research, 44, 145-159.
Dutta, G. & Fourer, R. (2001). A survey of mathematical programming applications in integrated. Steel plants. Manufacturing & Service Operations Management, 4, 387–400.
Gilmore, P. & Gomory, R. (1963). A linear programming approach to the Cutting Stock Problem-Part II. Operations Research, 11(6), 863-888.
Gracia Calandin, C. P. (2010). Métodos y Algoritmos para resolver problemas de Corte unidimensional en entronos realistas. Aplicación a una empresa del sector Siderúrgico.
Jahromi, M.H., Tavakkoli-Moghaddam, R., Makui, A., & Shamsi, A. (2012). Solving an one-dimensional cutting stock problem by simulated annealing and tabu search. Journal of Industrial Engineering International, 8(1), 24.
Kantorovich, L.V. (1960), Mathematical methods of organizing and planning production. Reprinted in Management Science, 6, 366-422.
Lin, W., Mu, D., & Wu, J. (2016). Study on One-Dimensional Wood Board Cutting Stock Problem Based on Adaptive Genetic Algorithm. International Journal of Future Generation Communication and Networking, 9(4), 95-101.
Wongprakornkul, S. & Charnsethikul, P. (2010). Solving One-Dimensional Cutting Stock Problem with Discrete Demands and Capacitated Planning Objective. Journal of Mathematics and Statistics, 6, 79-83.
Yanasse H. H. & Lamosa Pinto, M. (2007). An integrated cutting stock and sequencing problem. European Journal of Operational research, 183(3):1353-1370.
Yanasse, H. H. & Limeira, M. S. (2006). A hybrid heuristic to reduce the number of different patterns in cutting stock problems. Computers & Operations Research, 33(9): 2744- 2756.
Notas de autor