Académique Documents
Professionnel Documents
Culture Documents
operaciones
LUIS VILLARREAL LÓPEZ
Contenido del Tema
Programar es el proceso de organizar, elegir y dar tiempos al uso de recursos para llevar a
cabo todas las actividades necesarias, para producir las salidas deseadas en los tiempos
deseados, satisfaciendo a la vez un gran número de restricciones de tiempo y relaciones
entre las actividades y los recursos.
Una secuencia es un orden simple de trabajos; 3-1-2 indica que el trabajo 3 se hace
primero, luego el 1 y por último el trabajo 2.
Introducción
Si cada trabajo comienza tan pronto como es posible y se procesa sin interrupción para un
tiempo dado de procesamiento, la secuencia determina los tiempos de inicio y terminación
y, por lo tanto, determina la programación.
Determinar la "mejor" secuencia parece sencillo; sólo se enumeran todas las secuencias y se
elige la que optimiza alguna medida de desempeño. Para 32 trabajos, el número de
secuencias posibles es:
32! ≈ 2,63 × 1035
Suponga que un computador puede revisar 1000 millones de secuencias por segundo. ¿En
cuanto tiempo se revisarían todas las secuencias (en siglos)?
8,34 × 1016 siglos
ES UN PROBLEMA NP-HARD
1. Entorno de la programación de operaciones
Trabajos
Máquinas
Medición
1.1 Trabajos
Los trabajos son actividades a realizar. Una orden de producción especifica el numero de
partes idénticas que deben hacerse y una fecha de entrega para el trabajo.
Los trabajos pueden tener diferentes interpretaciones de acuerdo con el contexto: clientes
para atender en un restaurante, aviones que van a aterrizar en un aeropuerto, clientes a ser
atendidos en un banco…
A menos que se establezca de otra manera, una vez que comienza a realizarse un trabajo,
debe procesarse continuamente hasta terminarlo; es decir, no se permiten interrupciones.
1.1 Trabajos
Un trabajo también puede tener una fecha de inicio (o fecha de distribución de la orden),
antes de la cual el procesamiento no puede comenzar.
Otro tipo de dependencia ocurre cuando el tiempo necesario para un trabajo depende de
que el trabajo anterior sea procesado. Si el trabajo 1 necesita un conjunto de herramientas
en una máquina y el trabajo 2 necesita otro, entonces después de procesar el trabajo 1
debe cambiarse el herramental antes de procesar el trabajo 2. Si el trabajo 3 necesita las
mismas herramientas que el trabajo 1, entonces la secuencia 1-2-3 requiere más
preparaciones que la secuencia 1-3-2. Esto se conoce como tiempo de preparación
dependiente de la secuencia
1.1 Trabajos
Se supone que los trabajos son independientes a menos que se diga lo contrario.
Se supone además que, si debe procesarse un trabajo en más de una máquina, el trabajo
sólo puede procesarse en una máquina a la vez; es decir, no se puede hacer otro trabajo al
mismo tiempo
1.2 Máquinas
Las máquinas procesan trabajos. En la manufactura, una máquina puede ser un equipo
que realiza una operación específica. (un taladro, un torno, una fresadora)
Ejemplos…
1.2.2 Máquinas paralelas
Cuando varias máquinas (servidores) pueden realizar el mismo tipo de procesamiento se llaman
máquinas paralelas.
Un trabajo se puede procesar en cualquiera de las máquinas, y una vez procesado por
cualquiera de ellas, queda terminado.
A menos que se diga lo contrario, se supone que todas las máquinas paralelas son idénticas.
Ejemplos…
1.2.2 Máquinas paralelas
1.2.3 Taller de producción continua – Flow Shop
Más aún, todos los trabajos siguen la misma ruta; esto es, deben visitar las máquinas en el
mismo orden.
Se pueden numerar las máquinas de manera que la 1 sea la primera, la 2 la segunda, y así
sucesivamente. Un trabajo no puede comenzar su procesado en la segunda máquina
hasta no terminar el de la primera
Las líneas de ensamble y las células son ejemplos típicos de producción continua.
1.2.3 Taller de producción continua – Flow Shop
1.2.4 Taller de producción intermitente – Job Shop
Los talleres abiertos son aquellos en los que los trabajos no tienen una ruta específica.
Los vehículos necesitan reparaciones múltiples que requieren distintos equipos, pero el
orden de las reparaciones carece de importancia.
Por otro lado, no se conocen algoritmos eficientes para optimizar la ganancia o el costo en
modelos de programación de la producción.
Se usan objetivos sustitutos para aproximar algunos costos relevantes. Las medidas sustituías,
por lo general, son funciones de tiempos de terminación para un programa dado.
1.3 Medición
Una medida normal es una función del tiempo de terminación, en la que el objetivo es
minimizar la función y donde esa función sólo se incrementa si al menos un tiempo de
terminación en el programa aumenta.
1.3 Medición
Las reglas de prioridad son reglas usadas para obtener una secuenciación de los trabajos. Las
reglas pueden ser muy simples y pedir únicamente que los trabajos se ordenen de acuerdo con
un dato, como el tiempo de procesamiento, plazo u orden de llegada.
Otras reglas, aunque también simples, requieren más datos, casi siempre para obtener un
número indicador, como la regla del menor margen de tiempo y la regla de la proporción crítica
(que se definen más abajo).
EDD 5 3 4 2 1
Cj 4 7 9 11 15
5. Retraso máximo: 𝐿𝑚𝑎𝑥 = 𝑚𝑎𝑥𝑗=1,𝑛 𝐿𝑗
Lj -1 0 2 1 -1 Lmax 2
a. EDD minimiza 𝐿𝑚𝑎𝑥
Tj 0 0 2 1 0 Tmax 2
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Gantt
5 3 4 2 1
6. Tardanza máxima 𝑇𝑚𝑎𝑥 = 𝑚𝑎𝑥𝑗=1,𝑛 𝑇𝑗
donde 𝑇𝑗 = 𝑚𝑎𝑥 0, 𝐿𝑗
a. EDD minimiza 𝑇𝑚𝑎𝑥
2.2 Objetivos
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Gantt
3 4 2 1 5
3. Programación de máquinas paralelas
Los trabajos consisten en una sola operación y una vez que comienza el procesamiento
debe terminarse
La decisión comprende dos aspectos: ¿Qué máquina procesa el trabajo? Y ¿En qué orden?
3.1 Tiempo de flujo y retraso
suma de Cj 372
Cj promedio: 24,8
3.1 Tiempo de flujo y retraso
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
M1
1 4 7 10 13
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
M2
2 5 8 11 14
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
M3
3 6 9 12 15
3.2 Lapso de producción
Si se quiere minimizar el tiempo durante el cual la planta tiene que trabajar, LPT (Longest
processing time – tiempo de producción más largo) genera una buena aproximación
aunque no es óptimo en muchos casos:
Trabajo j 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
pj 1 3 4 6 9 10 10 11 12 13 13 14 16 18 19
suma de Cj 582
Cj promedio: 38,8
3.2 Lapso de producción
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
M1
15 10 7 4 3
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
M2
14 11 8 5 2
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
M3
13 12 9 6 1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
M1
15 10 7 4 3 1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
M2
14 9 8 5 2
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
M3
13 12 11 6
3.3 Lapso de producción y Tiempo de flujo
Si ambas medidas son importantes: primero se aplica LPT y luego SPT para cada máquina
Trabajo j 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
pj 1 3 4 6 9 10 10 11 12 13 13 14 16 18 19
Todos los trabajos se procesan en el mismo orden, de manera que se pueden numerar las
máquinas: 1 para la primera operación, 2 para la segunda y así sucesivamente.
Las células dedicadas son buenos ejemplos de Flow Shop (producción continua), donde una
familia, o grupo de partes se produce en una célula.
Se supone que cada trabajo debe procesarse en todas las máquinas en el mismo orden, aunque
los tiempos pueden ser diferentes.
Trabajos
Máquinas 1 2 3 4
M1 M2 1 5 4 3 2
2 2 5 2 6
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
M1
1 2 3 4
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
M2
1 2 3 4
3.1 Lapso de producción - Flow Shop con
dos máquinas: algoritmo de Johnson
Trabajos
Máquinas 1 2 3 4
M1 M2 1 5 4 3 2
2 2 5 2 6
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
M1
1 2 3 4
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
M2
1 2 3 4
3.1 Lapso de producción - Flow Shop con
dos máquinas: algoritmo de Johnson
Regla: el trabajo 𝑗 precede al trabajo 𝑗 + 1 si: 𝑚𝑖𝑛 𝑝1𝑗 , 𝑝2𝑗+1 < 𝑚𝑖𝑛 𝑝1𝑗+1 , 𝑝2𝑗 . Esta regla se
puede implementar de la siguiente manera:
1. Hacer una lista de los valores 𝑝1𝑗 𝑦 𝑝2𝑗 en dos columnas (filas)
2. Buscar el menor 𝑝𝑖𝑗 . Si esta en la máquina 1 programarlo como primer trabajo, si está en la máquina
2 programarlo de último.
3. Tachar los trabajos cuando se programan. El procedimiento termina cuando se programen todos
los trabajos.
3.1 Lapso de producción - Flow Shop con
dos máquinas: algoritmo de Johnson
Trabajos
Máquinas 1 2 3 4
1 5 4 3 2 Primero el trabajo 4
2 2 5 2 6 se envia el trabajo 1 al final
se envia el trabajo 3 de penultimo
Johnson 4 2 3 1 se deja el trabajo 2 de segundo
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
M1
4 2 3 1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
M2
4 2 3 1
3.2 Algoritmo de Johnson para tres máquinas
Máquinas Máquinas
1 2 3 1 2
1 4 5 8 1 9 13 Último el trabajo 3
2 9 6 10 2 15 16 primero el trabajo 1
Trabajos 3 8 2 6 Trabajos 3 10 8 segundo el trabajo 4
4 6 3 7 4 9 10 tercero el trabajo 5
5 5 4 11 5 9 15 cuarto el trabajo 2
min(p1j) 4 Johnson 1 4 5 2 3
max(p2j) 6
min(p3j) 6
4. Job Shop
Existe cierto número de trabajos que usan las mismas máquinas pero en orden diferente
Algoritmo de Jackson