8. PRO PROGRAMACI GRAMACI ÓN DE OPER ACI ONES "Programar es el proceso de organizar, elegir y dar tiempos al uso de los recursos para llevar a cabo todas las actividades necesarias para producir las salidas deseadas en los tiempos deseados, satisfaciendo a la vez gran número de restricciones de tiempo y relaciones entre las actividades y los recursos", (Morton y Pentico, 1993). Un pr pr ogra gr ama especifica el tiempo en el que comienza y termina cada trabajo en cada máquina, al igual que cualquier recurso adicional que se necesite.
La carga se refiere a la asignación de trabajos a centros específicos de trabajo, personas o máquinas. La secu secueenci nci a es el orden como se procesan los trabajos. Algunos factores que pueden afectar la programación de la producción: Restricciones en la capacidad, el montaje limitado de maquinaria y equipos, y los trabajadores con habilidades específicas.
Aprovechar las semejanzas en la instalación del equipo para aumentar la productividad. Los pedidos de los clientes deben estar listos a tiempo. La carga asignada a cada centro de trabajo debe ser razonable.
8.1 E LE MENTOS DE LA PROGRAMACI ÓN DE L TALLE R DE TRABAJO El objetivo de minimizar costos o de maximizar ganancias en la programación de operaciones requiere identificar los elementos que son importantes: 1. Patrón de llegada de los trabajos:
Estático donde el tiempo de iniciación para todos los trabajos es el mismo.
Dinámico cuando ingresan trabajos con fecha de iniciación diferentes.
2. Número y variedad de máquinas en el taller.
Una máquina: cuando se procesan todos los trabajos en una sola máquina.
Varias máquinas:
Se puede presentar los siguientes casos:
Máquinas paralelas: Máquinas
idénticas que pueden realizar el los trabajos con el mismo tiempo de procesamiento en cualquiera de ellas. Con máquinas diferentes donde todos los trabajos siguen la misma secuencia de fabricación Taller de Producción Continua:
Taller de Producción Intermitente: Con
máquinas diferentes.
La secuencia de
fabricación es diferente para cada trabajo. Talleres abiertos: No hay una ruta única para el procesamiento de los trabajos.
102
3. Relación entre trabajadores y máquinas en el taller. Si el número de trabajadores es mayor que el número de máquinas se dice que el sistema es limitado por máquinas; y en caso contrario el sistema está limitado por el recurso humano. 4. Patrón de flujo de los trabajos por el taller. Puede ser taller de flujo cuando todos los trabajos siguen la misma secuencia. Taller de flujo aleatorio cuando no hay una secuencia única en el procesamiento de los trabajos. 5. Reglas de prioridades para asignar trabajos a las máquinas. Se usan para establecer la secuencia de procesamiento de los trabajos. Entre las más utilizadas están: Primero en entrar primero en atender UEPA: Último en entrar primero en atender MTO: Menor tiempo de operación MyTO: Mayor tiempo de operación FE: Fecha de Entrega FI: Fecha de inicio MTR: Mayor trabajo restante, Aleatorio: Se selecciona o pondera de acuerdo al criterio del programador: costos, preferencia por el cliente, volumen de pedido o utilidad PEPA:
tt p t pp tt Si
I.C. < 1, entonces I.C. = 1 I.C. > 1
el trabajo está atrasado el trabajo está a tiempo el trabajo está adelantado
6. Normas para la evaluación de los programas. Son aquellas que definen o evalúan las reglas de prioridades: a. b. c. d. e.
Cumplir con las fechas de entrega Minimizar el tiempo de flujo de los trabajos en el taller Minimizar el trabajo en proceso Minimizar los tiempos ociosos entre las máquinas Maximizar la utilización de los recursos
8.2 TERMINOLOGÍA DE LA PROGRAMACIÓN DEL TALLER DE TRABAJO n: m: Pik : ri: di: wi: Ci: Cimáx: Fi: Li: Ti: δi:
Número de trabajos a procesar Número de máquinas Tiempo de proceso del trabajo i en la máquina k Tiempo de liberación de la orden del trabajo i Fecha de entrega del trabajo i Ponderación (importancia) del trabajo i respecto a los otros trabajos Tiempo de terminación del trabajo i Tiempo de terminación de todos los trabajos o lapso (Makespan) Tiempo de flujo = Ci - Fi Retraso (adelanto) del trabajo i = Ci - di Tardanza del trabajo i = Máx {0, Li} Trabajo tardío Si el trabajo i se atrasa (Ti > 0), entonces δi = 1 : Trabajo tardío Si el trabajo i se adelanta o está a tiempo (Ti <= 0), δi = 0
8.3 PROGRAMACI ÓN DE UNA SOLA MÁQUI NA Corresponde a trabajos de una sola operación o donde se consideren varias máquinas agrupadas en un centro de trabajo. Las diferencias entre programas se verán calculando el flujo medio de tiempo, la tardanza máxima, el tiempo de terminación, número de trabajos atrasados que sirven además para determinación de los costos totales por retrasos o tiempos de espera. Para el siguiente ejercicio se supone que el tiempo de liberación de todos los trabajos es cero, es decir el patrón de llegada para los trabajos es estático. Orden de llegada A B C D E
Tiempo (días) 5 8 6 4 3
Fecha Entrega 7 10 12 15 8
Todos los trabajos deben ser procesados en la máquina T1. Cuál debe ser la secuencia de procesamiento con base en la norma de evaluación de menor tiempo de flujo? 104
1. PEPA: Secuencia
P ik CI Atraso FI
A
B
C
D
E
5 5 -2 5
8 13 3 13
6 19 7 19
4 23 8 23
3 26 18 26
Tiempo de flujo total = 5 + 13 + 19 + 23 + 26 = 86 días Tiempo promedio de flujo = 17,2 días Atraso promedio = 6,8 días
2. UEPA: Secuencia
P ik CI Atraso FI
E
D
C
B
A
3 3 -5 3
4 7 -8 7
6 13 1 13
8 21 11 21
5 26 19 26
Tiempo de flujo total = 70 días Tiempo promedio de flujo = 14 días Atraso promedio = 3,6 días
3. FE: Secuencia
P ik CI Atraso FI
A
E
B
C
D
5 5 -2 5
3 8 0 8
8 16 6 16
6 22 10 22
4 26 11 26
Tiempo de flujo total = 77 días Tiempo promedio de flujo = 15,4 días Atraso promedio = 5 días
4. MTO: Secuencia
P ik CI Atraso FI
E
D
A
C
B
3 3 -5 3
4 7 -8 7
5 12 5 12
6 18 6 18
8 26 16 26
Tiempo de flujo total = 66 días Tiempo promedio de flujo = 13,2 días Atraso promedio = 2,8 días
La regla de MTO da como resultado un menor tiempo de flujo total y un atraso promedio menor; lo cual es siempre cierto para el caso de una máquina. Esto es, que la secuencia óptima para programas de una máquina está dada por la regla de menor tiempo de operación (MTO).
8.3.1 PROGRAMACIÓN DE TRABAJOS PONDERADOS. Siguiendo el ejemplo anterior suponga que no todos los trabajos tienen igual valor (ponderación), así: Los trabajos A y C son tres veces mayores que el trabajo B, el trabajo D es igual a B y E es el doble de B. Encuentre el programa óptimo para estos trabajos. Orden de Llegada
P ik Ponderación (W) Cociente P /W i Secuencia CI FI
A
B
C
D
E
5 3 1,67
8 1 8
6 3 2
4 1 4
3 2 1,5
E
A
C
D
B
3 3
8 8
14 14
18 18
26 26
Tiempo de Flujo Ponderado = (3x2) + (8x3) + (14x3) + (18x1) + (26x1) = 116
8.3.2 ALG ORI TMO DE H ODGSON. En la secuencia con fecha de entrega (FE) es posible que existan trabajos tardíos, por consiguiente, para tener la mayor cantidad posible de trabajos a tiempo es necesario minimizar el número de trabajos tardíos aplicando el algoritmo de Hodgson, de acuerdo con el siguiente procedimiento:
1. Calcular la tardanza de cada trabajo para la secuencia FE. Se enumeran los trabajos de 1 hasta k , siendo k la primera posición con un trabajo tardío Secuencia
P ik
A
E
B
C
D
5
3
8
6
4
CI Atraso (Li) Tardanza
5 -2 0
8 0 0
16 6 6
22 10 10
26 11 11
δi
0
0
1
1
1
1
2
3
Posición (k)
2. De las posiciones 1 a la k se encuentra el trabajo con el tiempo de procesamiento más largo y se iguala a j* (j índice del trabajo con el mayor tiempo entre los primeros k trabajos)
J* = B 106
3. Se quita el trabajo j* de la secuencia y se lleva al final en cualquier orden. Y se vuelve al punto 1, para encontrar la tardanza de los trabajos que quedan en la secuencia, hasta que todos los trabajos tengan tardanza 0. Secuencia
P ik
A
E
C
D
5
3
6
4
5 -2 0 0 1
CI Atraso (Li) Tardanza δi
Posición (k)
8 0 0 0 2
14 2 2 1 3
18 3 3 1
J* = C (trabajo con mayor tiempo de proceso entre la posición 1 y k)
A
Secuencia
P ik
E
5
3 5 -2 0 0
CI Atraso (Li) Tardanza δi
D 4 8 0 0 0
12 -3 0 0
El programa que minimiza el número de trabajos tardíos, es:
Secuencia P ik C i Atraso (L )i Tardanza
A
E
D
C
B
5 5 -2 0
3 8 0 0
4 12 -3 0
6 18 6 6
8 26 16 16
δi
0
0
0
1
1
8.3.3 ALGORITMO DE HODGSON PARA TRABAJOS PONDERADOS. Calcular las tardanzas de los trabajos en la secuencia FE y se numeran de 1 a k, teniendo que k es la posición con el primer trabajo tardío. Se encuentra el trabajo con el mayor cociente P /W y se i lleva al final de la secuencia. Secuencia FE
A
P ik C i
E
B
C
D
Tardanza
5 5 0
3 8 0
8 16 6
6 22 10
4 26 11
δi
0
0
1
1
1
1
2
3
3 1,67
2 1,5
1 8
3 2
1 4
Posición (k)
Ponderación (W) Cociente P /W i
J* = B (Trabajo con mayor cociente entre la posición 1 y k)
1. Se calculan las tardanzas para los trabajos restantes y se siguen con los pasos anteriores, hasta no encontrar en los trabajos de la secuencia trabajos tardíos Secuencia FE
A
P ik C i
E
C
D
Tardanza
5 5 0
3 8 0
6 14 2
4 18 3
δi
0
0
1
1
1
2
3
3 1,67
2 1,5
3 2
Posición (k)
Ponderación (W) Cociente P /W i
1 4
J * = C (Trabajo con mayor cociente entre la posición 1 y k) Secuencia FE
A
P ik C i
E
D
Tardanza
5 5 0
3 8 0
4 12 0
δi
0
0
0
La secuencia final del programa que minimiza el número ponderado de trabajos tardíos es:
Secuencia
A
E
D
C
B
8.3.4 ALGORI TMO PARA MI NI MI ZAR ADE LANTOS Y RE TRASOS CON F E CHA D E E NTRE GA COMÚN. En la programación de trabajos resulta igual de costoso tener trabajos adelantados que trabajos atrasados, donde el costo total por sanción es:
| |
Sea di = D para todos los trabajos i. Procedimiento: 1. Se numeran los trabajos en el orden de mayor a menor tiempo de procesamiento (MyTO). 2. Se establece un programa en forma de V (trabajos a tiempo (adelantados) en orden MyTO y trabajos atrasados en orden MTO). 108
3. Se determina el trabajo cuya posición es j*, el menor entero mayor o igual que n/2. Si n es par, se tienen igual número de trabajos antes y después de la fecha de entrega. Si n es impar hay un trabajo adicional después de la fecha de entrega. 4. Se organizan los trabajos de acuerdo a la secuencia: 1-3-5-7-…….-n-……..8-6-4-2 Sea ∆ = p1 + p2 + p3 + ….. + p j*
Existen dos casos: Si D ≥ ∆
El problema es de Fecha de entrega no restringida, y
Si D < ∆
El problema es de Fecha de entrega restringida.
8.3.4.1 CASO F E CHA DE E NTRE GA NO RE STRI NGI DA. Una empresa tiene 10 trabajos de un cliente los cuales serán embarcados para su entrega una vez estén listos. La empresa se propone entregar los trabajos en 82 horas. La sanción por trabajos atrasados será igual a la de los trabajos adelantados; por consiguiente, de qué manera debe organizarlos para minimizar la sanción. En la tabla se dan los tiempos de procesamiento en horas para las órdenes de trabajo pendientes. Orden de Trabajo Pi (horas)
010 27
011 18
012 6
013 9
014 15
015 22
016 12
017 10
018 8
8
9
019 13
D = 82 horas Trabajos Regla MyTO Secuencia Pi (horas) Ci Ajustado Fecha Entrega Li
1 27 1 27 27 33 -49
2 22 3 18 45 51 -31
3 18 5 13 58 64 -18
∆ = 27 + 18 + 13 + 10 +8 = 76
4 15 7 10 68 74 -8
5 13 9 8 76 82 0
6 12 10 6 82 88 6
Entonces D ≥ ∆
7 10 8 9 91 97 15
9
8
6 12 103 109 27
4 15 118 124 42
10 6 2 22 140 146 64
Por consiguiente, la fecha límite de terminación del trabajo 9 es 82 horas, y el trabajo 1 debe iniciarse en la hora 6. La sanción para este caso será de:
∑||
8.3.4.2 CASO F E CH A DE E NTR E GA RE STRI NGI DA (H eurístico de Sundararaghavan y Ahmed, 1984 – S& A-). Con la misma información del problema anterior, pero con fecha de entrega común de 62 horas, se procede de la siguiente manera: 1. Se ordenan los trabajos de mayor a menor tiempo de operación (MyTO). 2. Se establece
∑
B=D
Para k = 1, Bk = B, Ak = A, bk = 1, Ak = n. posición b.
k=1
a=n
Si B > A entonces se asigna el trabajo k a la
Calcular Bk+1 = Bk - pk ; bk+1 = bk +1; Ak+1 = Ak y ak+1 = Ak . Si B < A, entonces, asigne la posición Pk = an. Calcular Ak+1 = Ak – pk ; Bk+1 = Bk ; Ak+1= Ak – 1 y bk + 1 . Continuando con el ejemplo se tiene: B k 1 2 3 3 5 6 7 8 9 10 Secuencia Pi (horas) Ci Li
pk 27 22 18 15 13 12 10 9 8 6 2 22 22 -40
b 62 62 62 40 40 25 25 13 13 4 4
4 15 37 -25
6 12 49 -13
A 1 1 1 2 2 3 3 4 4 5 5
8 9 58 -4
a 78 78 51 51 33 33 20 20 10 10 2
10 6 64 2
9 8 72 10
10 10 9 9 8 8 7 7 6 6 5 7 10 82 20
Posición 10 1 9 2 8 3 7 4 6 5 5 13 95 23
3 18 113 51
1 27 140 78 110
La sanción para este caso será de:
∑||
8.4 TALLE R DE PRODUCCI ÓN CONTI NUA (FLOW SHOP) En el caso de la producción continua todos los trabajos siguen una única secuencia.
8.4.1 PROGRAMACIÓN PARA DOS MÁQUINAS, m = 2 (MÉTODO JOHNSON): Todos los trabajos siguen la misma secuencia (operación 1 Operación 2) El programa que minimiza el tiempo de flujo desde el inicio del primer trabajo hasta la conclusión de todos los trabajos es el método Johnson que consiste en:
Seleccionar el menor tiempo de operación de la tabla de trabajos. Si corresponde a la máquina u operación 1, este trabajo se ubica primero en la secuencia; si corresponde a la máquina 2 se coloca al final de la secuencia. De los trabajos restantes se escoge el menor tiempo, si corresponde a la primera operación se ubica siguiente en la secuencia de los trabajos de esta máquina, pero si corresponde a la segunda se ubica antes en la secuencia de los trabajos de la segunda máquina. Así, se continúa hasta la ubicación de todos los trabajos.
E jemplo. Encontrar la secuencia óptima de los siguientes trabajos que siguen la secuencia de: operación 1 a operación 2. Trabajo A B C D E
Tiempo Op. 1(horas) 4 5 3 8 9
Tiempo Op. 2 (horas) 7 6 9 4 2
Primer trabajo con menor tiempo (2):
E, corresponde a la operación 2, va al final de la secuencia C, para la operación 1, estará al inicio A, para la operación 1, será el segundo en la secuencia; y D, para la operación 2, irá penúltimo. B, se ubica de tercero en la secuencia
Segundo trabajo menor tiempo (3): Tercer trabajo menor tiempo (4):
Por consiguiente, Operación 1: C A Operación 2:
B
Secuencia F inal
D E
C
A
B
D
E
Diagr ama de Gantt: Operación 1. Operación 2.
C
3
A
3
C
7
B
12 D 12
A
20 19 B
E
29 25 D
29 E 31
El tiempo de terminación de todos los trabajos es de 31 horas ó sea el C imáx= 31 horas
8.4.2 PROGRA MACI ON PARA MA S DE DOS MAQUI NAS, m > 2. Cuando el número de máquinas es mayor a dos, el algoritmo de Johnson no aplica, por consiguiente, la solución para estos casos se busca a través de los heurísticos.
HE URÍ STI CO CDS (CAMBE LL, DUDEK Y SMI TH): Consiste en convertir el problema en un problema de dos máquinas para aplicarle el método Johnson, conocido como el heurístico CDS, para lo cual se procede de la siguiente manera: 1. Se definen dos seudomáquinas identificadas como P'i1 y P'i2: k
P 'i1
P ij j 1
m
P 'i 2
P ij j l
2. Se generan (m – 1) programas para aplicar el algoritmo de Johnson e iniciando el primero P'i1, para k = 1 y para P'i2, l = m. El segundo para k = 1 + 1 = 2, y l = m - 1, y así sucesivamente hasta completar todos los programas. 112
3. Se resuelven todos los programas para las seudomáquinas siguiendo la secuencia obtenida para cada uno con el método Johnson, y se selecciona la secuencia con el tiempo de terminación máximo (Cimáx) menor.
E jemplo. Se quieren procesar varios trabajos que siguen la misma secuencia de fabricación en un taller de cuatro máquinas. Los tiempos de procesamiento en días por máquina para cada trabajo se dan a continuación: Trabajo Máquina
A 1 2 3 4
B 2 6 9 10
C 5 4 7 6
D 8 3 4 2
1 5 3 6
Para el problema el número de programas es igual a m -1 = 3, donde el primer programa para k=1 y l = m, es: Trabajo Máquina
A P' i1 P' i2
B 2 10
C 5 6
D 8 2
1 6
28 C
32
Aplicando Johnson el resultado es:
Secuencia D A
B
D
8 C
D
6 A
6 D 9
6
A
B
C
16 12 B
9 D
16 C 19
12 A
21 B 15
21 A
31 B
37 C 39
C imáx = 39 días
Segundo programa para k=2 y l = m -1:
Trabajo Máquina
A P' i1 P' i2
B
C
8 19
D
9 13
11 6
6 9
Aplicando Johnson tenemos la misma secuencia que en el pograma 1: Secuencia
D
A
B
C C imáx = 39 días
Segundo programa para k=3 y l = m -2: Trabajo Máquina
A P' i1 P' i2
B
C
17 25
D
16 17
15 9
9 14
Aplicando Johnson tenemos la siguiente secuencia: Secuencia DB
6 A8 C
16
D
6 B 10 A
16 C 19
6 D 9
6
B
D
B
17 A
9 D
15
B
26 C 23
A
C
30
26 A
36 C 38
C imáx = 38 días
D B A C
El programa que tiene el menor C imáx es la secuencia:
HE URÍ STI CO DE GUPTA. Gupta propone un algoritmo que define: ei
1
si
Pi1 < Pim
-1
si
Pi1
=
Pim
{ }
y,
Donde la secuencia de permutación se determina: S[1}
S[2]
S[3] . . .
S[n]
Continuando con el ejemplo anterior se tendría que: 114
Trabajo Máquina
A 1 2 3 4
Trabajos A B C D
P 1+P 2 8 9 11 6
B 2 6 9 10
P 2+P 3 15 11 7 8
C 5 4 7 6
P 3+P4
D 8 3 4 2
1 5 3 6
Mín
ei
8 9 6 6
1 1 -1 1
19 13 6 9
Si
[I ]
0,125 0,111 -0,167 0,167
2 3 4 1
El programa según Gupta indica que la secuencia de fabricación debe ser: Secuencia
D
A
B
C
8.5 TALLE R DE PRODUCCI ÓN I NTER MI TENTE (JOB SHOP) En el caso de la producción intermitente los trabajos siguen direcciones diferentes.
8.5.1. PROGRAMACI ON PARA DOS MAQUINAS, m = 2 La (MÉTODO JACKSON): secuencia de fabricación es diferente para todos los trabajos, esto es, que siguen diferentes rutas, donde se pueden presentar los siguientes casos: Secuencia 1: Secuencia 2: Secuencia 3: Secuencia 4:
Operación 1 Operación 2 Operación 2 Operación 1 Operación 1 solamente Operación 2 solamente
E jemplo. Encontrar el programa óptimo para los siguientes trabajos?
Trabajos Ruta PiA PiB
1 AB 6 4
2 A 2 0
3 B 0 5
4 B 0 3
5 BA 1 2
6 BA 7 3
7 AB 2 8
8 BA 5 7
1º. Se separan los trabajos según la secuencia conformando diferentes conjuntos: Secuencia AB: Secuencia A:
{1,7} {2}
Secuencia BA: Secuencia B:
{5,6,8} {3,4}
Ahora bien, el trabajo 2 con secuencia A puede incluirse en el conjunto de la secuencia AB, donde el tiempo de B es cero. Igual los trabajos 3 y 4 con secuencia B se incluirían en el conjunto BA, con tiempo cero para A. 2º. Se aplica el método Johnson para cada conjunto de trabajos de la siguiente manera: Trabajos con secuencia AB: Trabajos Ruta PiA PiB
1 AB 6 4
Secuencia
7 AB 2 8
7
2 A 2 0
1
2
Trabajos con secuencia BA: Trabajos Ruta PiA PiB
5 BA 1 2
Secuencia
6 BA 7 3
6
8 BA 5 7
8
3 B 0 5
5
4 B 0 3
4
3
3º. Se inicia la asignación en la Máquina A de los trabajos con secuencia AB y en la Máquina B los trabajos con secuencia BA hasta terminar todos los trabajos en las dos máquinas. Máquina A: 7 1
Máquina B: 6 3 8
8 2
6
10 5
17 8 4
15 3
22 5 20 7
23 28 1
32
C imáx = 32 días 116