modelado de sistema informático para la secuenciación de...

117
INSTITUTO POLITÉCNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERÍA CIENCIAS SOCIALES Y ADMINISTRATIVAS SECCIÓN DE ESTUDIO DE POSGRADO TESIS Modelado de Sistema Informático para la Secuenciación de Órdenes de Producción PARA OBTENER EL GRADO DE: MAESTRO EN INGENIERÍA INDUSTRIAL PRESENTA RUBÉN ALFREDO SÁNCHEZ GÓMEZ DIRECTOR: DR. MAURICIO JORGE PROCEL MORENO MÉXICO D.F. 2015

Upload: phungdung

Post on 19-Sep-2018

214 views

Category:

Documents


0 download

TRANSCRIPT

INSTITUTO POLITÉCNICO NACIONAL

UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERÍA CIENCIAS SOCIALES Y ADMINISTRATIVAS

SECCIÓN DE ESTUDIO DE POSGRADO

TESIS

Modelado de Sistema Informático para la Secuenciación de Órdenes de Producción

PARA OBTENER EL GRADO DE: MAESTRO EN INGENIERÍA INDUSTRIAL

PRESENTA

RUBÉN ALFREDO SÁNCHEZ GÓMEZ

DIRECTOR: DR. MAURICIO JORGE PROCEL MORENO

MÉXICO D.F. 2015

2

3

4

Contenido

i. Resumen ........................................................................................................................... 9

ii. Abstract ............................................................................................................................ 9

iii. Prefacio .......................................................................................................................... 10

Acerca de la Manufactura PyME en México. ................................................................................ 12

Problemática ................................................................................................................................. 14

Objetivos ....................................................................................................................................... 18

Sistema de Secuenciación ............................................................................................................. 20

Capítulo 1 Estructura de los Sistemas de Producción ................................................................ 24

1.1 El Sistema Productivo. ............................................................................................................. 24

1.2 El Control de la Producción ..................................................................................................... 31

1.3 Organización de las Operaciones de Producción. ................................................................... 37

1.4 Planeación de la Producción. .................................................................................................. 43

1.5 Planeación del Nivel Operativo. .............................................................................................. 49

Capítulo 2 Optimización de las Tareas de Producción. .............................................................. 56

2.1 Optimización ........................................................................................................................... 56

2.2 Análisis del Modelo de Programación Job-Shop ..................................................................... 59

2.2.1 Descripción Matemática. ................................................................................................. 59

5

2.2.2 Métodos de Solución ........................................................................................................ 64

2.3 Algoritmos Genéticos .............................................................................................................. 68

2.3.1 Descripción General ......................................................................................................... 68

Algoritmo Genético ....................................................................................................................... 71

2.3.2 Uso de Algoritmos Genéticos en Problemas de Secuenciación. ...................................... 73

Capítulo 3 Modelado del Sistema de Secuenciación de Órdenes de Producción. ....................... 77

3.1 Diseño de un Sistema de Secuenciación ................................................................................. 77

3.2 Hacia la Construcción de un Sistema de Secuenciación ......................................................... 86

3.2.1 Arquitectura de Solución .................................................................................................. 86

3.2.2 Dominio de Visualización y de Trabajo ............................................................................ 93

Capítulo 4 Análisis del Modelado del Sistema de Secuenciación y su Aplicabilidad ................. 100

4.1 Análisis Contextual de Uso .................................................................................................... 100

4.2 Aplicabilidad del Sistema de Secuenciación.......................................................................... 103

Conclusiones ........................................................................................................................ 106

Anexo 1 Visual Prolog ........................................................................................................... 109

Bibliografía ........................................................................................................................... 111

6

Figuras

Figura iii-1 Estructura de los modelos de optimización (Jeff Kilbreth, 2007) ................................... 12

Figura iii-2 Porcentaje de empresas que cuentan integración en TI de los Procesos (ATKearney,

2009) ................................................................................................................................................. 13

Figura iii-3 Problemas Ocasionados por los Diferentes Factores de la Complejidad (ATKearney,

2009) ................................................................................................................................................. 14

Figura iii-4 La complejidad de los problemas y los sistemas de conocimiento (Wissensmanagement

Forum, 2004) ..................................................................................................................................... 15

Figura iii-5 Brecha entre el conocimiento tácito y explicito (Wissensmanagement Forum, 2004) .. 16

Figura iii-6 Panorama de aplicación de la programación de la producción (Patil & Lawrence, 2003).

........................................................................................................................................................... 17

Figura iii-7 Oportunidades identificadas para cerrar la brecha contra las mejores prácticas.

(ATKearney, 2009) ............................................................................................................................. 19

Figura iii-8 Adaptabilidad vs Abstracción. ......................................................................................... 21

Figura iii-9 Opciones de Solución para la Planeación y Programación (Jeff Kilbreth, 2007) ............. 22

Figura 1-1 Diferentes niveles de intercambio de valor para un conjunto de entes económicos ..... 25

Figura 1-2 Modificación del Estado del Sistema con Respecto al Tiempo ........................................ 26

Figura 1-3 Enfoque dinámico para el control de la producción (Scholz-Reiter, Freitag, & Schmieder,

A Dinamical Approach for Modeling and Control of Production Systems) ....................................... 32

Figura 1-4 (a) Bucle de control de respuesta automática. (b) Bucle de control con intervención

humana. (c) Inicio/Ajuste del proceso regulado por un humano en base a la respuesta de otros

procesos (K1 y K2) (Higgins, 1999) .................................................................................................... 33

Figura 1-5 Jerarquía de la Operaciones de Producción (Smit, 1992) ................................................ 38

Figura 1-6 Distribución básica de los recursos en un sistema de manufactura ................................ 39

Figura 1-7 Clasificación de los Sistemas de Producción .................................................................... 42

Figura 1-8 Fases de la Planeación de Procesos y Producción (Pinedo, 2009) ................................... 46

Figura 1-9 Relación de los elementos de Gestión y Control de la Producción (Bongaerts, 1998) .... 47

Figura 1-10 Fuentes de Información de un Sistema MRP (Joshi, 2000) ............................................ 48

Figura 1-11 Flujo de información en un sistema de planeación de producción (Pinedo, 2009)....... 50

7

Figura 1-12 Definición Ontológica de una Tarea (Fox & Smith, ISIS A Knowlege Based System for

Factory Scheduling, 1984, Vol.1 No. 1) ............................................................................................. 55

Figura 2-1 Visualización de Óptimos Locales y Óptimos Globales (Weise, 2009) ............................. 57

Figura 2-2 Ajuste de los valores objetivo que varían con los resultados de optimización (Weise,

2009) ................................................................................................................................................. 58

Figura 2-3 Enfoques de Solución al Problema de Programación Job-Shop (Jain & Meeran, 1998) .. 65

Figura 2-4 Expansión del árbol de precedencia de secuencias factibles a evaluar ........................... 66

Figura 2-5 Codificación del Espacio de Búsqueda en una Cadena de Caracteres ............................. 69

Figura 2-6 Proceso de Transición entre Generaciones Sucesivas (Gonçalves, Mendes, & Resende,

2002). ................................................................................................................................................ 70

Figura 2-7 Representación de los operadores de Mutación y Cruce (Gonçalves, Mendes, &

Resende, 2002) .................................................................................................................................. 72

Figura 2-8 Sistema de Secuenciación Dinámica basado en Algoritmos Genéticos (Madureira,

Ramos, & Silva, 2001) ........................................................................................................................ 74

Figura 2-9 Cromosomas de Trabajos y sus Asignaciones a Máquinas. ............................................. 75

Figura 3-1 Elementos de la Cadena de Suministro ........................................................................... 78

Figura 3-2 Información Requerida para la Representación del Problema de Producción a Optimizar.

........................................................................................................................................................... 79

Figura 3-3 Dinámica de Control del Uso de un Secuenciador de Producción. .................................. 80

Figura 3-4 Nivel Generalizado de Asignación a Pantas de Producción como Unidades de

Procesamiento .................................................................................................................................. 81

Figura 3-5 Imposición restrictiva para el elemento de control basado en diferentes entidades. .... 82

Figura 3-6 Representación del Modelo del Sistema de Secuenciación Propuesto ........................... 83

Figura 3-7 Relación de Productos, Operaciones y Centros de Trabajo para Definir Tiempos de

Ejecución ........................................................................................................................................... 84

Figura 3-8 Identificación de Tareas de Desarrollo del Sistema Informático ..................................... 85

Figura 3-9 Topología de Conectividad para sistema de Secuenciación ............................................ 94

Figura 3-10 Menú “Administración de Recursos” en Sistema de Secuenciación ............................. 95

Figura 3-11 Ventana de Definición de Procesos ............................................................................... 95

Figura 3-12 Ventana de Definición de Centros de Trabajo ............................................................... 96

Figura 3-13 Ventana de Definición de Artículos ................................................................................ 96

8

Figura 3-14 Ventana de Definición de Tiempos Estándar ................................................................. 97

Figura 3-15 Menú “Administración de Recursos” en Sistema de Secuenciación ............................. 97

Figura 3-16 Ventana de Gestión de Órdenes de Producción ............................................................ 98

Figura 3-17 Ventana de Ejecución de Secuencia de Producción....................................................... 98

Figura 3-18 Menú “Configuración” en Sistema de Secuenciación. ................................................... 99

Figura 3-19 Ventana de Definición de Parámetros del Algoritmo Genético. .................................... 99

Figura 4-1 Modelo Ontológico de un Sistema (Chourabi, Pollet, & Ben Ahmed, 2010) ................. 100

Figura 4-2 Puntos de Dependencia entre la Fabricación y la Toma de Decisiones. ........................ 101

Figura 4-3 Cambios de Estado para los Centros de Trabajo del Proceso de Producción. ............... 102

9

i. Resumen

Hoy en día los retos empresariales son prácticamente abrumadores. Los clientes esperan servicios y productos personalizados, más rápido y de forma más eficiente, los accionistas exigen una mayor rentabilidad a través de mayores ingresos; El comercio electrónico y otros canales de distribución emergentes han cambiado las expectativas de los clientes, y la competencia es a escala global. La optimización de recursos y procesos es la clave para convertir los desafíos en una ventaja competitiva. La optimización permite a las empresas a tomar mejores decisiones acerca de cómo asignar recursos, incluidos los equipos, capital, personas, vehículos, materias primas, tiempo y otros recursos.

La planificación de tareas es el elemento más común en el que se pueden determinar la asignación de los recursos de forma óptima para que el resultado sea más eficiente. Existe un gran número de reglas de asignación que a menudo están disponibles, pero tienden a ser las reglas simples y estáticas (por ejemplo, fecha de vencimiento, fecha de lanzamiento, más alta prioridad del trabajo). En la mayor parte de los paquetes de software comercial, este tipo de reglas son las que predominan, sin embargo modelos más complejos no se encuentras en todos. Es necesario generar aplicaciones que complemente las tradicionales formas de programar la producción.

ii. Abstract

Today's business challenges are almost overwhelming. Customers expect personalized services, faster and more efficient products, shareholders demand greater profitability through increased revenues; E-commerce and other emerging distribution channels have changed customer expectations and competition is global. Optimization of resources and processes is the key to turn challenges into a competitive advantage. Optimization allows companies to make better decisions about how to allocate resources, including equipment, capital, people, vehicles, raw materials, time and other resources.

The scheduling is the most common element that may determine the allocation of resources optimally so that the result is more efficient. There are a number of mapping rules that are often available, but tend to be simple and static rules (eg expiration date, release date, highest priority of the work). In most commercial software packages, such rules are predominant, but not more complex models are at all. It is necessary to create applications that complement traditional forms of production schedule

10

iii. Prefacio

La solución de problemas industriales y de manufactura, requiere de las áreas del conocimiento que permitan su formalización y estructuración, a fin de entender y controlar los elementos constituyentes dentro del entorno en el que se encuentran. El uso y desarrollo de tecnologías facilita y habilita este proceso, ya que pueden reflejar el nivel de entendimiento y control que se puede tener del sistema. El efecto de aplicar y proveer soluciones tecnológicas basadas en un análisis sistemático/sistémico en el contexto industrial, va más allá de las fronteras de un solo sistema, ya que en su conjunto, y llevándolas de forma generalizada, pueden impactar directamente en el crecimiento económico de un país, el capital intelectual, la innovación, la investigación y la inversión, entre otros.

Dado que los sistemas industriales y empresariales cumplen una función económica dentro de la sociedad, su desempeño puede depender de su grado de cumplimiento con respecto a este macro-sistema económico-social. De esta forma, la respuesta económico-social a la que obedece la empresa, se lleva a cabo mediante la interacción con proveedores, acreedores y clientes a través del intercambio de productos y servicios de impacto económico. La mejora de cada uno de los sistemas empresariales ayuda a cumplir en cierta medida con esta función, entendiéndose como una mejora del sistema cuando se incrementa el flujo de bienes materiales y monetarios, con la menor cantidad de recursos, y en términos de energía, con el menor esfuerzo posible. Es por eso que las filosofías y técnicas usadas actualmente como logística integral, calidad, productividad, entre otros, están dedicados a cumplir el objetivo de mejora del sistema.

Debido al rápido crecimiento de la competitividad global, las estrategias de negocio se deben de ir adaptando a las necesidades de un mercado en constante cambio; esto provoca la modificación de los procesos y operaciones en las empresas. Sin embargo, la mayoría de las organizaciones se desarrollan fuera de un enfoque metodológico que permita aprovechar sus recursos de manera eficiente. Es por ello que los factores clásicos de producción como lo son la mano de obra, materia prima y energía, cobran mayor importancia, ya que su correcta y eficiente utilización, basados en el análisis sistemático, impacta directamente a todo el sistema.

Los sistemas de fabricación concentran gran parte de los recursos empresariales (factores clásicos) para la generación de bienes materiales, esto los hace susceptibles de constantes mejoras en la utilización sus recursos. En particular, las aplicaciones tecnológicas para los sistemas de fabricación, pueden ir desde las mejoras físicas, como lo podrían ser los materiales y máquinas de transformación, hasta las abstractas, como aplicaciones lógicas y de organización (matemáticas y de información). Debido a la brecha existente entre el conocimiento tácito y el conocimiento explicito, las aplicaciones abstractas, como la optimización, encuentran una mayor dificultad de aplicación, principalmente en las Pequeñas y Medianas Empresas (PyMES), debido al grado de especialización requerido por parte del personal y que no siempre es demandado, en la medida requerida por la industria. (Matta, Semeraro, & Tolio, 2005)

11

La formalización en la descripción de los sistemas se logra mediante modelos matemáticos; dichos modelos pueden ser generales (básicos) o especializados (adaptados) que pueden describir las características de un sistema en particular. Sin embargo, no solo se requiere la descripción de las diferentes entidades del sistema, sino también, del modelado en la utilización de los recursos que se usan. Los modelos de optimización pueden cumplir este propósito con el fin de obtener mejoras en el sistema, por ejemplo, haciendo mejoras en la entrega de productos y servicios en tiempo y forma.

La planeación y control de la producción, aborda las cuestiones de la adquisición, utilización y asignación de recursos de la forma más efectiva y eficiente posible. Los llamados modelos de Programación (Scheduling) en este contexto resultan convenientes ya que son generalmente aceptados como parte de las herramientas para la planeación y control de la producción (Tse, Chan, & Lie, 2009). Para poder adaptar los sistemas de manufactura y lograr cambios rápidos en función de una demanda variable y una amplia diversidad de productos, actualmente existe una tendencia global hacia la flexibilidad en términos de manufactura. Existen variantes de las técnicas de Programación que resultan especialmente convenientes en este tipo de producción (aunque no exclusivas) y se denominan Job Shop Scheduling1. Si bien por sus características se pueden adaptar a la manufactura flexible, este problema de optimización ha demostrado tener una amplia variedad de aplicaciones.

Una de las dificultades de los problemas de programación y particularmente el problema tipo Job Shop Scheduling, es que para conocer su solución exacta, se requiere de un tiempo no polinomial (NP). Los Algoritmos Genéticos (AG) proporcionan una alternativa accesible y potente en la búsqueda de soluciones satisfactorias en tiempos aceptables. Existe un amplio campo de investigación en el desarrollo de algoritmos genéticos que puedan proporcionar mejores soluciones a este tipo de problemas. Si bien las tecnologías de la información han hecho más fácil la tarea de analizar grandes cantidades de datos, organizarlos y aprovecharlos, cabe destacar que a pesar de la efectividad de este tipo de algoritmos su aplicación práctica ha sido más bien escasa y poco generalizada. Debido a que un sistema puede ser analíticamente inagotable, modelarlo en un nivel adecuado y conveniente puede ser una tarea difícil, ya que se puede develar una compleja interrelación entre los diferentes elementos y niveles del sistema. (Tse, Chan, & Lie, 2009)

El desarrollar sistemas de información sin entender el contexto de negocio puede ser una tarea arriesgada que puede terminar en un error costoso. Los sistemas de información deben de ser analizados en el contexto de los procesos. Los sistemas informáticos para la optimización representan un claro ejemplo, debido a las múltiples consideraciones o supuestos que deben hacerse acerca de la generalidad de los procesos para empatarlos con los modelos matemáticos existentes que describen solo una parte de la realidad (Figura iii-1).

1 Se manejara la notación inglesa "Job Shop" para identificar el problema, debido a que su traducción literal "Taller de Trabajo" es escasamente utilizada

en la literatura.

12

Acerca de la Manufactura PyME en México.

En México, las PyMES representan el 90% de las empresas, el 42% del empleo, y contribuyen con un 23% del PIB. Entre otras, cumplen con las siguientes funciones sociales y económicas (Hernández Talonia, 2009):

Pueden realizar productos individualizados en contraposición con las grandes empresas que se enfocan más a productos más estandarizados.

La mayor parte de las grandes empresas se valen de empresas subcontratadas menores para realizar servicios u operaciones.

Absorben una porción importante de la población económicamente activa, debido a su gran capacidad de generar empleos.

Se establecen en diversas regiones del país y contribuyen al desarrollo local y regional por sus efectos multiplicadores.

A pesar de los beneficios directos que podría suponer el adecuado funcionamiento de la economía PyME, en realidad este sector aun no logra desarrollarse y consolidarse; y su tasa de éxito se encuentra entre el 25 y 30%, muy por debajo de la media mundial que es del 40%. La Secretaria de Economía identifica que el financiamiento, falta de asesoría empresarial, una deficiente administración, recursos humanos no calificados, desconocimientos de mercados y tecnologías y una mala organización son los factores que afectan la baja competitividad de las PyMES (Hernández Talonia, 2009). En México, lejos de procurar una "estructura de producción", los esfuerzos están enfocados principalmente, en torno al comercio exterior y a la red de acuerdos

-Demanda

-Disponibilidad de

Recursos

-Costos

-Restricciones

Operacionales

-Objetivos de

Negocio

Modelos Matemáticos

Motores de Optimización

-Minimización de Costos

-Maximización de

Ganancia

-Asignación Específica de

Recursos

-Métricas Operacionales y

-Financieras

-Reducción de Tiempos

Figura iii-1 Estructura de los modelos de optimización (Jeff Kilbreth, 2007)

13

internacionales, como vía de mejora de la competitividad. Dussel Peters (Dussel Peters, La manufactura mexicana:¿opciones de recuperación?, 2009 No. 357 ) identifica 4 formas para la canalización de tecnología en los procesos productivos: a) imitación y uso de procesos, b) adquisición de habilidades, c) promoción de exportaciones y, d) incremento en la competencia; siendo las ultimas 2 las que reflejan la actuación de la política Mexicana en este ámbito. Por otra parte, de forma casi independiente y limitada, el sector productivo procura los esfuerzos en la imitación y uso de procesos (b).

De acuerdo con el estudio comparativo realizado por ATKearney (ATKearney, 2009), las diferencias entre las grandes empresas y las PyMES, muestran que las primeras cuentan con un alto grado de integración y automatización de la información a lo largo de la cadena de suministro (Figura iii-2).

Figura iii-2 Porcentaje de empresas que cuentan integración en TI de los Procesos (ATKearney, 2009)

Esta naturaleza de integración de la información, facilita el manejo de la complejidad organizacional. En (ATKearney, 2009) se mencionan algunos de los problemas que ocasionan el incremento de la complejidad en las organizaciones; razón por la cual, el uso de modelos que impulsen la integración de las actividades y la información, se vuelve critico (Figura iii-3).

14

Figura iii-3 Problemas Ocasionados por los Diferentes Factores de la Complejidad (ATKearney, 2009)

Problemática

Existe escasa información que permita conocer el aprovechamiento, aplicación y utilidad de los Sistemas de Información en las PyMES. Debido a esto, no se pueden establecer parámetros de definición concretos para el desarrollo de aplicaciones específicas que las haga más competitivas a nivel nacional e internacional (Barceló Valenzuela & Pérez Soltero). La mayoría de las PyMES carecen de Sistema de Información apropiado y/o de las bases para su correcto aprovechamiento. Sin embargo es necesario hacer énfasis en la creación o adaptación de modelos existentes para la solución de los problemas organizacionales, aunque estos presenten mayor dificultad de aplicación.

Como refleja el estudio de (ATKearney, 2009), el manejo de la complejidad no está considerado como factor estratégico en las PyMES (Figura iii-3). En su amplia mayoría, dentro de las PyMES, los problemas se van atendiendo conforme se van presentando. He aquí donde existe la necesidad de integrar las tareas de toma de decisiones, como el acceso interactivo a datos, técnicas de modelación numérica, evaluación de problemas semiestructurados y de gestión del conocimiento entre otros. Sin embargo los problemas menos estructurados cuentan con mayor grado de

15

complejidad e incertidumbre, además de que la noción de optimalidad puede ser confusa (Tse, Chan, & Lie, 2009).

Esto no permite definir de manera clara la forma en la que deben de lograrse los objetivos. Existe una tendencia generalizada de interpretar los problemas en términos lineales simples de la forma “causa-efecto” (Sterman, 2000). Este enfoque de representación, principalmente basado en eventos, determina la forma en que los problemas son tratados. Esta interpretación de la realidad no siempre resulta la más adecuada a la hora de resolver problemas ya que estos son regularmente de forma compleja y que requieren de un modelado más elaborado para su solución. El alto grado de interrelación de los elementos de información y operaciones en una organización hace más difícil la tarea de encontrar los patrones que permitir aplicar mejoras de manera estructurada (Figura iii-4).

Figura iii-4 La complejidad de los problemas y los sistemas de conocimiento (Wissensmanagement Forum, 2004)

Analizando la dificultad de estructurar el comportamiento complejo, vemos que una de las causas radica en la naturaleza de la diferencia entre el conocimiento tácito y el conocimiento explícito. Generalmente, pasar de un conocimiento a otro requiere de una gran cantidad de esfuerzo ya que no se pueden derivar en primera instancia una aplicación práctica directamente del conocimiento universal (Wissensmanagement Forum, 2004), y por otra parte el bajo nivel de abstracción obtenido del conocimiento adquirido por experiencia solo puede trasladarse a situaciones que resultan similares (Figura iii-5). Dado que los problemas complejos no pueden ser resueltos "directamente", se elaboran versiones más simples, en el que sin lugar a dudas, implica la pérdida

16

de realismo del problema. Por lo tanto, encontramos el dilema entre la capacidad de resolver problemas complejos y la falta de aplicabilidad de modelos simples (Gigch, 2004).

Las reglas, como lo podrían ser lineamientos, políticas etc., son una manera eficaz de manejar la complejidad de información en muchos dominios de aplicación. También resultan particularmente útiles como base de inferencia para la determinación de procesos, procedimientos u algoritmos (Hopgood, 2012). Esto permite definir de una manera más clara, la contextualización de los modelos existentes. Sin embargo para lograrlo se deben de considerar los siguientes problemas de medición al tratar de adaptar los modelos para el control del sistema (Gigch, 2004):

El problema del lenguaje: Especifica la forma de representación del problema.

El problema de la especificación: La definición de las variables clave que intervienen en el sistema y/o proceso, así como la delimitación del subsistema en consideración.

El problema de la estandarización: Asegurar que las variables del sistema puedan comportarse de manera uniforme.

El problema de la exactitud y control: Es el aseguramiento de la repetitividad con respecto a las variaciones que se pudiesen presentar en el sistema.

Esto nos ayuda a definir el marco en el cual se puede representar el sistema y con lo cual nos podría decir si un problema está bien estructurado en el grado que cumple con los siguientes criterios (Gigch, 2004):

Conocimiento Universal

Conocimiento Experimental

Universalidad

Practica Relevante Personalización del contexto

Generalización Abstracción

Brecha entre teoría y práctica

E.g. Matemáticas

E.g. Habilidades de Negociación

Figura iii-5 Brecha entre el conocimiento tácito y explicito (Wissensmanagement Forum, 2004)

17

Que se pueda describir en términos de variables numéricas, cantidades escalares y de vector.

Que puedan especificarse los objetivos en términos de una función objetivo (maximización y/o minimización)

Que existan algoritmos que permitan encontrar su solución.

Es por ello que se ha tomado en cuenta el trabajo Patil y Lawrence (Patil & Lawrence, 2003) en el que se remarca que los sistemas de producción representan un eslabón muy importante dentro del estado general del sistema organizacional, sus estudios demuestran una estrecha relación entre el control de producción y la satisfacción del cliente en el desempeño general de la organización. Esto refleja en parte, la necesidad de generar conocimiento y análisis sistematizados para la producción. El marco de trabajo desarrollado por Patil y Lawrence se refleja en la Figura iii-6; el modelo refleja la relación entre la programación de la producción y la satisfacción del cliente. El principio de división del trabajo implica una estructura jerárquica entre los elementos constituyentes. Esto permite un orden razonado mediante el cual la programación y la secuencia de procesos de manufactura puedan organizarse. Como se muestra en la figura, las reglas de secuenciación, la confiabilidad de las fechas de entrega y la velocidad de entrega, afectan el beneficio total debido a la disminución de los costos por retraso y costos de inventario. La satisfacción del cliente depende de la fiabilidad de la entrega y la rapidez de la entrega y que a su vez afecta el beneficio total.

Utilidad Total Desviaciones en fechas compromiso y costos de mantener inventario

Políticas de secuenciación

Método de estimación de

entregas

Confiabilidad de entrega

Rapidez de entrega

Expectativa del cliente

Participación en el mercado

Satisfacción del Cliente

Figura iii-6 Panorama de aplicación de la programación de la producción (Patil & Lawrence, 2003).

18

Esto refleja de forma clara, el contraste que existe con la forma de trabajo con muchas de las PyMES en México. La falta de atención en PyMES a los problemas de asignación y optimización de recursos, puede ocasionar fallas en la cadena de suministro, inventarios, cumplimientos de entrega, entre otros. De acuerdo con lo anteriormente expuesto, estos problemas se pueden resumir en los siguientes puntos:

Falta de procesos y herramientas para administrar la complejidad. (Falta de Modelos).

Entendimiento limitado del balance entre beneficios/costos de configuración. (Falta de Herramientas).

Decisiones de asignación de recursos son realizadas por sentido común o experiencia, sin revisar/evaluar los impactos en los procesos (Soluciones Inadecuadas).

Objetivos

Dado que la problemática presentada es de gran amplitud por sus múltiples consideraciones, el "método" para su tratamiento podrá definirse en función de:

La probabilidad de éxito de proporcionar una solución.

El alcance o campo de aplicación

La eficiencia del método

Y de forma complementaria al primer punto; que dicha solución pueda aplicarse cuando el sistema productivo no cumpla con los objetivos establecidos, no proporcione los resultados predichos y/o no opere como se planeó inicialmente. El modelo de programación Job-Shop ha sido ampliamente estudiado y aplicado en diferentes ámbitos de la ingeniería. Desarrollado en un contexto puede cumplir con los requisitos anteriormente mencionados y servirá como base para el desarrollo del tema en estudio (El método o estrategia como parte del modelado del sistema, se convierte entonces en parte del control del sistema2). Si bien este modelo tiene un tratamiento principalmente teórico en la literatura estudiada, será necesario proporcionar el contexto necesario que nos permita acotar su aplicación en un programa de computadora. Con las

2 Se le acredita a Wiener el logro de la teoría matemática que mostro que el control de sistemas es una función del

contenido de información (cibernética). Y la cantidad de información generada a partir del sistema se obtiene a partir de cuan definida este el modelo que describe el sistema.

19

consideraciones anteriormente descritas se pretenden cumplir los siguientes objetivos en el presente trabajo:

Analizar el marco ontológico que permita un mejor entendimiento de los sistemas de producción.

Desarrollar el modelo de una solución informática al problema de Secuenciación de Órdenes de Producción (basado en el modelo Job-Shop Scheduling), para la reducción en tiempo de la producción en proceso, enfocado en las Pequeñas y Medianas Empresas Manufactureras.

Describir las características del modelo del sistema informático para que sea comercialmente factible en lo referente a la secuenciación de la producción.

El enfoque de este trabajo, centrado principalmente en las PyMES, está respaldado por el estudio de ATKearney, ya que evidencia la brecha existente entre los productores nacionales contra las prácticas de clase mundial (Figura iii-7). Analizando lo aquí presentado, se hace hincapié en dar mayor atención a este sector industrial, para poder contribuir con su desarrollo y competitividad.

Figura iii-7 Oportunidades identificadas para cerrar la brecha contra las mejores prácticas. (ATKearney, 2009)

20

Sistema de Secuenciación

Uno de los problemas de la Ingeniería Industrial que más trabajo ha demandado a los investigadores, es el de como asignar órdenes de producción a diferentes centros de trabajo ejecutadas en una correcta secuencia tecnológica. El desarrollo de técnicas emergentes (Heurísticas) para el análisis y control de sistemas no lineales nos ayudan a resolver problemas donde fallan las aproximaciones lineales o que están muy lejanos de la realidad. Inclusive en sistemas de producción simples se presentan situaciones complejas. Aunque existen métodos para encontrar soluciones óptimas para algunas formulaciones de problemas de programación específicos, muchos de los métodos no funcionan bien cuando se enfrentan a problemas de tamaño significativo.

En general, los problemas de programación son NP-difíciles, y significa que no hay algoritmos conocidos para encontrar soluciones óptimas en tiempo polinomial. Existen algoritmos para resolver exactamente algunas formas del problema, pero por lo general toman demasiado tiempo cuando el tamaño del problema crece o cuando se añaden restricciones adicionales.

La naturaleza combinatoria de la mayoría de los problemas de programación ha llevado a muchos investigadores a experimentar con los algoritmos genéticos como método de solución; ampliamente usados por su capacidad para resolver problemas no lineales y combinatorios (Bartschi Wall, 1996). Existe abundante investigación relacionada a la programación de producción y su solución con múltiples técnicas, incluyendo los algoritmos genéticos. Sin embargo, los modelos desarrollados son en gran medida inadecuados para los problemas reales en los talleres de trabajo. Esto se debe principalmente debido a la falta de interés del sector productivo en adoptar modelos matemáticos complejos, además de que las técnicas matemáticas disponibles son insuficientes para hacer frente a problemas de programación prácticos; muchas suposiciones se requieren hacer para reducir un problema a un nivel donde puede ser resuelto por un método no trivial (Velaga, 2012).

Es por eso que en este trabajo se pretende consolidar el modelo de programación Job-Shop hacia las bases de un sistema informático de índole general para su desarrollo comercial pero limitado a un contexto de manufactura, de manera que permita un uso más accesible de este modelo.

Debido a una comprensión incompleta de las interacciones entre los componentes del sistema y la incapacidad para intercambiar información significativa entre dichos componentes, es difícil tomar decisiones sobre el diseño y establecer estrategias operativas eficaces. Se observa que muchos de los sistemas de producción integrados, están diseñados para ser flexibles, pero se encuentran limitados por su complejidad, ya que la toma de decisiones tienda a ser inflexible debido al entorno dinámico e impredecible en el que trabajan.

21

Una comprensión de los efectos del impacto del componente de la información, su representación y su significado, es de suma importancia (Jones, Reeker, & Deshmukh, 2002) ya que cada decisión contribuye al rendimiento del sistema global. Además, una métrica de la información extraída de los parámetros físicos no siempre es evidente o relevante como parámetro de rendimiento del sistema. La cantidad y el impacto de la información no pueden ser definidas independientemente de las decisiones. Por ejemplo, un modelo de cadena de suministro bien construido, ya sea por los niveles tácticos u operativos, debe conservar la información relevante asociada con el flujo y la transformación de las materias primas hasta los productos terminados y su distribución a los consumidores. (Rodríguez-Angeles, Morales Díaz, & Sánchez)

Esta problemática es a la que nos enfrentamos a la hora de diseñar una solución informática que sea adaptable a diferentes procesos industriales; y una de las principales definiciones a realizar es la del nivel de abstracción a utilizar. La ingeniería de software tiene bien identificado aquellos elementos que permiten decidir entre la personalización del software o la adquisición de un sistema genérico, mediante factores como el costo, mantenimiento o uso, entre otros. Sin embargo es necesario tener bien delimitado el espectro de uso que se pretende y/o pueda cubrir la aplicación por realizar.

La Figura iii-8 nos muestra la relación entre la adaptabilidad y la abstracción. Por una parte se encuentran los programas que son de índole general y que su nivel de adaptación es menor y por el otro aquellos programas que se adaptan a situaciones concretas que no permite un uso fuera del contexto en el que se encuentran.

Actualmente muchas aplicaciones se encuentran en un punto medio entre la adaptabilidad y la abstracción, como los ERPs, lo cual las convierte en una opción viable para el manejo de procesos

Abstracción

Adaptabilidad

Software Personalizado

Software Genérico

Figura iii-8 Adaptabilidad vs Abstracción.

22

de negocio y con fines de comercialización. La dificultad reside en identificar los procesos de negocio "genéricos" en los que se puedan trasladar las generalidades del proceso junto con la capacidad de adaptación o personalización del software (Figura iii-9).

En el caso particular del tema de secuenciación/programación, son pocos los programas asequibles que se encuentran en este punto intermedio. Primordialmente predominan los programas académicos y didácticos, en el que se definen variables y restricciones en lugar de procesos o secuencias tecnológicas; en el otro lado del espectro están los programas desarrollados específicamente para cada proceso y que cumplen una función específica para ciertos procesos específicos (personalizados). Algunos programas comercialmente asequibles para la programación de Órdenes de Producción, se encuentran fuera de las posibilidades económicas de las PyMES; es por eso que resulta indispensable contribuir con las base de la ampliación de uso de este conocimiento.

Figura iii-9 Opciones de Solución para la Planeación y Programación (Jeff Kilbreth, 2007)

- Limitaciones en Tamaño y Complejidad

- Difícil de Mantener

- Incómodo Análisis What-If

- Difícil Cambio de Interfaz

- Difícil escalabilidad y adaptabilidad a cambios

- Difícil Crear GUI

- Dificultad del Mantenimiento

- Baja Participación de Directivos

- Rápida Implantación

- Herramienta Familiar

- Funcionalidades estándar

- Uso de Mejores Prácticas

- Se confecciona a las necesidades

Pros

Aplicaciones Basadas en Hojas de Cálculo (Genérico)

Aplicaciones por Paqueterías

Aplicaciones Personalizadas

Contras

23

Diseño de Sistema Informático para la Secuenciación de Órdenes de Producción

24

Capítulo 1 Estructura de los Sistemas de Producción

1.1 El Sistema Productivo.

Generalmente las empresas tienden a definirse en función de su estructura organizativa y de las personas que ocupan los puestos clave, pero esto es solo una vista parcial. La empresa funciona como un sistema complejo, con sus componentes interactuando como un todo, reflejando además, ser un ente económico y social que coopera con otras empresas para lograr sus objetivos. Todo esto mediante la definición e integración de los procesos para convertir sus recursos en un medio de funcionamiento. Por lo tanto, para poder definir una empresa, es necesario delimitar y especificar el sistema en el que opera. Invariablemente, el sistema requiere ser representado como un modelo, tan amplio y complejo, como el análisis lo requiera, ya que este puede ayudar a entender mejor la estructura de operación y el flujo de información entre las partes que lo constituyen y que de esta manera sirva como plataforma para mover la empresa hacia un estado deseado (Sink, Poirier, & Smith, 2001).

Una de las características inherentes a los sistemas complejos, es la adaptación y el equilibrio con respecto al entorno en el que se desarrollan. El equilibrio de las empresas en un ambiente dominado por el contexto económico (y como reflejo de progreso), se logra mediante el flujo monetario y el intercambio de bienes y servicios. Esta dinámica del "intercambio de valor", está en función de la cantidad de intercambio logrado de los bienes y servicios generados por la empresa; es decir, el incremento de lo que se podría denominar "flujo de valor", lo conforma la generación de los bienes necesarios y/o demandados por el macro sistema socioeconómico.

Desde el punto de vista de una sola empresa, su existencia depende del grado en que se cumpla este flujo de valor con los bienes y servicios generados y que son demandados por la sociedad. Se entiende que si una empresa ofrece productos y servicios que no son demandados, entonces no estaría cumpliendo con su función del intercambio de valor, afectando su adaptación y equilibrio con respecto a su entorno.

En la Figura 1-1 se muestra un conjunto de entidades económicas que propician el intercambio de valor en diferentes niveles; los países con un alto intercambio de valor son aquellas economías que tienen un alto nivel de dinamismo propiciado principalmente por la innovación que satisface necesidades comunes y del cual las unidades económicas básicas (empresas e individuos), son las que en su conjunto hacen la economía de un país. Por otra parte, una bajo nivel de intercambio de valor promueve una economía pasiva de baja competitividad y bajos niveles de crecimiento.

25

Delimitando la perspectiva del macro-sistema a una de las múltiples entidades independientes, obtenemos la vista de un subsistema al que le hemos denominado empresa. Su funcionamiento ha sido objeto de múltiples disciplinas de estudio con un objetivo en común: la mejora. Sin embargo una mayor especialización puede propiciar intereses encontrados, y que tienen como consecuencia, en el mejor de los casos, la mejora de subsistemas (mejoras aisladas), sin que esto pueda representar una mejora al sistema global (nivel empresa). Teniendo en cuenta la máxima de que un sistema físico es considerado optimo cuando puede lograr su cometido utilizando la mínima energía posible; lo mismo puede interpretarse para los sistemas organizaciones, en el que sí, entre otros, su función de transformación y generación de bienes y servicios se diseña con el adecuado funcionamiento, y con un uso mínimo de recursos de cada una de sus partes, entonces se considerara óptimo.

Dada la dificultad del diseño de una entidad empresarial para obtener una utilización óptima de sus recursos, existe un sin fin de empresas que se han establecido sin este precepto. Esta brecha ofrece una importante área de oportunidad de aplicación (y de nuevos negocios) para mejorar el flujo de valor de las empresas. En el caso particular de las empresas de producción, esta mejora está dada principalmente, por el aprovechamiento de los recursos de producción ya que es el área que más recursos consumen para su funcionamiento; es decir, una mejora en el sistema productivo podría representar una mejora al sistema global. Es por ello que en este trabajo, se hace un análisis del sistema de producción. Si bien esta premisa podría funcionar para los sistemas productivos, no siempre se puede asegurar que un cambio de mejora realmente tendrá un impacto en la mejora global, debido a la dificultad de determinar que los cambios en los índices de desempeño tendrán un efecto positivo en el sistema.

a) b)

Figura 1-1 Diferentes niveles de intercambio de valor para un conjunto de entes económicos

26

El uso de modelos ayudará en esta tarea, iniciando por aquellos que proporcionan la generalidad del sistema, hasta llegar a los modelos de subsistemas que nos permitan tratar un problema en específico.

Un sistema puede ser definido como un objeto matemático que transforma entradas (X) en salidas (Y), caracterizado por un estado interno (Q) y que varía con respecto al tiempo (T), interpretándose matemáticamente como 𝑌𝑇 = 𝐹(𝑋𝑇 , 𝑄𝑇) (Figura 1-2). Existe una particular importancia en la definición del estado del sistema ya que será a guía de evolución de dicho sistema.

Hemos de notar que la Teoría General de Sistemas (TGS) nos ha ayudado a entender el funcionamiento de cualquier tipo de sistema, ya sea físico o abstracto. A partir de estos estudios podemos conocer algunos principios generales que aplican a cualquier sistema y que siempre resulta conveniente tenerlos en cuanta para la aplicación de cualquier mejora que se pretenda hacer en la empresa (Golden, Aiguier, & Krob, 2010):

X1 X2 X3 X4

TX,Q,Y QN

Y1 Y3 Y2 Y4

Entradas

Estados

Salidas

Figura 1-2 Modificación del Estado del Sistema con Respecto al Tiempo

27

1. Los objetos de la realidad pueden ser modelados como sistemas

2. Un sistema se puede descomponer en un conjunto de subsistemas

3. Un sistema siempre está en interacción con otros sistemas

4. Un sistema debe considerarse a lo largo de su ciclo de vida

5. Un sistema puede ser interconectado con otro a través de

una interfaz

6. Un sistema puede ser considerado a diferentes niveles de abstracción

28

7. Un sistema puede ser visualizado desde diferentes capas de análisis

8. Un sistema puede ser descrito mediante modelos de interrelación

9. Un sistema puedes ser descrito desde diferentes puntos de vista.

Por lo que además se pueden definir dos formas de composición para los sistemas que son los que proporcionan el factor dinámico (Golden, Aiguier, & Krob, 2010):

1. El producto

2. La retroalimentación

29

La complejidad de un sistema está dada por la interacción y heterogeneidad de sus componentes. Las mayores dificultades en el diseño de un sistema son:

Ir de lo particular a lo general, dominando la integración en los diferentes niveles de abstracción.

Construir una arquitectura invariable en un ambiente dinámico.

También formado por subsistemas, el sistema empresa define sus estados por la interacción y comportamiento de dichos subsistemas, mediante la interacción y la retroalimentación (Golden, Aiguier, & Krob, 2010). Si bien la teoría de control puede parecer conceptualmente factible, resulta ser complicada en la práctica. De acuerdo con Albert T. Jones (Jones, Reeker, & Deshmukh, 2002), este nivel abstracto para trasladar el concepto a la práctica consta de dos etapas: 1) Establecer la meta deseada y desarrollar un plan para lograr ese objetivo; y 2) Observar la ejecución del plan y hacer los ajustes necesarios. Por lo general implica la creación de un modelo de sistema, un problema de optimización basado en ese modelo y la técnica para resolver ese problema. El problema de optimización tiene al menos una meta cuantificable y limita los parámetros en el modelo. A veces, estos problemas se pueden resolver analíticamente y otras veces no. Independientemente de cómo se deriva la solución, debe de resultar en un plan para que pueda ser ejecutado por el sistema.

En lo que se refiere al tema de estudio bajo análisis, dentro de un sistema de producción, la dinámica y su rendimiento están estrechamente relacionados; esto se refleja, en particular, en la compleja interacción dinámica interna y externa de la empresa. Aquí, la comprensión del comportamiento dinámico y las influencias de diseño, planificación de la producción y el control puede ser apoyado por medio de la simulación para que puedan ser analizadas a largo plazo. Sin embargo, la dinámica a corto plazo está determinado principalmente por ajustes específicos del Control y Planeación de la Producción (CPP), que activan el flujo de materiales relacionados con los pedidos, induciendo así la dinámica del sistema (Scholz-Reiter, Toonen, & Lappe, Impact of Market Dynamics on Performance and Internal Dynamics of Job-Shop Systems, Issue 4, Volume 5, 2011), esto sin mencionar otros factores internos y externos que pueden incrementar la variabilidad del sistema.

Para ello, es necesario contar con sistemas de soporte de decisiones que ayuden a minimizar los riesgos en las decisiones debido a las variaciones presentadas por la incertidumbre y que ayuden al control del sistema. Estos sistemas de soporte de decisiones generalmente se presentan para sistemas con comportamiento determinístico, característicos de los sistemas rígidos. Este tipo de comportamiento es exhibido por mecanismos en los que sus elementos se presentan bajo condiciones predecibles. Los principales puntos fuertes de este tipo de comportamiento son la precisión y repetitividad; su principal debilidad, hacer frente a los acontecimientos inesperados. Por mucho tiempo se consideró a las líneas de producción rígida y automatizada, como sinónimos de las economías de escala y producción en masa. Sin embargo las condiciones del mercado

30

actuales requieren un mayor uso de los sistemas flexibles de control para la manufactura y la gestión, por sus características de adaptación; características que los sistemas rígidos no tienen (Rzevski, 1995).

De forma general, los sistemas pueden presentar las siguientes fuentes de incertidumbre que contribuyen al dinamismo y a la variabilidad del sistema:

Ocurrencia de eventos inesperados, como fallas, cambios de prioridad, modificaciones de diseño.

Información incompleta, inconsistente y poco confiable al respecto de decidir el siguiente paso

Para lograr la flexibilidad de un sistema, se requieren de múltiples elementos de control, comunicación e interacción. Además, una estrategia de control y políticas de producción, hacen que un sistema inestable se mueva a una región estable, debido a que la complejidad de la interconectividad de la información y de las actividades de la empresa que generan un ciclo de tipo atractor extraño; fenómeno que se estudia en la Teoría General de Sistemas. Karaçali y Demirci (Karaçali & Demirci, 2009) en sus estudios sobre los sistemas de producción, demuestran que mediante la regulación del flujo de materiales en todo el sistema mediante el adecuado control de los niveles de producción y de inventarios, el sistema es capaz de converger hacia esta zona estable.

Es por ello, la imperativa necesidad de generar modelos que pretendan lograr este objetivo. El uso de un modelo ayuda en la estructuración de los propios pensamientos sobre el sistema3, en la comprensión del comportamiento del sistema y en la diferenciación relevante de los datos. Con un modelo es posible llevar a cabo experimentos para probar la sensibilidad del sistema a ciertos factores y para poner a prueba el efecto de cambiar el sistema. El diseño de un modelo general comienza con un determinado nivel de abstracción, con la definición de los procesadores y las formas de interacción. El procesador ejecuta ciertas funciones; y están determinados por los puntos de interacción.

3 El modelado es considerado como un arte, lo que significa que si bien no hay pautas específicas que

conducen a un buen modelo, si hay caracteristicas comunes que ayudan a definir mejor un modelo.

31

1.2 El Control de la Producción

Nuestra capacidad de controlar el desempeño de los sistemas físicos puede depender directamente de nuestra capacidad para medir las similitudes y diferencias entre los objetos de información. Se necesita una comprensión completa de la relación entre las diversas formas aproximadas de medición de la información. El conjunto de sus comportamientos puede ser infinitamente inagotable e incognoscible, pero si se define indirectamente, entonces podremos predecir el comportamiento a través de un modelo. Para predecir el comportamiento con precisión, se necesita determinar las necesidades de información para caracterizar la ontología y lo que se hace a la información basada en dicha ontología (Jones, Reeker, & Deshmukh, 2002).

Básicamente, el control de uno o varios modelos del sistema como referencia para organizar los diferentes elementos de la arquitectura de dicho sistema, son necesarios para que reflejen la integración de sus elementos funcionales (Golden, Aiguier, & Krob, 2010):

Estructuras

Propiedades

Relaciones

Comportamiento y Dinámica

Múltiples puntos de vista (complementarios y consistentes).

La integración de estos elementos funcionales en un diseño coherente, es lo que se denomina como la Arquitectura de Negocio (o Business Architecture). Se podría afirmar que nadie sabe el estado actual un sistema de producción en un momento determinado; solo se reciben estimaciones de los datos recolectados por muestreos, promedios o mediciones con desfases. El estudio de las ciencias básicas nos ha demostrados que el simple hecho de la medición puede afectar el sistema, además de que la medición puede arrojar datos erróneos, o que la naturaleza de la medición sea inadecuada. Todas las mediciones son un acto de selección, en el que se ha decidido tomar una fracción del sistema a medir. Los retrasos de tiempo entre la toma de una decisión y de sus efectos sobre el estado del sistema son comunes y se deben de tomar en cuenta (Sterman, 2000). Mediante la Arquitectura del Sistema, podemos determinar los puntos de control deseados, no solo del sistema general, si no de los subsistemas que los componen; cada uno desde luego requiere de un diseño estructurado que permita su mejor funcionamiento para cumplir sus objetivos de funcionamiento.

Esto evidentemente aplica también para el área de producción. Es por eso que la empresa recurre a la Planeación y Control de la Producción (PCP) cuando tratar de darle solución los siguientes problemas:

32

Planeación del Programa de Producción.

Planeación de Requerimientos de Materiales.

Calculo de los tiempos de Producción.

Planeación de la capacidad.

Liberación de Órdenes de Producción.

Monitoreo y Control de Órdenes de Producción.

Deben intentar resolverse por medio de un Sistema de PCP que sea capaz de abarcar todo el proceso de producción. Los modelos de producción son usados para poner estas estrategias en práctica, y pueden ir desde los analizados por la Investigación de Operaciones hasta su integración como parte de un diseño de Arquitectura de Producción. En la fabricación dos áreas de especialización se pueden distinguir: el procesamiento de materiales (tecnología de proceso) y el procesamiento de la información (tecnología de control). Se supone que un sistema de fabricación se divide en máquinas que transforman el material, que se llama el sistema de fabricación físico, y un sistema de control que activa el sistema físico, que se llama el sistema de control de fabricación o simplemente Sistema de Control. En la Figura 1-3 se muestra la interacción de nivel 1 (flujo de productos) y nivel 2 (flujo de información).

Estado del Sistema

Órdenes de Producción

Control de Producción

Trabajo en Planta

- Materia Prima - Sub-ensambles - Recursos Productivos

- Producto Final

Flujo Materiales/Producto

Flujo de Información Ajustes del Sistema Información de Retroalimentación

Figura 1-3 Enfoque dinámico para el control de la producción (Scholz-Reiter, Freitag, & Schmieder, A Dinamical Approach for Modeling and Control of Production Systems)

33

El estado del sistema está definido como la situación actual en el sistema de producción que se deriva del estado de las variables dentro del sistema y que contienen las series de tiempo de las mediciones obtenidas directamente del sistema físico. Estas deben de poder reflejar el contenido de trabajo del sistema como lo podría ser la producción en proceso (WIP por sus siglas en ingles), que es un parámetro común en la manufactura. La información de retroalimentación, llega de la planta y junto con las nuevas órdenes se actualiza el estado del sistema. En la práctica esto se realiza (en algunos casos) mediante al medición de variables específicas. El mecanismo de control consiste en 3 pasos:

Mantener el sistema en estado de equilibrio

Previsión de la ocurrencia de perturbaciones

Lograr el equilibrio después de algún ajuste dinámico en el sistema

Para situaciones en las que un ser humano cierra un bucle de control, se trata al operador humano como un elemento que procesa la información para controlar o tomar decisiones (aplicando los modelos de control de la teoría de la conducta humana). En la observación de la respuesta del sistema, los seres humanos pueden modificar el punto de ajuste para obtener un mejor rendimiento dinámico (por ejemplo, mejorar la estabilidad o modificar la tasa de cambio de una salida). Un modelo de control dinámico bien puede adaptarse a estas circunstancias. Sin embargo, en muchas ocasiones, los modelos de control teórico no ofrecen una explicación satisfactoria, ya que el comportamiento humano no ofrece una conducta uniforme que permita mantener el nivel de estabilidad deseado. Las tecnologías en general y en particular las de Información, permiten construir sistemas más inteligentes (de respuesta autónoma) que permiten una operación más uniforme a lo largo del sistema.

Figura 1-4 (a) Bucle de control de respuesta automática. (b) Bucle de control con intervención humana. (c) Inicio/Ajuste del proceso regulado por un humano en base a la respuesta de otros

procesos (K1 y K2) (Higgins, 1999)

34

Un Proceso es un conjunto de operaciones consecutivas que completan una etapa en la fabricación de un componente. Una Operación es la unidad mínima de trabajo tendrá en cuenta para la planificación o control de un propósito particular. Y lo que es necesario para la ejecución de una operación se llama un Recurso. Una fábrica es parte de un todo más grande: la economía. Opera dentro de un mercado y tiene que ver con los proveedores, los consumidores y de los competidores. Una fábrica es un sistema que vende productos a los consumidores y que compra materias primas a proveedores. Los productos se fabrican a partir de las materias primas en una o más recursos de la fábrica. Un sistema de fabricación es un sistema de transformación en el que la fabricación real de los productos se lleva a cabo. Por lo general, este es un agregado de máquinas. Un sistema de fabricación es una parte de una fábrica. Un sistema de fabricación se compone de uno o más recursos y un sistema de control, que controla los recursos. Un sistema de fabricación transforma uno o más tipos de material de entrada (materia prima) en uno o más tipos de material de salida (productos acabados). Esta transformación se denomina el proceso de fabricación.

La creación de grupos operacionales independientes es lo que permite al sistema "trabajar"; ya que es la determinación de las actividades y operaciones en planta. La organización de estos grupos, proporcional la referencia del diseño (y modelado) del sistema que incluyen las posibilidades de control para el proceso de producción. Con cualquier sistema de autocontrol, existen las siguientes bases funcionales (Scholz-Reiter, Toonen, & Lappe, Impact of Market Dynamics on Performance and Internal Dynamics of Job-Shop Systems, Issue 4, Volume 5, 2011):

La estructura

La capacidad

Las reglas de operación

La liberación de órdenes

Políticas de espera

Estos grupos funcionales son los que generan la dinámica de producción y determinan el flujo de los productos/materiales a través del sistema de producción.

La estructura contiene información acerca del número y los arreglos de las estaciones de trabajo, maquinas, almacenamientos y/o lo necesario para describir de forma suficiente el proceso de manufactura. La jerarquía de la estructura de la información permite una descripción más detallada dependiendo de los objetivos del modelado. La estructura también contiene información acerca del flujo del producto además de como diferentes productos pasan a través del sistema, esto se determina mediante la distribución de la planta y la ruta tecnología a seguir de cada producto en el programa de producción. La estructura de flujo del producto se considera dentro de la función que define el estado general del sistema de producción, ya que un cambio en el flujo, por ejemplo debido a la falla de una máquina, se ve influenciado por las interacciones dinámicas necesarias para regenerar el plan.

35

La capacidad de un sistema de producción incluye tres importantes aspectos: capacidad de espacio, capacidad de tiempo y la capacidad de manufactura. Un enfoque dinámico del sistema de producción, se requiere una descripción detallada de la capacidad que permita al sistema ajustarse de una forma flexible. Las tres capacidades pueden considerarse cambiantes con respecto al tiempo y dependen de la configuración del sistema de producción. Por lo tanto, la capacidad de producción es un valor variable dependiente de las tres capacidades que podríamos denominar como 'básicas'

Las Reglas de Operación generan la forma dinámica de los sistemas de producción y pueden estar definidas en función del flujo de materiales o en el actuar de casos específicos; esto depende del sistema productivo que se esté usando. Un ejemplo de regla de operación, es la determinación de acción en caso de que una maquina se encuentre al 100% de su capacidad mientras que las otras del mismo tipo no lo estén.

La Liberación de Órdenes está determinada por un programa que determine el orden en que se estarán enviando las órdenes de producción al área de trabajo. Este programa de trabajo debe considerar un rendimiento constante para la capacidad y el tiempo de producción durante el periodo de planeación. La presencia de órdenes de "última hora" o mantenimientos no programadas, hacen aún más compleja su determinación. La cantidad y forma de las órdenes dependerá de las solicitudes de clientes, necedades de inventario, necesidades de subproductos y de la producción en proceso.

Las Políticas de Secuenciación determinan la acción del flujo de materiales a lo largo del proceso de manufactura. Existen criterios clásicos como el de primeras entradas o primeras salidas que determinan este flujo, sin embargo actualmente existen múltiples modelos que permiten la secuenciación de forma dinámica.

Con estas bases funcionales se diseñan los procesos productivos y administrativos para lograr la transformación de recursos en resultados. Un Recurso no es una propiedad innata de un objeto, sino que es una propiedad que se deriva de la función de una entidad que desempeña con respecto a una actividad. Algunas de sus características son: La Divisibilidad, La Cantidad, Estructura y Finalidad (Fox, Chionglo, & Fadel, A Common-Sense Model of the Enterprise).

El enfoque complementario para el funcionamiento del sistema es la información. Generar la información correcta debe de ser de alta prioridad ya que es la base para la toma decisiones, y la guía para la mejora del procesamiento y transformación de los recursos. Las cadenas de interrelación del sistema requieren de la distribución de la información para mantener la integración tecnológica, operacional y estratégica. El flujo de información tiene un comportamiento en el que la información se distribuye sólo a aquellos que lo necesitan. Sin embargo las actividades de adquisición de conocimientos están directamente relacionados con las

36

actividades de distribución de la información. Es decir, el flujo de información debe de ser el adecuado para promover la generación de conocimiento pero no debe de sobrepasar la capacidad del sistema para procesar dicha información, ya que en tal caso, podría resultar con efectos negativos (M. Hult, Ketchen, & Slater, 2004).

El control de la producción es comparable al de control de fábrica, excepto que contiene un menor número de funciones. El Control de la Fábrica comprende la planificación de capacidad, marketing, compras y fabricación. El Control de la Producción, comprende la fabricación solamente. Esta diferencia también se encuentra en los comandos que ambos tipos de controlador reciben. Una Orden de Producción es una tarea para la fábrica, donde se especifica una cantidad de un determinado tipo de producto. Un Trabajo es un comando para un sistema de fabricación que especifica el material y el proceso de fabricación. La representación de un sistema industrial como una colección de procesadores con interacciones entre ellos y con una especificación de los elementos pasivos se llama un Modelo de un Sistema Industrial. El modelado se realiza siempre en el marco de una determinada definición del problema. Uno de los principales criterios por los que un modelo puede ser juzgado es el grado en el que representa los aspectos relevantes del sistema industrial.

37

1.3 Organización de las Operaciones de Producción.

Al mirar el diseño de un sistema de fabricación, hay dos alternativas importantes: diseño en base al proceso y otra más compleja, es el diseño de base funcional. El diseño del proceso corresponde el flujo del proceso, las máquinas están ordenados en la secuencia de las operaciones que tienen que ser realizadas. La ruta del material a través de la fábrica es fijo y existen máquinas dedicadas para la realización del trabajo. Por otra parte, el diseño funcional se corresponde con el modelo de taller de trabajo (Job-Shop). Aquí, las máquinas están clasificadas en grupos que tienen la misma funcionalidad. El taller de trabajo se caracteriza por una gran flexibilidad en la configuración de las rutas de los materiales. Además, las máquinas son generalmente de tipo universal y son capaces de ejecutar operaciones diferentes.

Existe una amplia literatura acerca de la Arquitectura de Control de la Producción, en la que generalmente depende de un diseño del "flujo de materiales". En los últimos años ha crecido la tendencia hacia los sistemas de fabricación Job-Shop; esto ha resultado en sistemas de fabricación más elaborados capaces de ejecutar muchos procesos de fabricación. Debido a su complejidad, para estos sistemas la descripción de su arquitectura de control ha divergido en distintas áreas del conocimiento en busca de conceptos alternativos que permitan una mejor visualización, entendimiento y control (e.g. Sistemas de Control Holónicos, Sistemas Multi-Agente, etc.).

La arquitectura de control tiene que ser capaz de manejar las diferentes categorías de flujo de material en el sistema de fabricación. Además, esta arquitectura tiene que ser capaz de manejar todo tipo de estructuras de secuencias de fabricación. El número de pasos en una secuencia de un sistema de fabricación está también sólo limitado por la capacidad de la unidad de procesamiento. La arquitectura, sin embargo, comienza a partir de la situación estática, donde las secuencias son conocidas de antemano. Incluso en situaciones con muchos tipos diferentes de productos que son fabricados en series cortas, la arquitectura será aplicable, si estas secuencias están disponibles con antelación. Ya que durante la fase de utilización, el sistema de control tiene que considerar la creación de planes de capacidad, la comercialización de los productos, la compra de materias primas y la fabricación de productos. El sistema de control de fábrica tiene la responsabilidad para la traducción de la demanda real y/o el pronóstico de venta, en comandos para las máquinas. El sistema de control dirige y regula el sistema físico de tal manera que un objetivo predefinido se logra lo más cercanamente a lo previsto.

Se establece una distinción entre el control de la fábrica y el control de la máquina. El control de la fábrica está en un nivel más abstracto, controla agregados de máquinas y personas. El control de la máquina, por otra parte, regula el funcionamiento interno de la máquina. La mayor diferencia entre los dos es la forma de paralelismo. En el control de la máquina, el paralelismo tiene una estructura de grano fino con una muy estrecha sincronización entre los eventos. El paralelismo en

38

el control de la fábrica tiene una estructura con muchos más eventos independientes y se regula mediante el resultado de las actividades conjuntas de los recursos utilizados.

Una operación es una unidad de trabajo que es ejecutado por un recurso. Hay operaciones que son específicos para el proceso de fabricación (que se determina por la tecnología de procesamiento y las máquinas de fabricación) y las de soporte, que son operaciones que no afectan las operaciones de proceso pero que también dependen del estado del sistema de fabricación. Una jerarquía de las operaciones se muestra en la Figura 1-5.

Dado el diseño de las necesidades de fabricación, la organización de los recursos como unidades de procesamiento, se pueden presentar en diferentes formas de procesar las secuencias de fabricación:

Operación

De Soporte

Intercambio de Material

Envío de Material

Recepción de Material

Almacenamiento

Transporte

De Proceso

Manufactura

Verificación

Moldeado

Transformación

Ensamble

Agregar

Forma

Remover

Inspección

Prueba

Figura 1-5 Jerarquía de la Operaciones de Producción (Smit, 1992)

39

La universalidad de las máquinas y la flexibilidad de la ruta suelen estar relacionadas. Máquinas dedicadas forman parte la mayoría de los sistemas de fabricación con pequeña flexibilidad, por ejemplo el Flow Shop donde se fija la ruta del material a través del sistema de fabricación y esta se mantiene a lo largo de la operatividad del proceso. Máquinas universales a menudo forman parte de los sistemas de fabricación con una gran flexibilidad en sus rutas y secuencias, que a su vez se representan con el modelo de taller de trabajo o Job Shop.

En la fabricación el sistema de control procesa la información y el material de acuerdo con procesos definidos. El sistema de control dirige el flujo de material a través del sistema. Los tipos de información en un sistema de fabricación son la información de configuración, el estado del sistema, el historial del sistema y los objetos que se utilizan para la comunicación. El sistema de control tiene conocimiento acerca de la configuración: los recursos que controla, la disposición física de los recursos y el proceso de fabricación que se realiza por los recursos. Estos datos sobre la configuración se consideran sin cambios durante el control del sistema de fabricación.

Con el fin de ser capaz de tomar sus decisiones, el sistema de control tiene que llevar un registro de la situación del sistema de fabricación física. Este registro incluye información sobre el material, que operaciones se han realizado en el material, y en que recursos con el fin de evaluar el

Recurso Único

Recursos Paralelos

Recursos con Ruta Fija

Recursos con Rutas Universales

Figura 1-6 Distribución básica de los recursos en un sistema de manufactura

40

rendimiento del sistema. Los registros de los eventos se deben de mantener para poder reproducir eventos con el fin de rastrear las causas de los errores, los extractos de estadística y los eventos cambiantes en el tiempo.

La supervisión del sistema de fabricación se divide en tres funciones. La primera función es el registro momentáneo del progreso del proceso de fabricación: el registro de la situación del material que se está procesando. La segunda función es el registro de las actividades de los recursos. Con relación a estas funciones es la señalización para el medio ambiente sobre el estado del sistema de fabricación y el proceso. En tercer lugar el control tiene que registrar y comprobar el rendimiento general del sistema de fabricación durante un intervalo de tiempo más largo.

Con el fin de utilizar los recursos de manera eficiente, es necesario armonizar la carga de trabajo y la capacidad. Una fábrica ideal con un sistema de fabricación ideal, está perfectamente equilibrado, lo que significa que la capacidad de los recursos se ajusta a un cierto nivel de rendimiento. En este nivel de rendimiento, es posible que coincida con la carga de trabajo a la perfección a la capacidad de los recursos. El nivel de inventario es decisiva para la carga de trabajo del sistema: el punto de trabajo ideal de un sistema de fabricación ideal es un nivel de inventario que es igual a la suma de los tamaños de los lotes de todas las máquinas. En el sistema de fabricación ideal, operando en su punto ideal de trabajo, los recursos no están ociosos y material nunca tiene que esperar a procesar. En el caso ideal, la carga de trabajo es igual a la capacidad todo el tiempo.

El rendimiento de una fábrica está relacionado con la cantidad de productos que se fabrican, de los costos que se incluyen en la fabricación de dichos productos, y los precios recibidos de los productos fabricados. Este rendimiento tiene que dar lugar a beneficios (positivos), porque de lo contrario la existencia de la fábrica se pone en peligro. El rendimiento de un sistema de fabricación, por otro lado, tiene que ver con la relación entre el comportamiento especificado y el comportamiento real. Un sistema de fabricación está diseñado para ser capaz de fabricar una cierta cantidad de producto por hora en un cierto tiempo de proceso, en virtud de las limitaciones definidas (rendimiento, tiempo de espera, el nivel de inventario). Si el sistema de fabricación se hace funcionar en la forma indicada, el rendimiento tiene para estar cerca de la especificación.

Hay tres medidas que se utilizan con frecuencia para evaluar el desempeño de una fábrica: fiabilidad de la fecha de vencimiento, de los plazos de entrega de los productos y el grado de utilización de las máquinas. La fiabilidad de la fecha de vencimiento es una medida difícil, debido a que las fechas de vencimiento se crean normalmente en un proceso de negociación entre la fábrica y su consumidor. Ya sea que las fechas de vencimiento sean realizables o no, depende de si se trata de una fecha de vencimiento realista. La utilización es una medida de desempeño difícil de controlar, ya que se centra en el rendimiento de las máquinas individuales. La utilización es una función de la capacidad disponible y la carga (la cantidad de pedidos) asignado a la fábrica. Si la capacidad disponible es fija y la carga está adaptada a la capacidad, el algoritmo de planificación tiene que garantizar que los recursos se utilizan tan eficientemente como sea posible: esto

41

significa que los tiempos de inactividad de los recursos tienen que ser minimizado, al igual que los tiempos de instalación.

El rendimiento máximo de un sistema de fabricación es fijo, un fabricante necesita que su sistema de fabricación este cerca de la capacidad máxima, con tiempos de entrega cortos, pequeños inventarios y fiables fechas de vencimiento. En el sistema ideal, como ya hemos visto, los tiempos de espera de los productos son cero), como también los tiempos de espera de los recursos. El nivel de inventario es igual a la cantidad de material de todos los recursos en el sistema son capaces de procesar de forma simultánea. El rendimiento del sistema de fabricación se encuentra mediante el estudio de las relaciones entre tiempo de espera, el rendimiento y nivel de inventario.

Un control de planta necesita proporcionar información a las personas y las máquinas (recursos) en el momento oportuno para su ejecución. Por lo tanto, tiene que recoger, almacenar y recuperar estos datos, además de proporcionar a las personas en la cantidad y el nivel de agregación correcto. Esta función incluye la captura de datos de las máquinas y el análisis de estos datos en bruto. También se ocupa de la gestión de los programas de las máquinas, de la calidad y la gestión de la mano de obra. A través de la función de ventas, los nuevos pedidos se introducen en la tienda. Los pedidos pueden ser asignados directamente a los clientes, o pueden ser acciones de órdenes de reposición de inventario, etc. Sin embargo, tradicionalmente el control de planta considera las ventas como un cuadro negro, generando órdenes con una distribución estocástica. (Bongaerts, 1998)

La cantidad de capacidad se puede expresar en tiempo de máquina disponible en un período (por ejemplo, horas por día, hora por semana, etc.) o en el número de piezas por período. Conociendo la velocidad de producción, es posible establecer un flujo esperado de producción en función de las ventas. La capacidad utilizada puede variar de día en día por varias razones, por tanto, la media y la desviación estándar se utilizan para representar la capacidad utilizada en un período de tiempo definido. En la práctica, la capacidad disponible se suele comparar con lo que demandan los clientes. Si la capacidad disponible es mayor que la capacidad utilizada para satisfacer la demanda de los clientes existe una pérdida, se cuantifica por la diferencia entre la capacidad disponible y la capacidad utilizada; estos residuos también se conocen como el exceso de capacidad. Sin embargo, si la capacidad disponible es inferior a la capacidad que sería necesaria para satisfacer totalmente la demanda de los clientes, hay una falta de capacidad se cuantifica por la diferencia entre la capacidad solicitada y la capacidad disponible; esta falta también se conoce como excedente demanda. La relación entre la capacidad utilizada y la capacidad teórica es el nivel de utilización de la planta. Entre las diversas causas de la diferencia entre la capacidad utilizada y teórica, las más frecuentes son: la programación de personal, configuraciones de máquinas, mantenimiento y falta de demanda. Un análisis cuantitativo sobre las razones de la capacidad no utilizada debe hacerse siempre antes de decidirse a adquirir nueva capacidad.

La capacidad de fabricación se caracteriza por los siguientes aspectos: la capacidad no se puede almacenar. Si un sistema de fabricación no se utiliza en un período, debido a la falta de demanda,

42

la parte relacionada de la capacidad se pierde y no se puede utilizar en el futuro. Una alternativa es producir incluso si no hay demanda con el fin de almacenar los productos acabados; en este caso se incurre en mayores costos de inventario. La capacidad puede ser cambiada sólo en pasos discretos. En la práctica, un aumento o disminución de la capacidad corresponde a una adquisición o una dimisión de una cantidad finita de los recursos (por ejemplo, una máquina o un operador humano).

Los sistemas de producción se pueden clasificar de manera general en intermitentes o continuos (Figura 1-7). Los sistemas continuos son aquellos en los que se producen cantidades indefinidas de algún producto homogéneo. Por otra parte, los sistemas intermitentes, (que representan el marco de desarrollo en esta tesis), producen una gran variedad de productos o numero finito de lotes de diferentes productos de acuerdo con el pedido del cliente.

Figura 1-7 Clasificación de los Sistemas de Producción

43

1.4 Planeación de la Producción.

El principal factor detonante del ciclo de producción es el del consumo de los productos de la empresa por parte del cliente. Es por ello que es necesario analizar el interés del cliente por adquirir los productos de la empresa, y de cómo mantener a los clientes e incrementar la base de venta (aumentar el flujo de mariales con respecto al tiempo). Patil y Lawrence (Patil & Lawrence, 2003), desarrollan un modelo de satisfacción del cliente basado en una perspectiva de la programación de la producción.

Patil & Lawrence identificaron que la velocidad de entrega y la fiabilidad han sido identificados como los principales indicadores del desempeño de la programación de producción, modelándolo con la siguiente ecuación:

𝑈𝑖𝑗𝐴 = 𝜔1(𝐿𝑖𝑗

𝐸 − 𝐿𝑖𝑗𝑄 )

++ 𝜔2(𝐿𝑖𝑗

𝐸 − 𝐿𝑖𝑗𝑄 )

−+ 𝜂1(𝐿𝑖𝑗

𝑄− 𝐿𝑖𝑗

𝐴 )+

+ 𝜂2(𝐿𝑖𝑗𝑄

− 𝐿𝑖𝑗𝐴 )

−+ 𝑈𝑖𝑗

𝐸 (1)

donde:

𝑈𝑖𝑗𝐴 = 𝑈𝑡𝑖𝑙𝑖𝑑𝑎𝑑 𝑒𝑛 𝑙𝑎 𝑎𝑑𝑞𝑢𝑖𝑠𝑖𝑐𝑖𝑜𝑛 𝑑𝑒𝑙 𝑐𝑙𝑖𝑒𝑛𝑡𝑒 𝑖 𝑑𝑒 𝑙𝑎 𝑜𝑟𝑑𝑒𝑛 𝑗 (𝑅𝑒𝑎𝑙)

𝐿𝑖𝑗𝐸 = 𝑇𝑖𝑒𝑚𝑝𝑜 𝑑𝑒 𝑒𝑛𝑡𝑟𝑒𝑔𝑎 𝑒𝑠𝑝𝑒𝑟𝑎𝑑𝑜 𝑝𝑜𝑟 𝑐𝑙𝑖𝑒𝑛𝑡𝑒 𝑖 𝑝𝑜𝑟 𝑙𝑎 𝑜𝑟𝑑𝑒𝑛 𝑗

𝐿𝑖𝑗𝑄

= 𝑇𝑖𝑒𝑚𝑝𝑜 𝑑𝑒 𝑒𝑛𝑡𝑟𝑒𝑔𝑎 𝑝𝑟𝑜𝑝𝑢𝑒𝑠𝑡𝑜 𝑝𝑜𝑟 𝑒𝑙 𝑓𝑎𝑏𝑟𝑖𝑐𝑎𝑛𝑡𝑒 𝑝𝑎𝑟𝑎 𝑙𝑎 𝑜𝑟𝑑𝑒𝑛 𝑖𝑗

𝐿𝑖𝑗𝐴 = 𝑇𝑖𝑒𝑚𝑝𝑜 𝑑𝑒 𝑎𝑑𝑞𝑢𝑖𝑠𝑖𝑐𝑖𝑜𝑛 𝑑𝑒 𝑙𝑎 𝑜𝑟𝑑𝑒𝑛 𝑖𝑗 (𝑅𝑒𝑎𝑙)

𝑈𝑖𝑗𝐸 = 𝑈𝑡𝑖𝑙𝑖𝑑𝑎𝑑 𝑑𝑒 𝑒𝑛𝑡𝑟𝑒𝑔𝑎 𝑒𝑠𝑝𝑒𝑟𝑎𝑑𝑎 𝑑𝑒𝑙 𝑐𝑙𝑖𝑒𝑛𝑡𝑒 𝑖 𝑑𝑒 𝑙𝑎 𝑜𝑟𝑑𝑒𝑛 𝑗

Los parámetros ω1, ω2, η1, η2 reflejan la utilidad ganada cuando las expectativas del cliente son cambiadas. El primer termino de la ecuacion representa la satisfaccion del cliente recibida por el cliente cuando la empresa porporciona un tiempo de entrega menor al tiempo esperado por el cliente. El segundo y el cuarto termino, reflejan la insatisfaccion del cliente si no cumplen con las expectativas de tiempo de entrega y velocidad en la ejecucion. El tercer termino indica el nivel de

satisfaccion si la entrega se realiza antes de la fecha de vencimiento. La utlidad esperada (𝑈𝑖𝑗𝐸) es la

utilidad que obtiene el cliente cuando se le da un tiempo de entrega menor al tiempo esperado. Es de hacerse notar que si los tiempos esperados por el cliente, los indicados por el fabricante y los

reales son iguales (i.e. 𝐿𝑖𝑗𝐸 = 𝐿𝑖𝑗

𝑄 = 𝐿𝑖𝑗𝐴 ), entonces la utilidad de adquisicion es igual a la utilidad

esperada 𝑈𝑖𝑗𝐴 = 𝑈𝑖𝑗

𝐸 , donde la utilidad de adquisicion es la utilidad neta experimientada por el

cliente esta una transaccion. La probabilidad de que un cliente coloque una orden es una funcion de la diferencia entre el tiempo propuesto y el tiempo esperado. Si el fabricante propone un tiempo de entrega mayor, el cliente podria cancelar la orden. Indepenientemente del los estudios de investigacion de Patil y Lawrence, empiricamente se sabe que la amplitud del mercado y los ingresos de una empresa incrementan con la satisfaccion del cliente. Si una empresa tiene reputacion de su alto nivel de servicio y proporciona tiempos de entrega competitivos, entonces tiene mayor probabilidad de que le coloquen una orden (Patil & Lawrence, 2003).

En un contexto de programación de producción, los clientes aprenden sobre la velocidad de entrega, nivel de cumplimiento de las órdenes y sobre la fiabilidad de entrega. Los clientes pueden

44

entonces comparar la calidad de servicio actual con su evaluación acumulativa anterior para formar una nueva "tasa" del valor de los servicios futuros.

Idealmente, en el proceso de fabricación, la capacidad de los recursos que se fija y la planificación, están relacionados con la utilización óptima de los recursos en el marco de los límites de la fluctuación de la demanda (Joshi, 2000). En una cadena de suministro, las decisiones tomadas son generalmente clasificadas como estratégicas, tácticas, u operativas. Las decisiones estratégicas suelen estar vinculadas con la estrategia corporativa de la compañía, y guían el diseño de la cadena de suministro. Por lo general se realizan durante un largo periodo de tiempo (2-5 años o más), y tradicionalmente cuentan con la participación de todos los socios. Las decisiones tácticas se toman sobre una base mensual para cada año, mientras que las decisiones operativas son de corto plazo, y afectan directamente las actividades del día a día. Las decisiones tácticas y operativas son tradicionalmente tomadas independientemente (en un almacén, en la planta de producción en una fábrica, etc.).

La gestión de la cadena de suministro requiere de herramientas de apoyo a las decisiones que respondan a determinar los métodos óptimos (o al menos factibles) de la demanda, la satisfacción del cliente y la oferta de productos. Existen herramientas que han sido desarrolladas con la intención de cumplir con estos requisitos. Estos sistemas tienen como objetivo la optimización de la cadena de suministro, con sujeción a las limitaciones de costos sobre la disponibilidad de recursos, los costos de capacidad, mano de obra y materiales, y recursos de transporte. Ellos ayudan a las empresas prever la demanda con la ayuda de sofisticados modelos y técnicas estadísticas.

Existen sistemas avanzados de planificación y programación como herramientas diseñadas para ayudar a las empresas a crear planes y programas que se basan en las limitaciones del sistema. Estos tienen una alta tasa de retorno al acortar los ciclos de pronóstico, mejorando la visibilidad de los planes de producción y horarios, lo que aumenta la precisión de los compromisos de la fecha de compra, la toma de decisiones en tiempo real frente a las fluctuaciones de oferta / demanda, y la planificación en tiempo real.

Sin embargo estos sistemas no necesariamente producen las mejoras antes mencionadas si las empresas no adoptan nuevos procedimientos y modificar sus procesos de negocio al mismo tiempo. Aunque existen herramientas "inteligentes", se ven obstaculizadas debido a que no se implementan con el enfoque adecuado en las funciones de fabricación , distribución y transporte en la cadena de suministro; este enfoque podría ser aceptable en entornos tradicionales, de movimiento lento, pero los ambientes de negocios de ritmo rápido actuales garantizan un alcance más amplio de los esfuerzos de planificación, dónde la personalización y los tiempo de entrega perfectos son el objetivo por lograr en el negocio (Joshi, 2000).

45

La demanda se caracteriza por su carácter aleatorio, con picos que son a menudo más grandes que la tasa de producción máxima del sistema de fabricación. Por otro lado, el consumidor exige tiempos de entrega, que a menudo no son realizables con el sistema de producción actual.

El medio por el cual la planificación de la capacidad puede absorber fluctuaciones de la demanda es la variación de la tasa de producción mediante el incremento de la capacidad, la introducción de tiempos de inactividad, la dispersión de la producción en el tiempo y la introducción de los inventarios. Si esto no funciona, la administración tiene que negociar con el consumidor para introducir demoras y atrasos, o tiene que rechazar pedidos. Los medios por los que los tiempos de entrega se reducen se basan en los mismos principios.

El primer nivel del proceso de planificación estratégica se refiere al proceso de determinar la estrategia de producción. La estrategia de producción, en pocas palabras, consiste en hacer tres decisiones fundamentales:

1 Las decisiones relacionadas al tipo de flexibilidad para ser ejecutado por el sistema de fabricación con el fin de ser capaz de fabricar todas las partes dentro de la gama de productos. Producto, enrutamiento, de expansión y reconfiguración de las flexibilidades son ejemplos de los tipos de flexibilidad.

2 Las decisiones relacionadas con la política de externalización a implementar, es decir, la identificación de las limitaciones que conducen la política de externalización de algunas actividades manufactureras.

3 Las decisiones relacionadas con las restricciones de la competencia, es decir, las limitaciones de la estrategia competitiva que influye en el diseño del sistema de producción (Bruccoleri, Lo Nigro, & Noto La Diega, 2005).

La división de actividades de coordinación con respecto al tiempo puede ser abordada en largo, mediano y corto plazo (Figura 1-8), etapas en las que las especificaciones de los procesos, producto y producción, pasan de la etapa general de fabricación y diseño, hasta la etapa de asignaciones específicas de trabajo, en los que se incluyen la planeación general del proceso, la planeación de la operación, el programa maestro de producción hasta la programación del pedido y ejecución del trabajo.

46

La Planeación de los Procesos a largo plazo ayuda a especificar las técnicas y los procedimientos necesarios para la producción esperada. Posteriormente la Planeación Estratégica de la capacidad determina el alcance del sistema de producción instalado, es decir la capacidad que podrá procesar la instalación. A partir de este punto la Planeación Agregada de operaciones se apoya de un plan mercadológico de ventas para elaborar una estrategia que equilibre la oferta y la demanda, usando como base inicial la acumulación y reducción de inventarios para adecuar la producción así como la capacidad instalada previamente calculada. Estos se introducen a un Programa Maestro de Producción, el cual especifica las cantidades de insumos requeridos y plazos de tiempo necesarios para cada pedido. Después, la planeación de la capacidad comprueba la disponibilidad y capacidad de las instalaciones de producción y almacén, equipo y mano de obra para procesar los productos y cantidades requeridas, además si los proveedores han asignado

Planeación de Procesos

Planeación Estratégica de la Capacidad

Planeación Agregada de Operaciones y Ventas

Programa Maestro

Planeación de Requerimientos de los Materiales

Programación de Operaciones

Planeación de Ventas

Planeación de Operaciones

Largo Plazo

Mediano Plazo

Corto Plazo

Figura 1-8 Fases de la Planeación de Procesos y Producción (Pinedo, 2009)

47

material suficiente para suministrar los insumos cuando se necesiten. La Planeación de Requerimientos de Materiales toma las especificaciones del programa maestro para los diferentes productos y los descompone es sus partes componente y ensamblajes para crear un plan de compra y disposición de los materiales, para colocar las órdenes de producción de los productos y/o ensambles. La última actividad de la planeación es la programación de órdenes de producción, en el que se asignan las tareas a ejecutar por las máquinas, líneas de producción, centros de trabajo y actividad humana. Aquí la programación de las órdenes de producción tiene como objetivo evitar entregas retrasadas al cliente y aprovechar la disponibilidad de uso de la capacidad de producción.

Actividades de No Manufactura

Ingeniería

Gestión Financiera

Administración de Personal

Gestión de la Cadena de Suministro

Mercadotecnia

Ventas

...

- Planeación de la Demanda - Distribución de Planta - Sistema de Manufactura

- Plan Maestro de Producción - MRP - Planeación de la Capacidad - Compras

-Control de Manufactura - Monitoreo - Proceso - Mantenimiento - Control Documental - Gestión de la Calidad

Actividades Físicas

Largo Plazo:

Estratégico

Mediano Plazo:

Táctico

Corto Plazo:

Operacional

Figura 1-9 Relación de los elementos de Gestión y Control de la Producción (Bongaerts, 1998)

48

En una operación de fabricación, identificar las necesidades de materiales y componentes, en qué cantidades, y cuándo, es extremadamente vital. Un sistema MRP utiliza como entradas la información de la demanda del programa maestro de producción (MPS) con una descripción de los componentes que van en un producto terminado (la lista de materiales - BOM) y el estado del inventario actual.

Figura 1-10 Fuentes de Información de un Sistema MRP (Joshi, 2000)

49

1.5 Planeación del Nivel Operativo.

La planeación de la producción representa el trabajo intelectual para obtener la metodología más conveniente a seguir previa de los fines productivos y al uso de los recursos, para obtener la mejor utilización de tiempo, energía humana y materiales (Jeff Kilbreth, 2007). La planeación de la producción es la función de la empresa que sistematiza por anticipado sus propiedades y métodos en el que se refleja la proyección del nivel de producción requerido para una provisión de producción específica.

El desempeño de un sistema de producción depende no solamente de la calidad en la descomposición de las tareas complejas o en la asignación y ejecución de aquellas más simples, sino también del sistema de planeación que es usado para mantener el control del flujo del trabajo.

La estructura de diseño de planeación es un proceso jerárquico de decisión que consiste de las siguientes funciones:

1.- Determinar cuándo y qué cantidades de producto final deben ser procesadas.

2.- Determinar qué partes van a ser producidas durante qué periodo de tiempo y en qué cantidades.

3.- Determinar cuándo y qué órdenes de trabajo serán procesadas en las diferentes estaciones de trabajo.

Un programa constituye una orden (secuencia) de ejecución de las actividades o trabajos por realizar, empleo de los recursos o instalaciones, que deben ser llevadas a cabo por los centros de trabajo. Un centro de trabajo es el área de negocio donde se encuentran organizados los recursos productivos en los que se realiza el trabajo. Estos centros de trabajo pueden estar organizados de acuerdo con las funciones (configuración de talleres, por tareas o por flujo de productos, línea de montaje, etc.). Las operaciones que se realizan en estas áreas de trabajo que serán ejecutadas por máquinas o personas que están restringidas por restricciones tecnológicas, es decir, para la ejecución de una orden de trabajo o producto, éstos deben cumplir con una secuencia de fabricación independientemente del orden de ejecución de los diferentes pedidos o productos, de manera tal que la programación responda a la mejor utilización de los recursos respetando el orden de ejecución sin traslapar las actividades. La Figura 1-11 muestra el flujo de información que se debe desarrollar para cumplir con las características de la estructura del diseño de la planeación maestra hasta la programación de las operaciones.

50

En un sistema de fabricación de material la idea es dirigir los recursos de una forma eficientemente, tanto como sea posible. La eficiencia generalmente se realiza mediante la optimización de una medida del rendimiento (el criterio de optimización) que está relacionada con los recursos o al material en el sistema de fabricación. Programación analiza el futuro con el fin de tomar las decisiones que se van a ejecutar. La optimización intenta maximizar el rendimiento de un sistema de fabricación. A diferencia de la planificación; la programación no se refiere a las negociaciones con los consumidores, sino más bien con el trabajo que se ha de ejecutar. La programación recibe sus supuestos de trabajo a partir de una planificación MRP o de un Plan Maestro de Producción. La programación es acerca de tomar decisiones relativas a la secuencia en la que las operaciones se ejecutan, y en qué recursos. La función de secuenciación decide sobre la

Planeación Maestra de Producción

Planeación de Requerimientos de Materiales

Programación y Reprogramación

Ejecución del Trabajo

Manejo de Piso

Resultados de la ejecución del Trabajo

Pedidos, Pronósticos

Programación Detallada

Recolección de datos

Condiciones de Operación

Desempeño del programa

Carga de Trabajo

Programa

Órdenes de trabajo, fechas de realización

Cantidades, Fechas de entrega

Restricciones del programa

Capacidad actual

Figura 1-11 Flujo de información en un sistema de planeación de producción (Pinedo, 2009).

51

secuencia en la que el material se procesa en un recurso. Tanto la asignación y secuenciación están relacionados con la toma de decisiones. La liberación de un comando o de elementos del sistema de fabricación es muy importante; el material que se libera tiene que ser procesado en los recursos necesarios. Si existe demasiado material liberado en el sistema de fabricación, este se sobrecarga, con in incremento en los niveles de inventario (Smit, 1992). A medida que llegan las órdenes de trabajo, se incrementa la carga de trabajo en la instalación. Algunos centros de trabajo pueden permanecer ociosos mientras que otros pueden estar sobrecargados. Cuando se ha completado una orden de trabajo, el equipo debe ser reacomodado o ajustado antes de que la orden siguiente pueda procesarse. El reto que se presenta es administrar el flujo de órdenes. Para ejecutar la orden de los pedidos por procesar se pueden consideran prioridades. Las prioridades son la asignación de importancia que reciben los atributos una decisión a fin de dar más valor a algunas y menos a otras. La asignación de la prioridad se asigna, ya sea por conveniencia económica, demanda, necesidades percibidas en el momento o como resultado de un análisis. La secuencia en la que deben procesarse los trabajos pendientes es importante en la determinación de la eficiencia y la eficacia del sistema intermitente. La secuencia determina la magnitud del retraso en los trabajos, los costos incurridos, la puesta en marcha, tiempos muertos para las entregas, etc.

El problema de programación se clasifica en la literatura por ser ya sea de naturaleza dinámica o estática y, o bien determinístico o estocástico. En la práctica un sistema de fabricación es dinámico y estocástico. 'Dinámico ' significa que los trabajos llegan durante un determinado tiempo; 'estocástico' significa que algunos eventos en el sistema tienen un carácter aleatorio. Estos eventos son la demanda de puestos de trabajo, el tiempo de proceso de un trabajo, la falla de las máquinas, y los errores durante la ejecución de una operación que lleven a un re-trabajo, reparación o rechazo del material.

Una vez que un programa ha sido calculado se debe de utilizar para todo el horizonte de tiempo planeado. Pero las pequeñas perturbaciones que el resto de la programación no válida, deben ser tomadas las precauciones necesarias para que la desviación entre la realidad y el horario calendarizado se mantengan al mínimo, o un nuevo horario calcule con la interrupción incluida. La programación se caracteriza por el hecho de que el programador calcula un horario de antemano. Este calendario indica el momento en que un recurso tiene que realizar ciertas operaciones en el material. El cálculo de un programa óptimo en la práctica no es posible, se tarda demasiado tiempo. Incluso el cálculo de los horarios casi óptimos con problemas de horarios razonables, requiere largos tiempos de cálculo. Problemas grandes a menudo permanecen imposibles de resolver.

Muchos de los problemas de programación prácticos pueden ser descritos en términos del Problema de Programación Job- Shop (JSSP). Este problema de programación Job- Shop por lo general se puede describir como la asignación de un conjunto de recursos en el tiempo para llevar a cabo un conjunto de tareas y aplica para sistemas de producción intermitente (Madureira, Ramos, & Silva, 2001). El rendimiento de un sistema Job-Shop (JS) está a menudo vinculado a la consecución de los valores especificados para los niveles de inventario, los tiempos de producción,

52

utilización de la capacidad y fechas de entrega. Del mismo modo, los tiempos de producción cortos y confiables a menudo afectan a la capacidad de utilización. Cada decisión será tomada con la perspectiva de influir en el rendimiento. Para medir el rendimiento, se pueden utilizar diferentes criterios. Los criterios tradicionales son la utilización de recursos, niveles de inventario, los plazos de entrega y la fiabilidad de entrega.

Todas las posibles configuraciones se generan mediante el uso de normas tecnológicas para la agrupación de los diferentes componentes. Una condición necesaria es que cuando los componentes individuales se agrupan para formar un tipo de sistema S, el sistema así generado debe ser capaz de producir todos los tipos de productos que pertenecen al conjunto de los productos del sistema de S. Para ello, se requiere construir una matriz tecnológica de máquinas y productos en los que los elementos indican si un tipo de máquina puede fabricar un determinado tipo de producto. La matriz tecnológica se puede conseguir, de una manera simplificada, haciendo coincidir el plan de proceso del producto a las características técnicas de la máquina, tales como potencia, tamaño, ejes, CNC, etc. La idea del método es reducir la complejidad del análisis de una larga línea mediante el estudio de un conjunto de sistemas más pequeños que tienen el mismo comportamiento, pero, al mismo tiempo, son más fáciles de analizar (Alfieri & Brandimarte).

Esto plantea una serie de restricciones adicionales de asignación de cargas de trabajo a los centros de maquinado cuando se hace la planeación de la producción. Básicamente, la asignación de trabajos está limitada por los diferentes tipos de restricciones que podemos resumir en la siguiente tabla:

Objetivos Organizacionales Fechas de entrega Trabajo en proceso Cambios de Infraestructura Costos Objetivos de Productividad Calidad

Restricciones Físicas Restricción determinada por la maquina Tiempos de Preparación Tiempos de Procesamiento

Restricciones Causales Operaciones Alternativas Maquinas Alternativas Requerimientos de Material Requerimientos de Personal Tiempos de Transferencia entre Operaciones

Restricciones de Disponibilidad Recursos reservados Mantenimiento Cambios de Activo

Restricciones de Preferencia Preferencias de Operación Preferencias de Maquina Preferencias de Secuencia

53

Los centros de trabajo difieren con respecto al conjunto de operaciones a realizar, a la secuencia en la que deben realizarse las operaciones, y con respecto a los tiempos de procesamiento. Como consecuencia de esta variabilidad, un número de diferentes centros de trabajo puede competir por el procesamiento de una orden de trabajo en cualquier momento. El momento en que cada trabajo requiere la capacidad de la estación de trabajo en particular puede ser influenciado en diferentes etapas del progreso del trabajo. A su entrada, el trabajo es aceptado y se especifica su fecha de vencimiento. La aceptación de una orden de trabajo se traduce en la cantidad de trabajo por hacer de ese centro de trabajo. La especificación de la fecha de vencimiento, determina la cantidad de holgura del trabajo. Esta holgura es importante en los requisitos de capacidad y eliminación de tiempos muertos. En este punto, se especifica la asignación para la planificación y control de producción para encontrar una coincidencia entre los requisitos de capacidad y las capacidades disponibles.

Para poder establecer un plan de acción, es importante diferenciar los momentos en que sucede la planeación para su realización física y la representación que ayude a su ejecución. Podemos identificar la Planeación, la Secuenciación y la Programación como elementos complementarios que nos sirven a este propósito (Lim, 2011), y de esta manera determinar con respecto al tiempo la forma en que llevaremos a cabo la ejecución de las actividades o en lo que a este contexto se refiere tareas de producción.

Planeación: Establecer el conjunto de actividades que permiten alcanzar un objetivo determinado.

Secuenciación: Establecer el orden de ejecución de las actividades que cumplan con las restricciones de precedencia definidas en la planeación

Programación (Calendarizar): Determinar el punto exacto en el tiempo en que se ejecutara una actividad determinada de acuerdo a la secuencia prevista.

54

Otro de los aspectos a considerar durante la planeación es el estado actual del sistema, que si bien este estado se comporta de forma dinámica, se pueden establecer rangos de tiempo en el cual se pueda responder a un variación con respecto al sistema de planeación (Land, 2004). Los ajustes necesarios para cerrar la brecha entre lo planeado y lo ejecutado se puede identificar dependiendo el momento en que sucedan.

La siguiente tabla nos muestra algunos ejemplos que puedan ayudar identificar los sucesos (o etapas de la ejecución) y el rango de tiempo que tenemos como respuesta para ajustar el plan según lo requerido.

Entrada de Control Salida de Control

Generación de trabajo y asignación de fecha de vencimiento

Ajustes de capacidad de mediano plazo

Liberación de trabajo Ajustes de capacidad de corto plazo

Prioridad de despacho Ajustes de capacidad en vivo

Sin embargo, no es suficiente la definición de las diferentes restricciones que se deben de considerar durante la planeación. Es necesario considerar también las entidades-contextuales requeridas para la definición de una tarea determinada y situarla en un contexto de fabricación específico en relación con los diferentes elementos del sistema.

La información debe estar de forma estructurada de tal forma que se puedan representar relaciones, dependencias y jerarquías entre otros. Fox y Smith definieron una ontología (Figura 1-12) para la definición de las tareas para que puedan representarse de forma estructurada (Fox & Smith, ISIS A Knowlege Based System for Factory Scheduling, 1984, Vol.1 No. 1)

55

Relación

Tiempo

Sub-estado-

de

Parte-de

Sub- Operación-

de

Causalidad

Operación siguiente

Figura 1-12 Definición Ontológica de una Tarea (Fox & Smith, ISIS A Knowlege Based System for Factory Scheduling, 1984, Vol.1 No. 1)

56

Capítulo 2 Optimización de las Tareas de Producción.

2.1 Optimización

Las empresas de fabricación y sus clientes, tradicionalmente luchan por objetivos diferentes: mientras que una empresa a menudo tiene la intención de lograr una alta utilización de la capacidad, los clientes en su mayoría exigen plazos de entrega cortos y fiables. Por lo tanto, junto con el aumento del poder otorgado a los clientes por los mercados globalizados y multi-proveedor, en la actualidad la mayoría de las empresas se centran en un logro orientado al logro de estos objetivos en conflicto. Aquí, dependencias funcionales apoyan el posicionamiento dentro del conflicto de objetivos de acuerdo con las prioridades de la empresa (Scholz-Reiter, Toonen, & Lappe, Impact of Market Dynamics on Performance and Internal Dynamics of Job-Shop Systems, Issue 4, Volume 5, 2011)

Dentro de la investigación de operaciones, las técnicas de optimización se enfocan en determinar la política a seguir para maximizar o minimizar la respuesta del sistema. Dicha respuesta, en general, es un indicador del tipo “Costo”, “Producción”, “Ganancia”, etc., la cual representa una función de la política seleccionada la cual se denomina como el objetivo, y la función asociada se llama función objetivo. Una política es un determinado conjunto de valores que toman los factores que podemos controlar a fin de regular el rendimiento del sistema. Es decir, son las variables independientes de la función que regula la respuesta del sistema. Cada vez que abordamos el problema de optimización, primero tenemos que definir el tipo de las posibles soluciones, además, tenemos que encontrar la raíz de una función matemática que describa el comportamiento de las(s) variable(s) que pretendemos optimizar; es decir, especificar el espacio del problema a optimizar.

En general, la cuestión en los problemas de optimización radica en que estamos limitados en nuestro poder de decisión. Estas limitaciones, llamadas “restricciones”, reducen la cantidad de alternativas posibles, definiendo un espacio acotado de soluciones factibles (complicando la resolución del problema). Y es que, en optimización, cualquier valor que satisfaga las restricciones, es una solución factible, es decir, el reflejo de una política que es posible de implementar en el sistema. Dentro de las soluciones factibles, pueden existir una o más soluciones óptimas, es decir, aquellas que, además de cumplir con todas las restricciones, maximizan o minimizan el valor de la función objetivo.

El espacio de búsqueda del problema de optimización, es el conjunto que contiene todos los elementos que representan su solución. En dominios discretos, cuando existen muchas variables o bien muchos valores posibles a asignarles, se produce explosión combinatoria; es decir, un crecimiento exponencial del tamaño del espacio de búsqueda en relación a las variables y sus

57

dominios. Cuando los espacios de búsqueda son muy extensos, los métodos determinísticos son incapaces de encontrar una solución en un tiempo aceptable, por lo que se opta por utilizar heurísticas. De acuerdo con S. Jain (Jain & Meeran, 1998) los problemas de programación del tipo Job Shop, de tamaño n*m, tiene (n!)m soluciones posibles, por lo que un problema de tipo 20 x 10 (Órdenes, Maquinas) tiene a lo más 7.2651x10183 soluciones, denotando de esta manera, que el espacio de búsqueda para encontrar una solución óptima, es demasiado extenso como para tratarse, en gran medida, por medios determinísticos. Es decir, requieren de tal cantidad de tiempo y espacio de almacenamiento que desde una perspectiva practica permanecen sin solución (Monroy Olivares, 2002). La complejidad de este tipo de problemas, representa una característica que es objeto de estudio por que casi siempre existe una forma difícil de resolver un problema, sin embargo, no debe considerarse difícil, solo porque requiere un algoritmo complejo, sino que debe declararse difícil solo cuando no tenga una solución sencilla (Brookshear, 1999). Esto implica que las soluciones óptimas para los problemas de programación, puede no ser un estado absoluto al cual llegar, sino que más bien deben de ser negociados en función de los recursos de almacenamiento y de tiempo necesarios.

Dentro del conjunto de posibles soluciones validas (aquellas que cumplen con las restricciones del problema), se encuentras los valores que maximizan o minimizan la función en estudio (función objetivo). Como analogía, se presenta en la Figura 2-1 una función de ejemplo bidimensional que, en las que se presentan los diferentes casos que puede presentar una función dentro del espacio de su respectivo espacio de soluciones factibles. Hemos de notar que las funciones pueden presentar máximos y mínimos locales, así como máximos y mínimos globales. La mayoría de las técnicas heurísticas consideran estos casos para ampliar el rango de búsqueda hacia regiones más prometedoras sin que se queden estancados en un óptimo local.

Figura 2-1 Visualización de Óptimos Locales y Óptimos Globales (Weise, 2009)

58

De acuerdo con Albert T. Jones (Jones, Reeker, & Deshmukh, 2002) la optimización de las medidas de desempeño depende fundamentalmente de la capacidad de las aplicaciones de software asociadas, para compartir los objetos de información complejos. Ya que estos son lo que nos permiten entender las interacciones entre los elementos del sistema y poder definir las variables que verdaderamente pueden mejorar el rendimiento del mismo. Es decir, la interpretación de la información mediante "objetos abstractos" facilita el proceso de toma de decisiones que están alineados a las medidas de desempeño del sistema. Los sistemas de información diseñados para lograr una mejora en la toma decisiones (Figura 2-2) y que optimizan los valores de respuesta del sistema (Índices de desempeño), deben estar adaptados a su contexto de uso, ya que la finalidad determina el diseño.

Figura 2-2 Ajuste de los valores objetivo que varían con los resultados de optimización (Weise, 2009)

59

2.2 Análisis del Modelo de Programación Job-Shop

2.2.1 Descripción Matemática.

La programación se refiere a la asignación de los recursos a las actividades (tareas) con el objetivo de optimizar una o más medidas de desempeño. Dependiendo de la situación, los recursos y las actividades pueden adoptar muchas formas diferentes. Los recursos pueden ser máquinas en una planta de ensamblaje, CPU, memoria y E / S de los dispositivos de un sistema informático, pistas de aterrizaje en un aeropuerto, los mecánicos en un taller de reparación de automóviles, etc. Las actividades pueden ser diversas operaciones en un proceso de fabricación, la ejecución de una computadora programa, los aterrizajes y despegues en un aeropuerto, reparaciones de automóviles en un taller de reparación de automóviles, y así sucesivamente. También hay muchas medidas de rendimiento diferentes para optimizar. Un objetivo en un ambiente productivo puede ser la minimización del tiempo calendario programado (makespan), mientras que otro objetivo puede ser la minimización del número de tiempos muertos de los recursos.

La programación está definida como el proceso de “optimizar” la asignación de recursos previos a su utilización. La asignación de recursos específica para todos los trabajos cuándo y en qué recurso de transformación deberá ejecutarse. El proceso de la asignación de recursos está sujeto a restricciones, mismas que en algunos casos puede generar secuencias y/o programas no factibles. Estas restricciones pueden expresarse como la cantidad limitada de máquinas, su disponibilidad, capacidad de proceso, y las relaciones de precedencia entre operaciones para la realización de algún producto o pedido.

Para un mejor entendimiento del problema, es necesario definir algún modelo matemático y tal modelo depende directamente del sistema de manufactura para el cual se plantea el problema. En este trabajo se define la programación general de procesos para m máquinas y j trabajos u órdenes con secuencia independiente para cada producto, este modelo es conocido como Programación Job-Shop (PJS).

El modelo se basa en algunas consideraciones restrictivas para su desarrollo:

Existen al menos una máquina que realiza algún tipo de proceso especifico, es decir, pueden existir procesos paralelos.

Cada máquina realiza una alguna operación a la vez.

Los productos presentan una secuencia de ejecución.

Un producto no se pasa por la misma operación dos o más veces.

60

No hay restricciones de precedencia entre operaciones de diferentes productos.

Los tiempos de proceso de operaciones sucesivas de mismo producto no se traslapan entre sí.

Un producto debe esperar la disponibilidad de la máquina de la operación siguiente.

Los tiempos y capacidades se conocen por adelantado y son inmutables o poco variables.

Las restricciones relacionadas en una aplicación específica, pueden ser mucho más complejas; por practicidad solo algunas consideraciones del modelo básico son suficientes para el análisis.

Suponiendo que el sistema de manufactura consiste de M estaciones de trabajo mk (maquinas), para k, con un intervalo de 0 a M-1. Sea M el conjunto de estaciones de trabajo. También existen A recursos auxiliares ra en el sistema, con a en el intervalo de 0 hasta A-1. De ser necesario, estos recursos auxiliares pueden ser distribuidos a través de las estaciones de trabajo. Considere el conjunto de órdenes J, con N órdenes i, para i en el intervalo de 0 hasta N-1. Cada orden tiene:

Una fecha de realización Ri, que denota el tiempo en que la orden entra al sistema.

Una fecha de entrega Di, que denota el tiempo en que la orden debe de estar lista.

Una prioridad wi, que denota la importancia de una orden.

Cada orden i tiene un número de operaciones (i,j), para j en el intervalo de 0 hasta Ni -1. Cada operación (i,j) puede ser ejecutada en un conjunto de estaciones de trabajo

Hi,j = {hi,j M | hi,j puede ejecutar una operación (i,j) },

para el intervalo de 0 hasta Hi,j -1. Si la operación (i,j) puede ejecutar en la estación de trabajo k (si mk Hi,j), entonces tiene una duración di,j,k . Dada esta información, el proceso de la asignación de recursos selecciona la estación de trabajo hi,j que ejecutara la operación (i,j) y en qué tiempo bi,j empezara. Es decir, hi,j y bi,j son las variables de decisión. ci,j es el tiempo completo de la operación (i,j):

ci,j = bi,j + di,j,h

donde di,j,h representa ji,hj,i,d . Ci representa el tiempo en que se completa la operación.

1, iNicCi

61

La asignación de recursos está sujeta a la restricción de la capacidad y las relaciones de precedencia. La restricción de la capacidad señala que una maquina solo puede ejecutar una operación a la vez. Bongaerts (Bongaerts, 1998) basa su descripción en una formulación discreta en el tiempo t:

ktktjiij M ,,,, , (t = 1, 2,…, Thor; k = 0, 1, 2,…, M-1)

donde Mtk es la capacidad de la estación de trabajo mk con tiempo t, y i,j,t,k =1 si la operación (i,j)

ocupa la estación de trabajo mk en el tiempo t, de lo contrario i,j,t,k =0. Thor es el horizonte de tiempo (tiempo de utilización de la maquina).

Las restricciones de precedencia pueden ser planteadas con base en diferentes representaciones, una de ellas es la gráfica de precedencias la cual puede ser desarrollada a partir del siguiente conjunto de desigualdades:

ci,j +TRi,j,s ≤ bi,s , (i = 0,1,…,N-1; j = 0,1,2,…,Ni-2; s Si,j)

donde (i,s) es la operación sucesora de (i,j), Si,j es el conjunto de operaciones sucesoras de (i,j) y TRi,j,s es el tiempo de transporte de (i,j) a (i,s).

Por convención y sin pérdida de generalidad (i,0) es una operación sin predecesores y (i,Ni-1) es una operación sin sucesores. A partir de esta consideración, un tipo de restricción referente a la fecha de emisión de una orden seria:

Ri ≤ bi,0 , (i = 0,1,…,N-1).

Sea Fj la representación de la hora de finalización de la operación j. Un programa puede ser representado por un vector que represente la finalización sucesiva de las operaciones (F1,..,Fm, ..., Fn+1). El modelo conceptual de problema JS se puede describir de la siguiente manera con la función objetivo:

Minimizar Fn+1(Cmax)

Esta función objetivo minimiza el tiempo de final de la operación n + 1 (la última operación), y por lo tanto minimiza el tiempo total del programa (makespan).

62

Como se podrá notar esta representación no cubre todos los casos posibles, ya que muchas veces no pueden ser modelados todos los detalles. Los criterios de optimización de la programación son muy variados, ya que en algunos casos depende del planteamiento o formulación del problema, y se pueden aplicar conforma el sistema lo requiera o convenga. Estos criterios pueden ser:

Longitud del programa: representa el tiempo total en el que todas las operaciones son terminadas.

Flujo de tiempo promedio: representa promedio en que las órdenes son terminadas, es decir, la suma de los tiempos de término de cada orden entre en número de órdenes.

Flujo de tiempo ponderado promedio: En este caso las órdenes tienen una prioridad, por lo que el arreglo de tiempo es diferente, y en base a los resultados, se obtiene el promedio como en el caso anterior.

Mínimo retraso: Representa el tiempo en que la última operación es terminada con respecto a la fecha de entrega de la orden correspondiente.

Tardanza promedio: Representa la suma de las diferencias entre las últimas operaciones de cada pedido y sus respectivos tiempos de entrega entre el número de órdenes ejecutadas.

Tardanza ponderada promedio: Como en el caso anterior, pero las órdenes tiene alguna prioridad de ejecución.

Una forma intuitiva de visualizar un programa es por medio de una gráfica de Gantt. Esta grafica muestra las unidades de tiempo en la abscisa y un arreglo de máquinas o recursos en la ordenada. Cada rectángulo en la gráfica representa una operación de una orden que es asignada en cierta posición de tiempo en alguna maquina o recurso.

Consideremos un ejemplo para tres máquinas y tres órdenes, es decir, |M| = 3 y |J| = 3 (M = {m1, m2, m3}, J = {A, B, C}), en el que cada máquina ejecuta un proceso diferente a la vez:

Trabajo Proceso (m1) Proceso (m2) Proceso (m3)

A (1,3) (2,3) (3,2)

B (1,2) (3,2) (2,5)

C (3,3) (1,4) (2,2)

Esta tabla muestra las relaciones de las órdenes a ejecutar en la forma (secuencia, tiempo), es decir, el conjunto de datos está formado a partir del par ordenado de {J,M}, en el que tiempo y secuencia (orden de ejecución) está dado para cada {hi,j}. A partir de esta tabla se puede construir la gráfica de Gantt:

63

Este arreglo que considera la ejecución de los trabajos conforme van llegando, refleja una de las posibles soluciones para la tabla dada anteriormente. Considerando esta solución, los resultados en unidades de tiempo son:

Longitud del programa: 18 Termino de A: 8 Termino de B: 16 Termino de C: 18 Tiempo muerto: 27 Sin embargo un arreglo de este mismo escenario nos proporciona valores diferentes en el que podemos disminuir el tiempo del programa general y por lo tanto el tiempo muerto de las máquinas. Como podemos ver en el siguiente ejemplo, bajo un escenario de programación, se cambia el orden de ejecución de la maquina 2 para que fuese {B1, A2, C3} en lugar de {A2, B1, C3}.

64

Longitud del programa: 15 Termino de A: 14 Termino de B: 13 Termino de C: 15 Tiempo muerto: 18

2.2.2 Métodos de Solución

En las últimas décadas se han propuesto varias técnicas de optimización para el problema de programación JS que van desde reglas simples y rápidas de secuenciación a algoritmos más sofisticados. Sin embargo, con el rápido aumento de la velocidad de la informática y la creciente necesidad de eficiencia en la programación, se vuelve cada vez más importante para estudiar las formas de obtención de mejores programas en función del costo computacional. Existen diversas técnicas de solución que pueden ser clasificadas en métodos exactos y métodos aproximados. Al examinar los métodos de formulación matemática, el formato de programación entera mixta fue una de las formas más comunes de formulaciones matemáticas. Sin embargo, estos métodos de programación eran prácticamente inviables y computacionalmente difíciles. La investigación sobre las técnicas exactas de solución para el JS también se ha formado en gran medida de técnicas de ramificación y acotamiento (Branch and Bound). Aunque la literatura proporciona información acerca de considerables mejoras realizadas por esta área de investigación, los problemas de gran tamaño todavía no pueden ser resueltos por métodos exactos. Los métodos exactos están garantizados para encontrar la solución óptima, pero por lo general se vuelven poco prácticas cuando se enfrentan a problemas de cualquier tamaño significativo o grandes conjuntos de restricciones.

65

El elevado tiempo computacional y la complejidad involucrada con los procedimientos exactos llevaron la atención de varios investigadores para el desarrollo de métodos aproximados para la solución de los problemas de gran tamaño. Los procedimientos con soluciones aproximadas se adaptan mejor a los problemas de gran tamaño para obtener una solución casi óptima con un tiempo de cálculo razonable. Los procedimientos aproximados incluyen los métodos de búsqueda local, meta-heurísticas, reglas de secuenciación de prioridad, la inteligencia artificial y etc. La literatura muestra una gran cantidad de trabajo realizado en esta área para el problema de PJS.

En la Figura 2-3 Enfoques de Solución al Problema de Programación Job-Shop se muestran las principales líneas de investigación para el problema de JJS, tanto para métodos exactos, como para los métodos aproximados.

Figura 2-3 Enfoques de Solución al Problema de Programación Job-Shop (Jain & Meeran, 1998)

66

Muchos métodos de solución mediante búsqueda, basan su solución a partir de un árbol de decisión generados mediante las relaciones de precedencia en el plan de actividades. Como se muestra en la Figura 2-4, la raíz del árbol se corresponde con la primera tarea. El segundo nivel del árbol es el conjunto de tareas que se pueden programar una vez que la primera tarea ha sido programada, y así sucesivamente. Así, el árbol final representa un conjunto de precedencias factibles de secuencias de tareas. Cualquiera de las secuencias desde la raíz hasta la última tarea (hojas) puede pasar a un generador de horario. Alternativamente, la secuencia de las tareas se pueden programar directamente si el algoritmo de generación de secuencias (arboles) considera las limitaciones de recursos. La búsqueda consiste en recorrer el árbol hasta que se encuentre la mejor ruta de raíz hasta la tarea final.

Figura 2-4 Expansión del árbol de precedencia de secuencias factibles a evaluar

Es fácil ver cómo el árbol crece rápidamente con el número de actividades, en función de las relaciones de precedencia y cada nueva tarea puede agregar muchas ramas al árbol. Cuando las tareas se modelan con múltiples modos de ejecución, cada modo de ejecución añade otra capa de opciones combinatorias para el planificador. Los métodos de solución heurística están enfocados a reducir el tamaño del árbol y por lo tanto el espacio de búsqueda.

Mientras que los métodos de solución exactos están garantizados para encontrar la solución óptima (si es que existe), los métodos heurísticos a veces encuentran soluciones óptimas, pero más a menudo se encuentran soluciones consideradas como "buenas". Los métodos heurísticos suelen requerir mucho menos tiempo y / o espacio que los métodos exactos. En la programación, los métodos Heurísticos se interpretan a menudo como reglas de programación o reglas de despacho. La definición de estas normas son a menudo complejos, y la mayoría se adapta para un tipo específico de problema con un conjunto muy específico de restricciones y supuestos. La heurística puede ser determinista - que terminan con el mismo resultado cada vez - o pueden ser estocástico - cada vez que se ejecutan pueden producir un resultado diferente.

67

Los algoritmos genéticos representan un tipo de solución heurística de búsqueda estocástica que se adapta bien al problema de la programación debido al tamaño del espacio de búsqueda. En particular, se presenta una viabilidad de la representación de problema. Existen operadores problema específico que con frecuencia mejoran el rendimiento de los algoritmos genéticos, pero también lo hace la definición de una representación específica del problema. La clave es definir una representación que sea lo suficientemente general como para dar cabida a todas las instancias del problema que se quiere resolver, pero lo suficientemente específico para que proporcione "buenas" soluciones (Bartschi Wall, 1996).

68

2.3 Algoritmos Genéticos

2.3.1 Descripción General

Los Algoritmos Genéticos (AGs) son una familia de modelos computacionales inspirados en la evolución. Estos algoritmos codifican una posible solución a un problema específico en un cromosoma simple como estructura de datos y se aplican los operadores de recombinación a estas estructuras a fin de preservar la información crítica. Los algoritmos genéticos son a menudo vistos como optimizadores de funciones y la gama de problemas a los que se han aplicado los algoritmos genéticos es bastante amplia.

Los algoritmos genéticos se basan en el proceso genético de los organismos biológicos. Durante muchas generaciones, las poblaciones naturales evolucionan de acuerdo con los principios de la selección natural, es decir, la supervivencia del más apto. Al imitar este proceso, los algoritmos genéticos son capaces de desarrollar soluciones a los problemas del mundo real si han sido codificados adecuadamente.

Antes de que un algoritmo genético se pueda ejecutar, una codificación adecuada (o representación) para el problema deben adaptarse. También se requiere una función de aptitud, que asigna una cifra de aptitud para cada solución codificada. Se supone que una posible solución a un problema puede ser representado como un conjunto de parámetros. Estos parámetros (conocidos como genes) se unen entre sí para formar una cadena de valores (cromosoma).

En la terminología genética, el conjunto de parámetros representados por un cromosoma particular se conoce como un individuo. La aptitud de un individuo depende de su cromosoma y es evaluada por la función de aptitud. Los individuos, durante la fase reproductiva, se seleccionan de la población y son recombinados, para producir descendencia, que comprenden la siguiente generación. Los padres son seleccionados al azar de la población que utiliza un esquema que favorece a los individuos más aptos. Teniendo seleccionados los dos padres, sus cromosomas se recombinan, usando mecanismos de cruce y mutación. La mutación se aplica generalmente a algunos individuos, para garantizar la diversidad de la población.

Los AGs se pueden aplicar a un problema de la siguiente manera:

a) El espacio de búsqueda de todas las posibles soluciones del problema se proyecta sobre un conjunto de cadenas finitas, en general sobre un pequeño alfabeto finito. Es decir, se elige una codificación, tal que cada punto en el espacio de búsqueda se representa exactamente una solución especificada en una cadena llamada Cromosoma. El AG trabajara con estas

69

representaciones de soluciones en lugar de la solución en sí mismas (Figura 2-5). A este conjunto de soluciones se le conoce como Población.

Figura 2-5 Codificación del Espacio de Búsqueda en una Cadena de Caracteres

b) Se selecciona una población inicial de soluciones. Esta primera generación se selecciona generalmente en al azar. A diferencia de las técnicas de optimización estándar, una AG realiza una búsqueda en paralelo sobre un conjunto de puntos en el espacio de búsqueda, disminuyendo así la probabilidad de quedar atrapado en un óptimo local.

c) La aptitud se calcula para cada uno de los individuos de la población, es decir, lo que refleja la forma en que cada individuo y en comparación con los otros, una mejora con respecto a la función objetivo (más cerca del óptimo). Este valor expresa la calidad observada de la solución que cada individuo representa.

d) Se seleccionan los individuos más aptos de acuerdo a un proceso de selección, con una probabilidad cada vez mayor según su aptitud.

e) Los Cromosomas seleccionados forman el conjunto de los "padres" que se cruzaran (por parejas) para producir su cromosomas diferentes pero con parte de la cadena de los "padres". Un cruce consiste en la unión de los bits (o cadena de caracteres) no correspondientes de cada uno de los padres con el fin de constituir nuevos "individuos".

70

f) Mediante un proceso de selección, la población es sesgada de los individuos menos aptos. Estos son reemplazados por la "hijos" obtenidas en el paso anterior. A diferencia de las técnicas de optimización estándar, el AG sigue sustituyendo la parte débil de una población con nuevos individuos, en lugar de sustituir la mejor solución actual con un nuevo candidato.

g) Una pequeña parte de la población resultante se muta con pequeños cambios aleatorios y ocurren para unos pocos individuos seleccionados al azar.

h) En este punto, una nueva población se ha constituido y el proceso de optimización comenzando en el punto c y puede ser repetida cuantas veces se considere necesario. Los AGs son por lo tanto, algoritmos iterativos.

La Figura 2-6 nos muestra de forma gráfica el paso de una población en un tiempo t a una generación de población en t+1. Se puede observar que para formar la población de la siguiente generación se tienen que seleccionar los mejores cromosomas, el resultado de la cruza de algunos individuos de la población y una generación aleatoria que está determinada por la mutación de algunos de los miembros.

Figura 2-6 Proceso de Transición entre Generaciones Sucesivas (Gonçalves, Mendes, & Resende, 2002).

71

El algoritmo básico estándar de implementación un AG se muestra a continuación (Gonçalves, Mendes, & Resende, 2002) :

Algoritmo Genético

{

Generar población inicial Pt

Evaluar población Pt

Mientras criterio de paro no satisfecho Repetir

{

Seleccionar elementos de Pt y ponerlos en Pt+l

Cruzar elementos de Pt y ponerlos en Pt+l

Mutar elementos de Pt y ponerlos en Pt+l

Evaluar nueva población Pt+l

Pt = Pt+l

}

}

Si el Algoritmo Genético ha sido correctamente implementado, la población evolucionara a lo largo de las generaciones sucesivas de tal manera que la adaptación se extienda a todos los individuos de la población, así como la adaptación del mejor individuo se irá incrementando hacia el óptimo global. El concepto de convergencia está relacionado con la progresión hacia la uniformidad: un gen ha convergido cuando al menos el 95 % de los individuos de la población comparten el mismo valor para dicho gen. Se dice que la población converge cuando todos los genes han convergido.

Los dos operadores más importantes en los AGs son el Cruce y la Mutación. El operador de Mutación se aplica a cada hijo de manera individual, y consiste en la alteración aleatoria (normalmente con probabilidad pequeña) de cada gen componente del cromosoma. Si bien puede en principio pensarse que el operador de cruce es más importante que el operador de mutación, ya que proporciona una exploración rápida del espacio de búsqueda, este último asegura que ningún punto del espacio de búsqueda tenga probabilidad cero de ser examinado, y es de capital importancia para asegurar la convergencia de los Algoritmos Genéticos.

El operador de Cruce, considera dos padres seleccionados y corta una cadena de cromosomas en una posición escogida al azar, para producir dos sub-cadenas iníciales y dos sub-cadenas finales. Después se intercambian las sub-cadenas de los diferentes padres produciéndose dos nuevos

72

cromosomas completos. Ambos descendientes heredan genes de cada uno de los padres (Figura 2-7).

Figura 2-7 Representación de los operadores de Mutación y Cruce (Gonçalves, Mendes, & Resende, 2002)

Los parámetros principales de un AG son:

Tamaño de población

Porcentaje de cruza

Porcentaje de mutación

Estos parámetros normalmente interactúan entre sí de forma no lineal, por lo que no pueden optimizarse de manera independiente. La forma óptima (o al menos razonablemente adecuada) de definir estos parámetros de un AG ha sido motivo de investigación desde sus inicios, y no existe hasta la fecha una solución satisfactoria a este problema. Sin embargo, estos pueden irse adaptando dependiendo de las características del problema, es decir, tamaño de población, numero de generaciones, tipo de representación, longitud de los genes etc., y que generalmente se encuentran a base de prueba y error.

73

El AG suele considerarse una técnica que es buena para encontrar rápidamente regiones prometedoras del espacio de búsqueda, pero para realizar verdaderamente optimización se ha demostrado que en muchas instancias los híbridos de un AG con otra técnica (por ejemplo, escalando la colina) parecen dar mejores resultados. Aunque los AGs pueden encontrar los óptimos globales de problemas de alta complejidad, la realidad es que muchas veces el costo computacional que requieren es prohibitivamente alto, y se prefieren para encontrar una solución razonable, ya que eso suelen poder hacerlo en un tiempo relativamente menor.

Como heurística, el AG no resulta muy adecuado para problemas críticos en los cuales el no encontrar una solución en un período de tiempo muy corto puede causar fallas irreversibles al sistema. Asimismo, no es apropiado para aplicaciones en tiempo real en las que la respuesta debe proporcionarse de manera inmediata conforme se interactúa con el ambiente.

Contrario a lo que se cree, los AGs no son optimizadores, sino que más bien son “satisfactores de metas” que pueden modificarse para actuar como optimizadores de funciones. Si bien en la práctica han tenido un gran éxito como optimizadores, la realidad es que los AGs suelen tener dificultades para encontrar óptimos globales en ciertas clases de problemas sumamente susceptibles a la representación o aquellos en los que la evaluación de la función de aptitud resulta sumamente costoso (Moujahid, Inza, & Larrañaga).

2.3.2 Uso de Algoritmos Genéticos en Problemas de Secuenciación.

Desde sus inicios, los AGs se han utilizado ampliamente en aplicaciones de planificación de fabricación. Sin embargo, la mayoría de las obras se ocupan de la optimización del problema de programación en entornos estáticos, mientras que muchos de los problemas del mundo real son dinámicos, con frecuencia sujetos a varios tipos de acontecimientos y perturbaciones aleatorias, como averías de maquinaria, cancelación puestos de trabajo, cambios en fechas de vencimiento y cambios en tiempo de procesamiento entre otros. Debido a su naturaleza dinámica, los problemas de programación reales tienen una complejidad adicional en relación con los estáticos. En muchas situaciones estos problemas, incluso para situaciones aparentemente simples, son difíciles de resolver, es decir, el tiempo requerido para calcular una óptima solución aumenta exponencialmente con el tamaño del problema. Los AGs se han utilizado ampliamente en el contexto del problema de programación Job-Shop (JSSP). Si se conocen todos los trabajos antes de que comience el procesamiento de la JSSP se llama estática, mientras que si los tiempos de liberación de trabajo no son fijos en un solo punto en el tiempo, es decir, los trabajos llegan al sistema en diferentes momentos, el problema se le considera dinámico. Los problemas de programación también se pueden clasificar como deterministas, cuando los tiempos de procesamiento y todos los demás parámetros son conocidos y fijos, y el estocástico, cuando

74

algunos o todos los parámetros son inciertos y se requiere de un cálculo de aproximación o representativo (Figura 2-8).

Figura 2-8 Sistema de Secuenciación Dinámica basado en Algoritmos Genéticos (Madureira, Ramos, & Silva, 2001)

La esencia del problema de planificación Job-Shop es establecer una permutación de operaciones en cada trabajo sujeto a restricciones de precedencia para minimizar el tiempo de producción. Con una representación adecuada, una solución se puede obtener fácilmente (Gen & Cheng, 1997).

Como sabemos, hay dos tipos de relaciones de orden en el problema JSS: (1) la secuencia de operación en cada máquina y (2) las limitaciones de precedencia entre las operaciones para un trabajo determinado. En consecuencia, varios procedimientos han sido utilizados para manejar relaciones de orden. Una es que la información con respecto a la secuencia de operación y a las limitaciones de precedencia se conserve en la codificación de forma simultánea. En tal caso, todos los métodos de cruce para codificaciones de permutación literales no son directamente aplicables. Un cromosoma puede ser factible en el sentido de que algunas restricciones de precedencia se violen, o sean ilegales. Esto significa que algunos símbolos se repiten más de una vez, mientras que otros símbolos se pierden. En otros casos, significa que algunos símbolos pueden aparecer más de lo necesario, otros menos de lo necesario. La Representación Basada en Operaciones es el único tipo que retiene información sobre la secuencia y la precedencia de operación limitaciones en un cromosoma.

La Representación Basada en Operaciones codifica un horario como una secuencia de operaciones, y cada gen significa una sola operación. Hay dos maneras posibles para nombrar cada operación. Una forma natural es la de utilizar los números naturales para nombrar cada operación;

75

desafortunadamente, debido a la existencia de las restricciones de precedencia, no todas las permutaciones de números naturales define planificaciones factibles. En (Gen & Cheng, 1997) nombran todas las operaciones para un trabajo con el mismo símbolo y luego interpretarlos de acuerdo con el orden de aparición en la secuencia de un cromosoma determinado. Para un problema de m-máquinas y n-trabajos, un cromosoma tiene n x m genes. Cada trabajo aparece en el cromosoma exactamente m veces y cada repetición (cada gen) indica una ejecución concreta de un trabajo, pero se refiere a una operación que depende del contexto. Es fácil ver que cualquier permutación del cromosoma siempre produce un horario factible.

Considerando un problema de tres máquinas y tres trabajos dada en la siguiente tabla. Supongamos que un cromosoma se da como [3 2 2 1 1 2 3 1 3], donde 1 significa el trabajo j1, 2 para el trabajo j2, y 3 para el trabajo j3. Debido a que cada trabajo tiene tres operaciones, se refleja exactamente tres veces en el cromosoma. Por ejemplo, hay tres 2 en el cromosoma, lo que significa que existen tres operaciones de j2.

El primer 2 corresponde a la primera operación de trabajo j2 que será procesada en la máquina 1, el segundo 2 corresponde a la segunda operación de trabajo j2 que será procesada en la máquina 3, y el tercer 2 corresponde a la tercera operación de trabajo j2 el cual será procesado en la máquina 2; podemos ver que todas las operaciones de trabajo j2 se nombran con el mismo símbolo 2 y luego interpretados de acuerdo a sus orden de ocurrencia en la secuencia de este cromosoma. De acuerdo con estas relaciones, se puede obtener una lista de las máquina correspondientes, como [3 2 2 1 1 2 3 1 3], que se muestra en la Figura 2-9.

Tiempos de Procesamiento Secuencia de Máquinas

Operaciones Operaciones

Trabajos 1 2 3 Trabajos 1 2 3

j1=A 3 3 2 j1=A m1 m2 m3

j2=B 2 5 3 j2=B m1 m3 m2

j3=C 4 2 3 j3=C m2 m3 m1

Figura 2-9 Cromosomas de Trabajos y sus Asignaciones a Máquinas.

76

La característica importante de las claves aleatorias como población inicial es que toda la descendencia formada por cruce son soluciones factibles. Esto se logra moviendo gran parte de la cuestión de la viabilidad en la evaluación de la función objetivo. Si cualquier vector clave aleatorio se puede interpretar como una solución factible, entonces cualquier vector de cruce también es factible. A través de la dinámica del algoritmo genético, el sistema aprende la relación entre los vectores y soluciones con buenos valores de la función objetivo. En general, el operador de cruce es considerado como un operador genético principal, y el rendimiento de los algoritmos genéticos depende en gran medida del rendimiento del operador de cruce utilizado.

77

Capítulo 3 Modelado del Sistema de Secuenciación de Órdenes de Producción.

3.1 Diseño de un Sistema de Secuenciación

La noción de proporcionar el nivel adecuado de información también está acoplado al tipo de decisiones que van a ser hechas con esa información. Como tal, el impacto del mismo objeto de información será diferente para los diferentes tomadores de decisiones. En el contexto de fabricación, la definición de medidas de rendimiento para el sistema determina el tipo de decisiones que se deben hacer. La medida de rendimiento que refleja el estatus del sistema de producción para el modelo seleccionado es el menor tiempo de procesamiento de producción (makespan).

Para iniciar la construcción de un Sistema de Secuenciación, es necesario establecer/adoptar una metodología o secuencia lógica de pasos que nos permita ir desde los fundamentos básicos, pasando por los bloques de construcción hasta la realización y pruebas de dicho sistema.

A grandes rasgos podríamos definir las siguientes etapas para la elaboración de sistema de secuenciación:

Etapa Necesidad

Definición de Requerimientos

Modelos de Referencia: -Estructura de la necesidad -Modelo de Datos

Diseño -Arquitectura

Configuración -Desarrollo de Componentes

Simulación y Pruebas

-Base de Datos de Prueba

78

Como enfoque principal para el desarrollo de este trabajo, nos ocuparemos de los pasos “Definición de Requerimientos” y el “Diseño de la solución”, que servirán como base de índole genérica para el desarrollo de aplicativos que tengan como propósito, el utilizar el modelo de Programación/Secuenciación Job-Shop en un contexto para los sistemas de producción industrial.

Un secuenciador para una aplicación industrial no puede solucionar ningún problema sin un marco contextual de uso. Un planificador reconfigurable no puede resolver todos los problemas de programación. Siempre habrá algún tipo de restricción que no se pueda representar en el marco de interpretación del problema. El objetivo de un planificador reconfigurable es acercarse al ideal, en el manejo de la mayor cantidad de tipos diferentes de problemas, de conceptos de programación y debe ser capaz de ser fácilmente ampliado para abarcar nuevos conceptos. Por otra parte, el marco de representación del problema debería ser más fácil para un usuario para definir problemas de agenda, y el optimizador debería de realizar una búsqueda razonablemente eficiente para la generación de los programas (Montana, Hussain, & Vidaver).

Como un primer paso es conveniente establecer el contexto de conocimiento sobre el cual podamos deducir una interpretación para estructurar el modelo. El sistema productivo descrito en el Capítulo 1, describe a los sistemas industriales en general y los sistemas productivos como un caso particular. Sin embargo, es necesario acotar las referencias de sistemas, a conceptos concretos que tengan un significado en el contexto de uso. Como referencia usaremos, algunos de los elementos de la cadena de suministro para completar la descripción del contexto (Figura 3-1):

Figura 3-1 Elementos de la Cadena de Suministro

79

Como podemos notar, los elementos de control para la arquitectura del modelo de secuenciación, son el Flujo/Ruteo (de materiales) y la dependencia de la información con respecto al Tiempo; que actuara directamente sobre el elemento estructural de fabricación, que más específicamente se refiere a la asignación de Maquinas, Personal, y Materiales.

Un planificador reconfigurable tiene dos componentes principales: un marco representación del problema (Elementos Estructurales) y un optimizador o solucionador (Elementos de Control). En general, el marco de desarrollo deberá incluir un lenguaje para representar estas limitaciones incluyendo las búsquedas de los valores óptimos (o al menos casi óptimos) para una programación que satisfaga todas las restricciones.

El modelo de secuenciación Job-Shop descrito en el Capítulo 2 comprende la descripción de dichos elementos estructurales, mientras que sus soluciones, los elementos de control (Figura 3-2). De forma general, se puede apreciar que el elemento Optimizador (o de mejora), funciona con respecto a la interpretación que se tenga del sistema (Sistema de Representación), y este a su vez proporciona las secuencias que el sistema de producción debe de seguir.

Figura 3-2 Información Requerida para la Representación del Problema de Producción a Optimizar.

La dinámica de control que puede proporcionar un sistema de secuenciación, se puede observar en la Figura 3-3. Una vez que se tiene una secuencia de ejecución, es necesario generar el despacho u orden para la ejecución del trabajo que deberá estar asignado a las diferentes Unidades de Procesamiento o Nivel de Ejecución. El monitoreo sobre estas unidades de procesamiento proporciona la información del estado del sistema, misma con la que se pueden

80

tomar decisiones en cuanto grado de utilización, total de salida producida y/o los indicadores de desempeño que se hayan definido previamente. Esta información cierra el ciclo de control retroalimentando la información de disponibilidad o de ajustes con respecto a variaciones no planeadas.

Figura 3-3 Dinámica de Control del Uso de un Secuenciador de Producción.

El nivel de ejecución dependerá de las características de fabricación particulares, ya que puede ir desde una celda de manufactura, hasta la operación detallada individual que pueda ejecutar una maquina o un trabajador. A un nivel más generalizado, se puede considerar el nivel de asignación a una planta de fabricación como unidades a las cuales se le asigna cierta demanda por atender, en el cual se puedan generar programas locales de asignación (Figura 3-4).

81

Figura 3-4 Nivel Generalizado de Asignación a Pantas de Producción como Unidades de Procesamiento

Existen diferencias conceptuales que se deben de considerar para la programación global y local, por ejemplo, en una programación local la asignación es directamente a máquinas, mientras que la global hace asignaciones a grupos de máquinas, o la ejecución enfocada en órdenes externas (de venta) para dicha programación global siendo que para la local, puede incluir órdenes internas para reabastecimiento de inventario o para la elaboración de sub-componentes.

El enfoque de optimización también cambia en los casos de programación local y global. En el caso local la optimización puede estar dada por el grado de utilización de las máquinas o una menor producción en proceso o el tiempo mínimo de ejecución total. Por otra parte para la programación global, se podría considerar la distancia mínima de transporte, reducción de inventario etc.

82

El sistema de control a menudo se divide en subsistemas que están relacionados con las funciones que tienen que ser realizadas. Para coordinar las actividades de los recursos disponibles, el controlador tiene que tomar decisiones sobre las acciones que tienen que ser realizadas y en qué recursos. Las tareas del controlador se dividen en las sub-tareas de planeación, programación y seguimiento. La complejidad y la incertidumbre en los datos, causan desviaciones entre el plan o del programa y la realidad generada. Debido a la magnitud del problema de la planificación es normal generalizar cierta información, a fin de no tener que considerar todos los detalles del proceso de fabricación.

Existe una imposición restrictiva para el elemento de control entre las entidades de Producto, Operación (Actividad), Demanda y Recursos (Figura 3-5). El Sistema de Secuenciación debe de manejar cada una de las restricciones en las relaciones de las entidades antes mencionadas.

Figura 3-5 Imposición restrictiva para el elemento de control basado en diferentes entidades.

Es preciso definir las relaciones de los elementos antes tratados en un modelo que describa las relaciones entre los diferentes objetos a controlar del sistema de producción. La Figura 3-6 nos muestras la representación esquemática de dicho modelo el cual será la base para para la descripción del desarrollo del sistema. En general y haciendo una descripción de modelo propuesto, se puede hacer una diferenciación entre lo que se considera como parte del sistema y los elementos o puntos de contacto con los que interactuará el sistema, que son los que proveerán información acerca de las dependencias y restricciones de los recursos (materia prima), fuentes de generación de órdenes de producción y los lugares donde se ejecutaran las actividades. La órdenes de producción son la fuente primaria de información, que a su vez tienen dependencia de la demanda y el pronóstico manejado a través de una sistema MRP, además de las solicitudes que surjan de las condiciones de condiciones no previstas.

83

Figura 3-6 Representación del Modelo del Sistema de Secuenciación Propuesto

Propiamente, lo que se encuentra dentro de la frontera del sistema inicia con las definiciones de objetos relacionados y las condiciones para lograr la programación de la producción, específicamente, las relaciones de Producto, Operación de Transformación (Proceso) y Centros de Trabajo. Esta relación está definida mediante una ruta tecnológica para cada producto y para los tiempos que necesitan para su procesado en cada Centro de Trabajo. Una vez definidos estos datos, la programación evaluará la información de las órdenes de producción para determinar la prioridad en base a las fechas de entrega, y en base a la disponibilidad de máquinas que son

84

requeridas por la ruta tecnológica de cada producto. La prioridad puede ser calculada mediante la siguiente expresión:

𝑝𝑟𝑖𝑜𝑟𝑖𝑑𝑎𝑑 =𝑡𝑖𝑒𝑚𝑝𝑜 𝑑𝑖𝑠𝑝𝑜𝑛𝑖𝑏𝑙𝑒 𝑑𝑒 𝑚𝑎𝑞𝑢𝑖𝑛𝑎

𝑓𝑒𝑐ℎ𝑎 𝑑𝑒 𝑣𝑒𝑛𝑐𝑖𝑚𝑖𝑒𝑛𝑡𝑜 − 𝑓𝑒𝑐ℎ𝑎 𝑑𝑒 𝑙𝑖𝑏𝑒𝑟𝑎𝑐𝑖𝑜𝑛

Los atributos de las maquinas definen capacidades de procesamiento, es decir, si las operaciones de los productos son tecnológicamente factibles en las maquinas disponibles, entonces las operaciones y máquinas forman una relación de entidad. El tiempo de procesamiento es un atributo relacional. En otras palabras, el tiempo de proceso es un atributo de la relación entre las entidades, trabajo (Proceso) y máquina, como se muestra la Figura 3-7. A partir de la fecha de vencimiento (un atributo de trabajo) y el tiempo de procesamiento (un atributo relacional) se impone una restricción en la última hora de inicio para cumplir con la fecha de vencimiento. La relación de entidades no muestra dependencia de tiempo secuencial.

Cuando hay más de una sola operación, la fecha de vencimiento para una operación se deriva de la hora de inicio de la operación posterior. Donde no hay competencia por el uso de los recursos, la última hora de inicio para la siguiente operación de trabajo es el tiempo de holgura restante, es decir, la diferencia entre el tiempo de la fecha de vencimiento de la tarea anterior y el tiempo de procesamiento restante. Un planificador tratará de cumplir la fecha de vencimiento de un cliente en un entorno competitivo además de que tiene que considerar la disponibilidad de la máquina. El período de utilización es una propiedad de la relación entre la utilización y la disponibilidad de la máquina.

Figura 3-7 Relación de Productos, Operaciones y Centros de Trabajo para Definir Tiempos de Ejecución

85

El sistema deberá descompone la tarea de programación de alto nivel jerárquicamente en una serie de tareas y proponer métodos para lograr estas tareas. Estas tareas y métodos representan las inferencias que sean necesarios para ejecutar las acciones de razonamiento para la construcción de un horario. Este desglose no sólo es fundamental para la identificación de todas las tareas genéricas necesarias para caracterizar la tarea de programación, sino que también proporciona una estructura de base genérica para todas las tareas o actividades disponibles.

Podemos utilizar criterios de evaluación, que pueden proporcionar consistencia a los programas generados. Es crucial recordar que estos criterios de evaluación son independientes el uno del otro:

• Completitud: comprueba si un horario asociado con un estado ya se ha completado.

• Compatibilidad: comprueba si cualquiera de las restricciones asociadas a un estado son válidos.

•Factibilidad: comprueba si se mantienen todos los requisitos impuestos.

Resulta conveniente dividir las diferentes tareas para el desarrollo per se del programa informático en tareas independientes y complementarias que nos ayuden a separar el contexto de producción y llevarlo a un contexto genérico para que pueda ser fácilmente configurable y pueda ser más fácil interpretar los criterios de validez, tanto del programa informático como de la construcción de secuencias de producción (Figura 3-8).

Figura 3-8 Identificación de Tareas de Desarrollo del Sistema Informático

86

3.2 Hacia la Construcción de un Sistema de Secuenciación

3.2.1 Arquitectura de Solución

Como se mencionó en la sección 3.1, es necesario generalizar ciertos aspectos del contexto en el cual el sistema va a operar para lograr simplificar la construcción del sistema de secuenciación. Tal es el caso de la dependencia jerárquica de productos compuestos por uno o varios sub-productos. Es por eso que en la tabla de productos se deben de considerar no solo los productos finales, sino también los sub-productos.

El sistema MRP (independiente al sistema de secuenciación), proveerá la información con las órdenes de producción que ya hayan sido planificadas por este mismo sistema, con la especificación general de fechas previstas para el abastecimiento de materia prima, producción de sub-productos y productos finales. Entendiéndose de esta manera que cada producto y subproducto tendrá una relación de tiempos y secuencias que servirán como base de información para poder secuenciar las órdenes de producción.

Como se trató en el Capítulo 2, uno de los métodos de solución heurísticos para el problema de programación y en particular para el modelo de programación Job-Shop (al que este trabajo se está adaptando) es mediante Algoritmos Genéticos. Ya en la sección 2.3.2, se dio una introducción acerca de cómo este problema es representado para poderle dar solución mediante esta técnica.

En este punto es necesario definir la interpretación del Algoritmo Genético para que pueda ser trasladado a un lenguaje de programación. Como un desarrollo inicial se propone utilizar la paquetería de programación Visual Prolog4. Prolog por naturaleza propia proporciona una forma de construcción relacional, además del motor de inferencia que puede facilitar no solo la evaluación numérica (aunque no tan potente), sino de la representación de restricciones de forma simbólica, lo cual facilitaría la evaluación de soluciones numéricas una vez que hayan sido descartadas por las restricciones del problema.

Las generalidades del Algoritmo Genético las podemos expresar en Prolog mediante la siguiente función recursiva:

4 Visual Prolog es un lenguaje de programación basado en el motor de inferencia de Prolog pero con una construcción Orientada a Objetos.

87

𝑔𝑎(0): −¡ 𝑔𝑎(𝐺𝑒𝑛𝑒𝑟𝑎𝑡𝑖𝑜𝑛): − 𝑠𝑒𝑙𝑒𝑐𝑡𝑖𝑜𝑛, 𝑐𝑟𝑜𝑠𝑠𝑜𝑣𝑒𝑟, 𝑚𝑢𝑡𝑎𝑡𝑖𝑜𝑛, 𝑒𝑣𝑎𝑙𝑢𝑎𝑡𝑖𝑜𝑛, 𝑁𝑒𝑥𝑡𝐺𝑒𝑛𝑒𝑟𝑎𝑡𝑖𝑜𝑛 𝑖𝑠 𝐺𝑒𝑛𝑒𝑟𝑎𝑡𝑖𝑜𝑛 + 1 𝑔𝑎(𝑁𝑒𝑥𝑡𝐺𝑒𝑛𝑒𝑟𝑎𝑡𝑖𝑜𝑛) Se asume que los parámetros de configuración, como lo son tamaño de población, número de generaciones, probabilidad de cruza y de mutación, se almacenan en algún otro lugar de la memoria.

Como primer punto para la elaboración del algoritmo genético, es la definición de la población inicial; este valor dependerá de un dato proporcionado por el usuario. Cada individuo de la población se generara de manera aleatoria en base al número de trabajos y al número de máquinas disponibles.

𝑃𝑜𝑏𝑙𝑎𝑐𝑖𝑜𝑛 = [𝐼𝑛𝑑𝑖𝑣𝑖𝑑𝑢𝑜1, 𝐼𝑛𝑑𝑖𝑣𝑖𝑑𝑢𝑜2, … , 𝐼𝑛𝑑𝑖𝑣𝑖𝑑𝑢𝑜𝑁]

Come se mencionó en la sección 2.3.3, para este trabajo se ha escogido la representación basada en operaciones para armar la estructura del Gen, es por eso que cada gen estará compuesto de la representación del numero de trabajo jn, y se repetirá tantas veces como maquinas tenga que pasar, es decir, n trabajos por m maquinas (jn,m). Los individuos los definiremos de la siguiente manera:

𝐼𝑛𝑑𝑖𝑣𝑖𝑑𝑢𝑜1 = [𝐴𝑝𝑡𝑖𝑡𝑢𝑑, [𝐺𝑒𝑛1, 𝐺𝑒𝑛2, … , 𝐺𝑒𝑛𝑁]]

Donde el listado de Genes representa el conjunto ordenado de trabajos que representan la secuencia de ejecución. A continuación veremos cómo se podrá construir la secuencia temporal por maquina o por trabajo a partir de cada individuo y por lo tanto el programa de trabajo. La Aptitud de la cadena está representada por el tiempo total de finalización de los trabajos (Makespan). De acuerdo al tabulador de los tiempos proporcionados por cada máquina.

Como siguiente paso es necesario evaluar cada una de las soluciones aleatorias (cada individuo) de nuestra población inicial. Regresando al ejemplo de la sección 2.2.1, se observa que dicha disposición de pedidos puede tener más de una solución.

88

Trabajo Proceso (m1) Proceso (m2) Proceso (m3)

A (1,3) (2,3) (3,2)

B (1,2) (3,2) (2,5)

C (3,3) (1,4) (2,2)

En la representación de las soluciones presentadas en la misma sección, se observa que solo basta con cambiar el orden de ejecución de las órdenes en cada máquina (respetando las precedencias), para que las soluciones sean distintitas con diferentes tiempos de término.

Considerando nuestra cadena de evaluación ambas soluciones quedarían de la siguiente manera:

[𝐴1, 𝐵1, 𝐴2, 𝐶1, 𝐴3, 𝐵2, 𝐶2, 𝐵3, 𝐶3]

[𝐴1, 𝐶1, 𝐵1, 𝐴2, 𝐵2, 𝐶2, 𝐵3, 𝐴3, 𝐶3]

Respetando la misma notación alfabética del ejemplo dado en la sección 2.2.1. Sin embargo, no es necesario esta notación ya que la secuencia viene determinada en el tabulador del mismo ejemplo, podemos prescindir de los subíndices. Si bien Prolog puede manejar nomenclatura alfabética o numérica debido a su sistema de inferencia simbólica, es preferible utilizar la notación numérica (A=1, B=2, C=3) para que el número de trabajos considerados en un corrida pueda llegar hasta un numero n indeterminado de trabajos.

Con una interpretación en código Prolog, nuestro ejemplo de la sección 2.2.1 quedaría de la siguiente forma:

𝐼𝑛𝑑𝑖𝑣𝑖𝑑𝑢𝑜1 = [18, [1,2,1,3,1,2,3,2,3]] 𝑀𝑎𝑞𝑢𝑖𝑛𝑎𝑠 = … [1,1,2,2,3,3,3,2,1]] 𝑇𝑖𝑒𝑚𝑝𝑜𝑠 = … [3,2,3,4,2,5,2,3,3]] 𝐼𝑛𝑑𝑖𝑣𝑖𝑑𝑢𝑜2 = [15, [1,3,2,1,2,3,2,1,3]] 𝑀𝑎𝑞𝑢𝑖𝑛𝑎𝑠 = … [1,2,1,2,3,3,2,3,1]] 𝑇𝑖𝑒𝑚𝑝𝑜𝑠 = … [3,4,2,3,5,2,3,2,3]]

89

Siendo las cadenas de máquinas y tiempos las correspondientes al tabulador de la sección 2.2.1. La forma de llegar a este resultado es mediante un algoritmo de evaluación de cadena (que ha sido desarrollado para este trabajo), que consiste en la iteración de la formula en cada paso para cada uno de los genes en el cromosoma que se está evaluando:

𝑇𝑖𝑒𝑚𝑝𝑜𝐴𝑐𝑢𝑚𝑢𝑙𝑎𝑑𝑜𝑀𝑎𝑞𝑢𝑖𝑛𝑎𝑁,𝐽𝑖= 𝑇𝑖𝑒𝑚𝑝𝑜𝑀𝑎𝑞𝑢𝑖𝑛𝑎𝑁 + max𝑎𝑐𝑢𝑚 {𝑀𝑎𝑞𝑢𝑖𝑛𝑎𝑁, 𝑇𝑟𝑎𝑏𝑎𝑗𝑜𝐽𝑖

}

Considerando las siguientes listas que representan los tiempos acumulados de cada máquina y de cada trabajo,

𝑇𝑖𝑒𝑚𝑝𝑜𝑠𝐴𝑐𝑢𝑚𝑢𝑙𝑎𝑑𝑜𝑠𝑀𝑎𝑞𝑢𝑖𝑛𝑎 = [𝑀1, 𝑀2, 𝑀3] 𝑇𝑖𝑒𝑚𝑝𝑜𝑠𝐴𝑐𝑢𝑚𝑢𝑙𝑎𝑑𝑜𝑠𝑇𝑟𝑎𝑏𝑎𝑗𝑜 = [𝐽1, 𝐽2, 𝐽3]] Y evaluando el primer individuo (Trabajos) de nuestro ejemplo, tenemos:

𝐼𝑛𝑑𝑖𝑣𝑖𝑑𝑢𝑜1 = [𝑁, [1,2,1,3,1,2,3,2,3]] (Trabajos) 𝑀𝑎𝑞𝑢𝑖𝑛𝑎𝑠 = … [1,1,2,2,3,3,3,2,1]] 𝑇𝑖𝑒𝑚𝑝𝑜𝑠 = … [3,2,3,4,2,5,2,3,3]] Para el gen de la posición 1, correspondiente a la primera operación de primer trabajo con un tiempo de 3 unidades, se inserta el valor del tiempo, en las listas de acumulados correspondientes a máquinas y trabajos (J=1, M=1, T=3); en este primer paso los valores acumulados son de 0: 𝑇𝑖𝑒𝑚𝑝𝑜𝑠𝐴𝑐𝑢𝑚𝑢𝑙𝑎𝑑𝑜𝑠𝑀𝑎𝑞𝑢𝑖𝑛𝑎 = [3 + max{𝐽1, 𝑀1} , 𝑀2, 𝑀3] = [3 + 0, 𝑀2, 𝑀3] = [3, 𝑀2, 𝑀3] 𝑇𝑖𝑒𝑚𝑝𝑜𝑠𝐴𝑐𝑢𝑚𝑢𝑙𝑎𝑑𝑜𝑠𝑇𝑟𝑎𝑏𝑎𝑗𝑜 = [3 + max{𝐽1, 𝑀1} , 𝐽2, 𝐽3] = [3 + 0, 𝐽2, 𝐽3] = [3, 𝐽2, 𝐽3] Para el gen de la posición 2, correspondiente a la primera operación del segundo trabajo con un tiempo de 2 unidades se inserta el valor del tiempo, en las listas de acumulados correspondientes a máquinas y trabajos (J=2, M=1, T=2) más el tiempo máximo de finalización de J=2 o de M=1, es decir, el tiempo en el que se encontrara disponible: 𝑇𝑖𝑒𝑚𝑝𝑜𝑠𝐴𝑐𝑢𝑚𝑢𝑙𝑎𝑑𝑜𝑠𝑀𝑎𝑞𝑢𝑖𝑛𝑎 = [2 + max {𝐽2, 𝑀1}, 𝑀2, 𝑀3] = [2 + 3, 𝑀2, 𝑀3] = [5, 𝑀2, 𝑀3] 𝑇𝑖𝑒𝑚𝑝𝑜𝑠𝐴𝑐𝑢𝑚𝑢𝑙𝑎𝑑𝑜𝑠𝑇𝑟𝑎𝑏𝑎𝑗𝑜 = [3,2 + max {𝐽2, 𝑀1}, 𝐽3] = [3,2 + 3, 𝐽3] = [3,5, 𝐽3]

90

Como se puede observar, dado que para la tareas 1 y 2, inician con la maquina 1, aplicando la formula, ambos valores se suman para generar el acumulado de tiempo de cada máquina, de manera análoga, el tiempo de los Trabajos, se acumula en la posición que cada trabajo representa. Hasta este momento se ejecutaron las tareas 1 y 2, en la maquina 1, con los tiempos de finalización respectivos de cada trabajo (se puede seguir la gráfica de la sección 2.2.1). Para el gen de la posición 3, como en los casos anteriores, se inserta el valor del tiempo, en las listas de acumulados correspondientes a máquinas y trabajos (J=1, M=2, T=3), nuevamente es necesario considerar el acumulado de las actividades precedentes, es decir, se suma el tiempo máximo, ya sea de J=1 o de M=2, por que se deben de sumar sobre los acumulados correspondientes de la actividad: 𝑇𝑖𝑒𝑚𝑝𝑜𝑠𝐴𝑐𝑢𝑚𝑢𝑙𝑎𝑑𝑜𝑠𝑀𝑎𝑞𝑢𝑖𝑛𝑎 = [5,3 + max {𝐽1, 𝑀2}, 𝑀3] = [5,3 + 3, 𝑀3] = [5,6, 𝑀3] 𝑇𝑖𝑒𝑚𝑝𝑜𝑠𝐴𝑐𝑢𝑚𝑢𝑙𝑎𝑑𝑜𝑠𝑇𝑟𝑎𝑏𝑎𝑗𝑜 = [3 + max{𝐽1, 𝑀2} , 5, 𝐽3] = [3 + 3,5, 𝐽3] = [6,5, 𝐽3]

Siguiendo esta dinámica para cada gen, las listas acumuladas se muestran los resultados para cada iteración:

Gen posición 4 (J=3, M=2, T=4)

𝑇𝑖𝑒𝑚𝑝𝑜𝑠𝐴𝑐𝑢𝑚𝑢𝑙𝑎𝑑𝑜𝑠𝑀𝑎𝑞𝑢𝑖𝑛𝑎 = [5,4 + max{𝐽3, 𝑀2} , 𝑀3, ] = [5,4 + 6, 𝑀3, ] = [5,10, 𝑀3] 𝑇𝑖𝑒𝑚𝑝𝑜𝑠𝐴𝑐𝑢𝑚𝑢𝑙𝑎𝑑𝑜𝑠𝑇𝑟𝑎𝑏𝑎𝑗𝑜 = [6,5,4 + max{𝐽3, 𝑀2}] = [6,5,4 + 6] = [6,5,10]

Gen posición 5 (J=1, M=3, T=2)

𝑇𝑖𝑒𝑚𝑝𝑜𝑠𝐴𝑐𝑢𝑚𝑢𝑙𝑎𝑑𝑜𝑠𝑀𝑎𝑞𝑢𝑖𝑛𝑎 = [5,10,2 + max {𝐽1, 𝑀3}] = [5,10,2 + 6] = [5,10,8] 𝑇𝑖𝑒𝑚𝑝𝑜𝑠𝐴𝑐𝑢𝑚𝑢𝑙𝑎𝑑𝑜𝑠𝑇𝑟𝑎𝑏𝑎𝑗𝑜 = [2 + max{𝐽1, 𝑀3} , 5,10] = [2 + 6,5,10] = [8,5,10]

91

Gen posición 6 (J=2, M=3, T=5)

𝑇𝑖𝑒𝑚𝑝𝑜𝑠𝐴𝑐𝑢𝑚𝑢𝑙𝑎𝑑𝑜𝑠𝑀𝑎𝑞𝑢𝑖𝑛𝑎 = [5,10,5 + max {𝐽2, 𝑀3}] = [5,10,5 + 8] = [5,10,13] 𝑇𝑖𝑒𝑚𝑝𝑜𝑠𝐴𝑐𝑢𝑚𝑢𝑙𝑎𝑑𝑜𝑠𝑇𝑟𝑎𝑏𝑎𝑗𝑜 = [8,5 + max {𝐽2, 𝑀3},10] = [8,5 + 8,10] = [8,13,10]

Gen posición 7 (J=3, M=3, T=2)

𝑇𝑖𝑒𝑚𝑝𝑜𝑠𝐴𝑐𝑢𝑚𝑢𝑙𝑎𝑑𝑜𝑠𝑀𝑎𝑞𝑢𝑖𝑛𝑎 = [5,10,2 + max {𝐽2, 𝑀3}] = [5,10,2 + 13] = [5,10,15] 𝑇𝑖𝑒𝑚𝑝𝑜𝑠𝐴𝑐𝑢𝑚𝑢𝑙𝑎𝑑𝑜𝑠𝑇𝑟𝑎𝑏𝑎𝑗𝑜 = [8,13,2 + max {𝐽2, 𝑀3}] = [8,13,2 + 13] = [8,13,15]

Gen posición 8 (J=2, M=2, T=3)

𝑇𝑖𝑒𝑚𝑝𝑜𝑠𝐴𝑐𝑢𝑚𝑢𝑙𝑎𝑑𝑜𝑠𝑀𝑎𝑞𝑢𝑖𝑛𝑎 = [5,3 + max {𝐽2, 𝑀2},15] = [5,3 + 13,15] = [5,16,15] 𝑇𝑖𝑒𝑚𝑝𝑜𝑠𝐴𝑐𝑢𝑚𝑢𝑙𝑎𝑑𝑜𝑠𝑇𝑟𝑎𝑏𝑎𝑗𝑜 = [8,3 + max {𝐽2, 𝑀2},15] = [8,3 + 13,15] = [8,16,15]

Gen posición 9 (J=3, M=1, T=3)

𝑇𝑖𝑒𝑚𝑝𝑜𝑠𝐴𝑐𝑢𝑚𝑢𝑙𝑎𝑑𝑜𝑠𝑀𝑎𝑞𝑢𝑖𝑛𝑎 = [3 + max {𝐽3, 𝑀1},16,15] = [3 + 15,16,15] = [18,16,15] 𝑇𝑖𝑒𝑚𝑝𝑜𝑠𝐴𝑐𝑢𝑚𝑢𝑙𝑎𝑑𝑜𝑠𝑇𝑟𝑎𝑏𝑎𝑗𝑜 = [8,16,3 + max {𝐽3, 𝑀1}] = [8,16,3 + 15] = [8,16,18] De forma resumida hemos obtenido el siguiente resultado: Longitud del programa: 18 Termino de M=1: 18 Termino de M=2: 16 Termino de M=3: 15

Termino de J=1 (A): 8 Termino de J=2 (B): 16 Termino de J=3 (C): 18

Los cuales concuerdan con los presentados gráficamente en la sección 2.2.1 de nuestro primer ejemplo. Este procedimiento servirá para el paso de evaluación dentro del algoritmo genético.

El operador de cruza ocurrirá de acuerdo a la probabilidad asignada de ocurrencia. Una alta probabilidad de ocurrencia puede llevar al algoritmo por un amplio campo de búsqueda retrasando la convergencia hacia el óptimo, mientras que una baja probabilidad podría no explotar áreas prometedoras del campo de búsqueda. Básicamente la cruza consiste en combinar la información de 2 cadenas con el fin de heredar características de cada una para ver si el resultado puede tener una mejor aptitud (makespan) que el de las cadenas originales. Para la representación basada en operaciones que hemos seleccionado, se debe de tener cuidado ya que la cruza de dos cadenas seleccionadas aleatoriamente puede generar cromosomas inválidos. Debido a esto, primero necesitamos seleccionar una cadena de longitud aleatoria dentro del primer cromosoma, y cruzarla con una cadena o varias cadenas del segundo cromosoma que contengan la misma especificación de operaciones que la primera. Considerando el siguiente ejemplo tenemos:

𝐶𝑟𝑜𝑚𝑜𝑠𝑜𝑚𝑎𝑃𝑎𝑑𝑟𝑒1 = [… , [1,2,1,3,1,2,3,2,3]] 𝐶𝑟𝑜𝑚𝑜𝑠𝑜𝑚𝑎𝑃𝑎𝑑𝑟𝑒2 = [… , [1,3,2,1,2,3,2,1,3]]

Produciendo los siguientes descendientes:

𝐶𝑟𝑜𝑚𝑜𝑠𝑜𝑚𝑎𝐷𝑒𝑠𝑐1 = [… , [1, 𝟏, 𝟑, 𝟐, 1,2,3,2,3]] 𝐶𝑟𝑜𝑚𝑜𝑠𝑜𝑚𝑎𝐷𝑒𝑠𝑐1 = [… , [𝟐, 𝟏, 𝟑, 1,2,3,2,1,3]] Otras variaciones pueden ocurrir cuando no se encuentre toda la información de la primera cadena del primer cromosoma en el segundo cromosoma, haciendo que se tengan que tomar más de una cadena, ejemplificando con el escenario del caso anterior:

𝐶𝑟𝑜𝑚𝑜𝑠𝑜𝑚𝑎𝑃𝑎𝑑𝑟𝑒1 = [… , [1,2,1,3,1,2,3,2,3]] 𝐶𝑟𝑜𝑚𝑜𝑠𝑜𝑚𝑎𝑃𝑎𝑑𝑟𝑒2 = [… , [1,3,2,1,2,3,2,1,3]]

Produciendo los siguientes descendientes:

𝐶𝑟𝑜𝑚𝑜𝑠𝑜𝑚𝑎𝐷𝑒𝑠𝑐1 = [… , [1,2, 𝟏, 𝟑, 𝟐, 𝟏, 𝟑, 2,3]] 𝐶𝑟𝑜𝑚𝑜𝑠𝑜𝑚𝑎𝐷𝑒𝑠𝑐1 = [… , [𝟏, 𝟑, 𝟏, 𝟐, 𝟑, 2,3,2,1,3]]

93

Como se puede observar una de las flechas es unidireccional, ya que las dos cadenas del cromosoma padre 2 formaran una sola cadena en el cromosoma padre 1, mientras que la única cadena del cromosoma padre 1, se sustituirá en el primer espacio dejado en el cromosoma padre 2. Las cadenas adicionales del cromosoma padre 2 son eliminadas ya que su información fue insertada en la cadena proveniente del cromosoma padre 1.

El operador de mutación consiste en la modificación de un solo valor en una cadena determinada. No obstante, si en esta representación únicamente se cambia un solo valor por algún otro, se está alterando la estructura de las operaciones, dado que puede llegar a tener un valor no válido para un número de trabajo u orden. Es por eso que para representar la mutación, únicamente debe de haber un switch entre dos Genes seleccionados aleatoriamente, esto dará como resultado que no se afecte la estructura de trabajos y solo se afecte el orden de ejecución de las máquinas. Esta acción da un cromosoma valido que pueda ser evaluado sin ningún problema. En el siguiente ejemplo se puede observar que la cruza se efectúa para los genes exteriores y se intercambian de posición para dar lugar a un estado final del cromosoma.

𝐼𝑛𝑑𝑖𝑣𝑖𝑑𝑢𝑜𝑁 = [… , [𝟏, 2,3,1,3,1,2,3, 𝟐]] Estado inicial 𝐼𝑛𝑑𝑖𝑣𝑖𝑑𝑢𝑜𝑁 = [… , [𝟐, 2,3,1,3,1,2,3, 𝟏]] Estado final

3.2.2 Dominio de Visualización y de Trabajo

Dado que en muchos casos existe una distribución del trabajo, no solo de empleados, si no también física, el mantener al día al sistema con las actualizaciones necesarias acerca de los avances en las tareas programadas, así como de los cambios imprevistos de programa, requiere que múltiples actores tengan acceso desde diferentes puntos de la empresa; es por eso que la topología de conectividad propuesta para este sistema esté basada en una Red Ethernet, que permita a varios puntos de acceso al sistema, para poder hacer las actualizaciones necesarias. En el caso de las órdenes de producción, se pueden tomar desde un sistema MRP o ERP que también esté disponible en la red, únicamente para lectura de datos. La definición de artículos y maquinas o Centros de Trabajo también podrá tomarse del ERP.

94

Figura 3-9 Topología de Conectividad para sistema de Secuenciación

La interfaz propuesta para el Sistema de secuenciación está enfoca a una estructura de trabajo para la captura de información necesaria. Si bien esta interfaz puede mejorarse con los enfoques centrados en el usuario, no ha sido el objetivo de este trabajo, estudiar la ergonomía del software que permita una mejor experiencia del usuario.

Esta interfaz propuesta opera en un ambiente Windows, conformado por 3 menús desplegables para la operación del sistema, y cuatro para el manejo de ventas y tareas comunes que proporciona el ambiente Windows. Los menús preparados para la operación del sistema son: “Administración de Recursos”, “Control de Producción” y “Configuración”.

El primer menú consta a su vez de las opciones de definición para Procesos, Centros de Trabajo, Artículos y Tiempos Estándar.

95

Figura 3-10 Menú “Administración de Recursos” en Sistema de Secuenciación

La ventana de definición de procesos únicamente nos muestra el dato básico de identificación y una descripción. Datos adiciones el inclusive el Id se podrían obtener de algún ERP para evitar que exista duplicidad de información con respecto a otros sistemas.

Figura 3-11 Ventana de Definición de Procesos

En la ventana de definición de Centros de Trabajo (CT), los Centros se definen en función de los procesos que sean capaces de ejecutar. Uno de los supuestos es que a pesar de que el CT puede tener variedad de ejecución, únicamente puede ejecutar un proceso a la vez. Es decir, si en algún

96

momento el centro de trabajo puede realizar operaciones en paralelo, entonces para el sistema deben de considerarse como maquinas o CT independientes.

Figura 3-12 Ventana de Definición de Centros de Trabajo

En el caso de los artículos, estos requieren un registro de identificación, una descripción y una secuencia de ejecución. En este caso se define una secuencia ordenada de centros de trabajo por los cuales tiene que pasar el producto para ser procesado. De definición de identificación, así como en el caso de los CTs puede obtener a través de un ERP, sin embargo las etapas de fabricación si son propias del sistema propuesto.

Figura 3-13 Ventana de Definición de Artículos

La ultima ventana del menú de Administración de recursos, es la definición de los tiempos estándar, es decir, cuanto tiempo requiere cada artículo, para ser trabajado en cierto proceso y en qué centro de trabajo. Como menciono anteriormente cada CT puede tener varios procesos y

97

estos pueden ejecutarse en diferentes tiempos. En este punto se recomienda incluir los tiempos de traslado entre cada proceso como una holgura tanto de llegada como de salida del proceso para ir al siguiente.

Figura 3-14 Ventana de Definición de Tiempos Estándar

Nuevamente en la barra de herramientas en la opción “Control de Producción” se encuentran tres sub-menús para el manejo de las órdenes de producción.

Figura 3-15 Menú “Administración de Recursos” en Sistema de Secuenciación

En la primera ventana es para el manejo de las órdenes de producción, su estatus dependerá de si ya ha sido ejecutada o no. Nuevamente como en casos anteriores se espera que esta definición de

98

órdenes de producción pueda venir de un ERP para facilitar la captura. En esta misma ventana, se podrán ir registrando los avances con respecto al total para que la orden pueda ser completada. Aun si esta fuera parcial, la orden podrá ser terminada si es que no se desea seguir trabajándola.

Figura 3-16 Ventana de Gestión de Órdenes de Producción

En la ventana de secuenciar producción, la ejecución basara los cálculos en base al algoritmo genético visto anteriormente. Dado que la naturaleza del AG es estocástica, para el mismo conjunto de datos podrán obtenerse diferentes resultados, es por eso que el tomador de decisión podrá ejecutar el algoritmo una o varias veces y una vez que cuente con una solución satisfactoria, podrá guardar el escenario que sirva de base para la ejecución física de la producción.

Figura 3-17 Ventana de Ejecución de Secuencia de Producción

99

Por último, en el menú de Configuración, podremos encontrar datos específicos que puedan servir como ajuste de pruebas para el ajuste del sistema. En el primer sub-menú encontramos los parámetros de dominio de los algoritmos genéticos y las rutas de los orígenes de datos. Inicialmente estos podrán definirse en función de archivos de texto.

Figura 3-18 Menú “Configuración” en Sistema de Secuenciación.

En la ventana Definición de Parámetros, encontramos el área de captura para los valores específicos que sirven para mejorar los resultados del algoritmo genético. De acuerdo con Bodenhofer (Bodenhofer, 2004) no existe un conceso algoritmo que nos permita obtener la mejor combinación de valores para mejorar los resultados del algoritmo genético, si no que estos valores se tienen que ir ajustando a prueba y error de acuerdo las características del problema y de sus datos en específico.

Figura 3-19 Ventana de Definición de Parámetros del Algoritmo Genético.

100

Capítulo 4 Análisis del Modelado del Sistema de Secuenciación y su Aplicabilidad

4.1 Análisis Contextual de Uso

Unos de los principales retos conceptuales de la mejora industrial, es su entendimiento conceptual, es por ello que siempre es necesario tener una definición Ontológica del sistema. Bajo el estudio de ingeniería de sistemas, se han desarrollado varias líneas de estudio para el entendimiento de los sistemas industriales (Dickerson & Marvis, 2009). Esto incluye sistemas de fabricación y subsistemas, incluyendo los controles en los que operan. En este estudio del sistema de secuenciación de órdenes de producción, estas definiciones conceptuales son necesarias, para poder no solo diseñar y desarrollar una solución sino también para la implementación y operación (Figura 4-1).

Figura 4-1 Modelo Ontológico de un Sistema (Chourabi, Pollet, & Ben Ahmed, 2010)

101

El usar un sistema de control implica separar las entidades físicas y de información. Como ya se analizó en la sección 1.2, es posible identificar cada una de estas entidades para el modelo de secuenciación de este trabajo. Como podemos ver en la Figura 4-2, es posible identificar de forma independiente, lo que sucede en el sistema de manufactura, contra el proceso de toma de decisión, estos sistemas interactúan mediante la ejecución de comandos derivados del secuenciador de órdenes, y con la recepción del estatus de la planta, en cuanto a avances, disponibilidad y otros eventos que puedan suceder durante la producción.

Figura 4-2 Puntos de Dependencia entre la Fabricación y la Toma de Decisiones.

Viéndolo de forma particular para cada uno de los Centros de Trabajo, nuestro horizonte de visibilidad es el Centro de Trabajo en sí, del cual ya vimos que puede estar constituido por maquinas, personas, o una combinación de ambos que formen una unidad de trabajo y capaz de producir una unidad de producto. En la Figura 4-3, podemos observar la actividad física del Centro de Trabajo, en la que forma parte de un circuito logístico de materiales. Básicamente se debe de conservar el estatus de activo o inactivo, aunque también es necesario especificar el tipo de inactividad, como por ejemplo si es por tiempo ocioso, o si es por falla mecánica en caso de un maquina o de absentismo en caso de algún trabajador. Es importante mencionar que el modelo no considera los tiempos de traslado de material de forma independiente, lo cual es relevante para las entradas y salidas de la fila de espera del centro de trabajo, sin embargo, la sugerencia es que estos tiempos de traslado se consideren dentro del tiempo estándar de procesamiento para cada una de las secuencias tecnológicas del producto.

102

Figura 4-3 Cambios de Estado para los Centros de Trabajo del Proceso de Producción.

La fabricación al igual que otros campos de la ingeniería, tiene que hacer frente a las incertidumbres y las interrupciones. A pesar de que las interrupciones son indeseables, parecen ser la norma en cualquier taller. Algunas interrupciones son inevitables y sus efectos en el rendimiento global del sistema se deben de minimizar. Desde esta perspectiva, es casi inevitable que los investigadores se centran en las realidades del entorno, donde los eventos inesperados y varios tipos de interrupciones se producen en cualquier momento.

La programación reactiva es un proceso de revisión de un programa determinado en tiempo real debido a la ocurrencia de eventos inesperados durante la ejecución de la programación. Es decir, la adaptación de los programas de ejecución previamente calculados. La programación reactiva puede ser vista como la programación fuera de línea. Es muy posible que un nuevo horario puede diferir considerablemente de la programación inicial. En ciertas situaciones, esto no es deseable, ya que afecta otras decisiones como: la fecha de entrega, la asignación de los operadores, la manipulación de materiales etc. Se preferirá la reprogramación total de la reparación de un horario interrumpido, cuando las reparaciones afectan negativamente al rendimiento del sistema. La reprogramación total conduce a una nueva programación optimizada y será sin duda superior en calidad a cualquier horario reparado. En la práctica normal, el jefe de planta realiza manualmente estos ajustes sobre la base de su experiencia y el sentido común. Sin embargo, su capacidad de prever los efectos en cascada de estos cambios en la planta de producción es muy limitada, ya menudo resulta en reparaciones ineficientes e irreversibles.

Para el modelo propuesto no se ha considerado la programación reactiva, solo la reprogramación total, pero no es necesario lidiar con los efectos negativos derivados de la reprogramación total

103

como se mencionó en el párrafo anterior, ya que la retroalimentación del estatus de planta al momento de la interrupción, puede considerarse para dicha reprogramación total, es decir, los pedidos que no se hayan completado por la interrupción, puedan reportarse de manera parcial; lo que para el sistema puede considerarse como órdenes de producción nuevas, solo que de menor cantidad. Esta acción podría disminuir el efecto de reprogramar el 100% de las órdenes consideradas al inicio del ciclo de la programación.

Estas podrían se algunas de las razones por las cuales se podrían dar interrupciones del proceso de producción:

Fallas de máquinas.

Mantenimiento de la máquina.

Absentismo.

Cambio de herramental.

El retraso en el traslado y manejo de materiales.

Variación en el rendimiento de la máquina.

Desgaste de la herramienta.

Variación de los tiempos de preparación.

Re-trabajar.

Rechazos.

Sin disponibilidad de materia prima.

Trabajos Urgentes.

Cambio de prioridad.

La cancelación de la Orden.

La tarea más destaca en estos casos es asegurar de que el sistema de secuenciación tenga la información actualizada del estatus de producción. Esto podría darse de forma automática o manual pero dependerá de las características de cada empresa, en la cual se diseñe un proceso para obtener la información de forma rápida y confiable para generar el nuevo programa de ejecución y evitar grandes contratiempos.

4.2 Aplicabilidad del Sistema de Secuenciación.

Actualmente existen algunos sistemas comerciales (Software) que pueden cumplir no solo la función de secuenciación y programación si no de integración de información desde y hacia un ERP. Sin embargo estos no siempre resultan de fácil adquisición para la PyMES, no solo desde el punto de vista económico sino también desde el punto de vista técnico.

104

Es importante mencionar que existe un número considerable de programas informáticos que están dedicados al control y manejo de la producción. Sin embargo el número se reduce drásticamente cuando se trata de optimizar la producción en base a las órdenes de ejecución (la asignación de trabajo). Esto se debe a que existen criterios de fácil aplicación que por sí mismas pueden representar una mejora, especialmente cuando no se tiene un forma de control previa a la adquisición de un software, y que para algunas PyMES pueden ser de gran utilidad. Estos criterios pueden ser Primeras Entradas Primeras Salidas, Prioridad de Menor Tiempo de Ejecución y hasta se puede encontrar uno de Asignación Aleatoria esperando que pueda ser una forma de mejorar los tiempos de asignación que con los métodos anteriores; siendo estos por mencionar algunos, lo que se encuentran dentro de muchos de los sistemas de control de producción.

Evidentemente la estructura de asignación del trabajo puede mejorarse con el uso de algoritmos que han sido diseñados para este fin como ya se mencionó en la sección 2.2.2, e integrarlos a sistemas de control de producción. Los programas comerciales que integran estas funcionalidades son los de más difícil acceso a las PyMES; programas como ILOG de IBM o CHIP System, que contienen un completo conjunto de algoritmos heurísticos y determinísticos capaces de adaptarse a cualquier necesidad y a cualquier tamaño de empresa. Estos también incluyen los que se han desarrollado para adecuarse a los grandes ERPs particular como SAP R/3 u Oracle. Existen opciones más viables como PlanetThogether, FAST Track Schedule, Infor Visual Job Shop, que requieren cierto grado de dominio técnico de la programación de producción, añadiendo que la mayoría de ellos están solo disponibles en idioma inglés.

En el otro rango del espectro se encuentran programas más simples que no cuentan con la adaptación necesaria y que requieren tiempo y conocimientos más específicos en cuanto a técnicas de programación y optimización. Tal es el caso de Evolver, una herramienta basada en Excel de Microsoft o WinQsb, pasando por aquellas herramientas más genéricas que no están dirigidas a empresas o casos particulares, si no que requieren de una adaptación casi desde cero.

El modelo propuesto puede adaptarse a situaciones en las que no es necesario el dominio técnico de la programación de máquinas, si no que al manejar cierto grado de generalidad en su desarrollo, como el utilizado en los conceptos de Centros de Trabajo, Jerarquías de Producto y asignaciones múltiples de Máquina-Producto-Tiempo, puede adaptarse fácilmente a diversas situaciones de trabajo.

Se han identificados casos que pueden ser piloto de implementación de un herramienta con el modelo propuesto en este trabajo. Tal es el caso de la empresa Mecánica Industrial y Transformados (MITSA) en una de sus divisiones, dedicada a la fabricación de componentes de transmisión de potencia, ya que el proceso su proceso de fabricación actualmente no cuenta con una programación estructurada de cargas de trabajo para sus máquinas y personal.

105

Su sistema de producción se basa bajo un esquema principalmente de pedidos bajo demanda, que en muchas ocasiones son ejecutados conforme van llegando. Actualmente no cuentan con un periodo de espera para poder programar un conjunto de órdenes de venta. Actualmente se encuentra un desarrollo de mejora de inventarios con lo que se espera incluir el en el proceso de producción aquellas ordenes de fabricación que estén dedicas a cumplir con los máximo y mínimos de inventarios para una gestión MRP. Esta empresa cuenta con el siguiente conjunto de máquinas manuales y maquinas CNC con las que ejecutan el trabajo de un conjunto representativo de productos:

Productos\Maquinas MORI SEIKE

3L 10T 6T1 6T2 OKUMA LR15

MAZAK SLANT30

Poleas 5 ‘’ x x x x x x x Poleas 10’’

x x x x x

Poleas 18’’

x x x

Bujes V1 y V2 x x x x x x x Bujes W1 y W1

x x x x x

Bujes X1 y X2

x x x

La definición de la secuencia de fabricación puede variar de producto a producto, pero en el caso de aquellos que se fabrican de manera regular pueden completar el ciclo de análisis desde un punto de vista logístico en el que inician con un pronóstico de demanda hasta el aprovisionamiento de materiales terminados a almacenes y a clientes. La forma de fabricación de esta empresa se adapta bien al modelo propuesto ya que, se tienen identificados tiempos estándar para los productos de manejo más común, se tienen identificadas las posibles combinaciones en las que se pueden ejecutar las diferentes secuencias tecnológicas en función de la maquina correspondiente, cuentan una gestión de MRP y lo más importante de todo, cuentan con un sistema de fabricación por lotes, característica crucial para la implementación del modelo.

Así como se ha podido identificar esta empresa, la tarea consiste en aplicar el modelo en un sistema de secuenciación ya incluido en un software que permita su gestión de forma más autónoma. Pero esta aplicación podrá trasladarse a otras empresas con modificación o personalizaciones mínimas si no es que ninguna.

106

Conclusiones

La complejidad que vive la situación empresarial es un hecho que debe ser enfrentado por las diversas disciplinas dedicadas a la comprensión de sus diferentes aspectos. Para ello perece ser preciso replantear los enfoques utilizados hasta ahora y elaborar más que un simple acto de adoptar cambios particulares y sin impacto, generar marcos teóricos integrales que permitan abordar esta complejidad. Este reto convertido más bien en una necesidad no implica partir de cero, pues no son pocas las herramientas conceptuales con las que actualmente cuenta la ingeniería para ir de lo particular a lo general y viceversa, y que constituyen una excelente oportunidad para el desarrollo de enfoques que sean capaces de abordar los problemas de manera adecuada.

No existe una solución universal a los problemas de la subutilización de recursos, y puede ser contraproducente invertir en tecnologías de información sin antes asegurar otras condiciones que permitan su asimilación. Tal es el caso de la creación de modelos y marcos de entendimiento que permitan adoptar nuevas técnicas ya sean manuales o automatizadas, pero que contengan los elementos básicos para la mejora de los procesos. La elaboración de los modelos entonces, se podrá ir adaptando conforme a las características de las compañías, pero lo más importante es que se puedan encontrar elementos que sean comunes entre diferentes empresas.

En este trabajo se analizó el marco ontológico de los sistemas de fabricación por lotes que se adaptan a los modelos Job-Shop, con en el fin de proporcionar un panorama más claro de lo que implica elaborar un modelo y que pueda ser implementado de un sistema informático dedicado a la secuenciación de órdenes de producción. Existen diversos giros empresariales en las cuales la aplicabilidad del modelo puede resultar factible, tal es el caso de las empresas metal-mecánicas siempre y cuando cumplan con las características de fabricación consideradas en este trabajo.

En muchas organizaciones el conocimiento de la producción no está correctamente clasificado y documentado, de ahí que se dedicaran los primeros capítulos al entendimiento de los sistemas de producción. Sucede comúnmente en las empresas, que los registros son a menudo incompletos, inconsistentes, incluso contradictorios y sin actualizar. Por ello no es de extrañar que muchas de las actividades de producción se lleven a cabo a menudo sin mucha referencia a la documentación. Las bases de conocimiento que incluyan una definición ontológica podrían ser utilizadas para el mantenimiento y el perfeccionamiento de dichos conocimientos de fabricación, para formalizarla y ponerla a disposición de los tomadores de decisiones en toda la organización. Dado que las decisiones dependen en gran medida la calidad del conocimiento disponible para la toma de decisiones, tampoco hay que perder de vista que la cantidad de información necesaria para tomar buenas decisiones es directamente proporcional a la complejidad del sistema. Además, el impacto

107

de la información es más alto en sistemas más complejos. Es por eso la importancia de desarrollar modelos que se puedan adoptar a distinto tipos de necesidades y no solo a la de una.

Aunque los investigadores consideran que la programación como uno de los más difíciles de todos los problemas de toma de decisiones en la producción, el nivel de conocimiento y su disponibilidad acerca de la programación en las industrias manufactureras es muy pobre. Aspectos prácticos de la programación no se enseñan oficialmente en el mundo académico y la educación en la programación entre las industrias es casi inexistente. La gente está aprendiendo programación de la producción de sentido común, experiencia y herramientas de software. La comprensión de la naturaleza dinámica de flujo de trabajo en el taller y la percepción de la complejidad de la programación son bastante bajos especialmente en los talleres de trabajo.

Con la arquitectura del modelo del sistema propuesto se pueden cumplir con los criterios de evaluación que son Completitud, Compatibilidad y Factibilidad. Así también, la arquitectura del modelo presentado nos permite trabajar con situación no previstas en un programa, como o son fallas de máquinas, ausencia de personal, mantenimiento, entre otros. Esto se debe en parte a que la representación lógica trabaja de forma independiente a la física, es decir en este caso al de la producción, aunque la terminología empleada no sea del todo compatible ya que puede varia de una empresa a otra.

La amplia literatura generada alrededor de los Algoritmos Genéticos y en especial para el problema de la Programación Job-Shop, hacen que esta herramienta presente un fácil entendimiento y en este caso de fácil interpretación susceptible de adaptarlos a las necesidades industriales, pudiendo cumplir con las necesidades básicas de uso. La representación Basada en Operación resulto adecuada para las funciones de evaluación, cruza y mutación gracias la fácil representación simbólica en el lenguaje de programación Visual Prolog.

Visual Prolog es un sistema enfocado al manejo simbólico de objetos lógicos a los cuales les da solución mediante cálculo de proposiciones. Por otra parte los algoritmos genéticos operan en un nivel más numérico y menos lógico. De acuerdo con los estudios de Bitterman (Bitterman, 2004) nos muestra que para una aplicación simple de AGs no resulta conveniente el uso de este lenguaje de programación sino más bien aquellos basados en la definición de procedimientos como Visual Basic. Sin embargo, la ventaja de usar Visual Prolog radica en el hecho de que las restricciones y representación de entidades y objetos resultan más conveniente. Si bien el desempeño del AG se ve afectado por ser un leguaje de naturaleza declarativa, se gana en legibilidad de representación del problema y en su implementación. Actualmente la capacidad física de computadoras de última generación son lo suficientemente potentes para poder cerrar la brecha de desempeño para diferentes tipos de lenguajes de programación.

108

Se hace hincapié en la aplicabilidad en las PyMES, ya que en su gran mayoría requieren de un modelo básico a partir de cual puedan empezar a producir mejoras en la producción. Dado que por otra parte, los grandes corporativos cuentan con los recursos suficientes para generar modelos tan robustos y completos que pueden adaptarse a cualquier necesidad.

La intención de este trabajo también ha consistido en poner en evidencia la factibilidad de manejar una arquitectura sencilla de programación “optimizada” partir de cual se le puedan integrar los beneficios de sistemas más robustos para el control integral de la producción. Si bien la arquitectura del sistema propuesto se ha enfocado en el modelo Job Shop, no se descarta que pueda ser utilizado en otras variantes del modelo como Flow Shop, Open Shop, Cycle Shop etc. También se ha tenido en mente la interacción con otros sistemas como ERP a partir de los cuales se pueda extraer información básica de productos y recursos y puedan funcionar de forma conjunta.

Bien sabemos que no existe un programa de índole general que se adapte a cualquier tipo de situación porque entonces pierde especificidad y por el contrario no es recomendable tener un programa totalmente especificado porque pierde adaptabilidad. Evidentemente la simplificación de un modelo y todas sus variantes posibles trae como consecuencia que el número de casos de aplicación sea limitado pero esta pérdida de generalidad se puede ganar en amplitud de aplicación. En el modelo desarrollado en este trabajo, claramente quedan muchas áreas de oportunidad que no se han considerado inicialmente o que han sido excluidas del estudio. Los sistemas informáticos que apoyan las funciones de la empresa y que se han creado de forma independiente y particular, conduce a tres problemas. En primer lugar, las funciones no comparten las mismas representaciones (es decir, diferentes representaciones de un mismo conocimiento de la empresa); por lo tanto, son incapaces de compartir el conocimiento. En segundo lugar, las representaciones que fueron definidas sin una especificación adecuada de lo que significa la terminología (también conocido como la semántica); por lo tanto, las interpretaciones y usos del conocimiento son inconsistentes. En tercer lugar, las representaciones tienden a ser pasivas; es decir, no se tienen la capacidad para deducir automáticamente de lo obvio sobre lo que se está representando.

Las expectativas futuras de este trabajo consisten en el desarrollo formal de dicho sistema, contrastar contra la práctica y generar un programa informático que pueda evolucionar hacia una aplicación práctica y que sea comercialmente factible. Se pretende que con estas bases se pueda generar dicho programa para asegurar su adaptación a varias empresas. Esto trae como como consecuencia la disminución de costos de adquisición por parte del sector industrial y de desarrollo del propio software, ya que a diferencia de sistema personalizados, por ejemplo el mantenimiento puede resultar más sencillo. Pero también es necesario trabajar sobre una mejor definición ontológica de los sistemas productivos y su formalización como parte de arquitecturas empresariales.

109

Anexo 1 Visual Prolog

Prolog (proveniente del francés PROgrammation en LOGique) es lo que se conoce como un idioma declaratorio. Esto significa que dado los hechos necesarios y reglas predefinidas, Prolog usará el razonamiento deductivo para resolver los problemas planteados. Esto contrasta con los leguajes tradicionales, como el C, Basic y Pascal que son idiomas procedurales (basados en procedimientos). En un idioma procedural, el programador debe proporcionar instrucciones que dicen exactamente a la computadora cómo resolver un problema, paso a paso. En otras palabras, el programador debe saber resolver el problema antes de que la computadora pueda hacerlo. El programador de Prolog, por otro lado, sólo necesita proporcionar una descripción del problema y aterrizar las reglas para resolverlo. De ahí, Prolog determina cómo encontrar una solución (Wikipedia, 2015).

Los programas en Prolog se componen de cláusulas de Horn que constituyen reglas del tipo "modus ponendo ponens", es decir, "Si es verdad el antecedente, entonces es verdad el consecuente". No obstante, la forma de escribir las cláusulas de Horn es al contrario de lo habitual. Primero se escribe el consecuente y luego el antecedente. El antecedente puede ser una conjunción de condiciones que se denomina secuencia de objetivos. Cada objetivo se separa con una coma y puede considerarse similar a una instrucción o llamada a procedimiento de los lenguajes imperativos. En Prolog no existen instrucciones de control. Su ejecución se basa en dos conceptos: unificación y backtracking. Gracias a la unificación, cada objetivo determina un subconjunto de cláusulas susceptibles de ser ejecutadas. Cada una de ellas se denomina punto de elección. Prolog selecciona el primer punto de elección y sigue ejecutando el programa hasta determinar si el objetivo es verdadero o falso.

En caso de ser falso entra en juego el backtracking, que consiste en deshacer todo lo ejecutado situando el programa en el mismo estado en el que estaba justo antes de llegar al punto de elección. Entonces se toma el siguiente punto de elección que estaba pendiente y se repite de nuevo el proceso. Todos los objetivos terminan su ejecución bien en éxito ("verdadero"), bien en fracaso ("falso").

La versión oficial de Prolog se desarrolló en la Universidad de Marsella, Francia por Alain Colmerauer en la década de los 70s como una herramienta que no tenía como objetivo la traducción de un lenguaje de programación, sino la clasificación algorítmica de lenguajes naturales. El resultado fue el desarrollo de un nuevo paradigma de programación. Las primeras versiones del lenguaje diferían, en sus diferentes implementaciones, en muchos aspectos de sus sintaxis, empleándose mayormente como forma normalizada el dialecto propuesto por la Universidad de Edimburgo, hasta que en 1995 se estableció un estándar ISO (ISO/IEC 13211-1), llamado ISO-Prolog.

110

Visual Prolog es un lenguaje de programación lógica basado en el lenguaje Prolog con PDC y Turbo Prolog como antecesores y que fueron comercializados en los 80s y 90s. El objetivo de Visual Prolog es apoyar la programación industrial en la que resulta complejo dar soluciones mediante lenguajes de programación basados en procedimientos. Prolog en general se ha adaptado en los laboratorios de inteligencia artificial. Visual Prolog se ha vuelto una opción cada vez más usada por muchos diseñadores, debido a que pueden agregarse fácilmente rasgos inteligentes a los programas o incluso a los sitios Web. Es compatible con soluciones avanzadas de cliente-servidor y de tres niveles y es muy adecuado para lidiar con el conocimiento complejo. Se trata de un lenguaje de programación muy potente y seguro (Wikipedia, 2015).

Para este trabajo se utilizó la versión gratuita de Visual Prolog 7.5 disponible para descarga desde la página: http://www.visual-prolog.com/

111

Bibliografía

Abarca Rojas, A. (s.f.). El Problema de la Programación de las Órdenes de Producción. Toluca, Edo. de Méx.: Escuela de Ingenieria Industrial y Sistemas ITESM Campus Toluca.

Alfieri, A., & Brandimarte, P. (s.f.). Stochastic programming models for manufacturing applications. En A. Matta, & Q. Semeraro, Design of Advanced Manufacturing Systems. Milan, Italy: Springer.

ATKearney. (2009). Evaluación del Desempeño de las Cadenas de Suministro - Generacion de Indicadores Nacionales. Mexico, D.F.

Barceló Valenzuela, M., & Pérez Soltero, A. (s.f.). El Impacto en las PyMES de los Sistemas de Información en Hermosillo Sonora, Mexico. .

Bartschi Wall, M. (1996). A Genetic Algorithm for Resource-Constrained Scheduling. Massachusetts Institute of Technology.

Bierwirth, C. (s.f.). A Generalized Permutation Approach to Job Shop Scheduling with Genetic Algorithms. Germany: University of Bremen.

Bitterman, D. S. (2004). New Lower Bounds for the Snake-In-The-Box Problem: A Prolog Genetic Algorithm and Heuristic Serach Approach. University of Georgia, Athens, Georgia.

Boer, T. W. (2008). A Beginners Guide to Visual Prolog. Recuperado el 12 de Enero de 2011, de http://download.pdc.dk/vip/72/books/deBoer/VisualPrologBeginners.pdf

Bongaerts, L. (1998). Integration of Scheduling and Control in Holonic Manufacturing Systems. Leuven, Belgium: Katholieke Universiteit Leuven.

Brookshear, J. (1999). Teoría de la Computación. Pearson.

Bruccoleri, M., Lo Nigro, G., & Noto La Diega, S. (2005). A DSS for strategic planning. En A. Matta, & Q. Semeraro, Design of Advanced Manufacturing Systems. Milan, Italy: Springer.

112

Caiazzo, F., Pasquino, R., Sergi, V., & Spiezio, B. (2005). Fuzzy performance evaluator of AMSs. En A. Matta, & Q. Semeraro, Design of Advanced Manufacturing Systems. Milan, Italy: Springer.

Camara de Diputados LXI Legislatura. (2011). Recuperado el 1 de Junio de 2013, de http://www3.diputados.gob.mx/camara/001_diputados/010_comisioneslxi/002_especiales/001_para_el_acceso_digital/016_agenda_digital_nacional

Chase, R. B., Jacobs, F. R., & Aquilano, N. J. (2009). Administracion de Operaciones. Producción y Cadena de Suministros. McGraw Hill.

Clocksin, W. F., & Mellish, C. S. (2003). Programming in Prolog. Springer.

Cochran, J. K., Horng, S.-M., & Fowler, J. W. (s.f.). A Multi-Population Genetic Algorithm to Solve Multi-Objective Scheduling Problems for Parallel Machines. Arizona, USA: Arizona State University.

Deloitte Touche Tohmatsu & U.S. Council on Competitiveness. (Junio de 2010). Índice Global de Competitividad en Manufactura.

Dussel Peters, E. (2009 No. 357 ). La manufactura mexicana:¿opciones de recuperación? Economía Informa, 41-52.

Dussel Peters, E. (2011). La Manufactura en México: Condiciones y Propuestas en en Corto, Mediano y Largo Plazo. Nueva política de industrialización. Vol. 7 de Análisis Estratégico para el Desarrollo. Juan Pablos Editor/Consejo Nacional Universitario, México.

Fox, M. S., & Smith, S. F. (1984, Vol.1 No. 1). ISIS A Knowlege Based System for Factory Scheduling. Expert Systems, 25-49.

Fox, M. S., Chionglo, J. F., & Fadel, F. G. (s.f.). A Common-Sense Model of the Enterprise. Toronto, Canada: Department of Industrial Engineering, University of Toronto.

Gen, M., & Cheng, R. (1997). Genetic Algorithms and Engineering Design. John Wiley & Sons, Inc.

113

Gigch, J. P. (2004). Teoria General de Sistemas. Mexico: Trillas.

Golden, B., Aiguier, M., & Krob, D. (2010). Complex Systems Architecture and Modelling. LIX – Ecole Polytechnique (France): Complex Systems Design & Management.

Gonçalves, J. F., Mendes, J. J., & Resende, M. G. (2002). A Hybrid Genetic Algorithm for the Job Shop Scheduling Problem. AT&T Labs Research Technical Report TD-5EAL6J.

Hernández Talonia, J. A. (2009). Políticas de Apoyo a la Internacionalización de las PYMES Mexicanas. Puebla, México: Universidad de las Américas Puebla.

Higgins, P. G. (1999). Job Shop Scheduling: Hybrid Intelligent Human-Computer Paradigm. University of Melbourne.

Hopgood, A. A. (2012). Intelligent Systems for Engineers and Scientists. Boca Ratón, FL: CRC Press.

ILOG. (2001). ILOG Optimization Suite: Delivering a Competitive Advantage - White Paper. France.

Jain, A. S., & Meeran, S. (1998). Deterministic Job-Shop Scheduling: Past, Present and Future. Dundee, Scotland: University of Dundee.

Jeff Kilbreth. (2007). Breakthroughs in Supply Chain Planning & Scheduling. USA.

Jones, A. T., Reeker, L. H., & Deshmukh, A. V. (2002). On Information and Performace of Complex Manufacturing Systems. National Institute of Standars and Technology, Gaithersburg.

Joshi, Y. V. (2000). Information Visibility And Its Effect On Supply Chain Dynamics. Massachusetts Institute of Technology.

Karaçali, Ö., & Demirci, H. İ. (2009). APPLICATION OF CHAOS THEORY TO DATA MODELLING METHOD BASED ON THE ALTERNATIVE SCENARIOS IN MANUFACTURING INFORMATION SYSTEMS. Technology, 12(2) 107-115 .

114

Laitila, E. (2009). Symbolic Analisys as a Basis for Program Comprehension. VDM.

Land, M. (2004). Workload control in job shops, grasping the tap. Netherlands: Labyrint Publications.

Lankford, R. (2001). Production Scheduling. En K. B. Zandin, Maynard's Industrial Engineering Handbook Fifth Edition. New York: McGraw-Hill.

Leitao, P., & Restivo, F. (2008). A Holonic Approach to Dynamic Manufacturing Scheduling. Porto, Portugal: Robotics and Computer-Integrated Manufacturing 24, 625–634.

Leung, J. Y.-T. (2004). Handbook of Scheduling. Boca Raton, FL: Champman & Hall/CRC.

Lim, Y. (2011). A Holonic Workforce Sizing Model Based on Demand Trend and Disturbance Rate in Job-shop Production. Penang, Malaysia: European Journal of Business and Management Vol 3, No.4.

Lin, S.-C., Goodman, E. D., & Punch, W. F. (s.f.). A Genetic Algorithm Approach to Dynamic Job Shop Scheduling Problems. Michigan State University: Genetic Algorithms Research and Applications Group.

M. Hult, G. T., Ketchen, D. J., & Slater, S. F. (2004). INFORMATION PROCESSING, KNOWLEDGE DEVELOPMENT, AND STRATEGIC SUPPLY CHAIN PERFORMANCE. Academy of Management Journal, Vol. 47, No. 2, 241–253.

Madureira, A., Ramos, C., & Silva, S. d. (2001). A Genetic Approach for Dynamic Job-Shop Scheduling Problems. Porto, Portugal: 4th Metaheuristics International Conference.

Matta, A., Semeraro, Q., & Tolio, T. (2005). A framework for long term capacity decisions in AMSs. En A. Matta, & Q. Semeraro, Design of Advanced Manufacturing Systems. Milan, Italy: Springer.

Medsker, C., & Song, I.-Y. (1993). ProloGA: A Prolog Implementation of Genetic Algorithm. IEEE. Drexel University.

115

Metta, H. (2008). Adaptive, Multi-Objective Job Shop Scheduling Using Genetic Algorithms. University of Kentucky Master's Theses.

Monroy Olivares, C. (2002). Curvas Fractales. Mexico, D.F.: Alfaomega.

Montana, D., Hussain, T., & Vidaver, G. (s.f.). A Genetic-Algorithm-Based Reconfigurable Scheduler. Cambridge MA: BBN Technologies.

Moujahid, A., Inza, I., & Larrañaga, P. (s.f.). Algoritmos Genéticos. País Vasco: Universidad del País Vasco - Departamento de Ciencias de la Computación e Inteligencia Artificial.

Patil, R., & Lawrence, S. (2003). Setting Due Dates and Scheduling Jobs to Maximize Customer Satisfaction and Profits. Boulder, CO: University of Colorado.

Pinedo, M. L. (2009). Planning and Scheduling in Manufacturing and Services. New York: Springer.

Planet Together. (s.f.). Automated Scheduling Methods: Advanced Planning and Scheduling Techniques. Recuperado el Junio de 2013, de http://planettogether.com/white-papers/

Ponniah, P. (2007). Data Modeling Fundamentals: A Practical Guide for IT Professionals. John Wiley & Sons.

Preiss, K. (2001). The Future Directions of Industrial Enterprises. En K. B. Zandin, Maynard's Industrial Engineering Handbook Fifth Edition. New York: McGraw-Hill.

Rajpathak, D., Motta, E., Zdrahal, Z., & Roy, R. (2006). A Generic Library of Problem Solving Methods for Scheduling Applications. IEEE Transactions on Knowledge and Data Engineering, 815 - 828.

Rodríguez-Angeles, A., Morales Díaz, A., & Sánchez, A. (s.f.). Dynamic Analysis and Control of Supply Chain Systems. México: Centro de Investigación y de Estudios Avanzados Depto. Ing. Electrica, Unidad Saltillo & Unidad Guadalajara. Obtenido de www.intechweb.org

116

Rzevski, G. (1995). Artificial Intelligence in Engineering: Past, Present and Future. AIENG95. Udine, Italy.

Sauer, J. (1998). A Multi-Site Scheduling System. Oldenburg, Germany: Artificial Intelligence and Manufaturing - Research Planning Workshop.

Scholz-Reiter, B., Freitag, M., & Schmieder, A. (s.f.). A Dinamical Approach for Modeling and Control of Production Systems. Bremen, Germany: Department of Planning and Control of Production Systems, University of Bremen.

Scholz-Reiter, B., Toonen, C., & Lappe, D. (Issue 4, Volume 5, 2011). Impact of Market Dynamics on Performance and Internal Dynamics of Job-Shop Systems. INTERNATIONAL JOURNAL OF SYSTEMS APPLICATIONS, ENGINEERING & DEVELOPMENT.

Singh Raheja, A., Bhupal Reddy, K. R., & Subramaniam, V. (2003). A Generic Mechanism for Repairing Job Shop Schedules. Innovation in Manufacturing Systems and Technology (IMST) .

Sink, D. S., Poirier, D. F., & Smith, G. L. (2001). Full Potential Utilization of Industrial and Systems Engineering in Organizations. En G. Salvendy, Handbook of Industrial Engineering, Technology and Operations Management. Indiana: John Wiley & Sons.

Smit, G. H. (1992). A Hierarchical Control Architecture for Job-Shop Manufacturing Systems. Nederlands: Technische Universiteit Eindhoven.

Sterman, J. D. (2000). Business Dynamics: Systems Thinking and Modeling for a Complex World. McGraw-Hill.

Tse, Y. K., Chan, T. M., & Lie, R. H. (2009). Solving Complex Logistics Problems with Multi-Artificial Intelligent System. International Journal of Engineering Business Management, Vol. 1, No. 1, pp. 37-48.

Velaga, P. (2012). Optisol. Recuperado el Junio de 2013, de http://optisol.biz/

117

Weise, T. (26 de 06 de 2009). Global Optimization Algorithms - Theory and Application. Recuperado el 13 de 02 de 2014, de http://www.it-weise.de: http://www.it-weise.de

Wissensmanagement Forum. (2004). An Illustrated Guide to Knowledge Management. Recuperado el Mayo de 2013, de http://wm-forum.org/