You are on page 1of 21

Programacin de operaciones

Control de la Produccin - Ingeniera Industrial Semestre 2013-I

Programar
Organizar - Elegir - Dar tiempos
Al uso de

Escasos = restricciones

mquinas Determinar la mejor secuencia trabajos

Recursos
Para llevar a cabo

cantidades Actividades necesarias


Para producir

Salidas

requeridos

tiempos

Mejor secuencia
Fcil Enumerar todas las posibles secuencias Orden de trabajos

y elegir la que optimiza una medida de desempeo

Modelos y algoritmos de programacin

32 trabajos Secuencias posibles: 32! = 2.6x1035


Explosin combinatoria

Definiciones
Trabajos Actividades a realizar
Tiempo de procesado conocido. Una vez empieza a realizarse, debe terminarse. Fecha lmite para terminarse. Fecha lmite para empezar(?). Puede depender de otro (varios tipos de dependencia: p.e. taladrado roscado, finalizacin del trabajo en curso). Slo se puede procesarse un trabajo a la vez. Una sola mquina: un trabajo a la vez. Mquinas paralelas: varias mquinas pueden realizar el mismo trabajo. Talleres de produccin continua: todos los trabajos siguen la misma ruta. Produccin intermitente: cada trabajo tiene una ruta. Plantas abiertas: los trabajos no tienen una ruta especfica (taller mecnico). Pocos usuales no se analizarn.

Mquinas

Medidas de desempeo
Max ganancia; Min costo Medida sustituta: funcin del tiempo de terminacin Sean: n = nmero de trabajos que sern procesados m = nmero de mquinas Pik = tiempo de procesado del trabajo i en la mquina k (pi si m = 1) ri = tiempo de liberacin de la orden (o fecha de distribucin) del trabajo i di = fecha de entrega del trabajo i wi = ponderacin (importancia o valor) del trabajo i respecto a los otros trabajos Dado un programa especfico, se define para cada trabajo i: Ci = tiempo de terminacin del trabajo i Fi = Ci ri, tiempo de flujo del trabajo i (Fi >0) Li = Ci di, retraso del trabajo i (Li < 0 denota anticipacin) Ti = mx {0, Li}, tardanza del trabajo i Ei = mx {0, -Li}, adelanto del trabajo i i = 1 si el trabajo i se atrasa (es decir, si Ti >0) i = 0 si el trabajo i est a tiempo o se adelanta (es decir, si Ti = 0) Cmx = mxi = 1, n {Ci}, tiempo mximo de terminacin de todos los trabajos o lapso Lmx = mxi = 1, n {Li}, retraso mximo de todos los trabajos Tmx = mxi = 1, n {Ti}, tardanza mxima de todos los trabajos

Supuestos
Los problemas de programacin suponen:
Certidumbre en los datos Tiempos de preparacin independientes del orden Todos los trabajos estn disponibles de inmediato (ri = 0) No hay precedencia entre trabajos Una vez comienza el trabajo, no se puede interrumpir

Algoritmos de programacin

Exactos
Proporcionan una solucin ptima
No siempre son viables

Heursticos
Dan soluciones cercanas a la ptima (puede ser la ptima)

Grficas de Gantt

Grficas de Gantt - ejemplo


T procesamiento/#mq. Trabajo 1 2 3 4 Op 1 4/1 1/2 3/3 3/2 Op 2 3/2 4/1 2/2 3/3 Op 3 2/3 4/3 3/1 1/1 ri 0 0 0 0 di 16 14 10 8

Grficas de Gantt - ejemplo


Trabajo 1 2 3 4 Op 1 4/1 1/2 3/3 3/2 Op 2 3/2 4/1 2/2 3/3 Op 3 2/3 4/3 3/1 1/1 ri 0 0 0 0 di 16 14 10 8

M1
M2

M3
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

Calcular Ci, lapso, Fi, retraso y tardanza.

Programacin de una sola mquina

Trabajo 1 Trabajo 2 Mquina

Trabajo 3
Trabajo i
Tambin es til para programar mquinas de que representan cuellos de botella de un proceso en serie.

Programacin de una sola mquina


Medidas de desempeo

Tiempo de flujo mnimo Retraso Tiempo de flujo ponderado Retraso mximo Tardanza mxima Nmero de trabajos tardos

Tiempo de flujo mnimo


p.e. cuando los costos de inventario en proceso son muy altos Supuestos: El valor de todos los trabajos es el mismo. Minimizar el tiempo de flujo total tiende a minimizar los costos totales. Todos los trabajos estn disponibles para iniciarse. Trabajo i 1 2 3 Cmo programo los trabajos de manera que se minimice el tiempo de flujo total?

pi Secuencia natural:
M1
0 1

1
2 3 4

2
5 6 7

3
8 9

4
10 11 12

5
13 14 15

Tiempo de flujo mnimo


Tiempo de flujo total = suma de los tiempos de flujo de cada trabajo = suma de los tiempos de terminacin Tiempo de terminacin del trabajo i = tiempo de procesado del trabajo i ms el tiempo de procesado de los trabajos anteriores.

En general, para n trabajos programados el tiempo de flujo total es:


F = p1 + (p1 + p2) + (p1 + p2 + p3) + + (p1 + p2 + p3 + + pn) F = np1 + (n-1)p2 + (n-2)p3 + + pn

Menor tiempo de proceso

Segundo tiempo de proceso ms corto

Secuencia con el tiempo de trabajo ms corto (TPC) o (SPT)

Retraso
El retraso de un trabajo i se define como Li = Ci di. El Retraso total es:
i

Li = (C i di) = C i di i i
Constante, no depende del programa

Al minimizar Ci, se minimiza el retraso

La secuencia con el tiempo de trabajo ms corto (TPC) tambin minimiza el retraso

Tiempo de flujo ponderado


Los trabajos tienen diferente nivel de importancia Wi = peso o valor del trabajo i En inventario, el peso puede ser el valor del trabajo. El valor del inventario en cualquier punto en el tiempo es el valor de los trabajos que esperan por ser procesados. Sea i el ndice del trabajo programado en la i-sima posicin p.e. si el trabajo 3 se programa de primero [1]=3 El tiempo de terminacin del trabajo programado en la i-sima posicin es la suma de los tiempos de procesamiento de los trabajos 1 a i, C[i] = p[1] + p[2] + + p[i] Si las rdenes de todos los trabajos se manda en tiempo cero, el tiempo de terminacin es el mismo tiempo que pasan en inventario, el valor total del inventario para un programa es: wiCi = w1C1 + w2C2 + + wnCn

Tiempo de flujo ponderado


Menor tiempo y mayor peso M1
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

Mayor tiempo y menor peso


Mayor peso

Menor tiempo

Razn de tiempo de procesamiento entre el peso :

pi wi

Ordenar de menor a mayor

Secuencia de tiempo de procesado ponderado ms corto (TPPC)

Tiempo de flujo ponderado


Los trabajos 1 y 4 tienen el mismo valor, Los trabajos 3 y 5 tienen un valor tres veces ms grande que 1 o 4 El trabajo 2 vale cuatro veces ms que 1 o 4

Trabajo i 1
pi wi Razn 4 1 4/1

2
2 4 2/4

3
3 3 3/3

4
2 1 2/1

5
4 3 4/3

M1
0

2
1 2 3

3
4 5 6

5
7 8 9

4
10 11 12

1
13 14 15

Calcular Ci Calcular tiempo de flujo ponderado = wiFi

Tardanza mxima y retraso mximo


Hay fechas de entrega.

Los algoritmos que minimizan el tiempo de flujo, pueden no ser buenos para priorizar fechas de entrega.

Cmo se ordenan los trabajos para minimizar la tardanza mxima?


Colocar primero el trabajo con la fecha de entrega ms prxima, despus la siguiente ms cercana, etc.

Secuencia de fecha de entrega ms cercana (FEC) Suponga estas fechas de entrega: Trabajo i 1 pi di 4 16 2 2 10 3 3 7 4 2 7 5 4 5 Calcular Lmx Tmx

Nmero de trabajos tardos


Unos de los problemas de la secuencia FEC es aunque ninguno salga demasiado tarde, muchos (o incluso todos) pueden salir algo tarde. A veces se quiere minimizar el nmero de trabajos tardos.

Algoritmo de Hodgson

Paso 1
Se calcula la tardanza para cada trabajo de la secuencia FEC. Se hace NT = 0; sea k la primera posicin que contiene un trabajo tardo. Si ningn trabajo est tarde, se va al paso 4

Paso 2
Se encuentra el trabajo con el tiempo de procesado ms largo en las posiciones 1 a k. Sea p[j] = mxi=1, k p[i]; entonces j*=[j] es el ndice del trabajo con el tiempo de procesado ms largo entre los primeros k trabajos.

Paso 3
Se quita el trabajo j* de la secuencia, se hace NT = NT+1, y se repite el paso 1.

Paso 4
Los trabajos NT que se quitaron se colocan al final de la secuencia, en cualquier orden. Esta secuencia minimiza el nmero de trabajos tardos.

Bsqueda de una sola mquina


Mtodos de bsqueda utilizados ampliamente en programacin.

Vecindad

Semilla

Vecindad Semilla