Source: http://docplayer.es/8088322-Algoritmos-evolutivos-avanzados.html
Timestamp: 2018-03-24 22:13:44+00:00

Document:
ALGORITMOS EVOLUTIVOS AVANZADOS - PDF
Download "ALGORITMOS EVOLUTIVOS AVANZADOS"
Vicenta Castellanos Castro
1 UNIVERSIDAD NACIONAL DE LA PLATA FACULTAD DE INFORMÁTICA TESIS PARA LA MAESTRÍA EN AUTOMATIZACIÓN DE OFICINAS ALGORITMOS EVOLUTIVOS AVANZADOS COMO SOPORTE DEL PROCESO PRODUCTIVO Realizada por la Lic. Carolina Salto Dirigida por el Dr. Raúl Gallard Octubre de 2000
2 RESUMEN El mundo de los negocios actuales está sufriendo muchos cambios, ya no basta con generar reportes y realizar una correcta planificación. Se deben incluir herramientas de optimización para crear soluciones de negocios adaptativas como por ejemplo para límites de créditos, precios y descuentos, y scheduling. Esto redundará en beneficios para la empresa ya sea en la disponibilidad de tecnología de avanzada como también en la disminución de los costos asociados a la toma de decisiones óptimas, también incrementará la capacidad para aprender de experiencias previas y para adaptar a cambios en el mercado. En estos últimos años se han realizados muchos estudios de investigación respecto de la aplicación de las técnicas de computación evolutiva para la solución de problemas de scheduling. La principal ventaja de las técnicas evolutivas es su habilidad para proveer buenas soluciones a problemas extremadamente complejos usando tiempos razonables. En este trabajo se hace un revisión de las clases y características de algoritmos evolutivos así como también algunas mejoras introducidas a los mismos. Entre estas últimas se pueden incluir múltiple crossover, multiplicidad de padres y prevención de incesto. Asimismo se presentan algunas variantes de algoritmos evolutivos planteados para la resolución de un problema particular de scheduling como lo es el problema de job shop scheduling.
3 TABLA DE CONTENIDOS INTRODUCCION...1 CAPÍTULO I SISTEMAS DE INFORMACIÓN INTRODUCCIÓN CLASES DE SISTEMAS TIPOS DE SISTEMAS DE INFORMACIÓN Sistemas de Procesamiento de Transacciones Sistemas de Automatización de Oficinas y de Knowledge Work Sistemas de Información Gerencial Sistemas de Soporte de Decisión Sistemas de Soporte Ejecutivo SISTEMA DE PLANIFICACIÓN DE OPERACIONES...10 CAPÍTULO II SCHEDULING INTRODUCCIÓN NOTACIÓN Descripción de un Problema de Scheduling Campo α Campo β Campo γ Ejemplos CLASES DE SCHEDULES JERARQUÍA DE COMPLEJIDAD JOB SHOP SCHEDULING...21 CAPÍTULO III ALGORITMOS EVOLUTIVOS INTRODUCCIÓN ALGORITMOS GENÉTICOS ESTRATEGIAS EVOLUTIVAS PROGRAMACIÓN EVOLUTIVA...30
4 3.5.PROGRAMACIÓN GENÉTICA OTRAS TÉCNICAS DIFERENCIAS ENTRE LAS DISTINTAS TÉCNICAS DE EA...35 CAPÍTULO IV ALGORITMOS GENÉTICOS INTRODUCCIÓN Vocabulario GA Representación Codificación Binaria Codificación Real Codificación con Permutaciones Otras Representaciones Crossover Mutación Exploración y Explotación Búsqueda Basada en la Población Meta-heurísticas CODIFICACIÓN DEL PROBLEMA CONVERGENCIA PREMATURA SELECCIÓN Espacio de Muestreo Espacio de Muestreo Regular Espacio de Muestreo Extendido Mecanismos de Muestreo Muestreos Estocásticos Muestreos Determinísticos Muestreos Mixtos Probabilidad de Selección Presión Selectiva OTROS COMPONENTES Elección de la Población Inicial Criterios de Terminación LIMITACIONES DE LOS GAS E INCONVENIENTES ASOCIADOS El Problema de la Debilidad de los GAs El Problema de la Diversidad en los GAs...59 CAPÍTULO V ALGORITMOS EVOLUTIVOS AVANZADOS INTRODUCCIÓN ALGORITMOS EVOLUTIVOS AVANZADOS CON MÚLTIPLES PADRES Y MÚLTIPLES CROSSOVERS61
5 5.2.1.Evolución de la Opción Multiparent Multiple Crossover per Couple Multiple Crossovers Per Mating Action Multiple Crossovers on Multiple Parents (MCMP) Operadores Genéticos Multi-Parent Técnicas de Gene-Scanning Uniform Scanning Ocurrence Based Scanning Fitness Based Scanning Adaptando el Scanning a Diferentes Tipos de Representaciones Adjacency Based Crossover Crossover Diagonal ALGORITMOS EVOLUTIVOS AVANZADOS CON PREVENCIÓN DE INCESTO Opción de Eshelman y Schaffer Prevención de Incesto Extendida EA AVANZADOS CON MULTIPLICIDAD Y PREVENCIÓN DE INCESTO...77 CAPÍTULO VI MÉTODOS DE SOLUCIÓN PARA JOB SHOP SCHEDULING HEURÍSTICAS CONVENCIONALES Heurísticas de Prioridad de Despacho Heurística de Despacho Aleatorio ALGORITMOS EVOLUTIVOS PARA EL PROBLEMA DE JOB SHOP SCHEDULING Representación Representaciones Directas Representación Basada en operaciones Representación Basada en jobs Representación Basada en la Relación entre Pares de Jobs Representación Basada en Tiempos de Finalización Representation Random Key Representaciones Indirectas Representación Basada en Listas de Preferencia Representación Basada en Reglas de Prioridad Representación Basada en Grafos Disjunctivos Representación Basada en Máquinas CAPÍTULO VII ALGORITMOS EVOLUTIVOS AVANZADOS PARA JOB SHOP SCHEDULING INTRODUCCIÓN OPCIÓN CON MULTIPLICIDAD Y PREVENCIÓN DE INCESTO Descripción del Experimento Resultados...99
6 7.2.3.Conclusiones OPCIÓN CON REGLAS DE PRIORIDAD DE DESPACHO Descripción del Experimento Análisis de los Resultados Conclusiones OPCIÓN CON EL MÉTODO DE PARCIAL EXCHANGE Descripción del Experimento Análisis de los Resultados Conclusiones CONCLUSIONES...119
7 LISTA DE FIGURAS Figura 1.1 Organización de la arquitectura de los sistemas de información...4 Figura 1.2 Tipos de sistemas de información...5 Figura 1.3 Tipos de sistemas de información....7 Figura 1.4 Aplicaciones típicas de TPS...8 Figura 2.1 Schedule activo Figura 2.2 Schedule semiactivo...19 Figura 2.3 Relación entre las clases de schedules Figura 2.4 Jerarquía de complejidad de problemas de scheduling determinístico...20 Figura 3.1 Estructura de un algoritmo evolutivo...23 Figura 3.2 Una FSM para un chequeo de paridad Figura 3.3 Expresión e 3 : un hijo de e 1 y e 2. La línea con trazo cortado incluye área intercambiadas durante la operación de crossover...33 Figura 4.1 Estructura general de un algoritmo genético...38 Figura 4.2 Aplicación del crossover de 5 puntos...42 Figura 4.3 Espacio codificado y espacio de soluciones...46 Figura 4.4 Factibilidad y legalidad...46 Figura 4.6 Procedimiento del Stochasti Universal Sampling...52 Figura 5.1 Esquema del proceso de selección de parejas Figura 5.2 Procedimiento de gene-scanning...70 Figura 5.3 OSX sobre un patrón de bits Figura 5.4 Ejemplo del crossover OB-ABC...73 Figura 5.5 Crossover diagonal para tres padres...74 Figura 5.6 Procedimiento para EIP...76 Figura 5.7 Modificación del procedimiento EIP para incorporar MCMP...78 Figura 6.1 Operaciones de los jobs y correspondencia con las máquinas Figura 6.2 El orden de procesamiento de los jobs sobre la máquina Figura 6.3 Un schedule factible...85 Figura 6.4 Deducir un schedule desde una codificación basada en jobs Figura 6.5 Deducir un schedule desde una codificación basada en listas de preferencias...90 Figura 6.6 Deduciendo un schedule desde una codificación basada en reglas de prioridad...92 Figura 6.7 Grafo disjunctivo para el problema de tres máquinas y tres jobs...93 Figura 6.8 Representación basada en grafos disjunctivos Figura 7.1 Procedimiento que une MCMP y EIP...98 Figura 7.2 Mínimo ebest bajo MCMP y MCMPIP Figura 7.3 ebest promedio bajo MCMP y MCMPIP Figura 7.4 Mínimo epop bajo MCMP y MCMPIP...104
8 Figura 7.5 epop promedio bajo MCMP y MCMPIP Figura 7.6 Modificación del proceso de generación de la población inicial Figura 7.7 Mínimo ebest bajo PR-EA y PR-SEM-EA Figura 7.8 ebest promedio bajo PR-EA y PR-Sem-EA Figura 7.9 Mínimo epop bajo PR-EA y PR-SEM-EA Figura 7.10 epop promedio bajo PR-EA y PR-SEM-EA Figura 7.11 gbest promedio para todas las instancias Figura 7.12 ebest para PR-EA y OR-EA Figura 7.13 ebest promedio para PR-EA y OR-EA Figura 7.14 epop para PR-EA y OR-EA Figura 7.15 epop promedio para PR-EA y OR-EA Figura 7.16 Gbest para PR-EA y OR-EA...118
9 LISTA DE TABLAS Tabla 4.1 Explicación de los términos de algoritmos genéticos...39 Tabla 6.1 Ejemplo de un problema de tres jobs y tres máquinas...85 Tabla 6.2 Ejemplo de un problema de tres jobs y tres máquinas...87 Tabla 7.1 Correspondencia entre cromosomas y permutaciones...97 Tabla 7.2 Instancias Tabla 7.3 Valores de makespan de los mejores individuos hallados bajo cada método para diferentes combinaciones de (n 1, n 2 ) para la instancia la Tabla 7.4 Valores de ebest hallados bajo cada método para diferentes combinaciones de (n 1, n 2 ) para la instancia la Tabla 7.5 Valores de epop hallados bajo cada método para diferentes combinaciones de (n 1, n 2 ) para la instancia la Tabla 7.6 Instancias Tabla 7.7 Cantidad de veces que cada algoritmo encuentra los óptimos de cada instancia Tabla 7.8 Cantidad de veces que cada algoritmo encuentra los óptimos de cada instancia...115
10 INTRODUCCION La década de los 90 se puede caracterizar como la década de la integración corporativa de los sistemas de información computarizados. Casi todas las empresas, independientemente de su rubro de actividad o tamaño han experimentado en los últimos años una asimilación significativa de tecnología de información tendiente al soporte de los procesos administrativos y operacionales. Probablemente, la próxima década tendrá como elemento distintivo la incorporación de sistemas avanzados para el soporte de decisiones que maximicen la utilidad de la enorme inversión realizada en recursos de tecnología de información pero que bajo cualquier indicador de productividad se encuentran hoy poco explotados. Un área particularmente estratégica cuya importancia es ampliamente reconocida es el uso de herramientas computacionales avanzadas para la planificación, programación y control de la producción. Estudios realizados por consultoras internacionales resaltan a estas herramientas como diferenciadores claves de competitividad. Este trabajo está basado en el análisis de técnicas evolutivas justamente para aportar soluciones al problema de programación de operaciones, el cual se puede traducir en la resolución de un problema de scheduling. Este último está relacionado con la asignación de recursos limitados a tareas sobre el tiempo; es un proceso de toma de decisiones que tiene por propósito la optimización de uno o más objetivos. El problema de scheduling existe en la mayoría de los sistemas de producción y manufactura como también en la mayoría de los ambientes de procesamiento de información. Existe también en los ambientes de transporte y distribución y en otros tipos de industrias de servicio. El problema de job shop scheduling clásico es uno de los problemas de scheduling más conocidos. Informalmente, se puede describir por un conjunto de jobs y un conjunto de máquinas. Cada job consiste de una cadena de operaciones, las cuales necesitan ser procesadas durante un período de tiempo ininterrumpido sobre una determinada máquina. Cada máquina puede procesar una operación a la vez. Un schedule es la asignación de operaciones en intervalos de tiempo sobre las máquinas. El asunto es hallar un schedule de largo mínimo. El problema de job shop scheduling es uno de los problemas de optimización más duros. Debido a su intratabilidad los procedimientos heurísticos son una buena 1
11 alternativa. La mayoría de los procedimientos heurísticos convencionales usan reglas de prioridad, es decir, una regla para elegir una operación desde un subconjunto de operaciones aún no asignadas. En los recientes años, se ha puesto énfasis especial en usar búsqueda local para resolver el problema de job shop scheduling debido al desarrollo de métodos de búsqueda local probabilísticos tal como simulated annealing [139], tabu search [31] y algoritmos evolutivos [10, 23, 26, 32, 54, 68, 70, 85, 108, 113, 122, 129, 136, 148, 138]. En este trabajo se pretende mostrar que los algoritmos evolutivos son una eficiente herramienta de optimización a disposición de los administradores de una organización en cuanto a la resolución del problema de asignación de recursos se trate. Por consiguiente, se dan las características de los algoritmos evolutivos y se introduce el problema de scheduling. En la parte final del trabajo se presentan resultados experimentales para respaldar tal situación, se realiza un análisis de los resultados obtenidos por tres algoritmos evolutivos distintos para la resolución de este problema. El trabajo de tesis se organiza como se describe a continuación. En el capítulo 1 se provee una introducción respecto de los sistemas de información dentro de una organización, la clasificación de los mismos y además se pone en contexto a los sistemas de scheduling o de programación de operaciones. En el capítulo 2 se tratan los conceptos preliminares de scheduling: la notación y una revisión de los ambientes de máquinas. El capítulo 3 versa sobre los aspectos teóricos y operativos de los algoritmos evolutivos. Se describen diferentes variantes de algoritmos evolutivos tal como algoritmos genéticos (GA), estrategias evolutivas (ES), programación evolutiva (EP) y programación genética (GP). En el capítulo 4 se introducen los conceptos básicos de los algoritmos genéticos, se describe la estructura de los mismos a los efectos de reflejar las prácticas actuales de los métodos de algoritmos genéticos. En el capítulo 5 se hace una revisión de opciones desarrolladas para la recombinación y matting, tal como multiplicidad de padres y crossovers, y prevención de incesto. El capítulo 6 se concentra sobre los esquemas de representaciones propuestos para el job shop scheduling. En el capítulo 7 se presentan algunas opciones evolutivas desarrolladas para la resolución del problema de job shop scheduling, incluyendo descripciones de experimentos y análisis de resultados. La última sección de este trabajo presenta las conclusiones y trabajos futuros. 2
12 Capítulo I SISTEMAS DE INFORMACIÓN 1.1. INTRODUCCIÓN Los sistemas de información están creando muchas oportunidades para las empresas, pero son también fuentes de nuevos problemas y de cambios [94]. Aunque la tecnología de información está avanzando a pasos agigantados, no hay nada predeterminado o mecánico respecto de la construcción y uso de los sistemas de información. Hay cinco cambios claves a los cuales los gerentes de una empresa deben hacer frente: 1. estrategia del negocio: cómo usar la información para diseñar organizaciones que sean competitivas y eficientes? 2. globalización: cómo las firmas pueden entender los requerimientos de sistemas y de negocio de un ambiente económico global? El rápido crecimiento en el mercado internacional y el surgimiento de una economía global requieren sistemas de información que puedan soportar tanto la producción como la venta de productos en diferentes países. 3. arquitectura de la información: cómo una organización puede desarrollar una arquitectura de información que soporte sus objetivos de negocio? Los sistemas nuevos actuales frecuentemente requieren rediseñar la organización y desarrollar una nueva arquitectura de sistemas de información. Estos sistemas son la forma particular en que la tecnología de la información entra en una organización para cumplir los objetivos o funciones seleccionadas. La figura 1.1 (extraída de [94]) muestra los principales elementos de la arquitectura de los sistemas de información que los administradores necesitarán desarrollar. Aunque los sistemas base de computación los operan típicamente el personal técnico, la administración general deberá decidir cómo asignar los recursos de hardware, software y telecomunicaciones. El resto de los sistemas base de computación son los sistemas de aplicación de empresas. Como los gerentes y empleados directamente
13 SISTEMAS DE INFORMACIÓN Coordinación Sistemas Estratégicos Aplicaciones de Negocio Funcional Sistemas Administrativos Sistemas de Conocimiento Ventas y Marketing Producción Finanzas Contabilidad Recursos Humanos Sistemas Operativos Sistemas base de computación Hardware Software Archivos y Datos Telecomunicaciones Figura 1.1 Organización de la arquitectura de los sistemas de información interactúan con esos sistemas, es de especial interés para el éxito de la organización que los sistemas reúnan los requerimientos funcionales y de negocio. 4. Inversión en sistemas de información: cómo las organizaciones pueden determinar el valor de negocio de los sistemas de información? 5. Responsabilidad y control: cómo las organizaciones pueden diseñar sistemas que la gente pueda controlar y entender? Cómo las organizaciones aseguran que sus sistemas de información se usan de una manera ética y social? Los sistemas de información son esenciales para el negocio, el gobierno y la vida diaria, por lo tanto las organizaciones deben poner especial cuidado en asegurar su exactitud, confiabilidad y seguridad. Los sistemas de información se deben diseñar para que funcionen acorde con la intención inicial y además para que los responsables puedan controlar el proceso CLASES DE SISTEMAS Dada la existencia de distintos intereses, especialidades y niveles dentro de una organización, hay diferentes clases de sistemas. Un único sistema puede proveer toda la 4
14 SISTEMAS DE INFORMACIÓN información que una organización necesita. La figura 1.2 [94] presenta una forma de describir las clases de sistemas halladas en una organización. La organización está dividida en los siguientes niveles: 9 Estratégico. 9 Administrativo. 9 Del conocimiento. 9 Operativo. Estos a su vez, se dividen en áreas funcionales tales como marketing, manufactura, finanzas, contabilidad y recursos humanos. Los sistemas se construyen para servir esos diferentes intereses de la organización. Se pueden reconocer cuatro tipos principales de sistemas de información que sirven a los diferentes niveles de la organización: sistemas a nivel operativo, sistemas a nivel de conocimiento, sistemas a nivel administrativo y sistemas a nivel estratégico. Los sistemas a nivel operativo son sistemas que monitorean las actividades y transacciones elementales de la organización, tal como ventas, ingresos, depósitos, decisiones para asignar créditos, y el flujo de materiales en una empresa. Ejemplos de Nivel Estratégico Nivel Administrativo Nivel de Conocimiento Nivel Operativo Ventas y Marketing Producción Finanzas Contaduría Recursos Humanos Figura 1.2 Tipos de sistemas de información 5
15 SISTEMAS DE INFORMACIÓN sistemas a nivel operativo incluyen sistemas para registrar los depósitos bancarios desde un cajero automático o sistemas para registrar el número de horas trabajadas cada día por los empleados en un piso de una fábrica. El propósito de los sistemas a nivel de conocimiento es ayudar a la empresa a que integre nuevo conocimiento y a que la organización pueda controlar el flujo del trabajo. Los sistemas a nivel administrativo se diseñan para servir al monitoreo, al control, a la toma de decisiones, y a las actividades administrativas de los gerentes intermedios. Los sistemas a nivel administrativo típicamente proveen reportes periódicos más que información instantánea de las operaciones. Los sistemas a nivel estratégico ayudan a los gerentes senior a hacer frente y a dirigir asuntos estratégicos, tanto de la firma como del ambiente externo. Dan soporte a las actividades de planificación a largo plazo. Los sistemas de información se pueden diferenciar por la especialidad funcional. Las funciones más importantes de una organización, tales como ventas y marketing, manufactura, finanzas, contabilidad, y recursos humanos, cuentan con sus propios sistemas de información. En organizaciones grandes, las subfunciones de cada una de esas funciones principales tienen a su vez sus propios sistemas de información. Por ejemplo, la función de manufactura podría tener sistemas para el manejo de inventario, control de procesos, planificación de operaciones, mantenimiento de planta, ingeniería asistida por computadoras, y planificación de requerimientos de material TIPOS DE SISTEMAS DE INFORMACIÓN Diferentes organizaciones tienen diferentes sistemas de información para las mismas áreas funcionales. Como no hay dos organizaciones con exactamente los mismos objetivos, estructuras o intereses, los sistemas de información deben ser hechos a medida para atacar las características únicas de cada una. La figura 1.3 [94] muestra los tipos específicos de sistemas de información que corresponden a cada nivel de la organización. La organización tiene sistemas de soporte ejecutivo (ESS) al nivel estratégico; sistemas de información administrativo (MIS) y sistemas de soporte de decisión al nivel administrativo; sistemas de knowledge work (KWS) y sistemas de automatización de oficinas (OAS) al nivel de conocimiento; y sistemas de procesamiento de transacciones (TPS) al nivel operativo. Los sistemas 6
16 SISTEMAS DE INFORMACIÓN ESS Pronóstico de tendencias de ventas a largo plazo Sistemas a Nivel Estratégico Plan de Pronóstico Planificación operaciones de presu- de a largo puesto a ganancias plazo largo plazo Planificación de mano de obra MIS DSS Administración de ventas Análisis de las regiones de ventas Control de inventario Planificación de la producción Sistemas a Nivel Gerencial Presupuesto anual Análisis de costos Análisis de inversión de capital Análisis precio/renta bilidad Análisis de reubicación Análisis de costos contractuales KWS OAS Sistemas a Nivel de Conocimiento Puestos de trabajo ingenieriles Puestos de trabajo gráficos Puestos de trabajo gerenciales Procesamiento de palabras Producción de imágenes documentales (document imaging) Calendarios electrónicos TPS Seguimiento de órdenes Procesamiento de órdenes Ventas y Marketing Sistemas a Nivel Operativo Control de máquinas Seguridades del Comercio Payroll (nómina) Indemnizaciones Scheduling de Cuentas a pagar Entrenamiento y producción desarrollo Control de Administración Cuentas por Mantención de movimiento de de caja cobrar los registros de material empleados Manufactura Finanzas Contabilidad Recursos Humanos Figura 1.3 Tipos de sistemas de información. correspondientes a cada nivel a su vez se especializan para servir a cada una de las principales áreas funcionales. Así, los sistemas típicos hallados en las organizaciones se diseñan para asistir a empleados o gerentes de cada nivel y en las funciones de ventas y marketing, producción, finanzas, contabilidad, y recursos humanos SISTEMAS DE PROCESAMIENTO DE TRANSACCIONES Los Sistemas de Procesamiento de Transacciones (TPS) son los sistemas básicos que sirven al nivel operativo de la organización. Un sistema de procesamiento de transacciones es un sistema computarizado que realiza y registra las transacciones de diarias necesarias para el que dirige la empresa. 7
17 SISTEMAS DE INFORMACIÓN A nivel operativo, las tareas, los recursos y los objetivos están predefinidos y altamente estructurados. En la figura 1.4 [94] se identifican algunas aplicaciones típicas de un TPS. La figura muestra que hay cinco categorías funcionales de TPS: ventas/marketing, manufactura/producción, finanzas/contabilidad, recursos humanos, y otros tipos de TPS que son únicos a una industria particular. Toda organización tiene cinco clases de TPS (aún en los sistemas manuales). Los sistemas de procesamiento de transacciones son frecuentemente tan centrales para una empresa que una falla por unas pocas horas puede producir mucho daño a una empresa. Los gerentes necesitan TPS para monitorear el estado de las operaciones internas y las relaciones de la firma con el ambiente externo. Los TPS son los productores de información para los otros tipos de sistemas. Tipos de TPS Sistemas de Venta/Marketing Sistemas de Manufactura/Producción Sistemas de Finanzas/Contabilidad Sistemas de Recursos Humanos Otros tipos (ej. universidad) Principales funciones del sistema Administración de ventas Búsqueda de mercados Promoción Precios Nuevos productos Scheduling Compras Embarque/recepción Ingeniería Operaciones Presupuesto Contabilidad Facturación Costos Registros de personal Beneficios Indemnizaciones Relaciones laborales Entrenamiento Admisión Registro de grados Registro de cursos Alumnado Principales sistemas de aplicación Sistemas de información de órdenes de ventas Sistemas de búsqueda de mercados Sistemas de precios Sistemas de planificación de recursos Sistema de planificación de operaciones Sistemas de control de órdenes de compra Sistemas ingenieriles Sistemas de control de calidad Sistemas de contabilidad Cuentas por cobrar y por pagar Presupuestos Sistemas de administración de fondos Payroll Registros de empleados Sistemas de beneficios Sistemas de ascensos del personal Sistemas de registración Sistema de inscripción de alumnos Sistemas de control de clasificación de currículum Sistema de beneficios de alumnos Figura 1.4 Aplicaciones típicas de TPS. 8
18 SISTEMAS DE INFORMACIÓN SISTEMAS DE AUTOMATIZACIÓN DE OFICINAS Y DE KNOWLEDGE WORK Los sistemas de Automatización de Oficinas (OAS) y de Knowledge Work (KWS) proveen la información necesaria al nivel de conocimiento de la organización. Los KWS, tal como estaciones de trabajo de diseño ingenieril o científico, promueven la creación de nuevo conocimiento y asegura que nuevo conocimiento y experiencia técnica se integre propiamente en la empresa. Los OAS son aplicaciones de tecnología de información diseñadas para incrementar la productividad de los encargados del procesamiento de la información, al soportar las actividades de coordinación y de comunicación de la oficina típica SISTEMAS DE INFORMACIÓN GERENCIAL Los Sistemas de Información Gerencial (MIS) se aplican en el nivel gerencial de las organizaciones, brindando reportes y, en algunos casos, con accesos on-line a los registros de performance actual de la organización y a los registros históricos. Típicamente están orientados a eventos internos, no a ambientales ni a externos. Primariamente MIS sirve para las funciones de planeamiento, control y toma de decisiones del nivel gerencial. Generalmente, estos sistemas dependen de los sistemas de procesamiento de transacciones subyacentes. Las características de estos sistemas son las siguientes: 9 Soportan decisiones estructuradas a los niveles de control administrativo y operativo. Sin embargo, son útiles para los gerentes senior para propósitos de planificación. 9 Son orientados al control y reporte. Son diseñados para generar reportes sobre operaciones existentes y para realizar el control diario de las operaciones. 9 Utilizan datos corporativos existentes y flujos de datos. 9 Tienen poca capacidad analítica. 9 Ayudan generalmente a la toma de decisiones usando datos pasados y presentes. 9 Son relativamente poco flexibles. 9 Tienen una orientación interna más que externa. 9
19 SISTEMAS DE SOPORTE DE DECISIÓN SISTEMAS DE INFORMACIÓN Los Sistemas de Soporte de Decisión (DSS) ayudan al nivel gerencial de la organización. Los DSS ayudan a los gerentes a tomar decisiones que son semiestructuradas, únicas o que cambian rápidamente, y que no es posible especificarla de ante mano. Las características de los DSS son las siguientes: 9 Ofrece a los usuarios flexibilidad, adaptabilidad y rápida respuesta. 9 Opera con poca asistencia desde los profesionales de la computación. 9 Provee soporte para decisiones y problemas cuyas soluciones no pueden ser especificadas en forma prematura. 9 Usa análisis de datos y herramientas de modelado sofisticados SISTEMAS DE SOPORTE EJECUTIVO Los gerentes senior usan una categoría de sistemas de información llamada Sistemas de Soporte Ejecutivo (ESS). Estos sirven al nivel estratégico de la organización. Permiten tomar decisiones no estructuras y crear ambientes de comunicaciones y computación generalizados. Se diseñan para incorporar datos de eventos externos tales como nuevas leyes de impuestos o competidores, pero también muestran información resumida desde MIS y DSS internos. Filtran, compactan y siguen el curso de datos críticos, poniendo énfasis en la reducción de tiempo y esfuerzo requeridos para brindar información útil a ejecutivos SISTEMA DE PLANIFICACIÓN DE OPERACIONES El scheduling tiene lugar en una amplia gama de actividades. Se caracteriza por tener que definir de qué forma se lleva a cabo un conjunto de tareas que requieren la utilización óptima de recursos, generalmente compartidos y limitados en cantidad y/o disponibilidad, en un determinado período de tiempo, generalmente de corta longitud. Ejemplos típicos de este tipo de problemas son los de programación de la producción en las industrias de manufactura o de procesos batch, los de asignación de aviones a las distintas puertas de una terminal aérea, o de trenes a los andenes de una terminal ferroviaria, asignación y secuenciación de tareas de cómputos en una computadora compartida o a multiprocesador, secuencias de impresión en una impresora, asignación 10
20 SISTEMAS DE INFORMACIÓN de clases a las aulas en una Universidad, de asignación de cuadrillas a tareas de reparación en empresas eléctrica o telefónica, de programación de las actividades de una flota de transporte dedicada a tareas de distribución/recolección de productos, etc. El problema de scheduling involucra la asignación temporal de órdenes de trabajo a un conjunto de recursos, tratando de alcanzar ciertas metas u objetivos, cumplimiento de fechas/horas pactados, maximizar el uso de recursos, y de satisfacer todas las restricciones que pudieran plantearse en relación a como y cuando se deben utilizar los recursos. Este problema es sumamente complejo y de naturaleza combinatoria. Su solución da lugar a la definición de un programa o agenda de trabajo, e implica la evaluación implícita de un número muy elevado de alternativas y la satisfacción de múltiples restricciones de diversas índoles. Una característica común en muchos de esos problemas es que no se conocen algoritmos que aporten soluciones eficientes para la resolución de los mismos en forma óptima empleando tiempo polinomial. Este trabajo de tesis está enfocado a proveer una herramienta aplicable en un sistema de planificación de operaciones (scheduling) para un sistema de manufactura/producción, categoría funcional de un TPS. 11
21 Capítulo II SCHEDULING 2.1. INTRODUCCIÓN El scheduling es una tarea extremadamente difícil con una importante necesidad de cálculo [21]. Los problemas de scheduling se pueden identificar en distintas áreas de aplicación. Diversos ítems están sujetos a scheduling, tal como operaciones de producción en una industria de manufactura, procesamiento computacional en un sistema operativo, movimiento de camiones en transporte, etc. La gran importancia práctica convierte al scheduling en un área activa de investigación. Los problemas de scheduling son problemas de optimización combinatoria. La función del scheduling es la asignación de recursos limitados a tareas a lo largo del tiempo. Tiene como finalidad la optimización de uno o más objetivos. Los recursos y las tareas pueden tomar muchas formas. Los recursos pueden ser máquinas en un taller, pistas en un aeropuerto, ladrillos en una construcción, unidades de procesamiento en un ambiente computacional, etc. Como tareas se pueden tener operaciones de un proceso de producción, despegues y aterrizajes en un aeropuerto, etapas de un proyecto de construcción, ejecuciones de un programa de computación, etc. Cada tarea puede tener diferentes niveles de prioridad, tiempos de posibles inicios, etc. Los objetivos pueden tomar varias formas: uno posible es minimizar los tiempos de finalización de la última tarea, otro minimizar el número de tareas luego de una fecha de entrega acordada, etc. Los problemas de scheduling en la práctica poseen estructuras de problemas más complejas, pero en situaciones reales pueden ser relevantes diferentes restricciones, tal como planes de procesamiento alternativos para la fabricación de un producto, estructuras de producción especializadas, etc. El scheduling puede ser un problema difícil desde el punto de vista técnico como de implementación [115]. El tipo de dificultades encontradas en los aspectos técnicos son similares a las encontradas en otras ramas de optimización combinatoria y modelado
22 SCHEDULING estocástico. Las dificultades encontradas desde el punto de vista de la implementación son de distintas clases y están relacionadas al modelado de problemas de scheduling de mundo real y la recuperación de información. Analizar un problema de scheduling y desarrollar un procedimiento para tratar con el problema es sólo una parte. El procedimiento tiene que estar embebido en un sistema que habilite la aplicación del scheduler. El sistema de scheduling se tiene que incorporar en el sistema de información de la empresa u organización, lo cual puede ser una tarea considerable NOTACIÓN En todos los problemas de scheduling considerados, el número de máquinas es finito. El número de jobs se identifica con n y el número de máquinas con m. Usualmente, el subíndice j hace referencia a un job, mientras el subíndice i, a una máquina. Si un job necesita varios pasos de procesamiento u operaciones, entonces el par (i,j) indica la operación (paso de procesamiento) del job j sobre la máquina i. Con cada job j se asocian los siguientes datos: 9 Tiempo de procesamiento (p ij ). Representa el tiempo de procesamiento del job j sobre la máquina i. El subíndice i se omite si el tiempo de procesamiento del job j no depende de la máquina o si el job j sólo se procesa en una determinada máquina. 9 Fecha de release (r j ). La fecha de release r j del job j es la fecha de listo. Es el tiempo en el que el job j arriba al sistema, es decir, es el tiempo más temprano en el cual se puede iniciar su procesamiento. 9 Fecha de finalización (d j ). La fecha de finalización d j del job j representa el committed shipping (fecha de terminación, embarque o entrega), la fecha en la cual se promete el job al cliente. Se permite la finalización de un job después de su fecha de terminación, pero se penaliza. Cuando se debe cumplir con la fecha de terminación esto se denomina como un deadline. 9 Peso (w j ). El peso w j del job j es básicamente un factor de prioridad, indicando la importancia relativa del job j con respecto a otros jobs del sistema. Por ejemplo, este peso puede representar el costo actual de mantener el job en el sistema. 13
23 SCHEDULING DESCRIPCIÓN DE UN PROBLEMA DE SCHEDULING Un problema de scheduling se describe por α β γ. El campo α describe el ambiente de máquina y contiene una única entrada. El campo β provee detalles de las características de procesamiento y restricciones; puede tener una única entrada, múltiples entradas o ninguna entrada. El campo γ identifica el objetivo a ser minimizado y usualmente contiene una única entrada CAMPO α Los posibles ambientes de máquina que se pueden especificar en el campo α son [95]: 9 Máquina única (1). El caso de máquina única es el ambiente de máquina más simple y es el caso especial de todos los demás ambientes de máquina. 9 Máquinas idénticas en paralelo (P m ). Hay m máquinas idénticas en paralelo. El job j necesita una única operación y se puede procesar en cualquiera de las m máquinas o sobre alguna de un conjunto especificado. Si no se permite el procesamiento del job j sobre cualquier máquina o sobre sólo alguna perteneciente a un subconjunto dado (el subconjunto M j ), entonces en el campo β aparece la entrada M j. 9 Máquinas en paralelo con diferentes velocidades (Q m ). Hay m máquinas en paralelo con diferentes velocidades; v i indica la velocidad de la máquina i. El tiempo de permanencia p ij del job j en la máquina i es p j /v i, asumiendo que sólo se procesa en la máquina i. Este ambiente también se lo conoce como máquinas uniformes. Si todas las máquinas tienen la misma velocidad, es decir v i = 1 para todo i y p ij =p j, entonces este ambiente es idéntico al previo. 9 Máquinas no relacionadas en paralelo (R m ). Este ambiente es una generalización del anterior. Hay m máquinas diferentes en paralelo. La máquina i puede procesar el job j a una velocidad v ij. El tiempo de permanencia p ij del job j sobre la máquina i es p j /v ij, asumiendo que sólo se procesa sobre la máquina i. Si la velocidad de las máquinas son independientes de los jobs, es decir v i = v ij para todo i y j, entonces el ambiente es idéntico al anterior. 9 Flow shop (Fm). Hay m máquinas en serie, cada job se procesa en cada una de ellas. Todos los jobs tienen la misma trayectoria, es decir, primero se procesan sobre la máquina 1, luego sobre la máquina 2, y así sucesivamente. Cuando un job deja de 14
24 SCHEDULING usar una máquina se agrega a la cola de la próxima máquina. Usualmente, se asume que todas las colas trabajan bajo la disciplina primero en entrar primero en salir (FIFO). Si se aplica la disciplina FIFO, al flow shop se lo denomina como flow shop con permutación y el campo β incluye la entrada prmu. 9 Flexible flow shop (FFs). Es una generalización del flow shop y del ambiente de máquinas paralelas. En lugar de m máquinas en serie, hay s etapas en serie con una determinada cantidad de máquinas en paralelo en cada una de ellas. Cada job se procesa primero en la etapa 1, luego en la etapa 2, y así siguiendo. Cada etapa funciona como un banco de máquinas paralelas; en cada etapa el job j necesita sólo una máquina y cualquier máquina puede procesar cualquier job. Las colas entre etapas distintas trabajan bajo una disciplina FIFO. 9 Open Shop (Om). Hay m máquinas y n jobs. Cada job se debe procesar en cada una de las m máquinas. Sin embargo, algunas de esos tiempos de procesamiento puede ser cero. No hay restricción en relación al ruteo de cada job a través del ambiente de máquinas. El scheduler determina la ruta de cada job, diferentes jobs pueden tener distintas rutas. 9 Job shop (Jm). Hay m máquinas y n jobs, cada job tiene predeterminada su ruta. Se hace una distinción entre job shops donde cada job puede visitar alguna máquina al menos una vez y aquellos donde un job puede visitar una máquina más de una vez. En el último caso, el campo β contiene la entrada recrc para indicar recirculación CAMPO β Las restricciones de procesamiento especificadas en el campo β pueden incluir múltiples entradas. Las entradas posibles son: 9 Release time (r j ). Si este símbolo está presente en el campo β, el job j no puede empezar su procesamiento antes de su release date r j. Si r j no aparece en el campo β, el procesamiento del job j puede comenzar en cualquier momento. En contraste con el release dates, los tiempos de entrega no se especifican en este campo. El tipo de función objetivo da información suficiente si se consideran tiempos de entrega o no. 9 Tiempos de setup dependientes de la secuencia (s jk ). s jk representa el tiempo de setup dependiente de la secuencia de los jobs j y k; s 0k indica el tiempo de setup para el job k si es el primero en la secuencia y s j0 hace referencia al tiempo de 15
25 SCHEDULING clean-up luego del job j si éste es el último de la secuencia (tanto s 0k como s j0 pueden ser 0). Si el tiempo de setup entre los jobs j y k depende de la máquina, entonces se debe incluir el subíndice i, es decir s ijk. Si s 0k no aparece en el campo β, se asume que todos los tiempos de setup son cero o independientes de la secuencia, en cuyo caso se pueden simplemente incorporar a los tiempos de procesamiento. 9 Restricciones de precedencia (prec). Las restricciones de precedencia pueden aparecer en un ambiente de máquina única o máquinas paralelas, exigiendo que uno o más jobs tengan que finalizar antes que otros comiencen su procesamiento. Hay varias formas de restricciones de precedencia. Si cada job tiene al menos un antecesor y un sucesor, las restricciones se denominan cadenas. Si cada job tiene al menos un sucesor, las restricciones se denominan intree. Si cada job tiene al menos un antecesor, las restricciones se denominan outtree. Si en el campo β no aparece prec, los jobs no están sujetos a restricciones de precedencia. 9 Permutaciones (prmu). Una restricción que puede aparecer en el ambiente flow shop es que la cola de cada máquina trabaje respetando la disciplina FIFO. Esto implica que el orden (o permutación) en la cual se asignan los jobs a la primer máquina se debe respetar en todas las demás. 9 Recirculación (recrc). Puede ocurrir en job shop, cuando un job puede visitar más de una vez una máquina CAMPO γ El objetivo es minimizar una función de tiempos de finalización de los jobs, los cuales dependen del schedule. El tiempo de finalización de la operación de un job j sobre la máquina i se denota como C ij. El tiempo en el que el job j sale del sistema se indica como C j. La función objetivo puede ser una función de tiempos de entrega. La lateness de un job j se define como: L j =C j -d j, la cual es positiva cuando el job j finaliza tarde y negativo cuando se completa en forma temprana. La tardiness de un job j se define como: T j =max(c j -d j,0) = max(l j,0) La diferencia entre tardiness y lateness es que la primera nunca es negativa. La unidad de penalidad del job j se define como: 16
26 U j 1 si C j > d j = 0 en otro caso SCHEDULING Lateness, tardiness y unidad de penalidad son las tres funciones de penalidad básicas relacionadas con tiempos de entrega. Los siguientes son algunos ejemplos de funciones objetivos a ser minimizadas: 9 Makespan (C max ). Se define como el max(c 1, C 2,, C n ). Es equivalente al tiempo de finalización del último job en dejar el sistema. Un makespan mínimo usualmente implica una alta utilización de las máquinas. 9 Lateness máxima (L max ). Se define como el max(l 1, L 2,, L n ). Mide la peor violación de los tiempos de entrega EJEMPLOS Los siguientes ejemplos ilustran la notación: 9 Jm C max, denota un problema de job shop con m máquinas. No hay recirculación, de modo que cada job puede visitar sólo una una vez cada máquina. El objetivo es minimizar el makespan. 9 Pm prec L max, denota un ambiente de máquinas paralelas idénticas con restricciones de precedencia entre los jobs y optimización del lateness máximo CLASES DE SCHEDULES Se puede hacer una distinción entre una secuencia, un schedule, y una política de scheduling. Una secuencia es usualmente una permutación de un conjunto de jobs o un orden en el cual se deben procesar los jobs sobre una determinada máquina. Un schedule es una asignación de jobs a un ambiente de máquinas más complicados. El concepto de políticas de scheduling se usa frecuente en ambientes estocásticos: una política prescribe una acción apropiada para alguno de los estados en el que el sistema puede estar. En modelos determinísticos es importante las secuencias o schedules. Hay distintas clases de schedules [72, 66]: nondelay, activo y semiactivo. Un schedule factible es nondelay si ninguna máquina permanece ociosa mientras exista una operación disponible para su procesamiento. Exigiendo que un schedule sea nondelay es equivalente a prohibir unforced idleness. 17
27 SCHEDULING Ciertos procedimientos y algoritmos heurísticos se basan sobre la generación de schedules con propiedades especiales. Los schedules activos y semiactivos son importantes para la generación del schedule en procedimientos algorítmicos. Un schedule factible es activo si no se puede adelantar la finalización de una operación por alteración de la secuencia de procesamiento sin que se retrase otra operación. Un schedule nondelay es un schedule activo pero no es cierto lo inverso. El siguiente ejemplo describe un schedule que es activo pero no nondelay. Ejemplo. Sea un problema de job shop con tres máquinas y dos jobs. El job 1 necesita una unidad de tiempo sobre la máquina 1 y tres sobre la máquina 2. El job 2 necesita dos unidades sobre la máquina 3 y tres sobre la máquina 2. La máquina 2 es la última en procesar ambos jobs. Sea el schedule que procesa el job 2 sobre la máquina 2 antes que el job 1, (figura 2.1). Este schedule es activo; invirtiendo la secuencia de los dos procesos sobre la máquina 2 se pospone el procesamiento del job 2. Sin embargo, el schedule no es un schedule nondelay. La máquina 2 permanece ociosa hasta el tiempo 2, mientras que hay un job disponible para procesamiento en el tiempo 1. Un schedule factible se llama semiactivo si ninguna operación puede finalizar tempranamente sin alterar la secuencia de procesamiento de alguna de las máquinas. Ejemplo. Sea un problema de job shop con tres máquinas y dos jobs [115]. Las rutas de los dos jobs son las mismas que en el ejemplo previo. El tiempo de procesamiento del job 1 sobre la máquina 1 y la máquina 2 es el mismo. El tiempo de procesamiento del job 2 sobre la máquina 2 y la máquina 3 es de dos. Sea el schedule bajo el cual el job 2 se procesa sobre la máquina 2 antes que el job1 (figura 2.2). Esto implica que el job 2 comienza su procesamiento sobre la máquina 2 en el tiempo dos y el job 1 comienza su procesamiento sobre la máquina 2 en el tiempo cuatro. Este schedule es semiactivo. Sin embargo, es no activo: el job 1 se puede procesar sobre la máquina 2 sin retrasar el procesamiento del job 2 sobre la misma máquina. m 1 j 1 m 2 j 2 j 1 m 3 j t Figura 2.1 Schedule activo. 18
28 SCHEDULING m 1 j 1 m 2 j 2 j 1 m 3 j t Figura 2.2 Schedule semiactivo. semiactivo activo nondelay Figura 2.3 Relación entre las clases de schedules. Se puede construir un ejemplo de schedule que no es semiactivo. Por ejemplo, posponer el comienzo del procesamiento del job 1 sobre la máquina 2 por una unidad de tiempo, es decir, la máquina 2 permanece ociosa por una unidad de tiempo entre el procesamiento del job 2 y del 1. Este schedule es no semiactivo. La relación entre los distintos schedules se presenta en la figura 2.3. Un schedule óptimo está dentro del conjunto de schedules activos. Los schedules nondelay son más pequeños que los schedules activos, pero no hay garantía que el primero contenga el óptimo [18] JERARQUÍA DE COMPLEJIDAD Frecuentemente, un algoritmo para un problema de scheduling se puede aplicar a otros. Por ejemplo, 1 C j es un caso especial de 1 w j C j, y un procedimiento para 1 w j C j se puede usar para 1 C j [ 1 15]. En terminología de complejidad se dice que 1 C j se reduce a 1 w j C j y se indica como: 1 C j 1 w j C j Basándose en este concepto, se puede establecer una cadena de reducciones. Por ejemplo, 1 C j 1 w j C j P m w j C j Q m prec w j C j 19
29 SCHEDULING Hay varios problemas que no se pueden comparar entre sí. Por ejemplo, P m w j C j y J m C max Al comparar las complejidades de los diferentes problemas de scheduling, es de interés conocer cómo un cambio en un único elemento en la clasificación de un problema afecta su complejidad [117, 98, 93, 96]. En la figura 2.4, se muestra la jerarquía de complejidad de los problemas de scheduling determinístico [115]. Ha habido un gran desarrollado de investigación en scheduling determinístico para hallar un algoritmo eficaz que encuentre en tiempo polinomial una buena solución a los problemas de scheduling. Sin embargo, muchos problemas de scheduling no tienen algoritmos con tiempos polinomiales, por lo tanto esos problemas son problemas NPduros. R m Q m FF m J P m F m O m (a) ambiente de máquina. w j w j w j T j U j C j L max C max (b) funciones objetivo. Figura 2.4 Jerarquía de complejidad de problemas de scheduling determinístico. 20
30 SCHEDULING 2.5. JOB SHOP SCHEDULING Entre los ambientes de máquina presentados en la sección 2.1.1, este trabajo se enfoca en el problema de job shop scheduling clásico, el cual es uno de los problemas de scheduling más conocidos y el que con mayor frecuencia se encuentra dentro de un ambiente de producción. Se puede describir como sigue: hay m máquinas diferentes y n jobs diferentes a ser asignados. Cada job está compuesto por un conjunto de operaciones y el orden de las operaciones sobre las máquinas está preestablecido. Cada operación se caracteriza por la máquina requerida y el tiempo de procesamiento. Hay varias restricciones sobre jobs y máquinas: 9 Un job no puede visitar una misma máquina dos veces. 9 No hay restricciones de precedencia entre operaciones de distintos jobs. 9 Las operaciones no se pueden interrumpir. 9 Cada máquina puede procesar sólo un job a la vez. 9 No se especifican ni release times (fecha de job listo a ser procesado)ni due dates (fecha de entrega). El problema es determinar la secuencia de operaciones sobre las máquinas con el objetivo de minimizar el makespan, es decir, el tiempo necesario para completar todos los jobs. El problema de job shop scheduling es uno de los problemas de optimización más duros. Debido a su dificultad para abordarlos, los procedimientos heurísticos son una alternativa muy atractiva. Los procedimientos heurísticos convencionales usan reglas de prioridades, es decir, una regla para elegir una operación desde un subconjunto especificado de operaciones aún no planificadas. Una de las técnicas más usadas para resolver este tipo de problema es la de búsqueda local, tal como simulated annealing, tabu search y algoritmos evolutivos. En el capítulo 7 se presentan distintas alternativas de algoritmos evolutivos para obtener soluciones para el problema de job shop scheduling. 21

References: resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución