1. Introducción
En la actualidad, las reglas de prioridad continúan siendo una técnica ampliamente usada en la secuenciación de procesos en diversas industrias. Sin embargo, la dinámica del mercado hace que las empresas manufactureras trabajen con una serie de reglas de programación predefinidas, pues muchas veces no se dispone del tiempo necesario para experimentar con otras alternativas con el fin de determinar la herramienta más eficiente.
Particularmente, en ambientes de manufactura Job Shop: Open Shop, cada trabajo debe ser procesado en una o varias máquinas sin importar el orden. En este caso, el número de posibles soluciones de secuenciación es del orden n!M, donde N es el número de pedidos y M es el número de máquinas. Dada la complejidad que implica un problema combinatorio de este orden, resulta bastante difícil encontrar una solución óptima o sub óptima en la tarea de programación de pedidos. No obstante, la aplicación de nuevas metodologías basadas en técnicas de inteligencia artificial permite solucionar este tipo de problemas ahorrando tiempo en cálculos innecesarios. Dentro de ellas, se destacan los denominados clasificadores bayesianos a pesar de que han sido muy poco usados en la solución de problemas de programación de la producción.
Las técnicas bayesianas pueden ser consideradas como clasificadores probabilísticos fundamentados en los teoremas de Bayes (Fernandez, 2016). Por medio de estos clasificadores, es posible agrupar datos en diferentes clases definidas por un rango de probabilidades y, posteriormente, reconocer a priori la clase a la que un nuevo dato puede pertenecer. Especificamente en los problemas de secuenciación de pedidos, estos clasificadores permiten agrupar los problemas en diversas clases según la regla de prioridad que mejor permita secuenciar un conjunto de órdenes de fabricación, con el menor tiempo total de proceso u otra métrica de desempeño. Adicionalmente, este clasificador permite reconocer de forma previa a qué clase puede pertenecer cada configuración de programación de N pedidos y M máquinas. Este último aspecto evita realizar un nuevo secuen-ciamiento cada vez que dicho problema se presente.
Múltiples aplicaciones de las técnicas bayesia-nas se han identificado en diversos campos de estudio, tales como en la agricultura (Baltazar, aranda, & Aguilar, 2008), la bio-ingeniería (Dallaire, Giguère, Émond, & Chaib-draa, 2014), la domótica (Del Sagrado, Sanchez , Rodriguez, & Berenguel, 2016), la inmunología (Hanen, Concha, Toro, & Larragaña, 2013), la medicina (He, Liu, Hu, Wen, Wan, & Long, 2014), (Karabatak, 2015), (Wiggins, Saad, Litt, & Vachtsevanos, 2008), (Yin, Kissinger, Moreno, Galinski, & Styczyns-ki, 2015), la seguridad (Mukherjee & Sharmaa, 2012), (Xiang, Yong, & Meng, 2008) los reconocimientos de video (Roy, Shivakumara, Roy, Pal, Tan, & Lu, 2015) y la optimización (Salama & Freitas, 2014), entre otras (Mujalli, Lopez, & Garach, 2016), (Zaidan, Ahmad, Karim, Larbani, Zaidan, & Sali, 2014).
Sin embargo, la revisión bibliográfica permitió identificar pocas contribuciones asociadas a problemas de programación de la producción, lo cual sugiere que la aplicación de clasificadores bayesianos en este campo de estudio es un tópico que amerita más investigación. En particular, solo se encontró un trabajo orientado a la aplicación de técnicas bayesianas en un sistema de producción Flexible Job Shop (Sun, Lin, Wang, Gen, & Kawakami, 2015). Dicho trabajo abordó el problema a partir de un algoritmo evolucionario hibrido basado en un enjambre de partículas y una red bayesiana con el fin de minimizar el tiempo total de proceso.
Tomando en consideración los aspectos antes planteados, el objetivo del presente artículo es presentar el proceso de diseño de un clasificador bayesiano para identificar la regla de prioridad más adecuada que permita secuenciar un conjunto de órdenes de fabricación en un ambiente de manufactura Open Shop: Job shop.
El clasificador fue entrenado previamente con el fin de establecer la regla de prioridad más adecuada para secuenciar un conjunto de pedidos. Posteriormente, fue validado con otro conjunto de datos diferentes. Como resultado se encontró que en el 96% de los casos se logró identificar la regla de prioridad más adecuada para aplicar a cada configuración de problema NxM.
El resto del artículo se ha estructurado de la siguiente manera: en la Sección 2 se expone la metodología usada para la construcción del clasificador. En la Sección 3 se presentan los resultados experimentales observados. Finalmente, en la Sección 4, se exponen un conjunto de conclusiones asociadas a los resultados obtenidos.
2. Materiales y Métodos
La metodología usada consta de los siguientes pasos:
Paso 1: Definición del conjunto de problemas. En el diseño de esta investigación se definieron dos conjuntos de problemas: problemas para el entrenamiento y problemas para la validación. El primer conjunto permite definir las funciones probabilísticas bayesianas para cada clase. El segundo, tiene como fin probar el clasificador bayesiano y establecer su efectividad en el reconocimiento de la clase más adecuada a la cual puede pertenecer un problema de programación. Una descripción del tratamiento dado a cada conjunto es la siguiente:
Conjunto 1 (entrenamiento): Este conjunto se conformó con 300 problemas Job Shop: Open Shop. En 150 de ellos la mejor regla de prioridad para secuenciar el problema fue la técnica FIFO. En los otros 150 problemas la mejor regla de prioridad para secuenciar el problema fue la técnica LPT. Cada uno de los dos subconjuntos de 150 problemas fueron agrupados en categorías JSSPNxM, donde N es el número de pedidos y M es el número de máquinas, así: 50 problemas JSSP5X5; 50 problemas JSSP 5x6 y 50 problemas JSSP 6x6.
Conjunto 2 (validación): En este conjunto se definieron 300 problemas Job Shop: Open Shop, organizados de forma similar a los problemas definidos en la fase de entrenamiento. La generación de todos los problemas se hizo de forma aleatoria.
Paso 2: Diseño del Clasificador. Para la definición del clasificador bayesiano se aplicó el siguiente subprocedimiento:
Se define Xi, como una híper matriz de tres dimensiones, como el conjunto de características. Las dimensiones son definidas de la siguiente forma: Las filas representan el número de problemas objeto de análisis, las columnas son el número de características, de ancho n x m (n = pedidos; m = máquinas) y c es el número de clases o reglas de prioridad a identificar, en este caso 2.
Se calcula el vector de medias ui y la matriz de covarianza Σi de Xi, y K término independiente.
Para cada clase (LIFO o LPT) se define una función de probabilidad según el siguiente sistema de ecuaciones (Duda, Hart, & Stork, 2001, Pag 41):
Paso 3. Entrenamiento del sistema. Para cada uno de los conjuntos de entrenamiento definidos en el paso 1, se definió una función bayesiana Pi (según la Ecuación 1).
Paso 4. Validación del sistema. Cada uno de los conjuntos de validación del paso 1, fueron evaluados en las ecuaciones generadas en el paso 3. La ecuación que genere el mayor resultado, supondrá la clase a la cual debería pertenecer el dato analizado. Los resultados generados por el clasificador fueron comparados con la mejor regla de prioridad que debe secuenciar el problema, obteniéndose el número de aciertos o errores del clasificador.
3. Resultados y discusiones
Al aplicar la metodología descrita, se obtuvieron los siguientes resultados:
Paso 1. La Tabla 1, resume la forma como fueron clasificados los problemas descritos en la metodología.
Por su parte, las Figuras 1 a la 3, muestran el tiempo total de proceso de estos problemas, respecto a la reglas de prioridad objeto de comparación.
En cada una de las anteriores Figuras 1, 2 y 3 se observa que en la definición de los problemas existe una diferenciación marcada, dado que sus tiempos totales de proceso (makespan) se encuentran separados, pudiéndose decir que pertenecen a clases diferentes. En los pasos siguientes 2 y 3, se determinaron la funciones bayesianas para cada una de estas clases, aspecto que facilita la interpretación de los resultados en una posterior fase de validación.
Pasos 2 y 3. Se obtuvo la valoración promedio en la función generada por el clasificador bayesiano, con la cual serán identificadas cada una de las clases mostradas en la Tabla 2:
La Tabla 2 ilustra una clara separación entre las clases definidas por las funciones bayesianas, lo cual hace factible su identificación.
Paso 4. En la Tabla 3 se expone el porcentaje de aciertos según la clase de cada problema analizado.
En la literatura revisada no se encontró una aplicación de los clasificadores bayesianos como la ilustrada en este artículo. De hecho, la aplicación de los clasificadores en esta área es escasa o nula. Por lo tanto, se presenta una nueva técnica de selección de la regla de prioridad más adecuada sin necesidad de realizar un nuevo proceso de secuenciación para cada configuración en particular.
Como se demostró en la Tabla 3, el porcentaje de aciertos (veces en que el clasificador determinó de forma previa la regla de prioridad más adecuada) fue del 96%. No obstante, este porcentaje puede variar según la naturaleza de los mismos problemas.
4. Conclusiones
En este documento se presenta un clasificador bayesiano para identificar dos clases de problemas de secuenciación con una efectividad del 96%. La metodología propuesta está basada en una generación de funciones de probabilidad para cada una de las clases creadas. Sobre las anteriores funciones se prueban los datos de entrenamiento y se supone que el dato pertenece aquella clase cuya función bayesiana sea máxima. Como futuras líneas de investigación se plantea modificar el clasificador bayesiano con el fin de que se puedan reconocer más de dos clases, aspecto que le dará más versatilidad para abordar una mayor diversidad de problemas.