Metodología de programación de producción en
un flow shop híbrido flexible con el uso de
algoritmos genéticos para reducir el makespan.
Aplicación en la industria textil.
Production scheduling methodology in a hybrid
flexible flow shop using genetic algorithms to
reduce the makespan. Application in the textile
industry.
Juan Camilo López Vargas
Universidad Nacional de Colombia
Facultad de Ingeniería y Arquitectura, Departamento de Ingeniería Industrial Manizales, Colombia
Metodología de programación de producción en
un flow shop híbrido flexible con el uso de
algoritmos genéticos para reducir el makespan.
Aplicación en la industria textil.
Production scheduling methodology in a hybrid
flexible flow shop using genetic algorithms to
reduce the makespan. Application in the textile
industry.
Juan Camilo López Vargas
Tesis presentada como requisito parcial para optar al título de: Magister en Ingeniería Industrial
Director:
MSc. Jaime Antero Arango Marín
Universidad Nacional de Colombia
Facultad de Ingeniería y Arquitectura, Departamento de Ingeniería Industrial Manizales, Colombia
A mi madre, ejemplo de vida y superación, quien nunca me ha dejado sólo en el camino de la vida.
Agradecimientos
Agradezco a mi tutor de tesis, profesor Jaime Antero Arango Marín por su dedicación, seguimiento y contribución a la culminación exitosa de este proyecto. Igualmente a los profesores del Departamento de Ingeniería Industrial de la Facultad de Ingeniería y Arquitectura por sus asesorías y buena disposición frente a la aclaración de las inquietudes que surgieron durante este tiempo y, en general, a la Universidad Nacional de Colombia por el apoyo ofrecido durante el desarrollo de este trabajo.
Resumen
El proceso de programación de producción cumple un papel preponderante en la industria en la medida que busca reducir costos y lograr altos niveles de productividad para que las organizaciones mejoren su competitividad. Es necesario, por tanto, que las empresas innoven no sólo en sus procesos productivos sino también en sus herramientas de gestión. Ante los numerosos factores que influyen en los sistemas productivos actuales, las meta-heurísticas surgen como alternativa de solución ya que han demostrado aportar resultados de muy buena calidad a problemas complejos. Por esta razón, se ha decidido intervenir en una empresa del sector textil colombiano, que presenta una configuración productiva tipo flow shop híbrido flexible, con el propósito de establecer una nueva metodología de programación de producción que logre reducir el tiempo máximo de procesamiento, o
makespan. El algoritmo propuesto logra resultados de muy buena calidad, dentro de
un rango del 2% y con tiempos computacionales bastante competitivos.
Palabras clave: algoritmos genéticos, flow shop híbrido flexible, industria textil, programación de producción, makespan.
Abstract
The production scheduling process plays a preponderant role in the industry as it aims to reduce costs and achieve higher productivity levels for organizations to improve their competitiveness. Therefore, it’s necessary that companies innovate not only in their production processes but also in their management tools. Given the many factors that influence current production systems, the meta-heuristics emerge as alternative solution as these have shown to provide high quality results to complex
problems. For this reason, it has decided to intervene in a colombian textile company, which has a hybrid flexible flow shop configuration, in order to establish a new production scheduling methodology that achieves to reduce the maximum processing time, or makespan. The proposed algorithm achieves high quality results within a 2% range and with very competitive computational times.
Keywords: genetic algorithms, hybrid flexible flow shop, textile industry, production scheduling, makespan.
Contenido
Pág. Resumen ... IX Lista de figuras ... XIII Lista de tablas ... XV
Introducción ... 1
1. Marco teórico y desarrollo conceptual ... 5
1.1 Introducción ... 5
1.2 El proceso de la gestión de producción ... 5
1.2.1 Planificación estratégica ... 5
1.2.2 Programación táctica... 6
1.2.3 Programación operativa ... 6
1.3 Configuraciones productivas ... 8
1.3.1 El flow shop ... 9
1.3.2 El flow shop híbrido flexible ... 9
1.3.3 La problemática de la programación en un flow shop híbrido flexible .. 11
1.4 Condiciones reales de la manufactura ... 12
1.4.1 El objetivo del makespan ... 14
1.5 Meta-heurísticas aplicadas a la dirección de producción y operaciones ... 16
1.5.1 Recocido simulado ... 17
1.5.2 Branch and bound ... 18
1.5.3 Búsqueda tabú ... 19
1.5.4 Colonia de hormigas ... 20
1.5.5 Algoritmo GRASP ... 22
1.5.6 Algoritmos genéticos ... 22
1.6 Aplicaciones de los algoritmos genéticos ... 25
1.7 Conclusiones parciales ... 26
1.8 Bibliografía ... 28
2. Planteamiento del problema y construcción del modelo matemático... 41
2.1 Introducción ... 41
2.2 Información general de la empresa ... 42
2.3 Descripción del sistema productivo ... 42
2.3.1 Proceso 1. La hilandería ... 42
2.3.3 Proceso 3. El remetido ...43
2.3.4 Proceso 4. La tejeduría ...44
2.3.5 Proceso 5. Los acabados ...45
2.3.6 Diagrama del proceso productivo...45
2.4 Restricciones y características del sistema productivo ...46
2.4.1 Restricciones de construcción ...46
2.4.2 Restricciones de precedencia ...48
2.4.3 Restricciones de capacidad ...48
2.4.4 Limitaciones técnicas ...49
2.5 Modelo matemático del problema ...49
2.5.1 Función Objetivo ...50 2.5.2 Restricciones ...50 2.6 Conclusiones parciales ...53 2.7 Bibliografía ...54 3. Experimentación y resultados ...57 3.1 Introducción ...57 3.2 Representación y codificación ...57
3.2.1 Estructura del cromosoma ...58
3.2.2 Población inicial ...61 3.2.3 Selección ...61 3.2.4 Operación de cruce ...63 3.2.5 Mutación ...64 3.2.6 Actualización de la población ...64 3.2.7 Criterio de parada ...65
3.2.8 Seudocódigo del algoritmo genético ...65
3.3 Experimentación ...66 3.4 Resultados y discusión ...70 3.5 Conclusiones parciales ...78 3.6 Bibliografía ...79 4. Conclusiones y recomendaciones ...81 4.1 Conclusiones ...81 4.2 Recomendaciones ...82
A. Anexo: Simulación del algoritmo genético ...83
Lista de figuras
Pág. Figura 2-1: Configuración flow shop híbrido flexible de una planta productiva del sector textil. Elaboración propia. ... 46 Figura 3-1: Estructura básica del cromosoma diseñado en el algoritmo genético. Elaboración propia. ... 60 Figura 3-2: Rutas de procesamiento de los 5 trabajos asignados aleatoriamente a las máquinas a través de la codificación propuesta del cromosoma. Elaboración propia. .... 61 Figura 3-3: Operación de cruce entre dos cromosomas. Elaboración propia. ... 63 Figura 3-4: Seudocódigo del algoritmo genético. Elaboración propia. ... 66 Figura 3-5: Interfaz Gráfica de Usuario diseñada en Matlab. Elaboración propia. .... 68 Figura 3-6: Solución obtenida por el algoritmo genético luego de ingresar los datos. Elaboración propia. ... 68 Figura 3-7: Makespan promedio con 30 trabajos y 20 puntos de cruce. Elaboración
propia. 71
Figura 3-8: Makespan promedio con 30 trabajos y 30 puntos de cruce. Elaboración
propia. 72
Figura 3-9: Makespan promedio con 50 trabajos y 20 puntos de cruce. Elaboración
propia. 74
Figura 3-10: Makespan promedio con 50 trabajos y 30 puntos de cruce. Elaboración
Lista de tablas
Pág. Tabla 3-1: Matriz de factibilidad de procesamiento de los trabajos en cada máquina del
sistema productivo. Elaboración propia. ... 59
Tabla 3-2: Variables de entrada y sus valores. Elaboración propia. ... 69
Tabla 3-3: Simulación realizada con i=30 trabajos. Elaboración propia. ... 70
Tabla 3-4: Simulación realizada con i=50 trabajos. Elaboración propia. ... 73
Introducción
El sector textil colombiano, a pesar de no ser una de las industrias más grandes del país, es un sector con mucho recorrido histórico y ha tenido un crecimiento leve pero sostenido en las últimas décadas. A inicios de los 2000, este sector presentaba aumentos significativos en los márgenes operacionales de las empresas líderes en textiles y prometía una tendencia similar en el largo plazo.
Sin embargo, finalizando esta década se evidenció una caída en el sector debido a que el margen neto de estas industrias mostró una reducción generalizada en el año 2009. Las principales causas se deben a la reducción de las exportaciones a mercados clave como el caso de Venezuela y Ecuador, a un alto índice de contrabando presente en el mercado local y a la entrada al mercado nacional de nuevos competidores con costos bajos.
La competencia proveniente de los países asiáticos genera amenazas claras a la industria nacional, ya que presenta un enfoque competitivo basado en altos volúmenes de producción a bajo costo con el aprovechamiento de las economías de escala. Por lo tanto una estrategia a seguir frente a este panorama es la de aprovechar la flexibilidad de los procesos locales, los niveles de calidad y la situación geográfica cercana a los mercados norteamericanos.
Con mercados tan competitivos en la actualidad, es vital que las empresas ofrezcan mejor servicio a sus clientes y responder ágilmente a los cambios sociales, económicos, políticos y legales en sus entornos locales, como aspecto diferenciador para aprovechar las oportunidades de negocio que se generan tanto a nivel regional como en el contexto internacional. El aporte del departamento de producción a este objetivo organizacional se basa en el cumplimiento de las entregas previstas dentro de los plazos establecidos, con un sistema de fabricación flexible y de rápida respuesta a las exigencias de las áreas comerciales de la organización, las cuales son presionadas por un entorno dinámico.
procesamiento, los cambios y tiempos de alistamiento, la continuidad y productividad de las operaciones, y la reducción de los desperdicios. Aspectos que hacen de una fábrica, más eficiente y competitiva.
Sin embargo, llegar a tener una planta con las características mencionadas anteriormente es complejo. Los sistemas de producción reales están sujetos a una cantidad sorprendente de situaciones controlables y otras restricciones imposibles de controlar desde el interior de la organización. Entre estas situaciones se pueden nombrar las diferencias de tiempo de procesamiento entre un proceso y otro, la variedad de artículos a procesar en una misma máquina, la cancelación inesperada de pedidos, los paros no programados de las máquinas, la entrada de pedidos urgentes, la eficiencia de las personas, los problemas de calidad, y la disponibilidad de los materiales, entre otros.
Lo anterior repercute necesariamente en las actividades del corto plazo que en ocasiones retrasan los presupuestos de producción planteados. Esto ocasiona a menudo cambios en la marcha, improvisaciones y en ocasiones paros en los procesos, echando por la borda todo un esfuerzo previo de planificación por parte de los administradores y programadores de producción.
A toda esta problemática, se le suma la falta de aplicación de conocimientos teóricos y herramientas de gestión a las empresas industriales de la región. La complejidad del sistema de producción, la incertidumbre inherente de las operaciones productivas, la falta de visión y planificación, y en ocasiones hasta el factor de la cotidianidad, dificultan y entorpecen la continuidad de los procesos. Esto ocurre en ambientes donde se da más importancia a los procedimientos empíricos que a las implementaciones de técnicas que han demostrado tener éxito en las empresas de clase mundial, demostrando claramente la falta de proyección y negación para realizar inversiones que potencialicen el crecimiento de las organizaciones.
Es importante entonces, que con las condiciones actuales: mercados globalizados, tratados comerciales internacionales y la amenaza constante de los competidores asiáticos, se generen nuevas políticas de inversión y mayor esfuerzo de los sectores
académicos en pro del mejoramiento de los procesos de gestión empresariales. Esto con la finalidad de incrementar la productividad al interior de las fábricas de la región y lograr el aumento de su nivel competitivo.
El principal objetivo de este trabajo es el diseñar y consolidar una metodología para la programación de producción aplicable al sector de la industria textil, a partir de un algoritmo genético que incluya los factores críticos que afectan el sistema productivo, disminuyendo el tiempo máximo de procesamiento o makespan en un entorno flow shop híbrido flexible.
Para cumplir con lo pactado, se ha construido este documento que presenta los principales hallazgos de la investigación y se organiza de la siguiente manera: el primer capítulo describe los aspectos teóricos y el marco conceptual que demarca el tema de este proyecto, a través de la consulta en fuentes bibliográficas, textos y artículos de revistas indexadas, haciendo un diagnóstico del estado del arte. El capítulo 2 se encarga de mostrar la descripción general de sistema productivo designado como objeto de estudio, la definición de las condiciones las restricciones de los procesos productivos para construir un modelo matemático del problema. El tercer capítulo documenta el proceso de construcción de la metodología de programación basada en algoritmos genéticos para resolver el problema planteado, su experimentación, simulación, principales resultados y rendimiento frente a otros algoritmos propuestos. Finalmente, el capítulo 4 presenta las conclusiones generales respecto al desarrollo del proyecto y se presentan algunas consideraciones para trabajos y proyectos futuros.
1. Marco teórico y desarrollo conceptual
1.1 Introducción
En el marco de la dirección de producción y operaciones, la programación de producción es una etapa clave de la gestión, ya que en el corto plazo se toman las decisiones de carácter operativo que buscan el cumplimiento de las metas propuestas mediante la asignación de los recursos disponibles a las tareas de producción requeridas. Con el fin de mostrar un marco de referencia en el cual se contextualice al lector de los principales temas que aborda este trabajo, se propone la siguiente estructura. En la primera parte se presentan las generalidades del proceso de gestión de la producción y su enfoque jerárquico, se da un vistazo de las principales configuraciones productivas y se especifica el caso del flow shop híbrido flexible y se define el concepto de makespan. Luego, en la segunda parte, se muestran de manera general las principales meta-heurísticas que se han aplicado en la problemática de la programación de producción, y se hace énfasis en los algoritmos genéticos, sus principales características y aplicaciones exitosas en la práctica. Finalmente, se concluyen algunos aspectos relacionados con los principales hallazgos de la investigación.
1.2 El proceso de la gestión de producción
Distintos enfoques se han propuesto para caracterizar la función de producción. Entre estos están la producción como sistema, la producción como función organizacional, y la producción como conjunto jerárquico de decisiones [1]. El enfoque jerárquico de la producción establece 3 niveles de decisión: el nivel estratégico, el nivel táctico y el nivel operativo [2].
1.2.1 Planificación estratégica
Una ventaja del enfoque jerárquico es que en cada nivel de decisión sólo se utiliza la información más relevante [3]. Así, el proceso de gestión de la producción debe iniciarse
con el establecimiento de la estrategia de producción, la cual establece los criterios de competitividad sobre los cuales serán invertidos todos los esfuerzos del departamento de producción a través de la toma de decisiones estratégicas en los términos del largo plazo [4], [5].
En la actualidad, todo negocio debe convivir con un mercado incierto, con fluctuaciones constantes de los precios de las materias primas y de otros productos. Esto aumenta la necesidad de cumplir el corto plazo de los pedidos, y de reducir sus inventarios. Estos cambios requieren modificaciones drásticas en las estrategias de producción, ya que la flexibilidad y la disponibilidad de la información concierne a todos los niveles de producción y a todas las áreas de la empresa: mercadeo, compras, planificación, programación y control de proceso [6].
1.2.2 Programación táctica
A partir de la estrategia de producción se analizan los aspectos tácticos y operativos. De manera amplia, el nivel táctico de la producción se encarga de definir las necesidades de entregar un volumen de producción (en términos agregados) dadas unas capacidades estimadas para este periodo de tiempo [2].
La planeación agregada tiene un alcance del mediano plazo, donde se toman decisiones y se establecen políticas relacionadas con contrataciones, despidos, horas extras y subcontrataciones. Además, este nivel forma el eslabón que une a la planeación de las instalaciones con la programación de las operaciones [7].
1.2.3 Programación operativa
Por último en el nivel operativo se llevan a cabo las asignaciones de los recursos en el corto plazo con el fin de dar cumplimiento a los presupuestos de producción y se ejecutan los programas de producción [8]. La programación de producción o scheduling, se puede describir como la asignación de un conjunto de recursos en un período de tiempo, para llevar a cabo un conjunto de tareas [9].
En el proceso de programación de máquinas, se determinan los tiempos de inicio y terminación de los trabajos a producir en dichas máquinas [10]. Sin embargo, la programación es caracterizada por la secuencia de trabajo, y en algunos casos, es necesario tener información adicional para especificar completamente el problema.
La programación de la producción puede entenderse como un proceso de toma de decisiones que tiene como fin el alcance de uno o más objetivos [11]. Los objetivos considerados por los programadores de producción pueden clasificarse en tres grupos [12]:
La utilización eficiente de los recursos; lo cual está relacionado con el tiempo máximo de terminación o makespan [13].
La respuesta rápida a las demandas, o minimización del trabajo en proceso (WIP). La conformidad con los plazos establecidos: tardanza total y el número de trabajos
retrasados.
Por otra parte, los problemas de programación poseen tres características principales [14]:
El entorno de manufactura: tiene que ver con el flujo y las instalaciones de producción.
Las restricciones: normalmente, los entornos de manufactura se encuentran limitados por ciertas características, que pueden estar relacionadas con la secuencia, restricciones de los recursos de producción, o a un presupuesto máximo.
Una función objetivo: existen varias medidas de rendimiento usadas para describir los problemas de programación, como el tiempo de terminación de un trabajo, la demora o tardanza de un trabajo, y el makespan de los trabajos secuenciados.
En vista de que es en este nivel donde se ejecutan todas las actividades que se planificaron y programaron para cumplir con los objetivos y metas propuestas, la programación y el control de la producción son etapas clave en la gestión de operaciones y ha sido tema de análisis por parte de los administradores y programadores de la producción [2].
En el sistema productivo, la programación dependerá del entorno de la planta productiva [9], y con el fin de que el programa propuesto sea exitoso es vital que quien lo construya conozca al máximo nivel de detalle la configuración productiva que presente el sistema de producción [15].
1.3 Configuraciones productivas
Teniendo en cuenta que las disposiciones físicas de las instalaciones es una decisión estratégica dentro del proceso de gestión de operaciones, ésta deberá comprender y buscar el logro de una serie de objetivos para el departamento de producción, entre ellos [4]:
Proporcionar suficiente capacidad de producción. Reducir los costos de manejo de materiales.
Proporcionar flexibilidad en volúmenes y productos.
En la literatura clásica, se distinguen cuatro tipos de configuraciones productivas [5]. Sus principales características son las siguientes1:
Talleres de trabajo (o Job shop), donde se diseñan pequeñas series de una gran cantidad de productos diferentes, la mayor parte de los cuales requieren una serie o secuencia distinta de pasos de procesamiento.
Producción en lotes, se define como una especie de taller un poco más estandarizado con una línea de productos relativamente estable, cada uno de los cuales se produce en lotes periódicos, ya sea de acuerdo con los pedidos del cliente o para llevar a un inventario. Una buena parte de los artículos a producir siguen un patrón similar de flujo en la planta.
Líneas de ensamble, cuya producción de componentes se lleva a cabo en unidades discretas, que pasan de una estación de trabajo a otra a un ritmo controlado, siguiendo la secuencia requerida para fabricar el producto.
1 Esta clasificación la definen los autores citados [5] con base en la planteada inicialmente por
Flujo continuo, donde la producción pasa por una serie de pasos predeterminada, ésta vez el flujo de la producción es continuo. Estas plantas suelen ser altamente automatizadas y constituyen en sí una “máquina” integrada que debe ser operada 24 horas al día para evitar cierres y arranques costosos.
Se reconoce que en la realidad, son muchas las empresas industriales que no presentan las configuraciones productivas tradicionales aquí mostradas, y sus causas no pueden ser especificadas o generalizadas dada la complejidad y el profundo análisis que amerita cada caso [16], [17]. Estas configuraciones han tenido diversas denominaciones, desde las configuraciones mixtas [4], los llamados nuevos sistemas [18], hasta las configuraciones híbridas [19].
En vista de que la industria textil se caracteriza por presentar una distribución productiva denominada flow shop híbrido [20], [21], [22], a continuación se hace una descripción de este tipo de configuración productiva.
1.3.1 El flow shop
Este tipo de configuración productiva es considerado un caso general del job shop, en el que el problema de programación radica en secuenciar una cantidad de n trabajos, que siguen la misma ruta de procesamiento, en una serie de m máquinas ordenadas linealmente [8], [23], [24]. El problema de programación del flow shop es un problema combinatorio bastante complejo, ya que la cantidad de posibles alternativas de secuenciación requeriría varios años si se quiere enumerar todas las posibilidades de un problema grande [25].
1.3.2 El flow shop híbrido flexible
Se define el flow shop híbrido (HFS) como un caso especial del flow shop que posee un conjunto de n trabajos a ser procesados en una serie de m etapas [26]. En donde al menos una de las etapas tiene más de una máquina en paralelo y se busca optimizar el proceso productivo en términos de cierta función objetivo [27]. El problema consiste en resolver la distribución de las máquinas paralelas y la secuencia de los trabajos programados en la misma máquina con el fin de minimizar el máximo tiempo de flujo [28].
En términos generales, el flujo de los productos en la planta es unidireccional, cada producto se procesa en sólo una máquina en cada etapa y debe pasar por todas las etapas antes de su salida de la planta, y cada etapa tiene máquinas que pueden ser idénticas, uniformes, o no relacionadas [29].
Los sistemas de producción que poseen máquinas paralelas pueden ser clasificados en tres grupos, en función de los tiempos de procesamiento de los trabajos en las máquinas [30]:
Máquinas paralelas idénticas, si los tiempos de procesamiento son los mismos para cada máquina.
Máquinas paralelas uniformes, si las máquinas tienen una relación paramétrica en términos del tiempo de procesamiento.
Máquinas paralelas no relacionadas, si las diferencias entre los tiempos de procesamiento en las máquinas no pueden ser expresadas en una relación paramétrica.
Al estudiar un problema estándar del HFS, se deben suponer ciertas condiciones: que las máquinas en una etapa determinada son idénticas, una máquina puede procesar sólo una operación a la vez, cada trabajo tiene que ser procesado en exactamente una máquina en cada etapa, los tiempos de alistamiento son insignificantes y las capacidades de los amortiguadores son ilimitadas [31].
Los flow shop híbridos pueden clasificarse en dos tipos de acuerdo a los flujos de producción: aquellos con flujos unidireccionales, en el que cada trabajo empieza en la primera etapa y termina en la última etapa, y aquellos con flujos reentrantes en los que cada trabajo puede visitar cada etapa más de una vez [32].
Si en el proceso no existen amortiguadores entre dos estaciones sucesivas, el problema de programación de un flow shop ordinario se convertirá en un flow shop de bloqueo. En este caso, un trabajo no puede dejar una máquina hasta que la siguiente esté disponible, se dice entonces que el trabajo está siendo bloqueado en esta máquina [33].
Dos enfoques distintos que buscan explicar el concepto de flexibilidad en los entornos productivos tipos flow shop fueron encontrados durante la revisión de la literatura. El primero de ellos es el que proponen Zandieh y Karimi [34], donde el concepto de flexibilidad proviene de la capacidad del sistema para que los trabajos puedan saltar etapas, es decir, se trata de trabajos que no necesitan ser procesados en todas las etapas del proceso.
Otra visión del flow shop híbrido flexible, define que al menos en una de sus etapas existen dos o más máquinas paralelas idénticas, y la flexibilidad del sistema radica en la flexibilidad en el procesamiento y en la flexibilidad del enrutamiento, es decir, que los trabajos pueden procesarse completamente en una de las etapas o bien, pueden dividirse entre dos etapas, siempre con un enrutamiento unidireccional [15].
Con el fin de unificar criterios, en adelante se asumirá el concepto de flexibilidad propuesto por Zandieh y Karimi [34], teniendo en cuenta que en la industria de tejidos técnicos (sector objeto de estudio) tiende a presentarse más la primera opción que la segunda.
1.3.3 La problemática de la programación en un flow shop
híbrido flexible
El problema clásico del flow shop híbrido flexible (HFFS, por sus siglas en inglés) supone un conjunto de n trabajos que deben ser procesados en m etapas [35]. Cada etapa contiene varias máquinas paralelas idénticas y la ruta de proceso es similar para cada trabajo, y cada trabajo será procesado por sólo una de las máquinas en cada etapa; teniendo en cuenta un conjunto de suposiciones estándar, el objetivo es encontrar la programación que logre el mínimo makespan [36], [37].
Otros objetivos que se buscan con la programación en un flow shop híbrido son la minimización de la suma total de penalidades por las culminaciones tempranas y tardías, y también, maximizar el número de trabajos conformes de acuerdo a la secuencia esperada [38]. Asimismo, es necesario reconocer que en la realidad actual, ganar eficiencia en la producción es tan importante como asegurar que los pedidos se entreguen tan cerca como sea posible de su fecha de vencimiento [39].
La mayor parte de la literatura existente aún no considera la necesidad de la programación multi-objetivo, esto debido a que en el mundo real, la preocupación del gerente de la planta es la productividad, medida generalmente por el makespan o el nivel de utilización de las máquinas. Sin embargo, se busca también la reducción del WIP, la minimización de los cambios, el cumplimiento con las fechas de entrega, y la satisfacción del cliente [40].
El enfoque en este tipo de configuración ha sido ampliamente estudiado, ya que es una de las distribuciones más comunes en los ambientes reales de fabricación [41], [42], [43], [44].
1.4 Condiciones reales de la manufactura
En la programación clásica se utiliza un conjunto sumamente restrictivo de suposiciones tales como los tiempos de procesamiento constantes, la imposibilidad de dividir trabajos y la disponibilidad de las máquinas en todo momento [45]. Sin embargo, estas suposiciones resultan no ser válidas para el modelo de muchos procesos industriales de la actualidad [46].
Debe tenerse en cuenta que la dinámica de los negocios de hoy en día, las tendencias y cambios del mercado, la agresividad de la competencia, los aspectos ambientales, y la facilidad de acceso a la información por parte de los clientes, plantea retos importantes a los administradores de la producción [6]. Existen además, restricciones al interior del sistema que definen el problema y éstos deben ser considerados por igual, como la satisfacción de la demanda, la capacidad limitada de los recursos y los tiempos de alistamiento de productos [47].
Un sistema de producción real está sujeto a un amplio rango de incertidumbres y situaciones no programadas o previstas que causan distorsiones durante el proceso productivo, como los tiempos de procesamiento variables, los movimientos de las órdenes de producción y los cambios de prioridad en los pedidos [48]. Una suposición
común en la programación asume que las máquinas están siempre disponibles en el horizonte de planificación [35]. Sin embargo, la sobrecarga de las máquinas causada por una producción de 24 horas/día, generan averías y paros en las máquinas, que en ocasiones llegan a producirse con mucha frecuencia [49].
Las actividades de mantenimiento y las de producción están siempre en desacuerdo; las actividades de mantenimiento paran y demoran la producción, mientras que la producción lleva una secuencia y una continuidad que incrementa la probabilidad de fallo de las máquinas y su nivel de degradación [50]. Por lo tanto las actividades de mantenimiento periódico deben tenerse en cuenta durante el proceso de programación.
Otra condición que comúnmente se asume, es que las máquinas y los trabajos se encuentran siempre en el mismo sitio, y por lo tanto no se consume tiempo entre dos trabajos diferentes o dos operaciones sucesivas. Sin embargo, este supuesto no se justifica en algunos casos prácticos donde las máquinas se encuentran en lugares diferentes y los trabajos a ser procesados deben ser transportados a sitios, y a menudo hay un tiempo de demora entre el momento de la terminación de una operación y el comienzo de la siguiente para un mismo trabajo [51], [52]. De la misma manera, los tiempos de preparación y los flujos de trabajos deben tomarse, junto con los sistemas de manipulación de materiales, cuando se apliquen las técnicas de programación [53].
Otra suposición común es la consideración de que no hay tiempos de cambio entre los trabajos y ocurre que esta situación no siempre puede ser cierta en la práctica. En algunos casos, el tiempo de preparación de un trabajo puede depender del trabajo inmediatamente anterior [54]. La magnitud del tiempo de alistamiento de un trabajo que depende de aquel inmediatamente anterior en una misma máquina, se define como tiempos de alistamiento dependientes de la secuencia [35]. En años recientes, el estudio de problemas de programación con tiempos de alistamiento dependientes de la secuencia ha atraído una atención considerable [55].
Con el fin de dar un ejemplo de lo mencionado, tomamos el proceso de teñido de textiles. El cual se distingue por tener un alistamiento dependiente de la secuencia. Antes de teñir un hilo, es necesario limpiar el depósito de tinte. El tiempo necesario de limpieza (de
alistamiento) para preparar el teñido de un trabajo entrante puede ser diferente, dependiendo del color del hilo que entra y del que acaba de salir del proceso [56].
Las herramientas conocidas aplicadas a la programación a menudo asumen que todos los tiempos de producción son conocidos y se fijan antes de que los trabajos sean procesados. Sin embargo, en muchas ocasiones de la vida real, la eficiencia de los recursos productivos (máquinas o personas) mejora continuamente en el tiempo [57]. Cuando las interacciones humanas tienen un impacto significativo durante el procesamiento de los trabajos, el tiempo de procesamiento y la repetición de las operaciones generarán un incremento en la experiencia de los empleados y causará efectos de aprendizaje [58].
Todos los eventos imprevistos que pueden ocurrir en una planta productiva pueden agruparse en dos categorías [29]:
Relacionados con los recursos: fallas de la máquina, enfermedad del operario, falta de disponibilidad o fallas de la herramienta, límites de carga, retraso en la llegada o escasez de materiales, y defectos en los materiales, entre otros.
Relacionados con el trabajo: trabajos urgentes, cancelación de trabajos, cambios de fecha de entrega, llegada temprana o tardía de los trabajos, cambios en la prioridad del trabajo, cambios en el tiempo de procesamiento del trabajo, etc.
Los problemas de programación de máquinas paralelas con tiempos de alistamiento dependientes de la secuencia y restricciones de fechas de los trabajos, son problemas complejos que requieren estudios adicionales en la práctica [55].
1.4.1 El objetivo del makespan
El tiempo que transcurre entre el inicio de primer trabajo en la primera máquina y la terminación del último trabajo en la última máquina se conoce con el término de
makespan [41], [59]. El makespan o Cmax (como también se conoce en la literatura) es el
criterio de optimización más estudiado en los trabajos publicados, a través de la minimización del tiempo máximo de terminación de la programación [60]. Se considera
que minimizar el makespan equivale a maximizar la utilización de las máquinas, ya que se busca disminuir los tiempos de alistamiento y los tiempos de ocio de las máquinas [19].
El makespan es un criterio de decisión que se aplica de manera muy común en los problemas de programación [61]. Por ejemplo, algunos trabajos que aplican este criterio son: Rebaine [51] construye un algoritmo que minimiza el makespan en un flow shop sencillo. Chang y Chen analizan el problema de programación de máquinas paralelas no relacionadas con el objetivo de minimizar el makespan [62]; Yang [43] propone una heurística que busca el menor tiempo total de terminación. Mientras que Zhao y Tang consideran la programación de un flow shop de dos estaciones para minimizar el
makespan teniendo en cuenta restricciones de precedencia en el proceso [63].
Reducir los tiempos de terminación es un método efectivo para eliminar demoras y tardanzas en los trabajos. Disminuir el makespan lleva también a la reducción del inventario en proceso (WIP), y minimiza los desórdenes de la planta por los trabajos no completados; por lo que la minimización de los tiempos de culminación es uno de los criterios más importantes para las empresas [64].
Una heurística clásica para el problema de programación de la producción con base en el makespan es la conocida regla de Johnson formulada en 1954. Esta herramienta ha sido adaptada por muchos autores para resolver el problema del flow shop de 2 etapas con un tiempo de programación muy razonable [65]. Sin embargo, cuando el proceso productivo presenta más de dos etapas (m>2) y los trabajos a realizar poseen múltiples características, el problema pasa a ser NP-Completo, debido al crecimiento exponencial de la cantidad de soluciones alternativas que se crean para estos casos [26], [66], [67].
Adicional a lo anterior, se considera que el flow shop está sujeto a una serie de características y restricciones de procesamiento que condicionan su programación [8]. Esto ha causado la poca aplicación práctica de las heurísticas que consideran las reglas óptimas de secuenciación a pesar de su gran interés teórico. Ello se debe a que los verdaderos problemas de secuenciación implican una gran variabilidad en los tiempos de procesamiento [45].
Ante la necesidad de encontrar otras alternativas distintas a las tradicionales heurísticas (que en su mayoría no reconocen la complejidad de los sistemas reales de fabricación), han surgido nuevas herramientas que buscan dar solución a la problemática de la programación de la producción en entornos como el flow shop. Entre estas meta-heurísticas se reconocen los sistemas expertos, los agentes inteligentes, los algoritmos aleatorios y los algoritmos genéticos [15].
1.5 Meta-heurísticas aplicadas a la dirección de
producción y operaciones
Los problemas de programación de producción son en su mayoría NP-Completos y requieren para su solución, procedimientos complejos y costosos en el tiempo [14]. En casos como éste, las técnicas de optimización combinatorial surgen como alternativa interesante, ya tienen la capacidad de encontrar soluciones de muy buena calidad, en tiempos de cómputo bastante razonables [68].
Los métodos de resolución existentes en la literatura pueden agruparse en dos grandes familias, estos son: los métodos exactos (como el modelo de programación lineal entera) y los métodos de aproximación (como las heurísticas y meta-heurísticas) [42]. Algunos enfoques han sido empleados para resolver el problema de programación del flow shop híbrido, como los algoritmos heurísticos, los métodos de programación matemática y el algoritmo inmune, entre otros [69]. La complejidad del modelamiento y la complejidad computacional que implica el problema de programación del flow shop, conlleva a que el problema de optimización combinatorial resulte muy complicado y difícil [70].
Actualmente, las meta-heurísticas más aplicadas a los problemas de programación de configuraciones tipo flow shop híbrido son el algoritmo de búsqueda tabú, la optimización por colonia de hormigas, los algoritmos genéticos, el recocido simulado, entre otros. Cada uno de los cuales tiene sus propias ventajas y desventajas [28].
1.5.1 Recocido simulado
El recocido simulado (SA), propuesto inicialmente por Kirkpatrick, Gelatt, y Vecchi en el año de 1983, es uno de los métodos meta-heurísticos más aplicados a lo que a resolución de problemas de optimización combinatorial se refiere [57]. Este algoritmo se basa en la simulación del proceso de recocido de materiales sólidos reales. El recocido implica el calentamiento de un material metálico a altas temperaturas para luego dejarlo enfriar gradualmente y que éste alcance un estado mínimo de energía estable; si el metal llega a enfriarse demasiado rápido, no alcanzará el nivel mínimo de energía [71].
El proceso general de un algoritmo de recocido simulado se presenta a continuación: Etapa de inicio. En el comienzo del algoritmo, deben establecerse los siguientes
parámetros: una solución inicial, una temperatura inicial (T0), un número de
iteraciones (L) y un índice de enfriamiento r (0 <r <1). Como se verá, la temperatura (T) controla la posibilidad de aceptación de una solución [72]. En cuanto a la temperatura inicial, se recomienda debe ser lo suficientemente alta para que todos los estados del sistema tengan la probabilidad de poder ser visitados y evaluados [73].
Generación de una solución alternativa vecina. La vecindad de una solución puede definirse como el conjunto de configuraciones alternativas que pueden crearse a partir de la modificación o cambio de algún elemento de la estructura de la solución actual [68]. De esta manera se genera una solución alternativa haciendo un pequeño cambio a la estructura actual y se pasa a evaluar la nueva solución.
Evaluación de la nueva solución respecto a la actual. El criterio de selección es como sigue: Siempre que el valor de la función objetivo mejore respecto al actual, la nueva solución se acepta y pasa a ser la solución actual. En caso contrario, aquellas soluciones que no mejoren el valor de la función objetivo, podrán aceptarse dependiendo de una probabilidad de transición, que depende del cambio en el valor de la función objetivo y de la temperatura actual [12].
La probabilidad de aceptar una solución que no tenga mejor rendimiento que la actual es calculada mediante la expresión [74]:
𝑝 = 𝑒𝑥𝑝 (𝑓(𝑥∗)−𝑓(𝑥)
Donde x es la solución actual, x* es la solución vecina generada, y T es el parámetro análogo a la temperatura del proceso físico de recocido.
Con un simple análisis de esta función, puede verse que en las primeras etapas del procedimiento, la mayoría de los movimientos son aceptados puesto que se comienza a una temperatura alta; pero a medida que avanza la búsqueda y la temperatura se reduce, se reduce también la flexibilidad de aceptar peores soluciones y al final sólo se aceptan aquellos que sean susceptibles de mejoras [12], [72].
Actualización. Luego de realizar el procedimiento anterior, se reduce la temperatura del sistema y se aplica el programa de enfriamiento de manera que, Tk = r *Tk-1
(donde 0 <r <1). En donde una tasa de enfriamiento dentro del intervalo [0.8, 0.99], que corresponde a un enfriamiento lento, se considera una alternativa excelente ya que permite una exploración más intensa a temperaturas bajas [68], [73].
Cierre. El criterio de parada puede establecerse teóricamente en el punto donde la temperatura converge a 0 [72]. Sin embargo, debido a que el algoritmo tiene que pasar mucho tiempo disminuyendo la temperatura, es típico detener el algoritmo después de ciertas iteraciones la función objetivo no mejora [68]. También puede finalizarse cuando se cumpla el número de iteraciones (L) establecido al inicio como se mencionó anteriormente.
El proceso es controlado principalmente por el programa de enfriamiento. Además, la calidad de la configuración final, así como el esfuerzo computacional necesario, dependen de la selección adecuada de los parámetros iniciales del programa [68]. En el proceso de recocido simulado, la característica de permitir el movimiento a soluciones de menor calidad, le da al procedimiento la oportunidad de salir de óptimos locales y de poder encontrar una mejor solución en una etapa posterior [75].
1.5.2 Branch and bound
El branch and bound (B&B) es un algoritmo que tiende a resolver problemas NP-Completos. Este enfoque se caracteriza por reducir la búsqueda de espacios de soluciones, basándose en criterios que garantizan que las soluciones eliminadas no
puedan ser soluciones óptimas [25]. El procedimiento básico de un algoritmo branch and
bound se presenta a continuación:
Obtener una solución candidata inicial, que puede generarse con la aplicación de algún otro algoritmo heurístico simple conocido [76].
Con la construcción de un árbol de búsqueda con las alternativas posibles de solución, se elige una rama y se desciende por el árbol hasta que logre eliminarse esta raíz o simplemente llegue a su nodo final, en tal caso, esta alternativa sustituye a la solución inicial [77].
El paso anterior se repite, separando el nodo raíz en N nodos, donde cada nodo contiene una secuencia de una tarea, evaluando cada nodo respecto a la mejor solución actual hasta completar una secuencia que no mejore en toda la extensión del árbol [25].
Seguir esta metodología presenta la ventaja de que el proceso requiere poco espacio de almacenamiento computacional, lo que le permite ser utilizado para problemas de programación con un gran número de trabajos [77]. Además, el uso de esta heurística, cuyo tiempo de proceso resulta ser razonable, es capaz de obtener resultados competitivos respecto a los obtenidos por otras heurísticas existentes [25].
1.5.3 Búsqueda tabú
La búsqueda tabú (TS) es un método meta-heurístico propuesto por Glover en la década de los 80 [75]. El algoritmo TS se considera una técnica de búsqueda local, ya que realiza una exploración a través de toda la vecindad estudiando adecuadamente los óptimos locales [68]. El procedimiento de la búsqueda tabú, inicia con una solución básica inicial y se busca en su vecindario una solución que presente mejor rendimiento.
Cuando lo hace, la búsqueda se mueve hacia la mejor y repite el proceso hasta que alguna condición de parada se satisfaga. La clave está, en evitar quedar atrapado en un óptimo local mediante la introducción de un mecanismo de la lista tabú, que define algunos movimientos prohibidos para aplicase en un momento dado [78]. La herramienta de lista de candidatos se encarga de conformar un subgrupo de la vecindad con las alternativas de mejor calidad. Es fundamental determinar el tamaño de la lista, ya que mientras más grande la vecindad, menor será probabilidad de obtener el mejor local [75].
La búsqueda tabú considera todos los atributos seleccionados (o movimientos) en el pasado reciente (últimas iteraciones) como prohibidos; por lo tanto, al llevar a cabo el proceso de búsqueda en la vecindad, todas las configuraciones candidatas que posean alguno de los atributos prohibidos (tabú) son excluidas de la formación del conjunto vecinas candidatas para ser evaluadas [68]. Esto con el fin de evitar volver a configuraciones ya visitadas y ampliar la búsqueda del algoritmo.
Por último, el algoritmo TS tiene la característica de utilizar procedimientos determinísticos y no en procedimientos aleatorios, como en el caso del recocido simulado, el algoritmo GRASP y el algoritmo genético. La búsqueda tabú hace uso de estrategias especiales de búsqueda, empleando distintos tipos de memoria y seleccionando el mejor movimiento en cada iteración [68].
1.5.4 Colonia de hormigas
La optimización por colonia de hormigas (ACO) es una meta-heurística, inspirada en el comportamiento real de las hormigas para encontrar un camino más corto desde una fuente de alimento a su nido. La analogía del algoritmo con el mundo real se explica de la siguiente manera [11]: cuando las hormigas buscan alimento, dejan cierta composición química, denominada feromona en sus senderos. Cuantas más hormigas caminen a través de un sendero, más feromonas quedarán en el suelo. Debido a que la siguiente hormiga escogerá uno de los caminos con una probabilidad proporcional a la cantidad de feromona presente en cada camino, este proceso de retroalimentación finalmente desarrollará un camino común desde el nido a la fuente de alimento.
Para modelar el comportamiento de las hormigas, deben definirse los siguientes componentes: una representación adecuada de feromona, el mecanismo de actualización de la cantidad de caminos, y una función que pueda brindar información sobre el problema específico [79]. Además, estos componentes se usan para guiar los movimientos en la selección de operaciones y como consecuencia, influyen en el rendimiento del sistema.
Al inicio del procedimiento, toda la colonia de hormigas se ubica en el nodo de origen (nido), definiendo el número de hormigas en la colonia de manera arbitraria [80]. En cada ciclo se usan m hormigas para construir una solución completa. Para ello, la solución es dividida en “pasos”, que en problemas de programación es la asignación de un trabajo a la secuencia. Luego, se aplican dos reglas de actualización: la evaporación de la feromona actual, y la cantidad de feromona añadida al camino [14].
Las siguientes funciones [81] se definen para llevar a cabo las reglas de actualización del sistema: luego de elegir un camino Ei, una hormiga cambia el valor de feromona τi con la
expresión:
𝜏𝑖= τi+ Q
li (1.2)
Donde Q es una constante establecida en el modelo, y li es la longitud del trayecto, es
decir cuánto más corto es el trayecto, mayor la cantidad de feromona añadida al camino. La evaporación de la feromona se modela así:
𝜏𝑖= (1 − ρ) ∗ 𝜏𝑖 (1.3)
Donde ρ es el parámetro que controla la evaporación y ρ ∈ (0, 1]. Después, cada hormiga seleccionará un camino de la siguiente manera:
𝑝𝑖 = 𝜏𝑖
𝜏1+𝜏2 , 𝑖 = 1, 2 (1.4)
Donde τ1 y τ2 son los valores de la feromona pertenecientes a los trayectos alternativos
E1 y E2. Las iteraciones continuarán repitiéndose y el proceso culminará cuando un
número máximo de iteraciones no logre encontrar una mejor solución que la actual [11].
El algoritmo de optimización de colonia de hormigas es una de las meta-heurísticas más aplicadas, y en el tiempo ha sido mejorado y extendido. El algoritmo se ha usado
exitosamente para resolver problemas de optimización combinatorial, y en programación de máquinas paralelas, en el job shop, el flow shop, y en el flow shop híbrido [79].
1.5.5 Algoritmo GRASP
GRASP es el acrónimo de Greedy Randomized Adaptive Search Procedures. Es una técnica combinatorial que permite encontrar soluciones subóptimas de buena calidad a problemas de optimización lineales o no lineales [68]. GRASP es una metodología que construye una solución inicial mediante una función de adaptación codiciosa o greedy aleatoriamente [54]. Más adelante, una búsqueda local se ejecuta utilizando una solución construida como punto inicial de partida. Una solución se construye mediante la incorporación de un nuevo elemento al tiempo hasta que una nueva solución se ha completado.
Una de las principales características de este método, es el uso de las listas restringidas de candidatos (LRC) [68]. Una LRC contiene los elementos candidatos con mejor valor de función greedy, que ayuda a enfocar más el proceso de búsqueda. Los ciclos iterativos se llevarán a cabo hasta que se haya cumplido cierto número de búsquedas en la vecindad, hasta que se haya explorado toda la región de vecindad o cuando no se supere la solución actual en cierto número de exploraciones.
1.5.6 Algoritmos genéticos
Los algoritmos genéticos (GA), desarrollados en la década de los 70 por Holland [82], [83], [84], son técnicas de búsqueda heurística que toman la analogía de los conceptos de la selección natural, empleando una población de soluciones candidatas y combinándolas en formas específicas con el fin de obtener mejores soluciones [85]; estos algoritmos se han convertido en una metodología muy popular para solucionar una gran variedad de problemas complejos [86], [87]. El algoritmo genético, siendo una técnica de búsqueda estocástica, se ha logrado aplicar a varias áreas, incluyéndose los problemas de programación de máquinas [56].
En el algoritmo genético, una solución factible se conoce con el término de cromosoma, el cual es representado con una cadena de valores enteros, cada uno de los cuales se denomina gen [88]. La calidad de un cromosoma se denomina fitness, que establece la concordancia de la alternativa de solución de acuerdo a la función objetivo definida [89]. Las combinaciones de los genes van evolucionando a través de las operaciones genéticas (reproducción, cruce y mutación) para crear la descendencia, de manera que los cromosomas se van aproximando a la solución óptima generación tras generación [90]. Sin embargo, es necesaria una codificación adecuada para cada problema y tener una función de ajuste que represente claramente la medida de calidad para cada solución alternativa [19].
Cinco elementos básicos debe contener un algoritmo genético [70]: la codificación, la generación de la población inicial, el diseño de la función de ajuste (o fitness), el diseño de los operadores genéticos, y la condición de terminación. El procedimiento de un algoritmo genético consta fundamentalmente de cinco etapas, las cuales se describen a continuación:
Población inicial. Una de las preguntas iniciales al construir el modelo del algoritmo tiene que ver con la población, tanto para definir su tamaño, como para establecer el método de selección de los mejores individuos. En cuanto a cómo elegir la población inicial, ésta puede construirse con ciertos individuos de manera determinística. También como ocurre en la mayoría de casos, la población inicial se crea aleatoriamente [35].
Selección. En el proceso de selección en un algoritmo genético, los cromosomas compiten entre sí para ser seleccionados como padres y llevar a cabo la operación genética, con la finalidad de generar la descendencia [47], [50], [91]. Cada solución candidata es evaluada según su valor de fitness, que indica la calidad de la solución representada, y aquellas que califiquen mejor tendrán mayor probabilidad de sobrevivir [44], [92]. Es importante no descuidar los individuos con menor calidad de
fitness, ya que un grupo reducido de los individuos más aptos acelera el desarrollo,
pero aumenta el riesgo de convergencia prematura y de llegar a estancarse en un óptimo local [93].
Operación genética. El propósito de esta fase es crear los individuos de la siguiente población a través de los operadores genéticos. Hay dos operadores genéticos que
son utilizados durante la exploración: el operador de cruce y el operador de mutación, que también son de naturaleza probabilística [64], [68].
El cruce es el operador genético más utilizado y consiste en crear nuevos individuos a partir de dos cromosomas seleccionados con el propósito de obtener la descendencia; estos nuevos individuos se generan a través de la combinación de las características de los cromosomas padres [34], [94]. Otra función importante de este operador es la de encontrar una región entre los candidatos que tenga una alta probabilidad de contener buenas soluciones aptas para la nueva generación [95]. Después de aplicarse el operador de cruce a un par de individuos, puede aplicarse otro componente importante de los algoritmos genéticos: la mutación. El operador de mutación usualmente es más simple que el operador de cruce, y genera una solución a partir la modificación aleatoria de las características de un cromosoma padre [96], [97]. La mayoría de algoritmos genéticos incorporan un operador de mutación con el fin de preservar un nivel razonable de diversidad poblacional, para proveer un mecanismo de escape a un óptimo local, y recuperar material genético perdido [98]. El operador consiste básicamente en hacer un intercambio de los valores entre dos posiciones i y j elegidas aleatoriamente, con una probabilidad de mutación pm [86].
Actualización de la población. Después de aplicar los operadores genéticos a los elementos de la antigua generación, se crea una nueva población. La cual estará conformada por aquellos cromosomas sobrevivientes de la antigua generación con mayores valores de fitness, en lo que se conoce como estrategia elitista [99]; más la nueva descendencia resultante de las operaciones genéticas que reemplazan aquellos cromosomas que presentaron los menores niveles de fitness de la población pasada. Nuevamente se hará la prueba de bondad o de concordancia de las soluciones generadas y se modificará la población en función de algún criterio establecido [100].
Cierre. Pueden utilizarse ciertas pautas para determinar cuándo detener la búsqueda. El proceso iterativo del algoritmo finaliza si se cumple una determinada condición: que se haya procesado una cierta cantidad de generaciones, que la aptitud de una candidata supere cierto valor definido, o que el valor de la función objetivo no mejore en cierto número de generaciones. En caso contrario, se continúa con el proceso de Selección [92].
1.6 Aplicaciones de los algoritmos genéticos
En el campo de la programación de producción y operaciones, amplios estudios y aplicaciones se han propuesto con el uso de la meta-heurística de los algoritmos genéticos. Anteriormente, se usaron algoritmos evolucionarios como acercamiento a la programación de producción en la industria textil [101]; mientras que otra aplicación, trabajó con un algoritmo genético para la programación de un flow shop, teniendo como criterio la minimización de la tardanza [102].
Más adelante, un algoritmo genético se utilizó para reducir el makespan en la programación del flow shop híbrido, desarrollando una lista de programación de las tareas según el criterio de secuenciación FIFO [103]. Mesghouni y Rabenasolo [104] usaron un algoritmo genético extendido aplicado al problema de programación bajo un modelo de producción con demanda incierta. Por otra parte, en una fábrica con tiempos de alistamiento dependientes de la secuencia, se construyeron algoritmos genéticos con distintas soluciones iniciales y métodos de mutación para el problema de programación [105]. De manera similar, Serifoglu y Ulusoy [84] hacen un acercamiento con algoritmos genéticos para un flow shop híbrido multi-etapa, esta vez con reglas de secuenciación
SPT, LPT y STPT.
En años recientes, Gómez-Gasquet [82] aplica un algoritmo genético basado en un sistema multi-agente para programar un flow shop híbrido en el sector de la industria cerámica. También, se publica una investigación en la que se aplican los algoritmos genéticos en un sistema multi-agente de planificación de los procesos en una industria textil [92]. Mahdavi y otros [83] construyeron un algoritmo genético para el scheduling del
flow shop híbrido con resultados eficientes para cantidades pequeñas de trabajos. Con el
fin de brindar una alternativa de solución al problema del flow shop híbrido, se elaboró un algoritmo híbrido combinando un algoritmo EGT (extended Giffler & Thompson) con un algoritmo genético, en lo que denominan EGTGA, tomando como criterio la reducción del
makespan [95].
Para el problema de programación en una configuración tipo flow shop, un algoritmo genético híbrido fue construido demostrando mayor eficiencia en los resultados con respecto al algoritmo genético convencional [88]. Vallada y Ruiz [60] proponen un algoritmo genético para la programación de máquinas paralelas no relacionadas con
tiempos de alistamiento dependientes de la secuencia, donde incorporan un nuevo operador de cruce que incluye un limitado procedimiento de búsqueda local. Deng y Gu construyeron un algoritmo evolutivo para el problema de programación de un flow shop con la restricción de no paros en las máquinas [106]. Mientras que en otra publicación reciente, se estructuró un algoritmo genético híbrido para un flow shop flexible dependiente de la secuencia, usando un modelo de simulación de eventos discretos del problema con el propósito de llevar a cabo el proceso de experimentación [107]. Otro trabajo relacionado con la aplicación de algoritmos genéticos, muestra un algoritmo que evoluciona con cuatro operadores de cruce y dos operadores de mutación para llevar a cabo la operación genética [47].
Con el aumento en la complejidad de los sistemas de manufactura, los algoritmos genéticos se pueden utilizar para hacer frente a problemas complejos y producir un programa de producción con un tiempo de cómputo razonable [29]. La literatura presenta diversos casos y herramientas de aplicación, cuyos autores pretenden aportar alternativas de solución de acuerdo a distintas situaciones especiales que se dan en los entornos reales de fabricación. Entre los cuales se consideran los tiempos de alistamiento dependientes de la secuencia [62], [108], [109], la problemática de las máquinas paralelas [53], [65], [110], el mantenimiento programado y paros de máquinas [49], [50], la existencia limitada de amortiguadores entre dos máquinas o etapas consecutivas [33], [45], y la recirculación o reprocesamiento de los trabajos en una misma etapa [32], [40], [76], entre otros. Estos aspectos deben ser tenidos en cuenta al momento de estructurar el modelo de funcionamiento del sistema de fabricación específico.
1.7 Conclusiones parciales
Teniendo en cuenta que la dinámica actual de los mercados obliga a los administradores a mejorar sus sistemas de gestión, es necesario que todas las decisiones tomadas en los niveles estratégico, táctico y operativo estén direccionadas y sean coherentes unas con otras, así como con las demás áreas organizacionales, con el fin de que las actividades
que se lleven a cabo en la etapa operativa ayuden a la obtención de unos objetivos definidos.
Queda claro que las plantas tipo flow shop y flow shop híbrido son muy comunes en los entornos de producción reales, y está presente en muchos tipos de procesos y sectores de la economía. Es una oportunidad de ahondar más en el tema, respecto a la configuración flow shop híbrido flexible la cual representa el flujo de producción del objeto de estudio.
Tomando la definición del concepto de makespan, se evidencia la amplitud de su utilización en la práctica, ya que un objetivo claro para los interesados en los procesos productivos es precisamente la optimización de los tiempos totales de fabricación y terminación. Además, han sido varios los autores que han reconocido su papel en el análisis del control y del rendimiento del sistema productivo, así como su relación con otros factores críticos, como los costos de producción, nivel de utilización de los equipos, tiempos ociosos de los recursos, cumplimiento con las fechas de entrega, y satisfacción del cliente.
Es una realidad que los procesos productivos son un tema especial de la administración, en cuanto sus características han llevado a una gran complejidad para su control y eficiente rendimiento respecto a las prioridades competitivas que busca una organización. Esto se debe, principalmente, al reconocimiento de múltiples aspectos controlables y no controlables que afectan la continuidad normal de los procesos productivos. Condiciones como la disponibilidad de máquinas, eficiencia de los equipos y de las personas, actividades de mantenimiento, tiempos de transporte, de cambios y de alistamientos, decisiones y cambios sobre la marcha, implican mayor esfuerzo y análisis en las actividades críticas de programación y control de la producción.
Con lo anterior, las herramientas convencionales y heurísticas conocidas de programación han quedado rezagadas y se han vuelto ineficaces. En décadas recientes han surgido técnicas alternativas de resolución de problemas complejos combinatoriales que con el uso de un tiempo de cómputo aceptable ofrecen soluciones óptimas o
subóptimas conocidas como meta-heurísticas. Entre éstas están los algoritmos de colonia de hormigas, el recocido simulado, la búsqueda tabú y los algoritmos genéticos.
Los algoritmos genéticos se han desarrollado con el fin de aplicarse en varias áreas de interés, entre las cuales, se incluyen los problemas de programación y asignación de máquinas. En el texto se ha mostrado el procedimiento de ejecución del algoritmo y se presentan sólo unas pocas aplicaciones en entornos reales de manufactura, ya que hay una inmensa cantidad de casos donde se aplica esta herramienta exitosamente. Esta técnica ofrece la oportunidad de modelar gran cantidad de restricciones presentes en la realidad para llegar a resultados sumamente interesantes. Los autores citados logran demostrar la eficiencia y el buen rendimiento de los algoritmos genéticos para obtener alternativas de solución de muy buena calidad y aplicables a las decisiones de corto plazo donde pertenece la programación de la producción, con un costo de tiempo y computacional relativamente bajos.
En la etapa posterior a este trabajo, se pretende construir una nueva metodología de programación con la aplicación de algoritmos genéticos en la que además de reducir el
makespan, tenga en cuenta la mayoría de aspectos que condicionan los procesos
productivos de una industria específica del sector textil, con el propósito de ofrecer mayor posibilidad de aplicación en los ambientes reales de fabricación.
1.8 Bibliografía
[1] F. Becerra R., Gestión de la producción: una aproximación conceptual. Manizales: Universidad Nacional de Colombia, 2008.
[2] J. A. Domínguez-Machuca, G. S. García, M. A. Domínguez-Machuca, J.A. Ruiz, and G. M. J. Alvarez, Dirección de Operaciones: Aspectos estratégicos en la
Producción y los servicios. Madrid: Editorial McGraw-Hill, 1995.
[3] T. Kis, and A. Kóvács, “A cutting plane approach for integrated planning and scheduling”, Computers & Operations Research, vol. 39, pp. 320-327, 2012.
[4] N. Gaither, and G. Frazier, Administración de Producción y Operaciones. México D.F.: Internacional Thomson Editores, 2000.