Logo Studenta

T1 Planeación y control de la producción

¡Este material tiene más páginas!

Vista previa del material en texto

UNIVERSIDAD DISTRITAL FRANCISCO JOSE DE CALDAS 
PROYECTO CURRICULAR DE INGENIERIA INDUSTRIAL 
AREA SISTEMAS PRODUCTIVO 
PROGRAMACION Y CONTROL DE LA PRODUCCION 
Código. 110 Créditos: 3. Grupo 025 
 
 
Código Nombre % Participación en el 
trabajo / 100% 
Nota 
20162015433 Iván Felipe Mejía 
Peña 
 
20171015054 José Mauricio 
Lobatón Gómez 
 
20171015098 Jenniffer Alejandra 
Benavides Liévano 
 
 
Problema 1. 
Considere la siguiente situación de 20 trabajos para procesar en una maquina sin restricciones de 
precedencia, la maquina solo puede procesar un trabajo a la vez y no se permite la interrupción de 
un trabajo iniciado. En la tabla se muestra los tiempos de procesamiento ( ) y la fecha de entrega (𝑑𝑗 
) deseada por los clientes y el peso de importancia (𝑤𝑗 ) del trabajo, donde 10 es el más importante 
y 1 el menos importante. 
• Breve descripción del problema (características, supuestos, etc.) 
Supuestos: 
Se supone que los pesos son iguales para cada trabajo así poder implementar la regla SPT, lo que 
garantiza el tiempo de flujo menor. 
Cuando se multiplica cada objetivo por el valor indicado (30%, 40%, 30), se va a transformar a las 
mismas unidades para realizar la respectiva comparación. 
Tiempo actual (t) como (t=0) 
• Formulación matemática 
Algoritmo. (n Jobs, one machine, common Due Dates) 
𝑃𝑎𝑠𝑜 0: 𝑂𝑟𝑔𝑎𝑛𝑖𝑧𝑎𝑟 𝑡𝑟𝑎𝑏𝑎𝑗𝑜 𝑒𝑛 𝑆𝑃𝑇 
𝑃𝑎𝑠𝑜 1: 𝐶𝑟𝑒𝑎𝑟 2 𝑐𝑜𝑛𝑗𝑢𝑛𝑡𝑜𝑠 𝑣𝑎𝑐𝑖𝑜𝑠 𝐴 𝑦 𝐵 
𝑃𝑎𝑠𝑜 2: 𝐶𝑎𝑙𝑐𝑢𝑙𝑎𝑟 𝐶𝑚𝑎𝑥 = ∑ 𝑃𝑗 (𝑡𝑖𝑒𝑚𝑝𝑜𝑠 𝑑𝑒 𝑝𝑟𝑜𝑐𝑒𝑠𝑎𝑚𝑖𝑒𝑛𝑜) 
𝑆𝑒 𝑐𝑎𝑙𝑐𝑢𝑙𝑎𝑛 2 𝑣𝑎𝑟𝑖𝑎𝑏𝑙𝑒𝑠. 𝑅 = 𝐶𝑚𝑎𝑥 − 𝑑 (𝑇𝑎𝑟𝑑𝑎𝑛𝑧𝑎𝑠); 𝐿 = 𝑑 (𝐹𝑒𝑐ℎ𝑎 𝑒𝑛𝑡𝑟𝑒𝑔𝑎) 
𝑃𝑎𝑠𝑜 3: 𝑅𝑒𝑔𝑙𝑎𝑠 𝑑𝑒 𝑎𝑠𝑖𝑔𝑛𝑎𝑐𝑖ó𝑛 
reviewer
Highlight
no esta la notación de graham
UNIVERSIDAD DISTRITAL FRANCISCO JOSE DE CALDAS 
PROYECTO CURRICULAR DE INGENIERIA INDUSTRIAL 
AREA SISTEMAS PRODUCTIVO 
PROGRAMACION Y CONTROL DE LA PRODUCCION 
Código. 110 Créditos: 3. Grupo 025 
 
𝑆𝑖 𝑅 ≥ 𝐿 𝑒𝑛𝑡𝑜𝑛𝑐𝑒𝑠 𝐴 → 𝐴 𝑈 𝐽𝑜𝑏 (𝑗) 
𝑆𝑖 𝑅 < 𝐿 𝑒𝑛𝑡𝑜𝑛𝑐𝑒𝑠 𝐵 → 𝐵 𝑈 𝐽𝑜𝑏 (𝑗) 
𝑆𝑖 𝑖 = 1, 𝑣𝑎𝑦𝑎 𝑎𝑙 𝑝𝑎𝑠𝑜 5 
𝑃𝑎𝑠𝑜 4: 
𝑅 → 𝑅 − 𝑃 𝐽𝑜𝑏 (𝑗), 𝑖𝑓 𝐽𝑜𝑏 (𝑗) ∈ 𝐴 
𝐿 → 𝐿 − 𝑃 𝐽𝑜𝑏 (𝑗), 𝑖𝑓 𝐽𝑜𝑏 (𝑗) ∈ 𝐵 
𝑃𝑎𝑠𝑜 5: 𝑆𝑒𝑐𝑢𝑒𝑛𝑐𝑖𝑎 (𝐵, 𝐴)𝐷𝑜𝑛𝑑𝑒 𝐵 𝑒𝑠 𝐹𝐼𝐹𝑂 𝑦 𝐴 𝑒𝑠 𝐿𝐼𝐹𝑂 
Algoritmo. (n Jobs, One machine, Different due dates) 
𝑃𝑎𝑠𝑜 1: 𝑂𝑟𝑔𝑎𝑛𝑖𝑧𝑎𝑟 𝑙𝑜𝑠 𝑡𝑟𝑎𝑏𝑎𝑗𝑜𝑠 𝑒𝑛 𝑜𝑟𝑑𝑒𝑛 𝑆𝑃𝑇 
𝑃𝑎𝑠𝑜 2: 𝑆𝑒𝑡 𝑁𝑜 = 0, 𝑁𝑗 = ∑ 𝑛𝑘, 𝑝𝑎𝑟𝑎 𝑗 = 1,2, … 𝑚
𝑗
𝑘=1
 
𝑃𝑎𝑠𝑜 3: 𝐾𝑗 = 𝑁𝑗−1 + (
𝑃3 − 𝑃1
𝑃3 + 𝑃2
∗ 𝑛𝑗) 𝑃𝑎𝑟𝑎 𝑗 = 1 . . . 𝑚 
𝑃𝑎𝑠𝑜 4: 𝑝𝑎𝑟𝑎 𝑞 = 1,2, … 𝑛 
𝛿𝑞 = 𝑃2 (𝑞 − 1 − 𝑁𝑗−1) + 𝑃1 (𝑛 − 𝑁𝑗−1) 𝑝𝑎𝑟𝑎 𝑞 ∈ (𝑁𝑗−1…Kj) 
𝛿𝑞 = 𝑃3 (𝑁𝑗 − 𝑞 + 1) + 𝑃1 (𝑛 − 𝑁𝑗) 𝑝𝑎𝑟𝑎 𝑞 ∈ (𝐾𝑗+1…Nj) 
• Síntesis de resultados (si son necesarios) 
Resuelva el problema de secuenciación de operaciones considerando las siguientes situaciones: 
• Minimizar el tiempo promedio de flujo 
• Minimizar el total ponderado de los tiempos de terminación de los trabajos 
 
Realizando un comparativo con las reglas de secuenciación, se identifica que al implementar la 
regla WSPT (Aparent Tardiness Cost) se logra el menor tiempo de flujo ponderado (101.5). 
111,7971 101,5 117,942 144,2681 130,913 124,8188 109,8478
82,44928 72,16667 87,12319 117,1812 99,76812 93,67391 79,02899
1,797101 1,811594 0,326087 4,057971 0 0 0,326087
15 16 19 17 20 20 19
SPT WSPT FIFO LIFO CR SLACK ATC
Promedio Anticipación 0,26087
Numero de trabajo Tardíos 19
LPT
Tiempo de flujo ponderado 150,8261
Promedio Tardanza 119,942
reviewer
Highlight
esto no lo entiendo, cual fue el resultado?
UNIVERSIDAD DISTRITAL FRANCISCO JOSE DE CALDAS 
PROYECTO CURRICULAR DE INGENIERIA INDUSTRIAL 
AREA SISTEMAS PRODUCTIVO 
PROGRAMACION Y CONTROL DE LA PRODUCCION 
Código. 110 Créditos: 3. Grupo 025 
 
• Minimizar el total de anticipación y tardanza con una fecha común de 100 
 
Empleando la regla de secuenciación LPT se obtiene el tiempo promedio de tardanza menor (6.12) 
 
Empleando la regla de secuenciación LPT se obtiene el tiempo promedio de anticipación menor 
(15.62319) 
Dado que se presenta un fecha común de entrega (Due Date = 100) se emplea el algoritmo de 
Common Due Date. 
 
111,7971 119,2319 117,942 144,2681 130,913 124,8188 109,8478
37,86957 43,28261 43,86957 59,8913 49,94928 44,5942 36,17391
26,07246 24,05072 25,92754 15,62319 19,03623 19,77536 26,32609
9 12 11 14 13 12 12
SPT WSPT FIFO LIFO CR SLACK ATC
Promedio Anticipación 11,3
Numero de trabajo Tardíos 15
LPT
Tiempo de flujo ponderado 150,8
Promedio Tardanza 6,12
111,7971 119,2319 117,942 144,2681 130,913 124,8188 109,8478
37,86957 43,28261 43,86957 59,8913 49,94928 44,5942 36,17391
26,07246 24,05072 25,92754 15,62319 19,03623 19,77536 26,32609
9 12 11 14 13 12 12
SPT WSPT FIFO LIFO CR SLACK ATC
Promedio Anticipación 11,3
Numero de trabajo Tardíos 15
LPT
Tiempo de flujo ponderado 150,8
Promedio Tardanza 6,12
Iteración i R L A B
1 20 149 100 10 0
2 19 129 100 7 0
3 18 111 100 18 0
4 17 94 100 0 13
5 16 94 83 20 0
6 15 78 83 0 15
7 14 78 67 14 0
8 13 62 67 0 19
9 12 62 52 11 0
10 11 47 52 0 5
11 10 47 38 8 0
12 9 34 38 0 17
13 8 34 26 4 0
14 7 22 26 0 3
15 6 22 15 16 0
16 5 12 15 0 9
17 4 12 5 2 0
18 3 4 5 0 12
19 2 4 1 1 0
20 1 1 1 6 0
VERDADERO
R>=L
VERDADERO
R<L
FALSO
VERDADERO FALSO
FALSO
VERDADERO
VERDADERO
FALSO
FALSO
VERDADERO
FALSO
VERDADERO
FALSO
VERDADERO
FALSO
VERDADERO
FALSO
VERDADERO
FALSO
FALSO
FALSO
VERDADERO
FALSO
VERDADERO
FALSO
VERDADERO
FALSO
VERDADERO
FALSO
VERDADERO
FALSO
VERDADERO
VERDADERO
VERDADERO
FALSO
VERDADERO
VERDADERO
FALSO
FALSO
UNIVERSIDAD DISTRITAL FRANCISCO JOSE DE CALDAS 
PROYECTO CURRICULAR DE INGENIERIA INDUSTRIAL 
AREA SISTEMAS PRODUCTIVO 
PROGRAMACION Y CONTROL DE LA PRODUCCION 
Código. 110 Créditos: 3. Grupo 025 
 
 De acuerdo a lo anterior, organizando los conjunto de la forma (B,A) se obtiene que la secuencia de 
trabajo obtenida es (13,15,19,5,17,3,9,12,6,1,2,16,4,8,11,14,20,18,7,10) donde el tiempo de 
tardanza obtenido es 748 y el de anticipación 287. 
• Minimizar el número de trabajos tardíos 
 
Empleando la regla SPT se logra minimizar el número de trabajos tardíos (15). 
 
Empleando el algoritmo de Moore, es decir aplicando de forma iterativa EDD se identifica que la 
secuencia (1,10,6,12,16,17,13,15,9,4,8,7,2,5,11,19,20,3,14,18) 
 Se requiere determinar las fechas de entrega de 4 grupos de trabajos de tamaños, 4, 5, 5, y 6. 
Entregados en este orden en 4 fechas diferentes. Se desea minimizar el costo total compuesto por 
tres componentes: uno asociado a la fecha de entrega con valor de $4/unidad de tiempo (ut); uno de 
anticipación de $13/ut; y uno de tardanza de $20/ut. 
Teniendo en cuenta el algoritmo que emplea un número de grupos, así como el número de trabajos 
por grupo se pudo determinar lo siguiente: 
Secuencia 13 15 19 5 17 3 9 12 6 1 2 16 4 8 11 14 20 18 7 10
dj 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100
Lj -83 -67 -52 -38 -26 -15 -5 -1 1 4 12 22 34 47 62 78 94 111 129 149
Tj 0 0 0 0 0 0 0 0 1 4 12 22 34 47 62 78 94 111 129 149 743
Ej 83 67 52 38 26 15 5 1 0 0 0 0 0 0 0 0 0 0 0 0 287
1030
111,7971 101,5 117,942 144,2681 130,913 124,8188 109,8478
82,44928 72,16667 87,12319 117,1812 99,76812 93,67391 79,02899
1,797101 1,811594 0,326087 4,057971 0 0 0,326087
15 16 19 17 20 20 19
SPT WSPT FIFO LIFO CR SLACK ATC
Promedio Anticipación 0,26087
Numero de trabajo Tardíos 19
LPT
Tiempo de flujo ponderado 150,8261
Promedio Tardanza 119,942
Trabajo j 1 10 6 12 16 17
Pj 3 20 2 4 10 12
dj 8 24 32 44 50 55
Cj 3 23 25 29 39 51
reviewer
Highlight
donde esta la justificacion de esto?
UNIVERSIDAD DISTRITAL FRANCISCO JOSE DE CALDAS 
PROYECTO CURRICULAR DE INGENIERIA INDUSTRIAL 
AREA SISTEMAS PRODUCTIVO 
PROGRAMACIONY CONTROL DE LA PRODUCCION 
Código. 110 Créditos: 3. Grupo 025 
 
 
Asignando un ranking basado en delta q, se obtiene la secuencia de trabajos 
(6,2,1,4,9,7,3,5,10,15,13,8,11,15,19,18,14,12,17,20) donde los grupos están conformados así: (I1: 
6,2,1,4; Fecha común de entrega: 13) (I2: 9,7,3,5,10; Fecha común de entrega: 50) (I3: 
15,13,8,11,15; Fecha común de entrega: 116) (I4: 19,18,14,12,17,20; Fecha común de entrega: 
197). 
 
En esta tabla se puede identificar que las posiciones indicada en la secuencia (Kj) es decir para (K1 
para el grupo I1 es 2; K2 para el grupo I2 es 7; K3 para el grupo I3 es 12; K4 para el grupo I4 es 17) 
no se cuenta con Lj, Tj, Ej, es decir que los trabajos ubicados en dichas posiciones no presentan 
retardo ni anticipación en su entrega, por otra parte empleado los P1: Costo de asignación($4/ut), 
q Trabjo Pj Grupos Fecha D
1 16 10
2 1 3
3 6 2
4 2 8
5 17 12
6 3 11
7 12 4
8 9 10
9 8 13
10 15 16
11 19 15
12 4 12
13 5 14
14 15 16
15 7 18
16 18 17
17 14 16
18 11 15
19 13 17
20 10 20
Kj
2
2
7
7
7
2
2
7
12
12
7
12
12
93
104
84
64
17
17
17
17
17
17
12
60
40
20
Secuencia Opt
6
2
1
4
9
7
70
64
44
24
37
50
77
90
84
64
44
57
delta q
80
13
50
116
197
17
20
I1
I2
I3
I4
11
15
19
18
14
12
3
5
10
15
13
8
Secuencia 16 1 6 2 17 3 12 9 8 15 19 4 5 15 7 18 14 11 13 10
Pj 10 3 2 8 12 11 4 10 13 16 15 12 14 16 18 17 16 15 17 20
Sj 0 10 13 15 23 35 46 50 60 73 89 104 116 130 146 164 181 197 212 229
Cj 10 13 15 23 35 46 50 60 73 89 104 116 130 146 164 181 197 212 229 249
dj 13 13 13 13 50 50 50 50 50 116 116 116 116 116 197 197 197 197 197 197
Lj -3 0 2 10 -15 -4 0 10 23 -27 -12 0 14 30 -33 -16 0 15 32 52
Tj 0 0 2 10 0 0 0 10 23 0 0 0 14 30 0 0 0 15 32 52
Ej 3 0 0 0 15 4 0 0 0 27 12 0 0 0 33 16 0 0 0 0
P1*dj 52 52 52 52 200 200 200 200 200 464 464 464 464 464 788 788 788 788 788 788 8.256$ 
P2*Ej 39 0 0 0 195 52 0 0 0 351 156 0 0 0 429 208 0 0 0 0 1.430$ 
P3*Tj 0 0 40 200 0 0 0 200 460 0 0 0 280 600 0 0 0 300 640 1040 3.760$ 
13.446$ 
UNIVERSIDAD DISTRITAL FRANCISCO JOSE DE CALDAS 
PROYECTO CURRICULAR DE INGENIERIA INDUSTRIAL 
AREA SISTEMAS PRODUCTIVO 
PROGRAMACION Y CONTROL DE LA PRODUCCION 
Código. 110 Créditos: 3. Grupo 025 
 
P2: Costo antipación ($13/ut) y P3: Costo de tardanza ($20/ut), a la secuencia hallada se obtiene 
que el valor de la función TP (s) es: 
TP (s) = ($8.256 + $1.430 + $3.760) = $13.446 
Se tienen tres objetivos simultáneos: Minimizar el total ponderado de los tiempos de terminación de 
los trabajos, total ponderado de los tiempos de tardanza de los trabajos, y minimizar el total de 
trabajos tardíos. Se tiene una importancia relativa a la decisión de 30%, 40% y 30% 
respectivamente a cada uno de los objetivos. Compare diferentes reglas de secuenciación (al menos 
8 reglas diferentes) y selecciones la mejor entre ellas para estos objetivos. 
 
Teniendo en cuenta el peso de importancia asignado a tiempo de terminación (30%), trabajos 
tardíos (40%), tiempo de tardanza (30%) se obtiene que la secuencia que permite minimizar los 
tiempos antes mencionados es la asignada por WSPT. 
SPT WSPT FIFO LIFO CR SLACK ATC
71,01884 64,11667 75,93188 95,2529 85,18116 80,91522 70,26594
Objetivo
LPT
98,92464
reviewer
Text Box
No es legible el informe, no presenta un flujo por problema o por algoritmo, los resultados no son claros.
UNIVERSIDAD DISTRITAL FRANCISCO JOSE DE CALDAS 
PROYECTO CURRICULAR DE INGENIERIA INDUSTRIAL 
AREA SISTEMAS PRODUCTIVO 
PROGRAMACION Y CONTROL DE LA PRODUCCION 
Código. 110 Créditos: 3. Grupo 025 
 
 
 
0
50
100
150
SPT
WSPT
FIFO
LIFO
LPT
CR
SLACK
ATC
Promedio Tardanza
Promedio Tardanza 0
50
100
150
200
SPT
WSPT
FIFO
LIFO
LPT
CR
SLACK
ATC
Tiempo de flujo ponderado
Tiempo de flujo
ponderado
0
1
2
3
4
5
SPT
WSPT
FIFO
LIFO
LPT
CR
SLACK
ATC
Promedio Anticipación
Promedio
Anticipación
UNIVERSIDAD DISTRITAL FRANCISCO JOSE DE CALDAS 
PROYECTO CURRICULAR DE INGENIERIA INDUSTRIAL 
AREA SISTEMAS PRODUCTIVO 
PROGRAMACION Y CONTROL DE LA PRODUCCION 
Código. 110 Créditos: 3. Grupo 025 
 
 
• Conclusiones 
Considerando los datos encontrados, los cuales se ven reflejados en los gráficos radios se identifica 
que emplear la regla de secuenciación SPT o WSPT permite reducir el promedio de tardanza así 
como el valor de flujo ponderado, dado que los vértices se acercan al centro de la gráfica. 
• Anexos (modelos en el software seleccionado, salidas y toda la información de soporte que 
sustente el trabajo) 
Taller 1_Plan2. (xlsx) 
Problema 2. 
Suponga que cuenta con 30 trabajos que deben ser secuenciados en tres diferentes máquinas 
siguiendo la misma ruta M1-M2- M3, los tiempos de procesamiento se dan en la Tabla 2. 
Codifique un algoritmo en algún lenguaje de programación (vba, java, c++, gams, matlab), que le 
permita aplicar la adaptación del algoritmo de Johnson para el caso de tres máquinas, recuerde que 
el algoritmo debe permitir utilizar cualquier tamaño de instancia. 
• Breve descripción del problema (características, supuestos, etc.) 
• Formulación matemática 
• Síntesis de resultados (si son necesarios) 
Es un problema al cual se le debe aplicar el modelo de Jonhson modificado o el planteado por 
Campbell, Dudek y Smith. Para esto primero se debe mirar la condición para saber si esta solución 
es optima o no, seguido a esto se deberán realizar las agrupaciones para lograr obtener los dos 
grupos a los cuales se les debe aplicar la regla de Jonhson para obtener la secuenciación, después de 
obtener la secuenciación realizaremos los cálculos pertinentes para hallar nuestro objetivo que en 
para este caso es el Cmax. 
𝐹3 | | 𝐶𝑚𝑎x 
Pasos seguidos para desarrollar el programa. 
• Determinar si se cumple las condiciones para saber si la solución que se logre obtener es 
optima o no. 
• Desarrollar las agrupaciones para obtener solo dos máquinas. Para la solución de este 
problema y la solución de este algoritmo se aplicaron las 3 posibles agrupaciones para las 
tres máquinas que son las siguientes: 
o G1(M1+M2) y G2(M2+M3) 
o G1(M1) y G2(M2+M3) 
o G1(M1+M2) y G2(M3) 
reviewer
Highlight
reviewer
Sticky Note
y los ponderados?
reviewer
Accepted
UNIVERSIDAD DISTRITAL FRANCISCO JOSE DE CALDAS 
PROYECTO CURRICULAR DE INGENIERIA INDUSTRIAL 
AREA SISTEMAS PRODUCTIVO 
PROGRAMACION Y CONTROL DE LA PRODUCCION 
Código. 110 Créditos: 3. Grupo 025 
 
• Aplicar la regla de Johnson, pero por el otro camino el cual se describe a continuación: 
 
1. Programe el grupo de trabajos U que son más cortos en la primera máquina que la 
segunda. 
U = { j | p1j < p2j } 
2. Programe el grupo de trabajos V que son más cortos en la segunda máquina que la 
primera. 
V = { j | p1j ≥ p2j } 
3. Organizar los trabajos en U en orden no decreciente por sus tiempos de procesamiento 
en la primera máquina. 
4. Organizar los trabajos en V en orden no creciente por sus tiempos de procesamiento en 
la segunda máquina. 
5. Concatenar U y V y ese es el orden de procesamiento para ambas máquinas. 
• Ya obtenida la secuencia se hallan los valores de Cj para cada una de las máquinas para 
lograr determinar al final Cmax del problema. 
La siguiente tabla muestran los resultados obtenidos a partir de la agrupación G1(M1+M2) y 
G2(M2+M3) donde se obtuvo un valor de Cmax de 443 con la secuencia que se puede observar en 
la tabla. Es importante resaltar que en el programa que se presenta en Matlab se pueden obtener los 
resultados de las otras dos agrupaciones, para las otras dos agrupaciones también se obtuvo Cmax 
de 443 con diferentes secuencias. 
 
UNIVERSIDAD DISTRITAL FRANCISCO JOSE DE CALDAS 
PROYECTO CURRICULAR DE INGENIERIA INDUSTRIAL 
AREA SISTEMAS PRODUCTIVO 
PROGRAMACION Y CONTROL DE LA PRODUCCION 
Código. 110 Créditos: 3. Grupo 025 
 
 
Tabla. Resultados obtenidos con la agrupación G1(M1+M2) Y G2(M2+M3) elaboraciónpropia 
 
 
Secuencia PjM1 SjM1 CjM1 PjM2 SjM2 CjM2 PjM3 SjM3 CjM3 Cj
12 4 0 4 9 4 13 13 13 26 26
13 4 4 8 13 13 26 26 26 52 52
26 6 8 14 14 26 40 21 52 73 73
30 6 14 20 7 40 47 18 73 91 91
10 7 20 27 12 47 59 11 91 102 102
19 7 27 34 16 59 75 21 102 123 123
22 7 34 41 8 75 83 26 123 149 149
20 8 41 49 13 83 96 14 149 163 163
28 9 49 58 15 96 111 19 163 182 182
7 11 58 69 10 111 121 19 182 201 201
6 13 69 82 15 121 136 19 201 220 220
21 13 82 95 5 136 141 15 220 235 235
1 14 95 109 12 141 153 17 235 252 252
8 14 109 123 13 153 166 21 252 273 273
18 15 123 138 5 166 171 16 273 289 289
29 16 138 154 7 171 178 19 289 308 308
16 21 154 175 12 178 190 25 308 333 333
15 18 175 193 16 193 209 15 333 348 348
2 14 193 207 15 209 224 12 348 360 360
3 18 207 225 17 225 242 10 360 370 370
4 19 225 244 16 244 260 8 370 378 378
14 13 244 257 15 260 275 9 378 387 387
23 19 257 276 13 276 289 9 387 396 396
11 10 276 286 13 289 302 6 396 402 402
17 21 286 307 5 307 312 13 402 415 415
24 11 307 318 9 318 327 9 415 424 424
27 16 318 334 11 334 345 4 424 428 428
25 16 334 350 8 350 358 5 428 433 433
5 12 350 362 6 362 368 5 433 438 438
9 6 362 368 5 368 373 5 438 443 443
443Cmax
reviewer
Pencil
UNIVERSIDAD DISTRITAL FRANCISCO JOSE DE CALDAS 
PROYECTO CURRICULAR DE INGENIERIA INDUSTRIAL 
AREA SISTEMAS PRODUCTIVO 
PROGRAMACION Y CONTROL DE LA PRODUCCION 
Código. 110 Créditos: 3. Grupo 025 
 
 
Gráfico, Resultados parciales con la agrupación G1(M1) Y G2(M2+M3) Obtenido en Matlab 
Programa en Matlab 
Para el desarrollo del programa se hizo uso de la aplicación Matlab dado al acceso que se tiene por 
los beneficios que otorga la universidad. El programa que se desarrolló permite solucionar 
problemas de F𝑚 | | 𝐶𝑚𝑎x para n trabajos, aplicando el algoritmo de Johnson modificado para 
encontrar la secuencia optima y Cmax. 
Código 
clc 
close all 
 
T1=readtable('ej2.xlsx'); 
T=table2array(T1); 
[n,m]=size(T); 
M1=T(:,2); 
M2=T(:,3); 
M3=T(:,4); 
M2max=max(M2); 
M1min=min(M1); 
M3min=min(M3); 
sol_opt=0; 
if (M1min>=M2max || M3min>=M2max) 
 sol_opt=1; 
end 
A=zeros(n,m-1); 
a1= T(2,1); 
reviewer
Pencil
UNIVERSIDAD DISTRITAL FRANCISCO JOSE DE CALDAS 
PROYECTO CURRICULAR DE INGENIERIA INDUSTRIAL 
AREA SISTEMAS PRODUCTIVO 
PROGRAMACION Y CONTROL DE LA PRODUCCION 
Código. 110 Créditos: 3. Grupo 025 
 
for i=1:n 
 for j=1:3 
 if j==1 
 
 A(i,j)=T(i,1); 
 
 else 
 a1= T(i,j); 
 a2= T(i,j+1); 
 A(i,j)=a1+a2; 
 end 
 end 
end 
 
B=zeros(n,m-1); 
b1= T(2,1); 
for i=1:n 
 for j=1:3 
 if j==1 
 
 B(i,j)=T(i,1); 
 
 else 
 if j==2 
 B(i,j)=T(i,2); 
 else 
 b1= T(i,j); 
 b2= T(i,j+1); 
 B(i,j)=b1+b2; 
 
 end 
 end 
 end 
end 
 
C=zeros(n,m-1); 
c1= T(2,1); 
for i=1:n 
 for j=1:3 
 if j==1 
 
 C(i,j)=T(i,1); 
 
 else 
 if j==2 
 c1= T(i,j); 
 c2= T(i,j+1); 
 C(i,j)=c1+c2; 
 else 
 C(i,j)=T(i,4); 
UNIVERSIDAD DISTRITAL FRANCISCO JOSE DE CALDAS 
PROYECTO CURRICULAR DE INGENIERIA INDUSTRIAL 
AREA SISTEMAS PRODUCTIVO 
PROGRAMACION Y CONTROL DE LA PRODUCCION 
Código. 110 Créditos: 3. Grupo 025 
 
 
 
 end 
 end 
 end 
end 
G1=zeros(1,3); 
G2=zeros(1,3); 
p=1; 
q=1; 
for i=1:n 
 if A(i,2)<=A(i,3) 
 G1(p,1)=A(i,1); 
 G1(p,2)=A(i,2); 
 G1(p,3)=A(i,3); 
 p=p+1; 
 else 
 G2(q,1)=A(i,1); 
 G2(q,2)=A(i,2); 
 G2(q,3)=A(i,3); 
 q=q+1; 
 end 
end 
G1=sortrows(G1,2); 
G2=sortrows(G2,3,'descend'); 
G3 = vertcat(G1, G2); 
GANT=zeros(n,11); 
for i=1:n 
 GANT(i,1)=T(G3(i,1),1); 
 GANT(i,2)=T(G3(i,1),2); 
 GANT(i,5)=T(G3(i,1),3); 
 GANT(i,8)=T(G3(i,1),4); 
 if i==1 
 GANT(i,3)=0; 
 GANT(i,4)=GANT(i,2)+GANT(i,3); 
 GANT(i,6)=GANT(i,4); 
 GANT(i,7)=GANT(i,5)+GANT(i,6); 
 GANT(i,9)=GANT(i,7); 
 GANT(i,10)=GANT(i,8)+GANT(i,9); 
 GANT(i,11)=GANT(i,10); 
 else 
 GANT(i,3)=GANT(i-1,4); 
 GANT(i,4)=GANT(i,2)+GANT(i,3); 
 GANT(i,6)=max(GANT(i-1,7),GANT(i,4)); 
 GANT(i,7)=GANT(i,5)+GANT(i,6); 
 GANT(i,9)=max(GANT(i-1,10),GANT(i,6)); 
 GANT(i,10)=GANT(i,8)+GANT(i,9); 
 GANT(i,11)=GANT(i,10); 
 end 
 
end 
K1=zeros(1,3); 
UNIVERSIDAD DISTRITAL FRANCISCO JOSE DE CALDAS 
PROYECTO CURRICULAR DE INGENIERIA INDUSTRIAL 
AREA SISTEMAS PRODUCTIVO 
PROGRAMACION Y CONTROL DE LA PRODUCCION 
Código. 110 Créditos: 3. Grupo 025 
 
K2=zeros(1,3); 
p1=1; 
q1=1; 
for i=1:n 
 if B(i,2)<=A(i,3) 
 K1(p1,1)=B(i,1); 
 K1(p1,2)=B(i,2); 
 K1(p1,3)=B(i,3); 
 p1=p1+1; 
 else 
 K2(q1,1)=A(i,1); 
 K2(q1,2)=A(i,2); 
 K2(q1,3)=A(i,3); 
 q1=q1+1; 
 end 
end 
K1=sortrows(K1,2); 
K2=sortrows(K2,3,'descend'); 
K3 = vertcat(K1, K2); 
GANT1=zeros(n,11); 
for i=1:n 
 GANT1(i,1)=T(K3(i,1),1); 
 GANT1(i,2)=T(K3(i,1),2); 
 GANT1(i,5)=T(K3(i,1),3); 
 GANT1(i,8)=T(K3(i,1),4); 
 if i==1 
 GANT1(i,3)=0; 
 GANT1(i,4)=GANT1(i,2)+GANT1(i,3); 
 GANT1(i,6)=GANT1(i,4); 
 GANT1(i,7)=GANT1(i,5)+GANT1(i,6); 
 GANT1(i,9)=GANT1(i,7); 
 GANT1(i,10)=GANT1(i,8)+GANT1(i,9); 
 GANT1(i,11)=GANT1(i,10); 
 else 
 GANT1(i,3)=GANT1(i-1,4); 
 GANT1(i,4)=GANT1(i,2)+GANT1(i,3); 
 GANT1(i,6)=max(GANT1(i-1,7),GANT1(i,4)); 
 GANT1(i,7)=GANT1(i,5)+GANT1(i,6); 
 GANT1(i,9)=max(GANT1(i-1,10),GANT1(i,6)); 
 GANT1(i,10)=GANT1(i,8)+GANT1(i,9); 
 GANT1(i,11)=GANT1(i,10); 
 end 
 
end 
L1=zeros(1,3); 
L2=zeros(1,3); 
p2=1; 
q2=1; 
for i=1:n 
 if C(i,2)<=A(i,3) 
 L1(p2,1)=B(i,1); 
 L1(p2,2)=B(i,2); 
UNIVERSIDAD DISTRITAL FRANCISCO JOSE DE CALDAS 
PROYECTO CURRICULAR DE INGENIERIA INDUSTRIAL 
AREA SISTEMAS PRODUCTIVO 
PROGRAMACION Y CONTROL DE LA PRODUCCION 
Código. 110 Créditos: 3. Grupo 025 
 
 L1(p2,3)=B(i,3); 
 p2=p2+1; 
 else 
 L2(q2,1)=A(i,1); 
 L2(q2,2)=A(i,2); 
 L2(q2,3)=A(i,3); 
 q2=q2+1; 
 end 
end 
L1=sortrows(L1,2); 
L2=sortrows(L2,3,'descend'); 
L3 = vertcat(L1, L2); 
GANT2=zeros(n,11); 
for i=1:n 
 GANT2(i,1)=T(L3(i,1),1); 
 GANT2(i,2)=T(L3(i,1),2); 
 GANT2(i,5)=T(L3(i,1),3); 
 GANT2(i,8)=T(L3(i,1),4); 
 if i==1 
 GANT2(i,3)=0; 
 GANT2(i,4)=GANT2(i,2)+GANT2(i,3); 
 GANT2(i,6)=GANT2(i,4); 
 GANT2(i,7)=GANT2(i,5)+GANT2(i,6); 
 GANT2(i,9)=GANT2(i,7); 
 GANT2(i,10)=GANT2(i,8)+GANT2(i,9); 
 GANT2(i,11)=GANT2(i,10); 
 else 
 GANT2(i,3)=GANT2(i-1,4); 
 GANT2(i,4)=GANT2(i,2)+GANT2(i,3); 
 GANT2(i,6)=max(GANT2(i-1,7),GANT2(i,4)); 
 GANT2(i,7)=GANT2(i,5)+GANT2(i,6); 
 GANT2(i,9)=max(GANT2(i-1,10),GANT2(i,6)); 
 GANT2(i,10)=GANT2(i,8)+GANT2(i,9); 
 GANT2(i,11)=GANT2(i,10); 
 end 
 
end 
 
T2 = 
array2table(GANT,'VariableNames',{'sec','p_jm1','s_jm1','c_jm1','p_jm2','s_jm2','c_jm2','p_jm3','s_jm3','c_jm
3','c_j'}); 
disp('La secuencia y los datos obtenidos para la primera agrupación que fue la siguiente (M1+M2;M2+M3) y 
se encuentra en la siguiente tabla:'); 
 
disp(T2); 
cmax = max(GANT(:,11)); 
if sol_opt == 1 
 disp('La secuencia encontrada es una solucion optima y el valor cmax es: '); 
 disp(cmax); 
else 
 disp('La secuencia encontrada no es una solucion optima y el valor cmax es: '); 
 disp(cmax); 
UNIVERSIDAD DISTRITAL FRANCISCO JOSE DE CALDAS 
PROYECTO CURRICULAR DE INGENIERIA INDUSTRIAL 
AREA SISTEMAS PRODUCTIVO 
PROGRAMACION Y CONTROL DE LA PRODUCCION 
Código. 110 Créditos: 3. Grupo 025 
 
end 
T3 = 
array2table(GANT1,'VariableNames',{'sec','p_jm1','s_jm1','c_jm1','p_jm2','s_jm2','c_jm2','p_jm3','s_jm3','c_jm3','c_j'}); 
disp('La secuencia y los datos obtenidos para la segunda agrupación que fue la siguiente (M1;M2+M3)'); 
disp('y se encuentra en la siguiente tabla:'); 
 
disp(T3); 
cmax1 = max(GANT1(:,11)); 
if sol_opt == 1 
 disp('La secuencia encontrada es una solución optima y el valor cmax es: '); 
 disp(cmax1); 
else 
 disp('La secuencia encontrada no es una solución optima y el valor cmax es: '); 
 disp(cmax1); 
end 
 
T4 = 
array2table(GANT2,'VariableNames',{'sec','p_jm1','s_jm1','c_jm1','p_jm2','s_jm2','c_jm2','p_jm3','s_jm3','c_j
m3','c_j'}); 
disp('La secuencia y los datos obtenidos para la tercera agrupación que fue la siguiente (M1+M2;M3) y se 
encuentra en la siguiente tabla: '); 
 
disp(T4); 
cmax2 = max(GANT2(:,11)); 
if sol_opt == 1 
 disp('La secuencia encontrada es una solución optima y el valor cmax es: '); 
 disp(cmax2); 
else 
 disp('La secuencia encontrada no es una solución optima y el valor cmax es: '); 
 disp(cmax2); 
end 
 
Instrucciones de Uso 
1. Para lograr correr el programa el usuario deberá cargar tabla en un archivo Excel. Esta tabla 
deberá tener la siguiente información: 
• Trabajo 
• Tiempo de Procesamiento de la M1 
• Tiempo de Procesamiento de la M2 
• Tiempo de Procesamiento de la M3 
La información se debe visualizar de la siguiente manera en el Excel. 
reviewer
Pencil
reviewer
Text Box
falto documentar este codigo, pero en general esta bien
UNIVERSIDAD DISTRITAL FRANCISCO JOSE DE CALDAS 
PROYECTO CURRICULAR DE INGENIERIA INDUSTRIAL 
AREA SISTEMAS PRODUCTIVO 
PROGRAMACION Y CONTROL DE LA PRODUCCION 
Código. 110 Créditos: 3. Grupo 025 
 
 
Imagen 1 Tabla de datos iniciales en Excel 
2. Cargar el documento de Excel en el archivo de Matlab o el programa. Para cargar el archivo 
de Excel donde se encuentra la tabla con los datos se debe hacer clic en la opción “Browser 
for folder” (Ver imagen 2 ) después de hacer clic se busca el archivo de Excel que se quiere 
cargar, que en nuestro caso es el Excel donde tenemos los datos iniciales. Después de 
cargados los datos se podrá observar el archivo Excel en la parte izquierda del Matlab. 
reviewer
Pencil
UNIVERSIDAD DISTRITAL FRANCISCO JOSE DE CALDAS 
PROYECTO CURRICULAR DE INGENIERIA INDUSTRIAL 
AREA SISTEMAS PRODUCTIVO 
PROGRAMACION Y CONTROL DE LA PRODUCCION 
Código. 110 Créditos: 3. Grupo 025 
 
 
Imagen 2 Browser for folder 
 
3. Después de tener cargado el archivo en el Matlab se debe ir a cambiar el nombre en el 
código específicamente en la línea número 4 de código, allí se colocará el nombre de nuestro 
archivo cambiando el nombre que se encuentra en el momento que en la imagen 3 se 
observar que es ej2. Es importante decir que el nombre debe escribirse con .xlsx para que el 
programa lo pueda leer. 
 
 
Imagen 3. Línea 4 para cambiar el nombre del código 
4. Realizado bien los puntos 2 y 3 se dará a correr el programa y obtendremos los resultados. 
reviewer
Pencil
reviewer
Pencil
UNIVERSIDAD DISTRITAL FRANCISCO JOSE DE CALDAS 
PROYECTO CURRICULAR DE INGENIERIA INDUSTRIAL 
AREA SISTEMAS PRODUCTIVO 
PROGRAMACION Y CONTROL DE LA PRODUCCION 
Código. 110 Créditos: 3. Grupo 025 
 
 
Imagen 4. Correr el programa y los resultados. 
 
• Conclusiones 
Es importante llevar los problemas que tenemos en la industria ya sean los problemas de Scheduling 
u otros problemas que nos enfrentamos los ingenieros industriales a programas computacionales de 
programación y que nos ayuden a optimizar los procesos disminuyendo los tiempos en la obtención 
de posibles soluciones, además en los últimos años se ha visto la necesidad de tener conocimientos 
de programación dándole mayor importancia a ese conexión entre la labor de los ingenieros 
industriales y las nuevas herramientas computacionales y tecnologicas. 
 
• Anexos (modelos en el software seleccionado, salidas y toda la información de soporte que 
sustente el trabajo) 
Programación_punto2.m 
Problema 3. 
Suponga que se cuentan con 30 trabajos que se muestran en la Tabla 3. Estos trabajos deben ser 
secuenciados en dos máquinas y además se cuenta con una regla de asignación los cuales se 
muestran en la columna tres de la tabla: Tipo 1: Trabajos que se procesan sólo en M1. Tipo 2: 
Trabajos que se procesan sólo en M2. Tipo 12: Trabajos que se procesan primero en M1 y luego en 
M2. Tipo 21: Trabajos que se procesan primero en M2 y luego en M1. 
reviewer
Text Box
Este problema esta bien
UNIVERSIDAD DISTRITAL FRANCISCO JOSE DE CALDAS 
PROYECTO CURRICULAR DE INGENIERIA INDUSTRIAL 
AREA SISTEMAS PRODUCTIVO 
PROGRAMACION Y CONTROL DE LA PRODUCCION 
Código. 110 Créditos: 3. Grupo 025 
 
• Breve descripción del problema (características, supuestos, etc.) 
• Formulación matemática 
• Síntesis de resultados (si son necesarios) 
a) Codifique en algún lenguaje de programación el siguiente algoritmo: 
Programar los trabajos de Tipo 1 y Tipo 2 en cualquier orden. Con lo cual se obtienen las 
secuencias S1 y S2. 
Programar los trabajos de Tipo 12 y Tipo 21 de acuerdo con el algoritmo de Johnson y obtener las 
secuencias S12 y S21 (hay que tener en cuenta que, en la secuencia S21, M2 es la primera máquina 
y M1 la segunda máquina). 
Obtener la planificación óptima combinando estas secuencias de la siguiente forma: 
• M1 → S12, S1, S21 
• M2 → S21, S2, S12 
Note que el primer paso del algoritmo no indica que regla utilizar, así que usted debe aclarar que 
regla se utilizará y por qué lo realizará basado en experimentaciones o en análisis del problema. 
Solución. 
Para el desarrollo de este punto, inicialmente se hallaron las secuencias S1 y S2 por el método SPT 
para las máquinas 1 y 2 respectivamente; seguido a esto, se hallaron las secuencias S12 y S21 
mediante el método Johnson. Obtenidas las secuencias, se organizaron los trabajos ejecutados en la 
máquina 1 para la secuencia planteada por el ejercicio (S12, S1, S21) y luego se organizaron los 
trabajos ejecutados en la máquina 2 para la secuencia planteada por el ejercicio (S21, S2, S12) 
generando de esta manera el Scheduling para el problema. Posterior a esto se desarrolló el diagrama 
de Gantt con respecto a esta secuencia obtenida. 
Obtención de S1 Y S2 
 
s1 s2
M1 pj SPT
13 4
19 7 M2 pj
28 9 9 5
11 10 7 10
24 11 1 12
14 13 20 13
21 13 3 17
18 15
15 18
reviewer
Sticky Note
y la notación???
reviewer
Highlight
reviewer
Sticky Note
¿porque SPT?
UNIVERSIDAD DISTRITAL FRANCISCO JOSE DE CALDAS 
PROYECTO CURRICULAR DE INGENIERIA INDUSTRIAL 
AREA SISTEMAS PRODUCTIVO 
PROGRAMACION Y CONTROL DE LA PRODUCCION 
Código. 110 Créditos: 3. Grupo 025 
 
Obtención de S12 
 
 
 b) Realice un diagrama de Gantt de las secuencias obtenidas y analice los resultados. 
• Conclusiones 
Para lograr estos resultados se formuló un algoritmo utilizando el lenguaje de programación de 
Python para ejecutar la regla de Jhonson para 2 máquinas en diversas disposiciones (Tipo 
1:Trabajos que se procesan sólo en M1 ; Tipo 2: Trabajos que se procesan sólo en la máquina 2 ; 
Tipo 3: Trabajos que se procesan primero en la máquina 1 y luego en la máquina 2 ; Tipo 4: 
Trabajos que se procesan primero en la máquina 2 y luego en la máquina 1 ),dado que éste es un 
algoritmo ampliamente conocido para optimizar un proceso de programación en la fabricación. 
Funciona para n trabajos en 2 máquinas. 
Esta es una regla de optimización y tiene amplias aplicaciones en las industrias manufactureras para 
seleccionar el orden en el que se deben procesar los trabajos en las máquinas para obtener la 
máxima productividad en el menor tiempo y ayudar a evitar retrasos innecesarios en los procesos de 
producción. 
Puede ingresar el tiempo de procesamiento para cada trabajo en las máquinas respectivas de forma 
individual y manual o el código también brinda la opción de pasar un archivo de vectores separados 
M1 M2 pj
s12 12 4
6 13
4 16
23 13
s21
m2 m1 pj
17 5
5 6
29 7
25 8
27 11
1612
8 13
2 14
22 7
10 7
26 6
30 6
reviewer
Text Box
no son claros los resultados, y la relación con el siguiente codigo.
UNIVERSIDAD DISTRITAL FRANCISCO JOSE DE CALDAS 
PROYECTO CURRICULAR DE INGENIERIA INDUSTRIAL 
AREA SISTEMAS PRODUCTIVO 
PROGRAMACION Y CONTROL DE LA PRODUCCION 
Código. 110 Créditos: 3. Grupo 025 
 
por comas (csv) que contiene los tiempos de procesamiento de varios trabajos. El código procesará 
automáticamente los datos de tiempo de procesamiento y devolverá la secuencia óptima de trabajos 
con el menor tiempo de espera. 
list1 = [] 
list2 = [] 
 
l1 = [] 
l2 = [] 
l3 = [] 
l4 = [] 
l5 = [] 
l6 = [] 
l7 = [] 
l8 = [] 
l9 = [] 
 
c = input('¿Desea ingresar datos desde un archivo? y/n_') 
if c == 'y': 
 file_name = input('enter the file name:_ ') 
 # file_name=j_rule.txt 
 
 df = pd.read_csv(file_name, delimiter=',') 
 a = np.array(df['m1']) 
 b = np.array(df['m2']) 
 n = np.size(a) 
 for i in range(0, np.size(a)): 
 list1.append(i) 
 l1.append(a[i]) 
 l2.append(b[i]) 
 
else: 
 n = int(input('INGRESE EL NÚMERO DE TRABAJOS_')) 
 
 for i in range(1): 
 
 print(f'') 
 print(f'Ingrese la asignación del tipo de trabajo teniendo en cuenta:') 
 print(f'Tipo 1 Trabajos que se procesan sólo en M1') 
 print(f'Tipo 2 Trabajos que se procesan sólo en M2') 
 print(f'Tipo 3 Trabajos que se procesan primero en M1 y luego en M2') 
 print(f'Tipo 4 Trabajos que se procesan primero en M2 y luego en M1') 
 
 for i in range(0, n): 
 list2.append(i) 
 l3.append(int(input(f' El trabajo {i + 1} es de tipo?_'))) 
 
reviewer
Text Box
este codigo esta muy desordenado, puede comentar para que sea entedible
UNIVERSIDAD DISTRITAL FRANCISCO JOSE DE CALDAS 
PROYECTO CURRICULAR DE INGENIERIA INDUSTRIAL 
AREA SISTEMAS PRODUCTIVO 
PROGRAMACION Y CONTROL DE LA PRODUCCION 
Código. 110 Créditos: 3. Grupo 025 
 
 for i in range(0, n): 
 list1.append(i) 
 l1.append(int(input(f'Ingrese el tiempo de procesamiento del trabajo {i + 1} en máquina 1_'))) 
 l2.append(int(input(f'Ingrese el tiempo de procesamiento del trabajo{i + 1} en máquina 2_'))) 
 
 
 
# print(list1) 
# print(l1) 
# print(l2) 
 
for i in range(0, n): 
 
 x1 = min(l1) 
 x2 = min(l2) 
 if l3[l1.index(x1)]==1: 
 x=x1 
 s= l1.index(x1) 
 l4.append(list1[s]) 
 list1.pop(s) 
 l1.pop(s) 
 l2.pop(s) 
 
 else: 
 
 if l3[l1.index(x1)]==2: 
 x=x2 
 t = l2.index(x2) 
 l5.append(list1[t]) 
 list1.pop(t) 
 l1.pop(t) 
 l2.pop(t) 
 
 
 else: 
 
 if l3[l1.index(x1)]==3: 
 if x1 == x2: 
 if l1[l1.index(x1)] + l2[l1.index(x1)] < l1[l2.index(x2)] + l2[l2.index(x2)]: 
 x = x1 
 else: 
 x = x2 
 elif x1 != x2: 
 x = min(x1, x2) 
 if x == x1: 
 k = l1.index(x1) 
 l6.append(list1[k]) 
 else: 
UNIVERSIDAD DISTRITAL FRANCISCO JOSE DE CALDAS 
PROYECTO CURRICULAR DE INGENIERIA INDUSTRIAL 
AREA SISTEMAS PRODUCTIVO 
PROGRAMACION Y CONTROL DE LA PRODUCCION 
Código. 110 Créditos: 3. Grupo 025 
 
 k = l2.index(x2) 
 l7.append(list1[k]) 
 list1.pop(k) 
 l1.pop(k) 
 l2.pop(k) 
 
 
 else: 
 if l3[l1.index(x1)]==4: 
 
 if x1 == x2: 
 if l1[l1.index(x1)] + l2[l1.index(x1)] < l1[l2.index(x2)] + l2[l2.index(x2)]: 
 x = x1 
 else: 
 x = x2 
 elif x1 != x2: 
 x = min(x1, x2) 
 if x == x1: 
 k = l1.index(x1) 
 l8.append(list1[k]) 
 else: 
 k = l2.index(x2) 
 l9.append(list1[k]) 
 list1.pop(k) 
 l1.pop(k) 
 l2.pop(k) 
 
 
l7.reverse() 
l8.reverse() 
 
new_list3 = l6 + l4 + l8 
 
 
 
for i in range(0, len(new_list3)): 
 new_list3[i] = new_list3[i] + 1 
 
print(f'La secuencia S12,S1,S21 para M1 óptima es {new_list3}') 
 
new_list4 = l9 + l5 + l7 
 
for i in range(0, len(new_list4)): 
 new_list4[i] = new_list4[i] + 1 
print(f'La secuencia S21,S2,S12 óptima para M2 es {new_list4}') 
 
Acá la aplicación del algoritmo a un ejercicio de clase: 
UNIVERSIDAD DISTRITAL FRANCISCO JOSE DE CALDAS 
PROYECTO CURRICULAR DE INGENIERIA INDUSTRIAL 
AREA SISTEMAS PRODUCTIVO 
PROGRAMACION Y CONTROL DE LA PRODUCCION 
Código. 110 Créditos: 3. Grupo 025 
 
 
 
 
 
• Anexos (modelos en el software seleccionado, salidas y toda la información de soporte que 
sustente el trabajo) 
Ejercicio tres_taller 1 (.xlsx) 
PROGRAMA_2MAQUINAS_EJ.3 (2).py 
Resultados ejercicios 3(1).py 
 
 
 
reviewer
Sticky Note
¿y esto es?
reviewer
Text Box
En general el informe escrito esta muy desordenado, no se citan las figuras ni tablas, los algoritmos no estan explicados y los resultados no estan detallados.
- menciona anexos que funcionan bien, aunque falta documentarlos
- no presenta notación de graham para problema 1 y 3
- faltan los diagramas de gantt, no es clara las medidas de desempeño y su calculo.

Continuar navegando