SciELO - Scientific Electronic Library Online

 
vol.27 issue5Computational Determination of Heat Transfer Coefficient in Continuous Flow Electrical Heaters, using Computational Fluid DynamicsApplicability of Giraph and Hadoop for the Processing of Big Graph author indexsubject indexarticles search
Home Pagealphabetic serial listing  

Services on Demand

Journal

Article

Indicators

Related links

  • On index processCited by Google
  • Have no similar articlesSimilars in SciELO
  • On index processSimilars in Google

Share


Información tecnológica

On-line version ISSN 0718-0764

Inf. tecnol. vol.27 no.5 La Serena  2016

http://dx.doi.org/10.4067/S0718-07642016000500018 

Programación de un Sistema Job Shop-Open Shop por medio de una Red Neuronal

 

Scheduling of a Job Shop-Open Shop System through a Neuronal Network

 

Omar D. Castrillón, Santiago Ruiz-Herrera y William Sarache

Universidad Nacional de Colombia, 2ede Manizales, Facultad de Ingeniería y Arquitectura, Departamento de Ingeniería Industrial, Campus la Nubia, CP 170001, Manizales - Colombia. (e-mail: odcastrillong@unal.edu.co; sruizhe@unal.edu.co; wasarachec@unal.edu.co)


Resumen

2e propone una metodología basada en redes neuronales para la programación de pedidos en un ambiente job shop-open shop. El problema de programación de la producción en sistemas job shop consiste en definir la mejor secuencia de pedidos para minimizar el tiempo total de proceso (makespan) u otras variables relevantes. Diversas técnicas inteligentes se han aplicado para resolver este tipo de problema. 2in embargo, estás presentan dificultades prácticas cuando se requieren cambios de programación, pues exigen reconfigurar nuevamente el problema para obtener una nueva solución. La metodología propuesta entrena la red mediante la combinación de los tiempos de proceso en cada nodo, por medio de funciones de transferencia multiplicadas por pesos que son generados por el algoritmo de programación de la red. La red neuronal propuesta permite obtener soluciones no solo para un problema en particular, sino para los nuevos que surjan sin necesidad de hacer una nueva reconfiguración. Las soluciones encontradas fueron comparadas con otras técnicas de programación de la producción, encontrándose desempeños superiores en el makespan del orden del 30% al 164%.

Palabras clave: programación de la producción; redes neuronales; job shop- open shop; makespan


Abstract

A methodology based on neural networks is proposed for solving the job shop-open shop scheduling problem. The job shop scheduling problem consist of defining the best order sequence to minimize the total processing time (makespan) or other relevant variables. 2everal intelligent techniques have been applied to solve this kind of problem. However, when reprogramming is required these techniques present practical difficulties since they require to be restructured to find a new solution. The proposed methodology trains the network by combining the processing times at each node, through transfer functions that are multiplied by weights obtained from the algorithm of network programming. The proposed neural network obtains solutions not only for a particular problem but also for new situations without requiring a problem reconfiguration. When compared with other techniques, the obtained solution showed a superior performance ranging from 30% to 164% in terms of the makespan.

Keywords: production scheduling; neuronal networks; job shop-open shop; makespan


 

INTRODUCCIÓN

La programación de la producción en ambientes de manufactura job shop, es uno de los problemas más complejos de resolver debido al alto número de posibilidades que pueden ser consideradas en la secuenciación de pedidos. La secuenciación implica determinar el orden de entrada de los pedidos al sistema de manufactura con miras a lograr los mejores desempeños en cierto tipo de variables, entre las cuales, el tiempo de procesamiento (makespan) ha sido uno de los más abordados. El problema de programación en ambientes job shop se considera del tipo NP-hard debido a que la cantidad de posibles soluciones son del orden de n!m (Castrillón et al., 2009; Castrillón et al., 2011), donde n corresponde al número de pedidos y m al número de máquinas que conforman el sistema.

En el estado del arte es posible identificar diversas contribuciones soportadas en el uso de técnicas inteligentes orientadas a encontrar soluciones sub-optimas en tiempos computaciones aceptables. Dentro de estas técnicas se destacan los algoritmos evolutivos, la búsqueda tabú, los algoritmos de enjambre y el recocido simulado, entre otras. Si bien estas técnicas han demostrado buenos resultados, desde la perspectiva de la gestión de los sistemas productivos una de sus falencias más notorias radica en que cada vez que se requiera programar la producción, es necesario configurar nuevamente todos los pedidos y máquinas con miras a realizar una nueva búsqueda hasta encontrar una solución adecuada. Esta situación ofrece dificultades prácticas, dada la necesidad de las exigencias del mercado que exigen reprogramar el sistema productivo de forma permanente.

En contraste, el empleo de redes neuronales en la secuenciación de pedidos, permite construir y programar soluciones no solo para un problema en particular, sino para los nuevos que surjan sin necesidad de hacer una nueva reconfiguración del problema; es decir, las redes neuronales ofrecen soluciones de programación mucho más acordes con la dinámica que caracteriza a los sistemas de producción tipo job shop. Sin embargo, una revisión de 139 artículos científicos, realizada por Ruiz (2015), permite establecer que estas han sido poco exploradas en la solución de este tipo de problemas (Ver Figura 1), Aunque las mismas han sido empleadas en otras áreas (Henríquez et al., 2011; Mendes et al., 2010).

Algunas contribuciones identificadas bajo el enfoque de redes neuronales para la solución de problemas de programación de la producción en ambientes job shop, se resumen en la Tabla 1. La mayoría de las soluciones identificadas se enfocan en limitar el número de posibilidades, minimizar el tiempo de entrega, manejar un número fijo de máquinas, de pedidos o clasificar los problemas para ser resuelto por medio de una heurística determinada. Como se puede observar, ninguna de ellas ofrece una solución orientada al diseño y entrenamiento de una red neuronal en un sistema de producción Job Shop - Open Shop.

Fig. 1: Técnicas inteligentes aplicadas en la solución de problemas de programación en ambientes job-shop

Tabla 1: Algunas contribuciones bajo el enfoque de redes neuronales para tratar el problema de programación en ambientes Job shop

El objetivo de este artículo es exponer una estructura metodológica para entrenar una red neuronal orientada a la programación de pedidos en un sistema de producción Job shop - Open shop. En la metodología propuesta se manejan restricciones tales como la precedencia de los pedidos, el número de máquinas y el número de procesos, aspecto que incrementa considerablemente el número de posibilidades de secuenciación. Con base en el entrenamiento de la red, se construyen soluciones para nuevos problemas, tendientes a minimizar el tiempo total de proceso, sin necesidad de que esta sea entrenada (programada) nuevamente. Las soluciones generadas fueron comparadas con otras técnicas de programación de la producción tales como FIFO (primera en entrar, primera en salir), LIFO (última en entrar, primera en salir), LPT (mayor tiempo de procesamiento) y SPT (menor tiempo de procesamiento). La solución encontrada mediante la red neuronal propuesta, ofreció desempeños superiores en relación con el tiempo de procesamiento de los pedidos (makespan).

METODOLOGÍA

La estructura de la metodología propuesta consta de 5 pasos: (1) identificación del problema de programación; (2) construcción del algoritmo; (3) validación; (4) comparación; y (5) análisis de estabilidad

Paso 1: Identificación del problema de programación

El problema de programación se basa en la identificación de la configuración productiva a programar en términos de las máquinas disponibles y del número de pedidos. Este se representa mediante una matriz de tamaño nxm. En esta matriz, las filas representan los pedidos a programar y las columnas representan las máquinas. Por su parte, cada posición Ti,j representa el tiempo que el pedido i, requiere en la máquina j (ver Tabla 2).

Tabla 2: Representación del problema de programación Job shop - Open shop N*M.

Paso 2: Construcción del algoritmo

El algoritmo propuesto se divide en dos fases: fase 1, programación de la red neuronal y fase 2, construcción del programa detallado (diagrama de gantt). En la fase 1, la red neuronal permite combinar varias entradas, multiplicadas por un peso que debe ser calculado. La combinación de entradas se hace por medio de una suma a la cual se le aplica una función de transferencia para generar la salida deseada (ver figura 2). Cada una de las salidas de la función de trasferencia constituirá la programación de cada máquina, siempre y cuando esta sea válida, para lo cual se emplea otra función de transferencia. En particular, la fase 1 se lleva a cabo a través del siguiente procedimiento:

a)    Cada una de las columnas de la Tabla 2, representará los valores T i,1 .. Ti,m que ingresarán a cada uno de los nodos Mi descritos en la Figura 2. Posteriormente, se debe definir una función de pesos Wi,1 ..Wi,m. Estos pesos serán los valores a ajustar una vez se programe la red.

b)    para cada uno de los nodos M1 .. Mn de la red, se define la función de transferencia que se expone en la Ecuación (1), donde, n es el número de pedidos, Ti,j es el tiempo de proceso del pedido i en la máquina j, Wi,j es el peso calculado para el pedido i en la maquina j. El redondeo es una función de aproximación al entero más cercano y el residuo es el valor restante de la división entera. Por su parte i es una variable que toma valores entre 1 y n y j toma valores entre 1 y el número máximo de máquinas (m). Con el ajuste de los pesos de forma adecuada, la función de transferencia debe generar un número entre 1 y el número máximo de pedidos a ser atendidos por una máquina

(1)

c) La reunión de todos los valores de las funciones de transferencia F1(x) hasta Fn(x), sobre el nodo denominado "Máquina M" en la Figura 2, determinará la programación de dicha máquina, siempre y cuando la salida sea válida. Es decir, una salida es válida si se cumple que los valores entregados por las funciones F1(x) hasta Fn(x), representen una secuencia de pedidos (1...n) a ser procesados por la máquina M. Lo anterior es validado por medio de la Ecuación (2), donde n es el número máximo de pedidos.

(2)

El anterior proceso genera una secuencia de fabricación de los pedidos en cada una de las máquinas que se están programando.

d) dado que pueden existir varias combinaciones de pesos W, los cuales generarán varias salidas validas en el sistema, es necesario realizar el respectivo diagrama de Gantt, con el fin establecer la secuencia de pesos que arroje el mejor desempeño; es decir, aquella secuencia de programación valida que produzca el menor tiempo total de procesamiento (makespan). Terminada la fase 1, el diagrama de Gantt que sustenta la fase 2, comprende los siguientes pasos. I) Se parte de un gen inicial, el cual representa la secuencia a ser programa (ver Tabla 3). II) Dado que pueden existir varias alternativas de programación de las máquinas que influyen en el resultado final del proceso, todas estas posibilidades deben ser consideradas al momento de construir el respectivo diagrama.

Tabla 3: Secuencia para generar el diagrama de Gantt.

Paso 3. Validación

Una vez programada la red, se procede a tomar un problema de programación, el cual representará las entradas Ti,1 .. Ti,m de la red propuesta y se procederá a validar la respectiva salida generada por la red. No obstante, si la salida es inválida los pesos son ajustados nuevamente.

Paso 4. Comparación

Finalmente los resultados obtenidos en el paso 3 son comparados con otras técnicas de programación de la producción tales como FIFO (primera en entrar, primera en salir), LIFO (última en entrar, primera en salir), LPT (mayor tiempo de procesamiento) y SPT (menor tiempo de procesamiento). Lo anterior con el fin de validar su aplicabilidad y su desempeño.

Paso 5. Análisis de estabilidad

Con el fin de analizar la estabilidad del sistema en los resultados entregados, un análisis de varianza usando la ecuación (3) debe ser realizado con el fin de establecer si existen diferencias significativas en los resultados. En este análisis, y representa la respuesta a las variables; Ti, es el efecto causado por el tratamiento i-esimo y εi, el i-esimo error experimental. La información recolectada debe cumplir los requerimientos de independencia y normalidad requeridos. El análisis de varianza es realizado bajo un intervalo de confianza del 99.5%.

(3)

Fig. 2: Modelo de la una red neuronal para un sistema Job Shop - Open Shop. Fuente: elaboración propia.

RESULTADOS

Para la experimentación de la anterior metodología se proponen dos problemas de programación; el primero de ellos para el entrenamiento de la red, definido en la Tabla 4 y el segundo para la validación de la red definido en la Tabla 5.

Pasos 1- 2

Como resultado de los dos primeros pasos, se obtuvo la programación del problema propuesto en la Tabla 4 y la programación de la red. La mejor secuenciación encontrada en las máquinas (Processors) en la solución de este problema, es ilustrada en la Figura 3.

Tabla 4: Datos para Entrenamiento.

Tabla 5: Datos para validación

Fig. 3: Mejor secuenciación al programar la red. Makespan = 40.

Paso 3

Una vez entrenada la red se procedió a generar la solución, para el respectivo problema mostrado en la Tabla 5. Como resultado de este paso se obtuvo la secuencia de programación que se expone en la Fig. 4.

Fig. 4: Solución encontrada por medio de la red neuronal. Makespan = 99

Tomando, como referencia la forma como han sido solucionado algunos problemas similares en la literatura (Castrillón, 2009), el problema fue solucionado usando 10 réplicas y 4 corridas. Los resultados obtenidos se exponen en la Tabla 6.

Tabla. 6: Solución del problema para 10 réplicas y 4 corridas

Paso 4

Al solucionar el problema planteado en la Tabla 5 por medio de algunas de las técnicas tradicionales de programación de la producción, se obtienen los resultados ilustrados en la Tabla 7. La tercera columna calcula el porcentaje de ineficiencia de estas técnicas respecto al promedio general obtenido por la solución propuesta (ver Tabla 6).

Tabla 7: Desempeño usando técnicas tradicionales

Paso 5

Tomando como referencia las soluciones encontradas en el paso 3 (Tabla 6), se realizó el análisis de varianza, bajo un intervalo de confianza del 99.5%. Dado que en la Tabla 8, el F tabulado (Columna FTab) es mayor que el F calculado (Columna FCal) se puede expresar que no existen diferencias significativas en los resultados entregados por el sistema; es decir, bajo un intervalo de confianza del 99.5% los datos son estadísticamente iguales.

Tabla 8: Análisis de Varianza (Anova)

DISCUSIÓN

Con la metodología propuesta se obtuvo la mejor secuencia de fabricación de los 5 pedidos analizados, (Figura 4) para un makespan o tiempo de procesamiento total de 99 minutos. Sin embargo, los datos empleados para calcular el análisis de varianza (Tabla 6) muestran que el promedio de los resultados obtenidos es un poco más alto (117). No obstante lo anterior y los diferentes resultados encontrados, en las cuatro corridas con 10 réplicas cada una, el análisis de varianza muestra que no existe diferencia significativa en estos resultados. Se demuestra que, bajo un intervalo de confianza del 99.5%, los resultados son estadísticamente iguales. Por lo tanto el promedio general obtenido (117) es un buen indicador para comparar esta metodología frente a otras técnicas tradicionales de programación de la producción.

De otro lado, debido que este problema tiene 207.360.000 posibles soluciones (5!4), es difícil encontrar el valor óptimo, más aún cuando existen tiempos muertos en las diferentes líneas de proceso. No obstante, en lo que respecta al makespan, los resultados encontrados muestran una mejora significativa respecto a los sistemas tradicionales empleados, lo cual es altamente relevante para los propósitos de entrega rápida que generalmente persiguen este tipo de sistemas de fabricación. Al mismo tiempo, y en relación a los sistemas inteligentes de programación de la producción, se evita el recalculo de soluciones como típicamente sucede con las dichas técnicas. En contraste, dada su naturaleza, las redes neuronales pueden ser programadas en una primera fase cuyos resultados facilitan, en una segunda fase, el abordaje de nuevos problemas sin ser reestructurada de nuevo. Finalmente se resalta que aunque estas técnicas producen muy buenos resultados, su aplicación ha sido escasa y no existen trabajos similares como se ilustró en la Tabla 1 y la Figura 1 de la introducción.

CONCLUSIONES

Si bien en la literatura existen diferentes técnicas para realizar la programación de la producción, la novedad de este artículo se centra en la metodología propuesta para obtener buenos resultados en el desempeño del sistema, sin necesidad de recalcular las soluciones cada vez que se deban definir fechas de entrega. Igualmente los diferentes análisis de varianza realizados muestran que el sistema es estable, aun cuando en las corridas y replicas se obtengan resultados ligeramente diferentes. No obstante, la metodología propuesta es fácil de aplicar, pues solo es necesario definir la estructura de red propuesta en la Figura 2 y seguir cada uno de los pasos propuestos en la metodología.

Como futuras líneas de investigación se puede explorar la modificación de la metodología propuesta para abordar la solución de problemas de secuenciación en sistemas más complejos como el job shop flexible y sistemas híbridos. Igualmente es viable realizar experimentos para comparar la metodología propuesta con otras técnicas de inteligencia artificial. Aunque resultados preliminares en esta materia muestran que los resultados pueden ser similares, es necesario un estudio más profundo para corroborar esta tendencia.

REFERENCIAS

Castrillon, O., W. Ariel y J. Giraldo, Metodología Job Shop basada en una colonia de hormigas, Dyna, 159, 177-184 (2009)        [ Links ]

Castrillón, O., W. Sarache y J. Giraldo, Aplicación de un Algoritmo Evolutivo en la Solución de Problemas Job Shop-Open Shop, Inf. Tecnol, 22(1), 83-92 (2011)        [ Links ]

El-Bouri, A., S. Balakrishnan y N. Popplewell, Sequencing jobs on a single machine: A neural network approach, European Journal of Operational Research, 126, 474 - 490 (2000)        [ Links ]

Fonseca, D., y D. Navaresse, Artificial neural networks for job shop simulation, Advanced Engineering Informatics, 16, 241-246 (2002).         [ Links ]

Foo, S., Y. Takefuji y H. Szu, Scaling properties of neural networks for job-shop scheduling, Neurocomputing, 8, 79-91 (1995)        [ Links ]

Henríquez, M., P. Palma y A. Patricio, Control Automático de Condiciones Ambientales en Domótica usando Redes Neuronales Artificiales, Inf. tecnol., 22(3), 125-139 (2011)        [ Links ]

Kechadi, T., K. Low y G. Goncalves, Paper Recurrent neural network approach for cyclic job shop scheduling problem, Journal of Manufacturing Systems, 32, 689-699 (2013)        [ Links ]

Lo, Z., y B. Bavarian, Multiple Job scheduling with artificial neural networks, computer and electrical engineering, 19(2), 87-101 (1993)        [ Links ]

Luh, P., X. Zhao y otros 4 autores, Architectural Design of Neural Network Hardware for Job Shop Scheduling, Annals of fhe ClRP, 48(1), 373-376 (1999)        [ Links ]

Mendes, V., F. Leta y otros 2 autores, Detección de Posición Angular de Embarcaciones, utilizando Técnicas de Visión Computacional y Redes Neurales Artificiales, Inf. tecnol., 21(6), 177-188 (2010)        [ Links ]

Park, Y., S. Kim y Y. Lee, Scheduling jobs on parallel machines applying neural network and heuristic rules, Computers & Industrial Engineering, 38, 189-202 (2000)        [ Links ]

Ruiz, S., Metodología multiobjetivo basada en un comportamiento evolutivo para programar sistemas de producción Job Shop, aplicaciones en la industria metalmecánica, p-38. Tesis Doctoral en Ingeniería, Universidad Nacional de Colombia (2015)        [ Links ]

Sabuncuoglu, I., y G. Burckaan, A neural network model for scheduling problems, European Journal of Operational Research, 93(1), 288-299 (1996)        [ Links ]

Sun, L., L. Lin y otros 3 autores, A Bayesian Optimization-based Evolutionary Algorithm for Flexible Job Shop Scheduling, Procedia Computer Science, 61, 521-526 (2015)        [ Links ]

Watanabe, T., H. Tokumaru y Y. Hashimoto, Job shop scheduling using neuronal networks, control engineering practice, 1(6), 957-961 (1993)        [ Links ]

Zeidi, J., N. Javadian y otros 2 Autores, A hybrid multi-objective approach based on the genetic algorithm and neural network to design an incremental cellular manufacturing system, Computers & Industrial Engineering, 66, 1004-1014 (2013)        [ Links ]

Recibido Ene. 8, 2016; Aceptado Mar. 15, 2016; Versión final Abr. 1, 2016, Publicado Oct. 2016

Creative Commons License All the contents of this journal, except where otherwise noted, is licensed under a Creative Commons Attribution License