Lineas de Ensamble

download Lineas de Ensamble

of 71

description

Operaciones

Transcript of Lineas de Ensamble

  • INCAE 27064

    Programaci6n de Operaciones

    Esta nota fue tomada del libro Analisis de Ia Producci6n y las Operaciones, por S. Nahmias, Editorial CECSA, Capitulo 7, pp. 383-452.

    Reproducida en el INCAE para servir como base de discusi6n en Ia clase, mas que como ilustraci6n del manejo eficaz o ineficaz de una situaci6n administrativa. Alajuela, Costa Rica.

  • CAPiTULO 7 PROGRAMACI6N DE 0PERACIONES

    La programaci6n es un aspecto importante del control de operaciones, tanto en las indus-trias manufactureras como en las de servicio. Con el mayor enfasis en el tiempo hasta el mercado y el tiempo hasta el volumen, y tambien hacia la mejor satisfacci6n del cliente, la programaci6n eficiente cobrara importancia en la funci6n de operaciones en los afios venideros.

    En cierto sentido, mucho de lo que se ha explicado hasta ahora en este libro puede con-siderarse como un subconjunto de la programaci6n de la producci6n. La planeaci6n agre-gada, descrita en el capi'tulo 3, tiene por objeto la macroprogramacion de los niveles de rna-no de obra y los niveles de producci6n general para la empresas. E1 control detallado de inventarios descrito en los capftulos 4 y 5, concierne a los metodos de programaci6n de la producci6n a nivel de articulo individual, y Ia planeaci6n de requerimientos de materiales, explicada en el capitulo 6, suministra los calendarios de producci6n para articulos finales y subensambles en la estructura del producto.

    Hay muchas clases de problemas de programaci6n que puede encarar una firma. En una lista parcial se pueden mencionar

    1. Programaci6n tipo taller. Esta programaci6n, que con mas frecuencia se llama control del piso de maquinas, piso de fabricaci6n o pi so de producci6n, es el programa de actividades productivas que transforrna las entradas (un conjunto de requerimientos) en salidas (productos que cumplan con esos requerimientos). Gran parte de este capitulo se ocupani en asuntos de secuenciaci6n en el piso de maquinas, yen Ia proxima secci6n se mencionara mas acerca de este problema.

    2. Programaci6n de personal. Es un problema importante en las industrias manufactureras y de servicios. Aunque se puede consjderar a Ia programaci6n de turnos en el piso de fabricaci6n como una de las funciones del control de ese piso, Ia programaci6n del personal es un problema rnucho mayor. Un ejemplo de ello es la programaci6n de los profesionistas de la salud en hospitales y en otras instalaciones de salud. Otro ejemplo de problema de programaci6n de personal es la determinacion del cumplimiento de pi cos de demanda con turnos de tiempo extra, tumos nocturnes o subcontrataci6n.

    3. Programaci6n de instalaciones. Este problema tiene irnportancia especial cuando las instalaciones son cuello de botella. Un ejemplo es la programaci6n de las salas de operaciones en los hospitales. A medida que aumenta la necesidad de cuidados a Ia salud, algunos hospitales y organizaciones afines encuentran que sus instalaciones se saturan. Un problema semejante se presenta en los colegios y universidades, cuando aumentan las inscripciones fuera de toda proporci6n con respecto al tamaiio de las instalaciones ffsicas.

  • 384 CAPITULO SIETE / PROGRAMACI6N DE OPERACIONES

    4. Programaci6n de vehiculos. Las ernpresas manufactureras deben distribuir sus productos en forma econ6mica y puntual. Algunas operaciones de servicio, como los sistemas de taxis por telefono, implican recoger y entregar bienes y/o personas. La determinacion de Ia ruta de vehfculos es un problema que se presenta en muchos contextos. Asuntos como programar el equipo barrenieves, las entregas postales y bancarias, y los embarques a clientes con diversos requerimientos en distintos lugares, son algunos ejemplos. En la secci6n 10 de este capitulo se describe la programaci6n de vehiculos.

    5. Programaci6n de vendedores. Para empresas con sistemas justa a tiempo (JIT), Ia programaci6n de las entregas por parte de los vendedores es un asunto logfstico importante. Se debe coordinar la compra con todo e] sistema de entrega de producto para asegurar que los sistemas JIT de producci6n funcionen con eficiencia. Vollman et al. (1992, pag. 191) describen la aplicaci6n de la programaci6n de vendedores al sistema JIT en Steelcase. (JIT se describi6 en los capitulos 1 y 6 de cste libra.)

    6. Programaci6n de proyectos. Un proyecto se puede descornponer en un conjunto de tareas interrelacionadas. Aunque algunas se pueden efectuar en forma simultanea, muchas no pueden iniciarse sino hasta que otras hay an terminado. Los proyectos complejos pueden implicar miles de tareas individuales que deben coordinarse para que el proyecto se termine a tiempo y dentro del presupuesto. La programaci6n de un proyecto es un componente importante de la funci6n de planeaci6n, que detallaremos en el siguiente capitulo.

    7. Programaci6n dinamica comparada con programaci6n estatica. La mayor parte de la teoria de la programacion que repasaremos en este capitulo considera que el problema de Ia programaci6n es estatica. Llegan muchos trabajos en forma simultanea, para ser procesados en un con junto de maquinas. En Ia pnktica, muchos problemas tienen naturaleza dim'imica, en el sentido que los trabajos Began en forma continua en el tiempo. Un ejemplo es el problema que encara un controlador de trafico aereo, que debe programar las pistas para los aviones que llegan. El problema es dinamico porque los aviones llegan al azar, y las pistas se liberan y se comprometen al azar a traves del tiempo. Los problemas de programaci6n dinamica, que se describen en la secci6n 9 de este capitulo, se analizan con las herramientas de la teorfa de colas, que se detalla en cl Suplemento 2, al final de este capitulo.

    La programaci6n es una funci6n compleja, pero de extrema importancia en las ope-raciones. El objetivo de este capftulo es dar allector una idea de los resultados que pue-den obtenerse con mode1os ana1fticos, y la forma de usar esos modelos para resolver ciertas clases de problemas de programaci6n. Nuestro enfoque sera principalmente ha-cia Ia programaci6n de tareas, pero consideraremos tambien varios otros problemas de programaci6n.

    7.1 Programaci6n de Ia produccion y Ia jerarquia de las decisiones de producci6n

    La programaci6n detallada de los diversos aspectos de la funci6n productiva es basica para controlar Ia producci6n. Podemos considerar que la funci6n de producci6n en una empresa es un proceso jen1rquico. En primer lugar, la empresa debe pronosticar Ia de-

  • PROGRAMAC!6N DE LA PRODUCC16N Y LA JERARQUIA DE LAS DECISIONES DE PRODUCCION 385

    ruanda de ventas agregadas durante cicrto horizonte predetcrminado de planeaci6n. Esos pron6sticos son la entrada o los datos para determinar los niveles de producci6n agrega-da y de fuerza de trabajo para el horizonte de planeaci6n. En el capftulo 3 se describie-ron las tecnicas de plancaci6n agregada. El plan de producci6n agregada debe traducirse a continuaci6n en el plan maestro de producci6n, que a su vez da como resultado metas especfficas de producci6n, por producto y par intervalo de tiempo.

    La planeaci6n de requerimientos de materiales, explicada con detalle en el capitulo 6, es un metodo para cumplir con las metas especfficas de producci6n de artfculos termi-nados para inventario, generadas por el plan maestro de producci6n. La planeaci6n de re-querimientos de materiales "explota" los niveles de producci6n obtenidos en el analisis del plan maestro y los retrocede en el tiempo para obtener las metas de producci6n en ca-da nivel de subensamble, en cada intervalo de tiempo. El resultado del an.cilisis de pla-neaci6n de requerimientos de rnateriales es Ia emisi6n programada de requisiciones para los productos finales, los subensarnbles y los componentes.

    Por ultimo, las requisiciones planeadas deben traducirse en un con junto de tareas con sus fechas de entrega asociadas. Este nivel de planeaci6n detallada da como resultado el programa del piso de producci6n. Como Ia planeaci6n de requerimientos de rnateriales, o algun otro sistema de programaci6n de totes, recomienda, por lo general, revisiones de las requisiciones planeadas, los programas del piso de producci6n cambian con frecuen-cia. La figura 7-1 muestra un esquema de lajerarquia de las decisiones de planeaci6n de producci6n.

    El control del piso de producci6n significa prograrnar al personal y al equipo en un centro de trabajo para cumplir con los plazas de entrega de un conjunto de labores. Con frecuencia se debe prograrnar el paso de los trabajos por las maquinas en el centro de tra-bajo, en orden o secuencia unicos. La figura 7-2 ilustra Ia distribuci6n de un sistema tipo taller tfpico.

    Pron6sticos de Ia demanda futuro

    Plan agregado

    l Plan maestro de producci6n

    Programaci6n de cantidades producidas por prGducto

    y por periodo

    ! Sistema de planeaci6n de requerimlentos de materiales

    Explosion del plan maestro para obtener los requerimientos de componentes y de produclo final

    ! Programa delallado del piso de producci6n

    Cumplir Ia especificaci6n de cantidades producidas con el sistema MRP

    FIGURA 7-1 Jerarqu(a de decisiones de produce ion

  • 386 CAPITULO SIEfE I PROGRAMACI6N DE OPERAC!ONES

    Centro de lrabajo 1

    66 Tornos

    0

    Centro de lrabajo 2

    000 Fresadoros

    FIGURA 7-2 Distribuci6n

    tfpica tipo taller

    0 g Cola de o trabajos 0

    Centro de trabajo 3 g Cola de o trabajos

    t LJLJLJLJ

    Rectificadoras g Cola de o trobojos 0

    t

    t

    Los trabajos y las maquinas se consideran indivisibles. Los trabajos deben esperar, formando filas o colas antes de ser procesados cuando las maquinas estan ocupadas. Es-to se llama producci6n discreta. La programaci6n de tareas en industrias de proceso con-tinuo, como la azucarera o la de refinaci6n del petr61eo, tiene un caracter muy distinto.

    Aunque hay muchos problemas asociadas con la programaci6n de operaciones, nues-tro interes en este capftulo se centrani en Ia secuenciaci6n de trabajos. Dado un conjunto de trabajos por procesarse en un conjunto de maquinas, el problema es c6mo secuenciar dichos trabajos para optimizar algun criteria especificado. La elecci6n adecuada de Ia re-" gla de secuenciaci6n puede originar espectaculares mejoras en la tasa de producci6n de las instalaciones.

    7.2 Caracteristicas importantes de los problemas de programaci6n de talleres

    Los asuntos importantes para determinar las reglas 6ptimas o aproximadamente 6ptimas de programaci6n son las siguientes:

    1. El patron de llegada de los trabajos. Con frecuencia se considera que el problema del taller es estatico, en el que se toma una "instantanea" del sistema en un punto en el tiempo y se procede a resolver el problema con base en el valor del estado actual. Sin embargo, la cantidad de trabajos que esperan ser procesados cambia constantemente. Por consiguiente, aunque muchos de los algoritmos de soluci6n que describiremos consideran que el problema es estatico, la mayor parte de los problemas practices de programaci6n de maquinas son de naturaleza dinamica.

    2. Cantidad y variedad de las mdquinas en el taller. Determinado taller puede tener propiedades unicas que podrian hacer diffcil la implementaci6n de una soluci6n que se obtuvo con un algoritmo de programaci6n. Por ejemplo, se supone que todas las maquinas de determinado tipo son identicas. Sin embargo, no siempre es asf. La capacidad de determinada maquina podrfa depender de varios factores, como la condici6n de la maquina o Ia destreza del operador. Dependiendo de la distribuci6n del taller y de la naturaleza de los trabajos, podrian existir restricciones que hicieran no factibles las soluciones obtenidas con un procedimiento general.

  • CARACfER(STICAS IMPORTANTES DE LOS PROBLEMAS DE PROGRAMACJ6N DE TALLERES 387

    3. Cantidad de trabajadores en el taller. Tanto el numero de trabajadores en el taller como la diversidad y cantidad de las maquinas determinan su capacidad. El planeamiento de Ia capacidad es un aspecto importante de Ia planeaci6n de la produccion. Hay muchos sistemas de control, como la CEP tradicional descrita en el capitulo 6, que no incorporan las consideraciones de capacidad en forma explfcita. Ademas, la capacidad es dinamica. Una descompostura en una maquina importante o Ia perdida de un empleado clave podrfa originar un cuello de botella y una reducci6n en la capacidad del taller.

    4. Patrones de flujo especiales. Las soluciones obtenidas con los algoritmos de programaci6n que se describen en este capitulo requieren que los trabajos se concluyan en determinado orden. Sin embargo, cada secuencia de trabajos de las maquinas da como resultado un patron de flujo de materiales por e1 sistema. Como los asuntos de manejo de materiales se consideran con frecuencia como separados de los asuntos de programaci6n, pueden originarse patrones de flujo no factibles.

    5. Evaluaci6n de reglas alternativas. La elecci6n del objetivo determinara la adecuacion y eficacia de una regia de secuenciacion. Es comun que mas de un objetivo sea importante, asi' que puede resultar imposible determinar una regia optima unica. Por ejemplo, se podrfa minirnizar el tiempo requerido para terminar todos los trabajos, pero tambien es posible limitar el retardo maximo de alpin trabajo en especial.

    Objetivos de la administraciOn del taller Una de las dificultades de Ia programaci6n es que puede haber muchos objetivos posi-bles. Las metas de distintas partes de Ia empresa no siempre son las mismas. Algunos de los objetivos mas comunes son:

    1. Cumplir con las fechas (o tiempos) de entrega. 2. Minimizar el inventario de trabajo en proceso. 3. Minimizar el tiempo promedio de flujo por el sistema. 4. Alcanzar una alta utilizaci6n de maquinas y trabajadores. Esto equivale a

    minimizar el tiempo inactivo de maquinas y trabajadores. 5. Suministrar informacion exacta del estado de los trabajos. 6. Reducir los tiempos de preparaci6n. 7. Mini mizar los costos de producci6n y de personal.

    L6gicamente es imposible optimizar los siete objetivos en forma simu1tanea. En par-ticular, los objetivos 1) y 3) ayudan a tener un alto nivel de servicio al cliente, y con los 2), 4), 6) y 7) se obtiene un gran nivel de eficiencia en la planta. Uno de los asuntos mas importantes que encaran las empresas modemas es determinar el compromise entre el costo y la calidad.

    Algunos de esos objetivos se contraponen. Si el objetivo principal es reducir el in-ventario de trabajo en proceso, como por ejemplo en los sistemas justa a tiempo de con-trol de inventarios descritos en el capitulo 6, es probable que aumente el tiempo inactivo de los trabajadores. A medida que el sistema se estrecha al reducir el inventario dentro y entre las operaciones de manufactura, las diferencias en capacidad de una parte a otra del sistema pueden forzar a que las operaciones mas rapidas deban esperar. Aunque los en-tusiastas de la filosof:fa jus to a tiempo no los recomiendan, los inventarios de amortigua-miento entre las operaciones puedcn rcducir mucho el tiempo inactivo.

  • 338 CAPITULO SIETE J PROGRAMACI6N DE OPERACIONES

    Por ejemplo, veamos el sencillo sistema formado por dos operaciones en serie, que se ilustra en la figura 7-3. Si el inventario del trabajo en proceso es cero, la capacidad del sis-tema en cualquier momenta esta gobernada por Ia menor de las capacidades en las dos operaciones. Si la operaci6n 1 se detiene temporalmente por una falla de Ia maquina, Ia operaci6n 2 tambien debe permanecer ociosa. Sin embargo, si hay un inventario de amor-tiguamiento entre las operaciones, Ia operaci6n 2 puede continuar basta que Ia operaci6n I sea repam.da o recalibrada.

    Encontrar la mezcla adecuada entre el inventario del trabajo en proceso y el tiempo ocioso de trabajadores equivale a elegir un punto de Ia curva de compromiso entre esos objetivos contrapuestos. Las curvas de intercambio, ode compromiso, se describieron en el capftulo 5, en el contexto del control de inventarios en multiniveles. Esa curva se apre-cia en la figura 7-4a. Un movimiento de uno a otro punta a lo largo de esa curva no ne-cesariamente implica que el sistema haya mejorado, sino que se aplican distintos factores de ponderaci6n a los dos objetivos. Un mejoramiento verdadero del sistema general in-dicarfa que toda Ia curva de intercambio sufre un desplazamiento hacia abajo, como el que se muestra en Ia figura 7-4b.

    7.3 Terminologia de Ia programaci6n tipo taller

    En general, un problema de programaci6n tipo taller es aquel en el que deben procesar-se n trabajos en m maquinas. La complejidad del problema depende de varios factores, como, por ejemplo, cmiles secuencias de trabajo son permisibles y que criterios de opti-mizaci6n deben elegirse. En esta secci6n se definiren algunos de los terminos que se usa-nin en este capftulo.

    1. Taller de flujo. En un taller de flujo cada uno de los n trabajos deben procesarse con las m maquinas en el mismo arden, y cada trabajo se procesa exactamente una vez en cada maquina. Este es el concepto que generalmente se tiene de una lfnea de ensamble.

    2. Taller. Un sistema tipo taller en general difiere de un taller de flujo en que no se supone que todos los trabajos requieran exaclamente m operaciones, y algunos trabajos pueden requerir varias operaciones en una maquina. Ademas, en un taller cada trabajo puede tener distinta secuenciaci6n de operaciones. Los problemas generales de un taller son extremadamente complicados. No existen algoritmos generalizados para resolver problemas generales de taller artesanal.

    3. Procesamiento en paralelo comparado con procesamiento secuencial. La mayorfa de los problemas que se explicanin implican el procesamiento secuencial. Esto significa que las m maquinas son diferentes, y que distintas operaciones se Bevan a cabo con diversas maquinas. En el procesamiento en paralelo se supone que las maquinas son identicas y que cualquier trabajo puede procesarse en cualquier maquina. Un ejemplo de procesamiento en paralelo se tiene en una central telef6nica, en donde las llamadas se procesan con el primer

    FIGURA 7-3 Proceso

    compuesto de dos operaciones

    en sene

    -----...&, -CJ--= Entrada Amo~tiguamiento Salida (traba]o en proceso)

  • TERMJNOLOGIA DE LA PROGRAMACI6N TIPO TALLER

    g 0 0 0 0 a. E (]) F

    ~ u 0 0 a. E Q) ;:=

    a)

    Trabajo en proceso

    b)

    Sistema mejorado

    Trabajo en proceso

    389

    FIGURA 7~4 Objetivos contrapuestos en la administraci6n de un taller

    servidor disponible. El procesamiento en paralelo se describe en el contexte de la programaci6n estocastica, en Ia secci6n 8.

    4. Tiempo de flujo. El tiempo de flujo del trabajo i es el tiempo que transcurre desde el inicio del primer trabajo en la primera maquina hasta la terminaci6n del trabajo i. En forma equivalente, es Ia cantidad de tiempo que pasa el trabajo i en el sistema. El tiempo promedio de flujo, que es una medida comun del desempefio del sistema, es el promedio aritmetico de los tiempos de flujo para los n trabajos.

    5. lntervalo de fabrication. El intervale de fabricaci6n es el tiempo de flujo del trabajo que se termina at final. Tambien es el tiempo requerido para terminar los n trabajos. Un objetivo comun en los problemas de secuenciaci6n de varias maquinas es minimizar el intervale de fabricaci6n.

    6. Tardanza y retardo. La tardanza es la diferencia positiva entre el tiempo de terminaci6n (tiempo de flujo) y la fecha de entrega de un trabajo. Un trabajo tardfo es aquel que se concluye despues de su tiempo de entrega. El retardo se refiere a Ia diferencia entre el tiempo de terminaci6n del trabajo y su fecha de entrega, y es diferente de la tardanza porque el retardo puede ser positive o negative. Tambien son objetivos comunes de la programaci6n la minimizaci6n de Ia tardanza promedio y la minimizaci6n de la maxima tardanza.

    7.4 Comparaci6n de reglas especlficas de secuenciaci6n Para comparar y evaluar las reglas de secuenciaci6n consideraremos al taller en un pun-to fijo en el tiempo. Esta secci6n se enfocara en una sola maquina. Supondremos que hay

  • 390 CAPlTULO SIETE / PROGRAMACJON DE OPERACIONES

    un con junto de trabajos que deben procesarse en Ia maquina, y que cada trabajo tiene aso-ciado un tiempo de procesamiento y una fecha de entrega. Compararemos el desempeiio de cuatro reglas de secuenciaci6n muy usadas en Ia practica. El objetivo de esta secci6n es ilustrar como esas reglas de secuenciaci6n afectan a varias mediciones del desempeiio del sistema.

    Compararemos las cuatro reglas de secuenciaci6n siguientes, identificadas por sus iniciales en ingles:

    1. FCFS, primero en llegar, primero en servir (first-come, first-served). Los trabajos se procesan en Ia secuencia en que entraron al taller.

    2. SPT, tiempo minima de procesamiento (shortest processing time). Los trabajos se ordenan en tiempos crecientes de procesamiento. Primero es el trabajo con el tiempo minima de procesamiento, en segundo Iugar el trabajo con el siguiente tiempo mas cotto de procesamiento, y asf sucesivamente.

    3. EDD,fecha m{nima de entrega (earliest due date). Los trabajos se ordenan de acuerdo con fechas de entrega crecientes. Primero es el trabajo con la fecha de entrega mas proxima, a continuaci6n el que tenga Ia siguiente fecha de entrega, y asf sucesivamente.

    4. CR, relaci6n critica (critical ratio). La programaci6n por Ia relaci6n crftica requiere considerar al cociente del tiempo de procesamiento de un trabajo dividido entre el tiempo rernanente hasta la fecha de entrega, de tal manera que se programa al trabajo con la mayor relaci6n crftica como el siguiente por procesar.

    Compararemos la eficiencia de esas cuatro reglas para un caso especffico basado en tiempo promedio de flujo, retraso promedio y cantidad de trabajos retrasados. El objetivo del ejernplo siguiente es ayudar a que el lector desarrolle su sentido de la meca.nica de programaci6n antes de presentar resultados formales.

    Ejemplo 7.1 Un centro de maquinado en un taller de una empresa manufacturera local tiene cinco trabajos por procesar en determinado punto en el tiempo. Los trabajos se representan con 1, 2, 3, 4 y 5, en el arden en que entraron al taller. Los tiempos respectivos de procesamiento y las fechas de entrega se registran en Ia tabla siguiente.

    Tiempo de Fecha de Trabajo No. p rocesamiento entrega

    1 11 61 2 29 45 3 31 31 4 1 33 5 2 32

    Primero en llegar, primero en servir Como se supone que los trabajos entraron al taller en el arden en que estan numerados, Ia programaci6n FCFS o FIFO significa que se programan en el orden 1, 2, 3, 4 y 5. El resultado de ello es

  • COMPARACION DE REGLAS ESPECiFICAS DE SECUENCJACION

    Secuencia

    1 2 3 4 5

    To tales

    Tiempo de terminaci6n Pecha de entrega

    11 61 40 45 71 31 72 33 74 32

    268

    Tiernpo promedio de flujo == 268/5 = 53.6, Tardanza promedio = 12115 = 24.2,

    Cantidad de trabajos tardios = 3.

    391

    Tardanza

    0 0

    40 39 42

    121

    La tardanza de un trabajo es igual a cero si este se termina antes de su fecha de en-trega, y es igual a la cantidad de dfas de retraso si se concluye despues de su fecha de vencimiento.

    Tiempo mfnimo de procesamiento En este caso, los trabajos se ordenan de acuerdo con tiempos crecientes de procesamiento.

    Trabajo No.

    4 5 1 2 3

    To tales

    Tiempo de Tiempo de Fecha de p rocesamiento terminaci6n entrega

    1 1 33 2 3 32

    11 14 61 29 43 45 31 74 31

    135

    Tiempo promedio de flujo = 135/5 = 27 .0, Tardanza promedio = 43/5 = 8.6, Cantidad de trabajos tard!os = l.

    Fecha minima de entrega

    Tardanza

    0 0 0 0

    43 43

    En este caso, los trabajos se terminan en el orden de sus fechas de entrega.

  • 392 CAPITULO SIETE / PROGRAMACI6N DE OPERACWNES

    Trahajo No.

    3 5 4 2 1

    Totales

    Tiempo de Tiempo de Pecha de procesamiento tenninaci6n entrega

    31 31 31 2 33 32 1 34 33

    29 63 45 11 74 61

    235

    Tiempo promedio de flujo = 235/5 = 4 7 .0, Tardanza promedio = 33/5 = 6.6, Cantidad de trabajos tardfos = 4.

    Tardanza

    0 1 1

    18 13

    33

    Programacion de relacion critica

    Despues de haber procesado cada trabajo se calcula

    Fecha de entrega- Tiempo actual Tiempo de procesamiento

    que se denomina relaci6n crftica, y se programa el siguientc trabajo para minimizar elva-lor de la relaci6n crftica. Lo que se pretende al programar con relaci6n crftica es dar un equilibria entre el tiempo minima de procesarniento (SPT), que solo tiene en cuenta tiem-pos, y la fecha minima de entrega (EDD), que unicamente considera fechas de entrega. La relaci6n se hace mas pequefia a medida que la fccha actual se aproxima a la fecha de entrega, y se da mayor prioridad a los trabajos que tcngan tiempos de procesamiento ma-yores. Una desventaja del metoda es que deben rccalcularse las relaciones criticas cada vez que se programa un trabajo.

    Es posible que el numerador sea negativo en algunos o todos los trabajos restantes. Cuando esto sucede significa que el trabajo esta atrasado, y supondremos que los traba-jos atrasados se programan automaticamente a continuaci6n. Si hay mas de un trabajo atrasado, todos estos se prograrnan en Ia secuencia SPT.

    Primero calcularemos las relaciones crfticas comenzando en el mornento t = 0.

    Tiempo actual: t = 0 Trabajo Tiempo de procesamiento Pecha de entrega Relaci6n crftica

    1 2 3 4 5

    ll 29 31

    1 2

    61 45 31 33 32

    61111(5.545) 45/29(1.552) 31/31(1.000) 3311 (33.00) 32/2 (16.00)

  • COMPARACI6N DE REGLAS ESPECfFICAS DE SECUENCIACION 393

    El valor mfnimo corresponde al trabajo 3, asf que primero se efecttia este trabajo. Co-mo requiere 31 unidades de tiempo para su proceso, debemos actualizar todas las rela-ciones criticas para determinar emil trabajo procesar a continuaci6n. Movemos e1 reloj al momenta t = 31 y recalculamos las relaciones criticas.

    Tiempo actual: t = 31 Fecha de entrega

    Trabajo Tiempo de procesamiento - Tiempo actual

    1 11 30 2 29 14 4 1 2 5 2 1

    Relacion critica

    30/11(2.727) 14/29(0.483) 2/1 (2.000) 1/2 (0.500)

    El minima es 0.483, que corresponde al trabajo 2. Por consiguiente, a continuaci6n se programa ei trabajo 2. Como el trabajo 2 tiene tiempo de procesamiento igual a 29, ac-tualizamos el reloj al tiempo t = 31 + 29 = 60.

    Tiempo actual: t = 60 Fecha de entrega

    Trahajo Tiempo de procesamiento - Tiempo actual

    l 11 1 4 1 ~7 5 2 -28

    Relaci6n cr[tica

    1/11 (.0909) -2711 < 0 -28/2 < 0

    Los trabajos 4 y 5 ya estan retrasados, asf que se les da prioridad y se programan. Como se programan en arden SPT, se ejecutan en el orden trabajo 4 y despues trabajo 5. Por ul-timo se programa el trabajo l .

    Resumen de los resultados de Ia programacion con relacion critica

    Trabajo Tiempo de procesamiento Tiempo de terminaci6n Tardanza

    3 31 31 0 2 29 60 15 4 1 61 28 5 2 63 31

    11 74 13 Totales 289 87

    Tiempo prornedio de flujo = 289/5 = 57 .8. Tardanza promedio = 87/5 = 17 .4. Cantidad de trabajos tardios = 4.

  • 394 CAPITULO SIETE / PROGRAMAC!ON DE OPI::'.RAC!ONES

    Resumiremos los resultados de esta secci6n para las cuatro reglas de programaci6n:

    Resumen de los resultados con cuatro reglas de programaci6n

    Regia

    FCFS SPT EDD CR

    Tiempo promedio deflujo

    53.6 27.0 47.0 57.8

    Tardanza promedio

    24.2 8.6 6.6

    17.4

    Cantidad de trabajos tardfos

    3 1 4 4

    7.5 Objetivos de Ia administraci6n del taller: un ejemplo Ejemplo 7.2 Un controlador de tntfico aereo tiene el problema de programar el aterrizaje de cinco aviones. Con base en la posicion yen los requerimientos de pista de cada avi6n, estima los siguientes tiempos de aterrizaje:

    Avian: 1

    Tiempo (en minutos). 26 2

    11

    3 19

    4

    16

    5 23

    S6lo un avi6n puede aterrizar en cualquier momento. El problema es esencialmente igual que el de programar cinco trabajos en una sola maquina, y los aviones corresponden a los trabajos, los tiempos de aterrizaje a los tiempos de procesamiento y la pista a la rnaquina.

    1. Dos objetivos razonables que expresa Ia informacion anterior serfan minimizar el tiempo total requerido para el aterrizaje de todos los aviones (es decir, el intervalo de fa-bricaci6n) o el tiempo promedio necesario para que los a vi ones aterricen ( el ticmpo pro-media de flujo). Es claro que el intervalo de fabricaci6n para cualquier secuencia es 95 minutos, la suma de los tiempos de aterrizaje. Sin embargo, como se vio en el ejemplo anterior, el tiempo promedio de flujo no es independicnte de la secuencia. Igual que en el ejemplo anterior, la regia de tiempo minima de proccsamiento minimiza el tiempo pro-media de flujo. En Ia siguiente secci6n se demuestra que la SPT es Ia regia optima de se-cuenciaci6n para minimizar el tiempo promedio de flujo para una maquina en general.

    2. Un objetivo alternative podrfa ser aterrizar con la mayor cantidad de gente en el menor tiempo posible. En este caso tambien se necesita conocer Ia cantidad de pasajeros de cada avi6n. Sup6ngase que los datos sean los siguientes:

    A vi on Tiempo de aterrizaje Cantidad de pasajeros

    1 26

    180

    2 3 1l 19 12 45

    4 5 16 23 75 252

  • PROBLEMAS PARA LAS SECCIONES 1 A 5 395

    En este caso, el objetivo adecuado podria ser minimizar el intervalo de fabricaci6n pon-derado, o Ia suma ponderada de los tiempos de terminaci6n, donde los factores de ponde-raci6n correspondan a la cantidad de pasajeros en cada avi6n. Observe que la funci6n objetivo se expresarfa ahora en las unidades pasajeros-minuto.

    3. Un asunto que todavfa no ha sido considerado es el tiempo, o la hora, en que se programa Ia llegada de cada avi6n. Sup6ngase que los datos son los siguientes:

    Avi6n 1 2 3 Tiernpo de atcrrizaje 26 11 19 Hora programada de lie gada 5:30 5:45 5:15

    4 5 16 23

    6:00 5:40

    Las reglas de secuenciaci6n que no tienen en cuenta las fechas de entrega podrfan dar muy malos resultados en lo que respecta a cumplir con las horas de llegada. Entre los po-sibles objetivos relacionados con las fechas de entrega se incluyen minimizar la tardan-za prornedio o minirnizar Ia maxima tardanza.

    4. Hasta ahora no se han tenido en cuenta las condiciones especiales que favorezcan a algunos aviones con respecto a otros. Suponga que e1 avi6n numero 4 tiene un nivel de combustible muy bajo. Esto probablemente haga que el avian 4 tenga Ia precedencia. Se pueden dar restricciones de prioridad tambien en otras formas: los aviones que estan pro-gramados para vue los continuos o los que llevan carga preciosa o perecedera tambien po~ drfan tener prioridad.

    El objetivo de esta secci6n fue demostrar las dificultades de elegir una funci6n obje-tivo para problemas de secuenciaci6n de trabajos. La secuencia optima es muy sensible a Ia elecci6n del objetivo, y el objetivo adecuado no siempre es obvio.

    Problemas para las secciones 1 a 5

    1 . Describa cada uno de los objetivos de Ia siguiente lista, y Ia relaci6n que tiene con el desempefio del taller. a. Reducir el inventario del trabajo en proceso. b. Obtener un alto nivel de servicio al cliente. c. Reducir el tiernpo ocioso de los trabajadores. d. Mejorar la eficiencia de Ia fcibrica.

    2. En el problema 1, z,por que los objetivos a) y c) son contrapuestos, y par que los objetivos b) y d) son contrapuestos?

    3. Defina los siguientcs terrninos: a. Taller de flujo. b. Taller. c. Procesamiento secuencial y procesamiento en para~elo. d. Intervalo de fabricaci6n. e. Tardanza.

    4. Cuatro carniones, el 1, 2, 3 y 4, estan esperando en un muelle de carga de la Compafifa XYZ, que s6lo tiene una plataforma de servicio. Esos carniones se identifican por el arden en que llegaron al muelle. Suponga que la hora actual es Ia 1:00. Los tiernpos requeridos para descargar cada cami6n y los de entrega de los bienes que contienen se ven a continuaci6n.

  • 396 CAPITULO SIETE f PROGRAMACI6N DE OPERACIONES

    Cami6n

    1 2 3 4

    Tiempo de descarga

    20 minutos 14 minutos 35 minutos 10 minutos

    Hora de entrega del material

    1:25 P.M. 1:45 P.M. 1:50 P.M. 1:30 P.M.

    Determine los programas que resultan con las reglas FCFS, SPT, EDDy CR. En cada caso, calcule el tiempo promedio de flujo, Ia tardanza promedio y Ia cantidad de trabajo tardfos.

    5. De ben programarse cinco trabajos para procesamiento por lotes en un sistema central de c6mputo. Los tiernpos de procesamiento y los tiernpos prometidos para cada uno son los siguientes:

    Trabajo Tiempo de procesamiento Hora prometida

    1 2 40 min. 2.5 hr.

    11:00 A.M. 2:00P.M.

    Suponga que Ia hora actual es 10:00 A.M.

    3 20 min. 2:00P.M.

    4 4 hr.

    1:00 P.M.

    5 1.5 hr.

    4:00P.M.

    a. Silos trabajos se programan de acuerdo con SPT, determine la tardanza de cada trabajo y Ia tardanza promedio de todos los trabajos.

    b. Repita el calculo de Ia parte a) con programaci6n EDD.

    7.6 Introducci6n a Ia teo ria de secuenciacion para una sola maquina

    Suponga que deben procesarse n trabajos en una maquina. Para cada trabajo i se definen las siguientes cantidades:

    ti =: tiempo de procesamiento para el trabajo i, di =: fecha de entrega del trabajo i,

    Wi ::::: Tiempo de espera para el trabajo i, Fi Tiempo de flujo para el trabajo i, Li = Retardo del trabajo i, Ti =: Tardanza del trabajo i, Ei = Anticipaci6n del trabajo i.

    El tiempo de procesamiento y la fecha de entrega son constantes que se agregan a la descripci6n de cada trabajo. El tiempo de espera para un trabajo es el intervalo que debe esperar el trabajo antes de que comience su procesamiento. Para los casas que considera-remos, tambien es Ia surna de los tiempos de procesamiento de todos los trabajos anterio-res. El tiempo de flujo es tan s6lo el tiempo de espera mas el tiempo de procesamiento del trabajo (F,. = w,. + t;). El tiempo de flujo del trabajo i y el tiempo de terminaci6n del traba-

  • lNTRODUCCH)N A LA TEORfA DE SECUENCIACI6N PARA UNA SOLA MAQUINA 397

    jo i son lo mismo. Definiremos al retardo del trabajo i como Li = F1 - d1, y supondremos que puede ser una cantidad positiva o negativa. La tardanza es la parte positiva del retar-do (Ti:::: ma.x[L1, 0]), y la anticipaci6n es la parte negativa del retardo (Ei = max[-L1, 0]).

    Otras cantidades relacionadas son Ia maxima tardanza, T max que se define con la formula

    y el tiempo promedio de flujo F', definido por la formula l n

    F'=n-IFi. i= I

    Como s6lo esta considen.indose una sola maquina, cada programa puede representar-se con una permutaci6n (un ordenamiento) de los enteros 1, 2, ... , n. Hay exactamente n! permutaciones (n! = n(n- 1) (2)(1)).

    Programaci6n con tiempo minimo de procesamiento

    Tenernos el siguiente resultado:

    Teorema 7.1

    La regia de programaci6n que minimiza el tiempo promedio de flujo F' es Ia del tiempo minimo de procesamiento (SPT).

    Es facil demostrar el teorema 7.1. Sea [l], [2], ... , [n] cualquier permutac16n de los enteros 1, 2, 3, ... , n. El tiempo de flujo del trabajo que esta programado en la posicion k se expresa por

    k

    F [k] = I t [i]' i = 1

    En consecuencia, el tiempo promedio de flujo se expresa con

    ~ 1 n l n k F = n I F[k] == n- I L t lw

    k=l k=l i=l

    El termino de la doble sumatoria puede escribirse en forma distinta. Al desarrollar esa doble sumatoria se obtiene

    k = 1: t[ I] k = 2: /[1] + t[2]

    k = n: t111 + t121 + ... + t[n]

    Al sumar por columnas y no por renglones, se puede reescribir F' en la forma nt111 + (n- l)t121 + ... + t 1111 ,

  • 398 CAPITULO SIETE f PROGRAMACI6N DE OPERACIONES

    que claramente se minimiza cuando se iguala

    t[l] ::5 t[2] $ . . . t[n]'

    que es exactamente la regia SPT de secuenciaci6n. Se tiene el siguiente coro lario al teorema 7 .11.

    Corolario 7.1 Las siguientes medidas son equivalentes:

    1. Tiempo promedio de flujo. 2. Tiempo promedio de espera. 3. Retardo promedio.

    En conjunto, el corolario 7.1 y el teorema 7.1 establecen que la regia SPT (tiempo minimo de procesamiento) minimiza al tiempo promedio de flujo, al tiempo promedio de espera y a1 retardo promedio, en la secuenciaci6n para una sola maquina.

    Programacion de fecha m{nima de entrega Si cl objctivo es minimizar el maximo retardo, los trabajos deben programarse de acuer-do con sus fechas de entrega. Esto es, dtll < d[21 < ... < d[111" No presentaremos una de-mostraci6n de este resultado. La pauta de la demostraci6n cs clegir algun programa que no ordcne los trabajos de acuerdo con sus fechas de entrega; esto implica que hay un va-lor de k tal que d[k] > d[k + IJ Se demuestra que intcrcambiando las posiciones de los tra-bajos k y k + 1 se reduce el maximo retardo.

    Minimizacion de Ia cantidad de trabajos tard{os Hay muchos casos en los que Ia penalizaci6n por tener un trabajo tardfo es igual, y no depende de cminto retraso tenga. Por ejemplo, cualquier demora en la terminaci6n de to-dos los trabajos de preparaci6n de un lanzamiento espacial harlan abortar ellanzamien-to, independientemente de la cantidad de retraso.

    Describiremos un algoritmo debido a Moore (1968) que minimiza la cantidad de tra-bajos tardfos para el problema de una sola maquina.

    Paso 1. Ordenar los trabajos de acuerdo con fechas pr6ximas de entrega, para obte-ner la soluci6n iniciaL Esto es, d[IJ < dm ::s ... :s d[nJ Paso 2. Determinar el primer trabajo tardio en la secuencia actual, digamos que sea el trabajo [i]. Si no cxiste alguno, ir al paso 4. Paso 3. Considerar los trabajos [ l ], [2], ... , [i]. Apartar el trabajo que tenga el tiem-po maximo de procesamiento. Regresar al paso 2. Paso 4. Fonnar una secuencia optima tomando la secuencia actual y agregandole los trabajos apartados. Los trabajos agregados a la secuencia actual pueden programar-se en cualquier orden, porque son trabajos tardios.

    Ejemplo 7.3 Un taller de maquinado procesa pedidos especiales de varios clientes. Una de las maquinas, una rectificadora, tiene seis trabajos pendientes. Los tiempos de procesarniento y tiempos de entrega comprometidos (en horas) de los seis trabajos son los siguientes.

  • lNTRODUCCI6N A LA TEORIA DE SECUENCIACI6N PARA UNA SOLA MAQUINA

    Trabajo Tiempo de entrega Tiempo de procesamiento

    1 15 10

    2 6 3

    3 9 4

    4 23

    8

    5 20 10

    6 30 6

    399

    El primer paso es programar los trabajos con la regia EDD (fecha minima de entrega).

    Trabajo Tiempo de entrega Tiempo de procesamiento Tiempo de terminaci6n

    2 6 3 3

    3 9 4 7

    1 15 10 17

    5 20 10 27

    4 23

    8 35

    6 30 6

    41

    Vemos que el primer trabajo tardfo es el trabajo 1, y que hay un total de seis trabajos tardfos. A continuaci6n pasamos a los trabajos 2, 3 y 1, y sacamos el trabajo con el tiempo maximo de procesamiento. Este trabajo es, claramente, el trabajo 1. En este punto, Ia nueva secuencia es

    Trabajo Tiernpo de entrcga Tiempo de procesamiento Tiempo de terminaci6n

    2 6 3 3

    3 9 4 7

    5 20 10 17

    4 23

    8 25

    6 30 6

    31

    El primer trabajo tardfo en la secuencia actual es ahora el trabajo 4. Definimos el arden 2, 3, 5 y 4, y sacamos al trabajo con el tiempo mas grande de procesamiento, que es el trabajo 5. La secuencia actual es ahora

    Trabajo Tiempo de entrega Tiempo de procesamiento Tiempo de terminaci6n

    2 6 3 3

    3 9 4 7

    4 23

    8 15

    6 30 6

    21

    Se ve que en esta etapa no hay trabajos tardfos. La secuencia optima es 2, 3, 4, 6, 5 y 1, o 2, 3, 4, 6, 1, 5. En cualquier caso Ia cantidad de trabajos tardios es exactamente 2.

    Restricciones de precedencia: el algoritmo de Lawler

    El algoritmo de Lawler (Lawler, 1973) es una tecnica poderosa para resolver una diver-sidad de problemas de programaci6n con restricciones. Se supone que la funci6n objeti-vo tiene la forma

    mfn max g;(Fi) ] :=; i :=; I!

  • 400 CAPITULO SIETE f PROGRAMACI6N DE OPERACIONES

    en donde gt es una funci6n no decreciente del tiempo de flujo F1 Ademas, el algoritmo maneja cualesquier restricciones de precedencia. Las restricciones de precedencia se pre-sen tan cuando ciertos trabajos se deben terminar antes que puedan comenzar otros; son muy comunes en los problemas de programaci6n. Algunos ejemplos de funciones gi que se pueden considerar song/F)= Fi- d1 = Li, que corresponde a minimizar el retardo ma-ximo, o g/F) = max(F1 - di, 0), que corresponde a minirnizar la maxima tardanza.

    El algoritmo E1 algoritmo de Lawler programa primero al trabajo que se debe termi-nar al ultimo, despues el que se debe terminar en penultimo Iugar, y asi sucesivamente. En cada etapa se determina el conjunto de trabajos que no se requiere antecedan a algun otro. Llarnemos V a este con junto. Entre el conjunto V se elige el trabajo k que satisface

    gk( 'l') = 1)1in (g;( 't)), t E V

    en donde r== '2:.7"" 1 t1 y corresponde al tiempo de procesamiento de la secuencia actual. Ahara se programa al ultimo el trabajo k. Se examinan los trabajos restantes y se de-

    termina de nuevo el conjunto de trabajos que no se requiere precedan a cualquier otro trabajo restante. Despues de programar el trabajo k, puede ser que cambie este conjunto. El valor de r se reduce en tk y se determinu ahara el trabajo que se programa en penul-timo Iugar. El proceso se continua hasta haber programado todos los trabajos. Observe que a medida que se programan los trabajos pueden relajarse algunas restricciones de precedencia, de modo que es probable que V cambie en cada iteraci6n.

    Ejemplo 7.4 Antonio D' Amato tiene un taller de hojalaterfa donde se hacen reparaciones y pintura automotriz. En un lunes por Ia manana tiene seis autom6viles en espera de reparaci6n. Tres de ellos (1, 2 y 3) son de una compafifa arrendadora y ha convenido terminarlos en el arden de las fechas que fueron ofrecidas. Los autom6viles 4, 5 y 6 son de una agencia que le ha pedido terminar el auto 4 primero, porque un cliente lo espera. Las restricciones de precedencia que resultan pueden representarse como dos redes desconectadas, como seve en la figura 7-5.

    Los tiempos requeridos (en dfas) para reparar cada coche y las fechas correspondientes prometidas son

    F'JGURA 7-5 Restricciones de

    precedencia para el

    ejemplo 7.4

  • lNTRODUCCI6N A LA TEORfA DE SECUENCIACI6N PARA UNA SOLA MAQUINA

    Trabajo Tiempo de procesamiento Tiempo de entrega

    1 2 3

    2 3 6

    3 4 9

    4 3 7

    5 2

    11

    6 1 7

    Determine como se debe programar la reparacion de los autom6viles para minimizar la maxima tardanza.

    Soluci6n

    401

    1. Primero se determina el trabajo por programar al ultimo, el sexto. Entre los candidatos para este lugar estan los trabajos que no son predecesores de otros trabajos. Son los trabajos 3, 5 y 6. El tiempo total de procesamiento de todos los trabajos es 2 + 3 + 4 + 3 + 2 + 1 = 15. (Es el valor actual de r.) Como el objetivo es minimizar el retardo maximo, comparamos los retardos de esos tres trabajos y elegimos el que tiene el valor mfnimo. A sf se obtiene mfn { 15 - 9, 15 - 11, 15 - 7} = mfn { 6, 4, 8} = 4, que corresponde al trabajo 5. Por consiguiente, el trabajo 5 se programa al ultimo (en 6 Iugar).

    2. A continuacion deterrninaremos el trabajo por programar en 5o Iugar. Los candidates son solo los trabajos 3 y 6. En este pun to, el valor de res 15 - 2 = 13. Por consiguiente, se determina rnfn { 13 - 9, 13 - 7} = min { 4, 6} = 4, que corresponde al trabajo 3. Par consiguiente, el trabajo 3 se programa en el 5 lugar.

    3. Se determina el trabajo por programar en 4 Iugar. Como el trabajo 3 ya no esta en la lista, el trabajo 2 podria serlo. El valor actual de r = 13 - 4 = 9. Por consiguiente, se comparan mfn { 9 - 6, 9 - 7} = mfn { 3, 2} = 2, que corresponde al trabajo 6. Se programa el trabajo 6 en el 4o. Iugar.

    4. Determinacion del trabajo por programar en 3er. Iugar. El trabajo 6 ya fue programado, de modo que ahara el trabajo 4 es candidate, junto con el trabajo 2, y r = 9- 1 = 8. Por consiguiente, se determina min { 8- 6, 8- 7} = mfn {2, l} = 1, que corresponde al trabajo 4.

    5. En este pun to se determinaria el trabajo por programar en 2o. lugar. Sin embargo, solo quedan los trabajos 1 y 2, que, par las restricciones de precedencia, deben programarse en el arden 1 - 2.

    Resumiendo los resultados anteriores, la secuencia optima para reparar los caches es 1-2-4-6-3-5.

    Para determinar el valor de la funci6n objetivo, que es Ia maxima tardanza, se calcula el tiempo de flujo para cada trabajo y se compara con la fecha de entrega.

    Trabajo Tiempo de procesamiento Tiempo de flujo Tiempo de entrega Tardanza

    l 2 2 3 0 2 3 5 6 0 4 3 8 7 1 6 1 9 7 2 3 4 13 9 4 5 2 15 11 4

  • 402 CAPITULO SJETE J PROGRAMACI6N DE OPERACIONES

    Por consiguiente, la maxima tardanza es 4 dias. Ellector se debe con veneer que cual-quier otra secuencia da como resultado una maxima tardanza de a1 menos 4 dfas. Es de-cir que Ia maxima tardanza seria 4 d:fas o mas.

    Problemas para Ia seccion 6

    6. Vea 1a informacion del problema 4 y determine el arden en el que los camiones se deben descargar para minimizar a. El tiempo promedio de flujo. b. El retardo maximo. c. La cantidad de trabajos tardfos.

    7, Cierto dia, un alumna flojo se da cuenta de repente que no ha hecho nada de siete tareas y trabajos finales para varias materias. Estima el tiempo requerido para terminar cada tarea (en dfas) y anota tambien sus fechas de entrega:

    Tarea 1 Tiempo ( dfas) 4 Fecha de entrega 20/4

    2 8

    17/5

    3 10

    28/5

    4 4

    28/5

    5 3

    12/5

    6 7

    7/5

    7 14

    15/5

    Como las tareas 1, 3 y 5 son de ]a misma materia, decide hacerlas en el arden en que se vencen. Ademas, para Ia tarea 7 se requieren los resultados de las tareas 2 y 3, de modo que 7 se debe hacer despues de terminar 2 y 3. Determine Ia secuencia en que debe hacer las tareas para minimizar el maximo retard a.

    8. Se van a hacer 8 trabajos en una maquina. Los tiempos de procesamiento y de entrega son los siguientes.

    Trabajo Tiempo de procesamiento Tiempo de entrega

    1 2 5

    2 3 4

    3 2

    13

    4 l 6

    5 4

    12

    6 3

    10

    7 8 2 2

    15 19

    Ademas, suponga que se debcn satisfacer las siguicntes restricciones de precedencia:

    Determine el arden en que deben hacerse esos trabajos para minimizar el retardo maximo, sujeto a las restricciones de precedencia.

    9. Juanita Perez hace pan y pasteles en su casa, para fiestas y otros eventos, por contrato. Juanita s6lo tiene un homo. Cierto lunes por la manana ve que ha convenido en entregar cinco trabajos ese dfa. Juan, su marido, hara las entregas, y necesita 15 minutos para cada una. Suponga que comienza a homear a las 8:00A.M.

  • ALGORJTMOS DE SECUENCIACI6N PARA VARIAS MAQULNAS

    Trahajo

    1 2 3 4 5 6

    Tiempo requerido

    1.2 hr. 40 min.

    2.2 hr. 30min.

    3.1 hr. 25 min.

    Hora prometida

    11:30 A.M. 10:00 A.M. 11:00 A.M. 1:00 P.M. 12:00 mediodfa 2:00P.M.

    Determine el arden en que debe procesar los trabajos para rninimizar a. El tiempo promedio de flujo. b. La cantidad de trabajos tardfos. c. El retardo maximo.

    403

    10. En una maquina se deben procesar sietc trabajos. Los tiempos de procesamiento y de entrega aparecen a continuaci6n.

    Trabajo 1 Tiempo de procesamiento 3 Tiempo de entrega 4

    2 6 8

    3 8

    12

    4 4

    15

    5 2

    11

    Determine el orden de los trabajos para minimizar a. El tiempo promedio de flujo. b. La cantidad de trabajos tardfos. c. El retardo maximo.

    6 1

    25

    d. l,Cmil es el intervalo de fabricaci6n para cada secuencia?

    7 7

    21

    7.7 Algoritmos de secuenciaci6n para varias maquinas Ahora ampliaremos el analisis de la secci6n anterior para el caso en que deben procesar-se varies trabajos en mas de una maquina. Supongamos que van a procesarse n trabajos en m maquinas. La cantidad de programas posibles es asombrosa aun para valores mo-derados deny m. Para cada maquina hay n! secuencias distintas de procesamiento. Silos trabajos se pueden hacer en cualquier orden en las maquinas, entonces hay un total de (n!)m programas posibles. Por ejemplo, si n :::: 5 y m = 5, hay 2.4883 X 1010 , o unos 25,000 millones de programas posibles. Ann disponiendo del c6mputo poco costoso de Ia actualidad, es imposible o, en el mejor de los casas, impnktico enumerar todos los pro-gramas posibles.

    En esta secci6n presentaremos algunos resultados demostrados para programar tra-bajos en mas de una maquina. Una forma adecuada de presentaci6n de un programa es un diagrama de Gantt. Par ejemplo, supongamos que dos trabajos, I y J, de ben progra-marse en dos maquinas, I y 2. Los tiempos de procesamiento son

  • 404 CAPITULO SIETE f PROGRAMACJ6N DE OPERACJONES

    Trabajo I Trabajo J

    Maquina 1

    4 1

    Maquina 2

    1 4

    Supongamos que ambos trabajos deben procesarse primero en Ia maquina 1 y des-pues en Ia maquina 2. Los programas posibles se ven en los cuatro diagramas de Gantt de la figura 7-6. Los dos primeros programas se Haman programas de permutaci6n. Esto significa que se procesan en ]a misma secuencia en ambas maquinas. Para este ejemplo, es claro que los programas de pennutacion dan como resultado mejor eficiencia del sis-tema en funci6n de tiempo total y tiempo promedio de flujo.

    Recuerde que el tiempo total de flujo (o intervale de fabricaci6n) es el tiempo total transcurrido desde el inicio del primer trabajo en la primera rnaquina hasta ]a tennina-ci6n del ultimo trabajo en la ultima maquina. Para los programas anteriores, los interva-los de fabricaci6n (o tiempo total de flujo) son 9, 6, 10 y 10, respectivamente.

    Tambien se usa el tiempo promedio de flujo como medida del desempeiio del siste-ma. Para el primer programa en el ejemplo anterior, el tiempo promedio de flujo es (5 + 9)/2 = 7. Para el segundo programa, es (5 + 6)/2 = 5.5, y asf sucesivamente.

    Un tercer objetivo posible es minirnizar el tiempo promedio de inactividad en el sis-tema. El tiempo promedio de inactividad es el promedio aritmetico de los tiempos

    ocio~ms de cada maquina. En el programa 1 vemos que Ia maquina 1 esta ociosa duran-te 4 unidades de tiempo (entre los tiempos 5 y 9), y que Ia maquina 2 esta ociosa tam-bien 4 unidades de tiempo (entre las unidades 0 y 4). Por consiguiente, el tiempo total de inactividad para el programa 1 es 4. En el programa 2, las maquinas 1 y 2 estan ociosas 1 unidad de tiempo, y esto da como resultado un tiempo promedio de inactivi-dad igual a 1. Los tiempos promedio de inactividad para los programas 3 y 4 son 5 uni-dades de tiempo.

    FIGURA 7-6 Los programas

    posibles para dos trabajos en

    dos mciquinas

    Moguino 1

    Maguino 2

    M6quina 1

    M6quina 2

    Maquina I

    M6quina 2

    M6quina 1

    M6quino 2

    4 5 9

    5 6

    5 6 10

    4 5 9 10

  • ALGORITMOS DE SECUENCIACI6N PARA VARIAS MAQUINAS 405

    Programacion de n trabajos en dos nuiquinas Supongamos que deben procesarse n trabajos en dos maquinas, y que cada trabajo se de-be procesar primero en la maquina 1 y despues en la 2. Ademas, supongamos que el cri-teria de optimizaci6n es minimizar el intervale de fabricaci6n. (Siempre que sean dos maquinas las que ocupen nuestra atenci6n, cl programa que minimiza el intervale de fa-bricaci6n tambien minimiza e1 tiempo promedio de flujo.) Sucede que el problema de programar en dos rnaquinas tiene una soluci6n relativarnente sencilla.

    Teorema 7.2

    La soluci6n optima para programar n trabajos en dos maquinas siempre es un pro-grama de permutacion.

    Este tcorema afirma que se puede centrar la atenci6n en programas en los que la se-cuencia de trabajos es igual para arnbas maquinas. Este resultado puede demostrarse co-mo sigue: se considera un programa den trabajos en dos maquinas en el que la secuen-ciaci6n de los trabajos en las dos maquinas es distinta. Esto es, el programa se ve como sigue:

    Maquina 1

    Maquina 2

    I J J I

    Si se invierte la posicion de esos trabajos en cualquiera de las maquinas, el tiempo de flujo disminuye. AI programar los trabajos en el orden I-J en la maquina 2, el par (I, J) en esa maquina puede comenzar despues de haber terminado I en la maquina 1, en vez de tener que esperar basta terminar J en Ia maquina 1.

    Como la cantidad total de programas de permutaci6n es exactamente n!, determinar programas 6ptimos para dos maquinas tiene un grade de dificultad aproximadamente igual que ]a determinacion de programas. 6ptimos para una maquina.

    Un algoritmo muy eficiente para resolver el problema de dos rnaquinas fue descu-bierto por Johnson (1954). Siguiendo Ia notaci6n de Johnson, denominarernos a las mi-quinas como A y B. Se supone que los trabajos deben procesarsc prirnero en la maquina A y despues en Ia B. Supondremos que los trabajos se identifican con i, siendo 1 < i < n, y definiremos

    A; = Tiempo de procesamiento del trabajo i en la maquina A. B; = Tiempo de proccsamiento del trabajo i en la maquina B.

    El resu1tado de Johnson cs que Ia siguiente regia es la optima para determinar un orden de procesamiento de los trabajos en las dos maquinas.

    Regla: El trabajo i precede al trabajo i + I si mfn(Ai, B; _ 1) < mfn(A; + 1, B).

    Una forma facil de implantar esta regla es la siguiente:

  • 406 CAPITULO SIETE f PROGRAMACI6N DE OPERACIONES

    1. Racer una lista de los valorrs de A; y B; en dos columnas. 2. Calcular el elemento menor que queda en las dos columnas. Si aparece en Ia

    columna A, programar a continuaci6n ese trabajo. Si aparece en la columna B, programarlo al ultimo.

    3. Tachar los trabajos en la lista cuando se programen. Detenerse al haber programado todos.

    Ejemplo 7.5 Hay que programar cinco trabajos en dos maquinas. Los tiempos de procesamiento son

    Trabajo MaquinaA Maquina B

    1 5 2 2 1 6 3 9 7 4 3 8 5 10 4

    El primer paso es identificar el tiempo mfnimo de los trabajos. Es 1, para el trabajo 2 en la maquina A. Como aparece en la columna A, se programa primero el trabajo 2 y se tacha el rengl6n 2. El siguiente elemento menor es 2, para el trabajo 1 en la maquina B. Aparece en la columna B, asf que se programa basta el ultimo el trabajo 1. El siguiente tiempo menor es 3, que corresponde al trabajo 4 en la columna A, y por consiguiente el trabajo 4 se programa a continuaci6n. AI continuar en esta forma se obtiene la secuencia 6ptima

    2-4-3-5-1. En la figura 7-7 esta la grifica de Gantt del programa 6ptimo. Observe que no hay

    tiempo ocioso entre trabajos en Ia maquina A. Esta es una caracterfstica que tienen todos los programas 6ptimos.

    Extension a tres maquinas

    El problema de programar trabajos en tres maquinas es bastante mas complicado. Si res-tringimos nuestra atenci6n solo al tiempo total de flujo, sigue siendo valido que lo 6ptimo es un programa de permutaci6n (noes necesariamente el caso para el tiempo promedio de

    FIGURA 7-7 A2 A4 A3 AS Diagrama de Gantt para el I

    programa 62 B4 B3 6ptimo en el ejemplo 7.5 0 1 4 7 13 15 22 23 27 28 30

  • ALOOR!TMOS DE SECUENCIACION PARA VARIAS MA.QUINAS 407

    flujo). Se identifican las maquinas como A, By C El problema de tres maquinas puede re-ducirse (esencialmente) a uno de dos maquinas si se satisface la siguiente condici6n:

    mfn A;> max Bi, o bien mfn C1 >max B;-S6lo cs necesario que se satisfaga cualquiera de las condiciones. Si es asf, el proble-

    ma se reduce a uno de dos maquinas como sigue. Se define A' 1 = A1 + Bi, y a B' i = B; + C1 Ahora se resuelve el problema con las re-

    g las descritas arriba para dos maquinas, considerando que A'; y B 'i son los tiempos de procesamiento. El programa de permutaci6n que resulta seni 6ptirno para el problema de tres maquinas.

    Ejemplo 7.6 Se tienen los siguientes tiempos de procesamiento para un problema de tres maquinas. Suponer que los trabajos se procesan en Ia secuencia A-B-C.

    Maquina

    Trabajo A B c

    1 4 5 8 2 9 6 10 3 8 2 6 4 6 3 7 5 5 4 II

    Al revisar las condiciones vemos que mfn A;= 4, max Bi = 6, min C1 = 6,

    por lo que se satisface la condici6n requerida. Entonces se forman las dos colurnnas, A' y B':

    M::iquina

    Trabajo A' B'

    1 9 13 2 15 16 3 10 8 4 9 lO 5 9 15

    El problema se resuelve con el algoritmo para dos maquinas. La soluci6n optima es

    1-4-5-2-3.

    Observe que por las relaciones en la columna A, Ia soluci6n optima no es unica.

  • 408 CAPiTULO SIETE f PROGRAMACION DE OPERACIONES

    Si no se satisfacen las condiciones para reducir un problema de tres maquinas a uno de dos maquinas, este metodo, por lo general, dara resultados razonables, pero posible-mente sub6ptimos. Mientras el objetivo sea rninimizar el intervalo de fabricaci6n o ei ticmpo total de flujo, lo 6ptimo para programar en tres maquinas es un programa de per-mutaci6n. (Sin embargo, no necesariamente se cumple que un programa de permutaci6n sea 6ptimo para tres maquinas cuando se usa el criteria de tiempo prornedio de flujo.)

    Observe que suponemos que las maquinas son distintas y que el proccsamiento es se-cuencial: se presume que todos los trabajos se procesan primero en la maquina 1, y des-pues en la 2. Por ejemplo, la maquina 1 podrfa ser un taladro vertical y la maquina 2 un torno. Un problema relacionado que explicaremos en el contexto de programaci6n esto-castica es eJ de procesamiento paralelo en maquinas identicas. En este caso se supone que las maquinas llevan a cabo Ia misma funci6n, y que cualquier trabajo puede asignarse a cualquier maquina. Por ejemplo, un con junto de 1 0 trabajos podrfa necesitar procesarse en uno de dos taladros verticales. Los resultados del procesamiento paralelo sugieren que la regia efectiva para minimizar el tiempo promedio de flujo es Ia SPT (tiempo minima posible), pero con frecuencia la LPT (primero el tiempo mayor de procesamiento) es mas efectiva para rninimizar el tiempo total de flujo, o intervalo de fabricaci6n. Explicaremos el procesamiento paralelo en el contexto de tiempos aleatorios de trabajo en una secci6n posterior.

    El problema de taller de flujo con dos trabajos Sup6ngase que hay que procesar dos trabajos a traves de m maquinas. Cada trabajo

    debe ser procesado en las maquinas en determinado orden, pero esos 6rdenes o secuen-cias no necesitan ser iguales para los dos trabajos. Presentaremos un procedimiento gra-fico debido a Akers ( 1956) para resolver este problema.

    1. Trazar un sistema de coordenadas cartesianas con los tiempos de procesarniento correspondientes al primer trabajo en el eje horizontal. y los de procesamiento del segundo trabajo en el eje vertical. Marcar en cada eje los tiempos de operaci6n en el orden en que deban hacerse las operaciones para ese trabajo.

    2. Marcar los bloques de las areas correspondientes a cada maquina en Ia intersecci6n de los intervalos que se marcan en los dos ejes para esa maquina.

    3. Determinar una trayectoria del origen al final del bloque final, que no intersecte alguno de los bloques y que minimice el movimiento vertical. Sc permiten movimientos solo en tres direcciones: horizontal, vertical y diagonal a 45. La trayectoria con la distancia vertical mfnima indicara Ia soluci6n optima. Observe que sera la rnisma trayectoria que tiene distancia horizontal mfnima.

    Este procedirniento se ilustra mejor con un ejemplo.

    Ejemplo 7.7 Una empresa manufacturera fabrica varios productos para el hogar. Uno de ellos es una larnpara de madera para escritorio. Antes de empacarlas, las lamparas de ben lijarse, bamizarse y pulirse. Para cada operaci6n se requiere una maquina distinta. En la actualidad hay embarques de dos modelos en cspera de su terminaci6n. Los tiempos requeridos para las tres operaciones en cada uno de los embarques son

  • ALGORITMOS DE SECUENCIACI6N PARA VARIAS MAQUINAS 409

    Trabajo 1

    Operaci6n Tiempo

    Lijado (A) 3 Barnizado (B) 4 Pulido (C) 5

    Trabajo 2 Operaci6n

    A B c

    Tiempo

    2 5 3

    El primer paso es rnarcar los bloques de tiernpo de trabajo en cada uno de los ejes. En la figura 7-8 se ilustra este paso. Todo programa factible se representa par una lfnea que conecta al origen con la punta del bloque C, con la condici6n de que no atraviese un bloque. S6lo se perrniten tres avances: horizontal, vertical y diagonal a 45. El movimiento horizontal implica que s6lo se procesa el trabajo 1, el movimiento vertical sefiala que s6lo se procesa el trabajo 2, y el movimiento diagonal indica que se procesan los dos trabajos. Minimizar el tiempo de flujo equivale a maximizar el tiempo en el que se procesan ambos trabajos. Esto equivale a su vez a determinar la trayectoria del origen al extrema del bloque C que maximice el movimiento diagonal, y en consecuencia que minimice el movimiento vertical o el horizontal.

    En la figura 7-8 se aprecia que hay dos programas factibles para este problema. El tiempo total requerido por cualquier programa factible se puede obtener de dos maneras: es el tiempo total representado en el eje horizontal ( 12 en este caso) mas el movimiento vertical total (4 y 3, respectivamente), o bien el tiempo total en el eje vertical ( 10 en este caso) mas el movimiento horizontal total (6 y 5, respectivamente). El programa 1 tiene un tiempo total de 16 y el programa 2 de 15. Por consiguiente, para este caso el programa 2 es el optima.

    N 0 o ...0 .g

    En Ia figura 7-9 se muestra el diagrama de Gantt para el programa 6ptimo.

    10

    9

    e

    7

    6

    5

    4

    3

    2

    Tiempo total = 12 + 4 = 16

    ~

    2 3 4 5

    Tiempo total= 12 + 3 = 15

    6 7 8 9 10 11 12 Trabajo 1

    FIGURA 7-8 Soluci6n grafica del ejemplo 7.7

  • 41 Q CAPITULO SIETE f PROGRAMAC6N DE OPERACIONES

    FIGURA 7-9 Diagrama de Gantt para la

    soluci6n optima del ejemplo 7. 7

    A

    B

    c

    2 6 8 10 12 14

    Hay que hacer notar que para este metoda no se requiere que los trabajos se proce-sen en la misma secuencia en las maquinas. Presentaremos otro ejemplo para ilustrar el caso en el que la secuencia de los trabajos es distinta.

    Ejemplo 7.8 Ramon y Roberto son compafieros de cuarto y disfrutan los dorningos por la manana leyendo el peri6dico. Ramon gusta de leer primero la secci6n principal, despues lade deportes. despues las caricaturas y por ultimo los anuncios clasificados. Roberto tambien comienza con la secci6n principal, pero despues sigue con los clasificados, con la secci6n deportiva y por ultimo con las caricaturas. Los tiempos que requiere (en decimos de hora) cada uno para leer las diversas secciones son

    Ramon Roberto

    Secuencia requerida Tiempo Secuencia requerida Tiempo

    Secci6n principal (A) 6 Seccion principal (A) 4 Deportes (B) 1 Anuncios clasificados (D) 3 Caricaturas (C) 5 Deportes (B) 2 Anuncios clasificados (D) 4 Caricaturas (C) 5

    El objetivo es determinar el orden en que debe leer cada uno las secciones para minimizar el tiempo total requerido para leer el peri6dico. En este problema Ramon equivale al trabajo 1 y Roberto al trabajo 2. Las secciones del peri6dico equivalen a maqumas.

    Soluci6n Para llegar a la soluci6n optima primero se trazan los bloques de tiempos de procesamiento para cada uno de los trabajos. Sup6ngase que el trabajo 1 (Ramon) se marca en bloque en el eje x y que el trabajo 2 (Roberto) en el eje y. Los tiempos de procesamiento se ordenan en cada eje, con el orden antes sefialado. La representaci6n gnifica de este problema esta en la figura 7-10. En ella se representan dos programas factibles distintos en forma de trayectorias del origen al punto (16, 14). La trayectoria superior representa un programa en el que Roberto comienza primero a leer Ia primera secci6n (el trabajo 2 se procesa primero en la maquina A) y Ia trayectoria inferior corresponde a cuando comienza Ramon. Sucede que para este problema Ia trayectoria inferior es la optima, con un tiempo de procesamiento igual a 20.

  • PROBLEMAS PARA LA SECCI6N 7 411

    14

    12

    10 ....

    J5 d) 8 ('.1

    .2... 0 6 _a ~

    4

    2

    2 4 6 8 10 12 Trabajo 1 (Ramon)

    5 10

    14 16

    15 20

    FIGURA 7-10 Soluci6n grdjica del ejemplo 7.8

    FIGURA 7-11 Diagrama de Gantt para la soluci6n optima del ejemplo 7.8

    El tiempo 6ptimo de procesamiento para este problema es 20. Como las unidades de tiempo son decimas de hora, esto equivale exactamente a 2 horas. En la figura 7-10 la trayectoria inferior se convierte en una grafica de Gantt como sigue: del tiempo 0 al 6, Ram6n lee A y Roberto esta inactivo. Ram6n lee B durante una unidad de tiempo y C durante 5 unidades de tiempo, y Roberto lee A durante 4 unidades de tiempo y D durante 3 unidades. Ahora Ramon queda inactivo una unidad de tiempo, porque en este punto la trayectoria es vertical, y comienza a leer D cuando el tiempo es 13. Cuando Ramon termina con D, termina en total. Comenzando en el momenta 15, Roberto lee C y termina su lectura cuando el tiempo es 20. La figura 7-11 ilustra el diagrama de Gantt, que indica la soluci6n optima.

    Problemas para Ia secci6n 7

    11. Regrese al ejemplo 7 .6) donde se ilustra el uso del algoritmo de Johnson para tres maquinas. Haga una lista de todas las soluciones 6ptirnas para este ejemplo.

    12. Suponga que deben procesarse 12 trabajos a traves de seis maquinas. Si se pueden procesar en cualquier orden, L,cm\ntos programas distintos pueden elaborarse? Si contara usted con un programa de c6mputo que evaluara 100 programas por segundo, l,CUanto tiempo se necesitarfa para evaluar todos los programas factibles?

    13. Dos estudiantes de derecho, Juan y Laura, pasanin la noche preparando sus materias para el dfa siguiente. Entre los dos tienen un conjunto de materiales

  • 412 CAPiTULO SIETE / PROGRAMAC!6N DE OPERACIONES

    acerca de los cinco siguientes ternas: contratos, dafios, derecho civil, leyes mercantiles y patentes. De acuerdo con su experiencia, estiman necesitar los tiempos siguientes (en horas) para cada conjunto de rnateriales:

    Juan Laura

    Contratos

    1.2 1.8

    Danos

    2.2 0.8

    Civil

    0.7 3.1

    Mercantiles Patentes

    0.5 l.l

    1.5 23

    Convienen en que Laura vea cada conjunto de notas antes que Juan. Suponga que comienzan a estudiar a las 8 P.M. Determine las horas exactas en que comenzanin y terrninanin de estudiar cada tema, con objeto de minimizar el tiempo total requerido para que ambos terrninen de estudiar los cinco temas.

    14. Los cuatro trabajos siguientes deben procesarse en un taller de flujo con tres rnaquinas.

    Maquina

    Trahajo A B c

    1 4 2 6 2 2 3 7 3 6 5 6 4 3 4 8

    Determine la secuencia optima de los trabajos para minirnizar el intervale de fabricaci6n. (,Cual es el intervale de fabricaci6n con la solucion optima? Trace un diagrarna de Gantt que ilustre su soluci6n.

    15. Marfa y Marcia, dos herrnanas que van juntas a la universidad, requieren asesorfa en cinco materias: historia, ingles, matematicas, ciencias y religion. Estiman que los tiempos (en minutos) que necesitaran para la asesorfa seran

    Marfa Marcia

    Matematicas 40 20 Historia 15 30 Ingles 25 10 Ciencias 15 35 Religion 20 25

    Ellas creen que los cinco asesores estaran disponibles todo el dfa. A Marfa le gustarfa pasar con ellos en el orden de Ia tabla anterior, y Marcia quisiera el orden matematicas, religion, ingles, ciencias e historia. L,En que tiempos deben hacer sus citas para minimizar el tiernpo total para que ambas terminen con sus asesorfas?

  • PROGRAMACI6N ESTOCASTICA: ANALISIS ESTA 1 ICO 413

    16. Se deben procesar dos trabajos a traves de cuatro maquinas en el mismo arden. Los tiempos de procesamiento en la secuencia requerida son

    Trabajo 1 Mtiquina

    A B c D

    Tiempo

    5 4 6 3

    Trabajo 2 Mtiquina

    A B c D

    Tiempo

    2 4 3 5

    Determine c6mo deben programarse los dos trabajos para minimizar el intervalo total de fabricaci6n y trace la grafica de Gantt que represente el programa 6ptimo.

    17. Pedro Mendez renovara su licencia de manejo. Patricia Gomez, su amiga, lo acompafia y solicita una licencia nueva. En ambos casos se requieren cinco etapas: A) tomarse Ia fotograffa, B) firmar la forma de verificaci6n de firma, C) pasar un examen escrito, D) aprobar un examen de Ia vista, y E) presentar un examen de manejo.

    Para las renovaciones, las etapas tienen el orden A, B, C, D y E, y los tiempos promedio requeridos son, respectivamente, 0.2, 0.1, 0.3, 0.2 y 0.6 horas. En el caso de las nuevas solicitudes, las etapas tienen el orden D, B, C, E y A, y los tiempos promedio requeridos son 0.3, 0.2, 0.7, 1.1 y 0.2 horas, respectivamente. Pedro y Patricia Began en un dia en que el departamento de licencias esta vacfo. l,C6mo deben planear el orden de sus tnimites para minimizar el tiempo que requieren ambos en pasar por las cinco etapas?

    7.8 Programacion estocastica: analisis estatico

    Una sola mdquina

    Un asunto que no se ha mencionado todav{a es la incertidumbre de los tiempos de proce-samiento. En la pnictica es posible, y hasta probable, que no se pueda predecir el tiempo exacto de terminaci6n de uno o mas trabajos. Nos interesa saber si hay algunos resultados acerca de las reglas de secuenciaci6n optima cuando los tiempos de procesamiento son in-ciertos. Supondremos que los tiempos de procesamiento son independientes entre s:L

    En el caso de procesamiento en una sola maquina, Ia mayorfa de los resultados se pa-recen mucho a los descritos para el caso determinista. Sup6ngase que deben procesarse n trabajos en una sola maquina, que los tiempos de trabajo son tl' t2, ... , tn y que son va-riables aleatorias con funciones de distribuci6n conocidas. El objetivo es minimizar el tiempo promedio de flujo e.perado y ponderado; esto es,

    Minimizar E ( ~ ~ ul; ) l = 1

  • 414 CAPiTULO SIETE J PROGRAMAC16N DE OPERACJONES

    donde ui son los factores de ponderaci6n, o pesos, y Fi es el tiempo (aleatorio) de flujo para e1 trabajo i.

    Rothkopf (1966) demostr6 que la so lucian optima es ordenar los trabajos de tal ma-nera que el trabajo i anteceda al trabajo i + 1 si

    E(t;)lui < E(t; + 1)/u1 +I" Observe que si igualamos a I todos los factores de ponderaci6n u; = 1, entonces esta

    regia simplemente es ordenar los trabajos de acuerdo con el tiempo mfnirno esperado de procesamiento; esto es, esencialmente lo mismo que el tiempo mas corto (SPT).

    En el caso de programar por fecha de entrega con tiempos aleatorios de procesarnien-to, los resultados tambien se parecen a los del caso determinista. Banerjee (1965) de-muestra que si el objetivo es minimizar, para todos los trabajos, Ia probabilidad maxima de que un trabajo se atrase, entonces el programa 6ptimo es ordenar los trabajos segun la fecha mfnima de entrega (o segun Ia fecha mfnima esperada de entrega, cuando las fe-chas de entrega son aleatorias tambien).

    Varias maquinas

    Para programar trabajos con tiempos aleatorios de procesamiento en varias ma.quinas se obtienen resultados mas interesantes. De hecho, se dispone de resultados para este caso que no son validos para el problema deterrninista.

    Un supuesto que se suele hacer para el problema de varias maquinas es que la distri-buci6n de los tiempos de procesamiento es exponencial. Se necesita este supuesto porque la distribuci6n exponencial es Ia unica que tiene la propiedad de amnesia. (Esta propiedad se describe en forma detallada en el capitulo 11, acerca de 1a confiabilidad y el manteni-miento.) El requisito que los tiempos de procesamiento tengan distribuci6n exponencial es severo en el contexto de la programaci6n. En la mayorfa de los talleres, si no pueden predecirse los tiempos de procesamiento con exactitud, noes probable que tengan la dis-tribuci6n exponencial. i,Por que? La propiedad de amnesia sefiala que Ia probabilidad de terminar un trabajo en el ~iguiente memento en el tiempo es independiente del intervale de tiempo que ya ha pasado al procesar el trabajo. Hay algunas aplicaciones, como en los sistemas telef6nicos y en las aplicaciones compartidas de c6mputo, que se pueden modelar con fidelidad en esta forma, pero, en forma abrumadora, Ia ley exponencial no describe con exactitud los tiempos de procesamiento para la mayorfa de los talleres de manufactura.

    Con estas limitaciones en mente presentaremos algunos resultados para prograrnaci6n de trabajos en varias maquinas y con tiempos aleatorios de procesamiento. Veamos el si-guiente problema: se procesanin n trabajos en dos maquinas identicas en paralelo. Cada trabajo necesita procesarse s6lo una vez en cualquiera de las maquinas. El objetivo es minimizar el tiempo esperado que transcurre desde el momento cera hasta terminar de procesar el ultimo trabajo. Esto se conoce como intervalo esperado de fabricaci6n. Supon-dremos que los tiempos de procesamiento de los n trabajos son t1, t2, ... , tn, que son va-riables aleatorias exponenciales con tasas )11, )12, . , Jln Esto qui ere decir que el tiempo esperado necesario para terminar el trabajo i es E(ti) = liJl;

    El procesamiento en paralelo es distinto del procesamiento en taller de flujo. En este ultimo, los trabajos se procesan primero en la maquina 1 y despues en Ia rnaquina 2. En el procesamiento en paralelo, s6lo necesitan procesarse en una rnaquina, y cualquier tra-bajo se puede procesar en cualquier maquina. Supongamds que en el momenta t = 0 la maquina 1 esta ocupada con un trabajo anterior, el trabajo 0, y que el tiempo restante de

  • PROGRAMACION ESTOCASTICA: ANALISIS ESTATICO 415

    procesamiento para el trabajo 0 es t0, que podrfa ser una variable aleatoria o detenninista. Los trabajos posteriores se procesan como sigue: sea [1], [2], ... , [n] una permutaci6n de los n trabajos. Se programa el trabajo [1] en la maquina vacante. El trabajo (2] sigue al trabajo 0 en la maquina 1 0 al trabajo [1] en la maquina 2, dependiendo de cual tennina primero. Cada trabajo sucesivo se programa en Ia maquina que se desocupe primero.

    Sean T0 ::::;; T1 :S :::s T,1 los tiempos de terminaci6n de los trabajos sucesi vos. El in-tervalo de fabricaci6n es el tiempo de terminaci6n del ultimo trabajo, que es Tw El valor esperado del intervalo de fabricaci6n se minimiza apllcando la regla primero el maximo tiempo esperado de procesamiento (LEPT). 1 Observe que es exactamente lo contrario de la regia SPT, de tiempo minima de procesamiento, para una sola maquina. La optimali-dad de programar los trabajos en orden decreciente de su tiempo esperado, y no en orden creciente (como lo hace Ia regia SPT), es, con mas probabilidad, un resultado del proce-samiento en paralelo que de la aleatoriedad de los tiempos de trabajo.

    Demostraremos intuitivamente Ia optimalidad del LEPT para este problema como si-gue: vease el diagrama esquematico en Ia figura 7-12, que muestra una realizaci6n par-ticular de los tiempos de procesamiento para una secuenciaci6n arbitraria de los trabajos. En esa figura, Ia variable aleatoria l corresponde al tiempo ocioso de la maquina que no procesa el trabajo terminado al final. En forma intuitiva, habria que hacer que 1 fuera tan pequefio como sea posible, para minimizar el intervalo esperado de fabricaci6n. Esto puede demostrarse en forma mas rigurosa como sigue.

    En la figura se ve que

    y que

    11

    Tn + Ttl- 1 = I.. ti i,.. 0

    Tn=T11-l-I.

    AI despejar Tn _ 1 en Ia segunda ecuaci6n y sustituyendo en la primera se obtie.ne

    es decir

    Maquino 1

    Maqvina 2

    11

    Tn + T11 - I = L ti i=O

    n

    2T =" t.+/. n ... l 1=0

    I

    -to- ..

    - fn-1 I

    _I...._ I

    , __ FIGURA 7-12 Realizaci6n de procesamiento paralelo en dos mdquinas con tiempos aleatorios de

    I

    I I

    -tl+- ----+ tn-I I I I

    Tn trabajo

    1 Sin embargo, si se observa el tiempo de flujo, entonces Ja regia SEPT (primero el tiempo esperado mf-nimo de procesamiento, shortest expected processing time first) es Ia que minimiza el tiempo esperado de tlujo en dos maquinas

  • 416 CAPiTULO SIETE / PROGRAMACI6N DE OPFRACIONES

    Como Lti es fija e independiente de la secuencia de procesamiento, entonces minimi-zar E(Til) equivale a minimizar E(J). Como I se minimiza cuando se minirniza el tiempo del ultimo trabajo, se programan los trabajos en orden de tiempos esperados de procesa-miento decrecientes. Observe que este resultado no necesariamente se traslada al caso del procesamiento paralelo en dos maquinas con tiempos deterministas de procesamiento. Sin embargo, en el caso determinista, al programar primero el trabajo mas largo se obtendran, por lo general, buenos resultados cuando se minimiza el intervalo total de manufactura. La regla de tiempo mfnimo de procesamiento (SPT) es mejor para minimizar el tiempo promedio de flujo.

    Una clase de problemas que no se describinin, pero para los que existen varios resul-tados interesantes, son aquellos en los que los trabajos deben procesarse pasando por m maquinas no identicas, y el tiempo de procesamiento no depende del trabajo. Vease Ia caracterizaci6n de la regla optima de programaci6n para este problema en el trabajo de Righter (1988).

    El caso del taller de flujo con dos maquinas Una cuesti6n interesante es si hay un analogo estocastico al algoritmo de Johnson para programar n trabajos en dos maquinas, en un entomo de taller de flujo; esto es, cuando debe procesarse cada trabajo primcro en la maquina 1, y despues en la maquina 2. El al-goritmo de Johnson afirma que el trabajo i precede al trabajo i + 1 si

    mfn(Ai, Bi+ t) < min(Ai+ 1, B) para minimizar el intervale de fabricaci6n.

    Ahara sup6ngase que Ap A2, . .. , A11 y B1, B2, .. , Bn son variables exponenciales alea-torias, con tasas respectivas a 1, a 2, ... , a11 y b1, b2, .. , bn. En estc caso deseamos minimi-zar el valor esperado del intervalo de fabricaci6n. Como el mfnimo de dos variables alea-torias exponenciales tiene una tasa igua1 a la suma de las tasas, entonces

    Por consiguiente, Ia condici6n de Johnson se traduce en el caso estocastico a Ia con-dici6n que

    de modo que los trabajos deben programarse en orden de val ores decrecientes de la dife-rencia entre las tasas.

    Ejemplo 7.9 Veamos el ejemplo 7.5, con el que ilustramos el algoritrno de Johnson, pero supongamos que los tiempos de trabajo son variables aleatorias que tienen la distribuci6n exponencial con tiempos promedio dados en ese ejemplo. En este caso, se tiene lo siguiente:

  • PROBLEMAS PARA LA SECCJ6N 8

    Tiempos esperados Tasas

    Trabajo A B A B Diferencias

    1 5 2 .20 .500 -.30 2 1 6 1.00 .170 .83 3 9 7 .11 .140 -.03 4 3 8 .33 .125 .21 5 10 4 .10 .250 -.15

    AI ordenar los trabajos segun los valores decrecientes en la colunma final se obtiene la secuencia

    2-4-3-5-1

    417

    que es exactamente igual a la del caso determinista hallada con el algoritmo de John-son.

    Esta secci6n explic6 diversos pracedimientos de soluci6n cuando los tiempas de tra-bajo son variables aleatorias. Aun cuando se conozcan con certeza los tiempos de traba-jo, la aleatoriedad que producen otras fuentes podrfa seguir existiendo. Por ejemplo, cuando se considera que la prograrnaci6n es un proceso dinamico, debe determinarse el comportamiento de las llcgadas al sistema. Es com(m que los trabajos lleguen siguiendo algun proceso aleatoric y que para su atenci6n formen cola o fila. La teorfa de colas y la simulaci6n son herramientas adecuadas para manejar la aleatoriedad de este tipo. Con-way, Maxwell y Miller (1967) describcn la aplicaci6n de simulaci6n y filas de espera a los problemas de programaci6n de opcraciones.

    Problemas para Ia seccion 8

    18. Vea el ejemplo 7.2 en Ia secci6n 5 acerca de Ia determinacion de la secuencia optima de aterrizaje de los aviones. Suponga que los tiempos de aterrizaje son variables aleatorias cuya desviaci6n estandar es igual a Ia tercera parte de Ia media en cada caso. a. z,En que arden deben aterrizar los aviones para minimizar el tiempo

    promedio de flujo esperado~ ponderado, si los factorcs de ponderaci6n que deben usarse son los recfprocos de la cantidad de pasajeros en cada avi6n?

    b. Para la secuencia que determin6 en la parte a), L,cual es Ia probabilidad de que todos los a vi ones hay an aterrizado en I 00 minutos? Suponga que los tiempos de aterrizaje son variables independientes y aleatorias con distribuci6n normal. z. Cambia su respuesta si los a vi ones aterrizan en secuencia distinta?

    19. Un centro de c6mputo tiene dos computadoras identicas para procesamiento por lotes. Se usan como procesadores en paralelo. El usuario estima los tiempos de trabajo, pero Ia experiencia indica que una distribuci6n exponencial es una

  • 418 CAPITULO SIETE / PROGRAMACJ6N DE OPERACIONES

    descripci6n adecuada de los ticmpos reales de procesamiento. Suponga que en determinado momenta hay ocho trabajos pendientes de procesar, cuyos tiempos esperados de trabajo, en rninutos, son:

    Trabajo Tiempo espcrado

    1 4

    2 8

    3 4 1 50

    5 6 7 1 30 20

    8 6

    a. L,En que secuencia deben procesarse los trabajos para rninirnizar el tiempo esperado de terminaci6n de los ocho trabujos (es decir, el intervalo de fabricaci6n)?

    b. Suponga que la computadora A esta ocupada con un trabajo que requiere exactamente 2 minutes para ser terminado, y que la computadora B esta inactiva. Si los tiempos de trabajo son dcterministas, indique los tiempos de inicio y fin de cada trabajo en cada computadora usando el orden determinado en Ia parte a).

    20. En un muelle estan amarrados seis barcos esperando ser descargados. Los tiempos requeridos para hacerlo son variables aleatorias con medias respectivas iguales a 0.6, 1.2, 2.5, 3.5, 0.4 y 1.8 horas. A los barcos se les asigna un factor de ponderaci6n de prioridad basado en el tonelaje. Los tonelajes respectivos son 12, 18, 9, 14, 4 y 10. L,En que orden deben descargarse esos barcos para mini mizar el tiempo ponderado esperado?

    21. Resuelva el problema 13 suponiendo que los tiempos requeridos por Juan y Laura son variables aleatorias con distribuci6n exponencial cuyos tiempos esperados son los del problema 13.

    22. Cinco muchachas asistinin a un baile de beneficencia. Cada una necesita peinado y corte de cabello. Suponga que los tiempos requeridos son variables aleatorias independientes, con distribuci6n exponencial y con tiernpos promedio de 0.6, 1.2, 1.5, 0.8 y 1.1 horas para el corte, respectivamente, y de 0.8, 1.6, 1.0, 0.7 y 1.3 horas, para arreglar el cabello. Suponga que primero pasan a corte y despues a arreglarse el cabello, y que solo hay un estilista y un peluquero. L,En que orden deben programarse para minimizar e] tiempo total esperado para cortarse y arreglarse el cabello?

    7.9 Programacion estocastica: analisis dinamico Los algoritmos de programaci6n hasta aquf descritos basta ahora en el capitulo se basan en el supuesto de que todos los trabajos llegan en forma sirnultanea para su procesamien-to. Sin embargo, en Ia pnictica Ia programaci6n de trabajos en maquinas es un problema dinamico. Usaremos el termino dinamico en este caso para indicar que los trabajos lle-gan en forma aleatoria al transcurrir el tiernpo, y que deben tomarse continuamente de-cisiones acerca de como programarlos.

    La teorfa de colas, o teoria de lfneas de espera, proporciona un media de modelar al-gunos problemas de programaci6n dinamica. El suplemento 2, al final de este capitulo, presenta un repaso de la teorfa basica de colas. En esta secci6n supondremos que ellector esta familiarizado con los resultados del suplemento 2.

  • PROGRAMACION ESTOCASTICA: ANALISIS DINAM!CO 419

    Veamos el siguiente problema. Los trabajos Began totalmente al azar a una sola rna-quina. Esto significa que el proceso de llegadas es un proceso de Poisson. Sup6ngase que la tasa media de llegadas es A. Al principia supondrernos que los tiempos de procesa-miento tienen distribuci6n exponencial con tiempo 1/fl. Esto que la tasa promedio de pro-cesarniento es f.1 y que los tiempos de proces.amiento son variables aleatorias exponencia-les identicamente distribuidas. Por ultimo, supondremos que los trabajos se procesan en base primero en llegar, primero en servir (FCFS, del ingles first-came, first-served, o FI-FO, de first-in, first out, primero en llegar, prirnero en salir). En la tenninologia de colas se supone una cola M/M/1/FCFS. Tambien se consideranin otras secuencias de procesa-miento.

    La teoria basica de colas da respuesta a varias preguntas acerca de las caracterfsticas de eficiencia de este problema de programaci6n. En primer Iugar, Ia distribuci6n de pro-babilidades de la cantidad de trabajos en el sistema (Ia cantidad que cspcra ser procesa-da mas la cantidad que se esta procesando) en el estado estable resulta ser geometrica con pan'imetro p = NJ.l. Esto es, si L es Ia cantidad de trabajos en el sistema en estado esta-ble, entonces

    P{L = i} ;;:; pi(l - p) para i:::: 0, 1, 2, 3, ... La cantidad esperada de trabajos en el sistema es p/(1 - p). Esto implica que existe

    una soluci6n solo para p < 1. Esto, intuitivamente, tiene sentido: la tasa con que llegaran los trabajos en el sistema debe ser menor a Ia tasa con que se procesan, para garantizar que la fila no crezca sin limite. 2

    Un objetivo comun no solo en Ia programaci6n estatica, sino tambien en la dimimi-ca, es minimizar el tiempo promedio de flujo. El tiempo de flujo de un trabajo comienza en el instante en que el trabajo se nne ala cola de espera de trabajos no procesados, y du-ra basta que terrnina su procesamiento. Para el problema de programaci6n dinamica, el tiempo de flujo de un trabajo es una variable aleatoria; depende de la realizaci6n de los tiempos de procesamiento de los trabajos anteriores, y tambien de su propio tiempo de procesamiento. El termino, en teorfa de colas, para el tiempo de flujo de un trabajo es el tiempo de espera en el sistema, y se representa con el sfmbolo W. En el suplemento 2 se demuestra que la distribuci6n del tiempo de flujo para la cola M/M/1/FCFS es exponen-cial, con parametro J.l - A. Esto es,

    P{W> t} = e~(11~Jc)r para toda t > 0. Tambien se deducen la distribuci6n del tiempo de espera en la cola y la cantidad es-

    timada de trabajos en la fila, esperando ser procesados.3 Podemos ver la aplicaci6n de esas formulas al problema de programaci6n dinamica del siguiente ejemplo.

    2 Sin embargo, Jo que noes obvio es que sucede en el If mite cuando). == ~ o p:::: l. Sucede que cuando las tasas de procesamiento y de llegada son iguales (y los tiempos entre llcgadas y los de proccsamicnto son aleatorios), Ia cola sigue creciendo sin lfmite. Ciertamente la razon de ello noes obvia, pero parece scr una consecuencia de Ia aleatoriedad de las llegadas y de los tiempos de procesamiento.

    3 Por comodidad usaremos el mismo sfmbolo para una variable aleatoria y para su media, de modo que W representara tanto el tiempo de espera como el tiempo esperado en el sistema Lo mismo sucedeni con L. El significado quedara daro de acuerdo con el contexto.

  • 420 CAPiTULO SIETE I PROGRAMACION DE OPERACIONES

    Ejemplo 7. 1 0 Un laboratorio de c6mputo escolar tiene una sola impresora laser. Los trabajos forman cola en ella, desde el servidor de red, y se hacen en base primero en llegar, primero en servir (FCFS). Una impresi6n promedio requiere 4 minutos, pero los tiempos varfan mucho. Por experiencia se ha vista que Ia distribuci6n de los tiempos se apega bien a una distribuci6n exponencial. En las horas pica, hay unos 12 alu