Programación de n tareas en una maquina
Observe algunas de las diez normas prioritarias comparadas en una situación de programación estática que involucra cuatro tareas en una maquina. (En la terminología de programación, esta clase de problemas se denominan un “problema de n tareas – una maquina” o simplemente “n/1”) La dificultad teórica de los problemas de programación se incrementa en la medida en que se consideran mas maquinas y no en la medida en que se deben procesar más tareas; en consecuencia, la única restricción que hay respecto de n es que este debe ser un número específico y finito. Considere el ejemplo siguiente: Ejemplo de N tareas en
una maquina: Mike Morales es el supervisor de Legal Copy-Express, que suministra servicios de copiado para las firmas legales del centro de los Ángeles. Cinco clientes presentaron sus pedidos al comienzo de la semana. Los datos de programación específicos son los siguientes:
Tarea (En orden de llegada) A B C D E
Tiempo de procesamiento (Días)
Fecha de vencimiento (Días a partir de hoy)
3 4 2 6 1
5 6 7 9 2
Todos los pedidos requieren la utilización de la única maquina de copiado a color disponible; Morales debe decidir sobre la secuencia del procesamiento para los cinco pedidos. El criterio de evaluación es el tiempo de flujo mínimo. Suponga que Morales decide utilizar la norma FCFS en un intento por hacer que Legal CopyExpress parezca justa con sus clientes. 1. FCFS (First-come, first.served), (primero en llegar, primero en ser atendido). Los pedidos se ejecutan en el orden en que llegan al departamento 2. SOT (shortest operating time) (tiempo de operación mas corto). Primero se ejecuta la tarea que tenga el tiempo de terminación mas corto, luego, el segundo mas corto, etc. Este es idéntico al SPT (Shortest processing time) (tiempo de procesamiento mas corto). 3. fecha de vencimiento: Primero la fecha de vencimiento mas temprana: Primero se ejecuta la tarea que tenga la fecha de vencimiento mas temprana. DDate (cuando se refiere a la tarea completa); OPNDD (cuando se refiere a la operación siguiente). 4. STR (snack time remaining) (tiempo de calma restante). Se calcula como la diferencia entre el tiempo restante antes de la fecha de vencimiento menos el tiempo del procedimiento restante. Los pedidos que tienen el STR mas cortos de ejecutan primero. 5. LCFS (las-come, fisrt served) (ultimo en llegar, primero en ser atendido). Esta norma se presenta con frecuencia por defecto. A medida que llegan los pedidos, estos se colocan encima de la pila; el operador usualmente recoge el pedido de encima y lo ejecuta primero. 6. Orden aleatorio o caprichoso. Los supervisores u operadores usualmente escogen cualquier tarea que deseen ejecutar. Programación de n tareas en dos maquinas
El paso siguiente hacia arriba en complejidad es el caso del flujo n/2, en dos o mas tareas debe procesarse en dos maquinas en una secuencia común. Como en el caso n/1, existe un enfoque que lleva a una solución optima de acuerdo con ciertos criterios.
El objetivo de este enfoque, llamado norma de jhonson o método (debido a su creador), es minimizar el tiempo del flujo, desde el comienzo de la primera tarea hasta la de terminación de la última. La norma de Jhonson consta de los pasos siguientes: 1. registrar el tiempo de operación para cada tarea en amabas maquinas. 2. Escoger el tiempo de operación mas corto. 3. Si el tiempo mas corto es para la primera maquina, hacer la tarea primero; si es para la segunda, hacer la tarea de último. 4. Repetir los pasos dos y tres para cada tarea restante hasta completar el programa. Ejemplo 17.2 N tareas en dos maquinas: cuatro tareas en dos maquinas.
Este procedimiento se puede ilustrar programando
Tarea
Tiempo de operación en la maquina 2
Tiempo de operación En la maquina 1
-A B C D
3 2 1 7
2 8 6 1
Programación de un numero determinado de tareas en el mismo numero de maquinas
Algunos talleres cuentan con el suficiente tipo correcto de maquinas para comenzar todas las tareas al mismo tiempo. Aquí el problema no es que tarea ejecutar primero si no que asignación de cada tarea a cada maquina dará como resultado el mejor programa global. En este caso, se puede utilizar el método de asignación. El método de asignación es un caso especial del método de transporte de la programación lineal. Puede aplicarse en situaciones en donde existen n fuentes de oferta y n usos de demanda (v.gr. cinco tareas en cinco maquinas) y el objetivo es minimizar alguna metida de efectividad. Esta técnica es conveniente en aplicaciones que impliquen la asignación de tareas a los centros de trabajo, de las personas a las tareas, etc. El método de asignación es apropiado en la solución de „ problemas que tengan las siguientes características. 1. Existen n “cosas” que deban distribuirse a n “destinos”. 2. Cada cosa debe asignarse a un solo destino 3. Solo se puede utilizar un criterio (costo mínimo, utilidad máxima o tiempo determinación mínimo, por ejemplo). Ejemplo 17.3 Método de asignación Suponga que un programador tiene cinco tareas que pueden ejecutarse en cualquiera de las cinco maquinas (n=5). El costo de terminación de cada combinación tarea-maquina se indica en el cuadro 17.4 Maquina Tarea
A
B
C
D
E
I II III IV V
US$5 6 4 7 3
US$6 4 3 2 6
US$4 9 2 4 4
US$8 8 5 5 5
US$3 5 4 3 5
Al programador le gustaría idear una asignación que tenga el costo mínimo (hay cinco! O ciento veinte asignaciones posibles). Solución. pasos:
Este problema puede resolverse mediante el método de asignación, que consta de otros cuatro
1. Sustraer el numero mas pequeño de cada hilera o fila de si mismo y todos los demás números de esa fila (habrá entonces por lo menos un cero en cada fila. 2. Sustraer el numero mas pequeño de cada columna de todos los demás números de esa columna (habrá entonces por lo menos un cero en cada columna). 3. Determinar si el numero mínimo de líneas requeridas para cubrir cada 0=n. En este caso afirmativo, se a encontrado una solución optima porque las asignaciones de maquinas y tareas deben hacerse en las entradas de cero y esta prueba demuestra que si es posible. Si el numero mínimo de líneas requeridas es menor que n, vaya al paso cuatro. 4. Dibujar el mínimo numero posible de líneas a través de todos los ceros (estas pueden ser las mismas líneas utilizadas en el paso tres). Sustraer de si mismo el numero mas pequeño no cubierto por las líneas, y todos los demás números no cubiertos, y agregarlo al numero que se encuentra en cada intersección de líneas. Repetir el paso tres PROBLEMAS PARA RESOLVER
1.-Auto Seat Covery Saint Shop de Joe esta sujeto a un contrato para hacer todo el trabajo por encargo para Smiling Ed a través de una distribución de autos. Uno de los principales requerimientos al obtener este contrato es un tiempo de entrega rápido, porque Ed – por razones que no se exponmdran aquí- desea que los autos sean levantados por el frente y por detrás en su lote rápidamente. Ed ha dicho que si Joe puede reajustar y repintar los cinco carros que acaba de recibir (de una fuente no mencionada) en 24 horas o menos, el contrato será suyo. A continuación se muestra el tiempo (en horas) requerido en el taller de reajuste y en el de pinturas para cada uno de los cinco autos. Suponiendo que los autos se reajustan antes de pintarse, ¿Podrá joe cumplir con los requerimientos de tiempo y obtener el contrato? Auto A B C D E
Tiempo de reajuste (Horas) 6 0 5 8 2
Tiempo de repintura (Horas) 3 4 2 6 1
En una operación de taller de trabajo, seis maquinistas fueron calificados únicamente para operar en cualquiera de las cinco maquinas del taller. El taller de trabajo tenia un numero considerable de pedidos pendientes y las cinco maquinas se mantenían ocupadas todo el tiempo. El maquinista que no estaba operando una maquina, estaba ocupado por lo general en labores de oficina o en mantenimiento de rutina. Todo el programa de valores que se presenta a continuación para cada maquinista en cada una de las cinco maquinas, desarrolle una asignación óptima. (Nota: agregue una columna fingida con valores de costo de 0 y resuelva utilizando el método de asignación). 2.
Maquina Maquinista
1
2
3
4
5
A B C D E F
65 30 75 60 90 145
50 75 35 40 85 60
60 125 85 115 40 55
55 50 95 130 80 45
80 40 45 110 95 85
3.
La tabla siguiente contiene información relacionada con las tareas que deben programarse en una maquina. Calcule por lo menos 3 diferentes opciones para dar un buen servicio a los clientes que lo solicitaron. Tarea
Tiempo de procesamiento (Dias)
A B C D E F G
Fecha de vencimiento
4 12 2 11 10 3 6
20 30 15 16 18 5 9
4. La matriz siguiente contiene los costos (en dólares) asociados con la asignación de las tareas A, B, C, D y E
a las maquinas 1, 2, 3, 4 y 5. Asigne las tareas a las maquinas para minimizar los costos. Maquinas
1
2
3
4
5
Tareas A B C D E
6 5 7 4 5
11 12 14 15 13
12 10 13 16 17
3 7 8 7 11
10 9 12 9 12