Está en la página 1de 47

Suscríbete a DeepL Pro para poder traducir archivos de mayor tamaño.

Más información disponible en www.DeepL.com/pro.

Programación y Control
de la Producción
EDUYN LOPEZ-SANTANA

Eduyn López-Santana 1
n Jobs, una máquina: Vencimiento
común

Eduyn López-Santana 2
n Jobs, una máquina: Vencimiento
común
min � |𝐶𝑗 - 𝑑|

❑ 𝑑 ≤ 𝐶𝑚𝑎𝑥

Eduyn López-Santana 3
Algoritmo
❑ Paso 0: Clasificar los empleos en SPT
❑ Paso 1: Crear dos conjuntos A y B
❑ Paso 2: Calcular:

𝐶𝑚𝑎𝑥 = � 𝑝𝑗
�=1
�=�
𝑅 = 𝐶𝑚𝑎𝑥 - 𝑑
�=�
❑ Tercer
paso: 𝐼𝑓 𝑅 ≥ 𝐿 𝑡ℎ𝑒𝑛 𝐴 ← 𝐴 ∪
𝑗𝑜𝑏(𝑖)
𝐼𝑓 𝑅 < 𝐿 𝑡ℎ𝑒𝑛 𝐵 ← 𝐵 ∪
𝑗𝑜𝑏(𝑖)
❑ Paso �� � = 1, �� �� ���� 5
4:

𝑅 ← 𝑅 - 𝑝𝑗𝑜𝑏𝑖 , 𝑖𝑓 𝑗𝑜𝑏(𝑖) ∈ 𝐴
𝐿 ← 𝐿 - 𝑝𝑗𝑜𝑏𝑖 , 𝑖𝑓 𝑗𝑜𝑏(𝑖) ∈ 𝐵
𝑖←𝑖-1
Ir al paso 3

Eduyn López-Santana 4
Algoritmo
❑ Paso 5: Secuencia {B,A} donde B está en FIFO y A en LIFO

Eduyn López-Santana 5
Ejemplo
Empleo 1 2 3 4 5 6 7
��
8 14 18 2 3 7 24

� = 21

Eduyn López-Santana 6
n Trabajos, una máquina: Diferentes
fechas de entrega
❑ Variable de decisión: 𝐷 ≤ 𝐷 ≤ ⋯ ≤ 𝐷 como las 𝑚 fechas de vencimiento.
1 2 𝑚

Eduyn López-Santana 7
n Trabajos, una máquina: Diferentes
fechas de entrega
❑ Variable de decisión: 𝐷 ≤ 𝐷 ≤ ⋯ ≤ 𝐷 como las 𝑚 fechas de vencimiento,
1 2 𝑚

❑ 𝑗 �conjunto de trabajos asignados a la fecha de vencimiento 𝐷𝑗 , 𝑚 ≤ 𝑛



min 𝑇𝑃 �, �, � = � �(𝑃1 𝐷𝑗 + 𝑃2 𝐸𝑖 + 𝑃3 𝑇 )𝑖
𝑗=1 𝑖∈𝐼𝑗
donde:

𝑖𝑑 = 𝐷𝑗 𝑓𝑜𝑟 𝑖 ∈
𝐼

1 𝑃es el coste de asignación de fecha de vencimiento por unidad de tiempo


2 𝑃es el coste de precocidad por unidad de tiempo
3 𝑃es el coste de la tardanza por unidad de tiempo

1 𝑃≥ 𝑃3 𝑡ℎ𝑒 𝑆𝑃𝑇 𝑝𝑟𝑜𝑣𝑖𝑑𝑒 𝑑𝑖 = 0

Chand S, Chhajed D (1992) A single machine model for determination of


fechas de vencimiento y secuencia óptimas. Oper Res 40:596-602

Eduyn López-Santana 8
Dada:

❑ 𝑗 𝑁= σ�=1
𝑗
𝑛𝑘 , ∀𝑗 = 1,2, ... , 𝑚 es el número total de Trabajos asignados a las j
primeras fechas de vencimiento (𝑁0 = 0).
❑ [𝑞] es el puesto de trabajo en una permutación s
❑ 𝑞 𝐶= σ�=1
𝑞
𝑝𝑞
❑ Existe un óptimo D tal que 𝐷𝑗 = 𝐶[𝑘 𝑗] , donde
�� = 𝑃- 𝑃1
𝑁𝑗-1 + 3
∗ 𝑛𝑗
3 �+ �2

Eduyn López-Santana 9

�� �, �, � = � �(𝑃1 𝐷𝑗 + 𝑃2 𝐸𝑖 + 𝑃3 𝑇 )𝑖
𝑗=1𝑖∈𝐼
� �� ��

�� � = � 𝑛𝑗 𝑃1 𝐶[𝑘 𝑗] + 𝑃2 � ��
- 𝐶[𝑞] + � 𝑃3 � - 𝐶[ 𝑘𝑗]


�=1 �=��+1 �=��+1

Si𝐶[𝑘] = σ�=1
𝑘
𝑝𝑞 para un determinado

horario 𝑠, entonces
= � 𝛿𝑞 𝑝𝑞
�� � �=1
𝑃2 𝑞 - 1 - 𝑁𝑗 −1 + 𝑃1 𝑛 - 𝑁𝑗 −1 𝑓𝑜𝑟 𝑞 ∈ {𝑁𝑗 −1 + 1, ... . , 𝑘}𝑗
𝑞𝛿 = ቐ � + 𝑃 (𝑛 - 𝑁 ) 𝑓𝑜𝑟 𝑞 ∈ {𝑘 + 1, ... . , 𝑁 }
3 𝑗 𝑁- 𝑞 + 1 1 � � �

Eduyn López-Santana 10
Algoritmo
❑ Paso 1: Clasificar los empleos
en SPT , 𝑓𝑜𝑟 𝑗 = 1, 2. , ... , 𝑚
❑ Paso 2: Establecer 𝑁0 = 0, 𝑁𝑗
= σ𝑗
�=1 �

❑ Paso 3: 𝑓𝑜𝑟 𝑗 = 1. . 𝑚 calcular


� = 3 𝑃- 𝑃1
𝑁𝑗-1 + ∗ 𝑛𝑗
3 �+ �2

❑ Paso 4: 𝑓𝑜𝑟 𝑞 = 1. . 𝑛 calcular


𝑃2 𝑞 - 1 - 𝑁𝑗 −1 + 𝑃1 𝑛 - 𝑁𝑗 −1 𝑓𝑜𝑟 𝑞 ∈ {𝑁𝑗 −1 + 1, ... . , 𝑘}𝑗
𝑞𝛿 = ቐ � + 𝑃 (𝑛 - 𝑁 ) 𝑓𝑜𝑟 𝑞 ∈ {𝑘 + 1, ... . , 𝑁 }
3 𝑗 𝑁- 𝑞 + 1 1 � � �

❑ Paso 5: clasificar los pesos posicionales 𝛿𝑞 en orden descendente (romper los empates
arbitrariamente).
❑ Paso 6: encontrar la secuencia s asignando el trabajo 𝑖 a la posición �, donde 𝑞 es tal que 𝛿𝑞 tiene
rango
𝑖. Set:
��

𝑗 𝐷= � 𝑝𝑞
�=1

Eduyn López-Santana 11
Y 𝑑𝑖 = 𝐷𝑗 , 𝑓𝑜𝑟𝑖 ∈ 𝐼𝑗 = 𝑠𝑁 𝑗-1+1 , 𝑠𝑁 𝑗-1+2 , ... , 𝑠𝑁 𝑗 , 𝑓𝑜𝑟 𝑗 = 1,2, ... , 𝑚

Eduyn López-Santana 12
Ejemplo
❑ 10 pedidos
❑ Dos grupos: 4 y 6
❑ 1 𝑃= 3, 𝑃2 = 12. 𝑃3 = 20.

Pida 1 2 3 4 5 6 7 8 9 10
��
4 10 12 13 14 16 18 20 24 25

Eduyn López-Santana 13
Múltiples máquinas

F2 | | Cmax

Entorno de taller de flujo :

• 2 máquinas, n trabajos
• función objetivo: makespan
• tiempos de llegada de los trabajos rj = 0

La regla de Johnson da un horario óptimo.

Eduyn López-Santana 14
Regla de Johnson para minimizar el tiempo de
fabricación
Utilizamos el siguiente proceso de cuatro pasos para encontrar la secuencia óptima.
❑ Paso 1: Encontrar el tiempo mínimo de procesamiento considerando los tiempos en
ambas máquinas.
❑ Paso 2: Identificar el trabajo correspondiente y la máquina correspondiente para el
tiempo mínimo identificado en el Paso 1.
❑ Paso 3: Regla de programación
(a) Si la máquina identificada en el paso 2 es la máquina M1, entonces el trabajo
identificados en el Paso 2 serán programados en el primer puesto de horario disponible.
(b) Si la máquina identificada en el paso 2 es la máquina M2, entonces el trabajo
identificado
en el Paso 2 se programarán en la última posición de horario disponible.
❑ Paso 4: Eliminar de la consideración el puesto cuya posición se ha fijado en el Paso 3;
y vaya al paso 1.

Eduyn López-Santana 15
Continúe este proceso hasta que todos los trabajos hayan sido programados.
* Los empates se deshacen al azar.

Eduyn López-Santana 16
Ejemplo: 𝑴𝟏 → 𝑴𝟐
Tra M1 M2
baj
o
1 5 2

2 1 6
3 9 7
4 3 8
5 10 4

Eduyn López-Santana 17
Otro camino hacia la regla
de Jhonson
❑ Paso 1. Programe el grupo de trabajos U que son más
cortos en la primera máquina que en la segunda.
U = { j | p1j < p2j }
❑ Paso 2. Programe el grupo de trabajos V que sean más
cortos en la segunda máquina que en la primera.
V = { j | p1j ≥ p2j }
❑ Paso 3. Ordene los trabajos en U en orden no
decreciente según sus tiempos de procesamiento en la
primera máquina.
❑ Paso 4. Ordene los trabajos en V en orden no
creciente según sus tiempos de procesamiento en la
segunda máquina.
❑ Paso 5. Concatenar U y V y ese es el orden de procesamiento
para ambas máquinas.
**Los empates se deshacen al azar.

Eduyn López-Santana 18
Ejemplo: 𝑴𝟏 → 𝑴𝟐
Tra M1 M2
baj
o
1 5 2
2 1 6
3 9 7
4 3 8
5 10 4

Eduyn López-Santana 19
maq1 maq2
Em M1 M2 sec p_jm1 s_jm1 c_jm1 p_jm2 s_jm2
ple 5 2 2 1 0 1
o
1 6 4 3 1
1
9 7 3
2
3 8
3
10
4
5

Eduyn López-Santana 20
� > 3?
❑ 𝐹3 | | 𝐶𝑚𝑎𝑥
❑ F𝑚 | | 𝐶𝑚𝑎𝑥

Eduyn López-Santana 21
Campbell, Dudek y
Smith
❑ Dividir las máquinas en dos
grupos
❑ 𝐺1: {1, ... , 𝑞}
❑ 𝐺2: {𝑞 + 1, ... , 𝑚}
❑ Compute
���
𝑝 =�
𝐺1𝑗

𝑚∈𝐺1 ���

𝑝 =�
𝐺2𝑗

𝑚∈𝐺2

❑ Aplica la regla de Jhonson al problema de 𝐺1 → 𝐺2.


❑ Prueba no óptima

Eduyn López-Santana 22
Campbell, Dudek y
Smith
❑ F3||𝐶𝑚𝑎𝑥

❑ 𝐺1: {1,2}
❑ 𝐺2: {2,3}
❑ Si
min �1� ≥ max{𝑝2𝑗 } o min �3� ≥ max{𝑝 }2𝑗
❑ Aplica la regla de Jhonson al problema de 𝐺1 → 𝐺2.
❑ Prueba no óptima

Eduyn López-Santana 23
Ejemplo
Empleo A B C
1 4 5 8
2 9 6 10
3 8 2 6
4 6 3 7
5 5 4 11

Eduyn López-Santana 24
Ejemplo
Tra M1 M2 M3
baj
o
1 14 6 15
2 8 11 4
3 10 13 17
4 16 15 5

Eduyn López-Santana 25
Flow Shop, 3
máquinas
F3 | | Cmax

Entorno de taller de flujo :

• 3 máquinas, n trabajos
• función objetivo: makespan
• tiempos de llegada de los trabajos rj = 0

La regla de Johnson con la propiedad de Campbell


et al da una
horario óptimo.

Eduyn López-Santana 26
Ignall & Schrage
❑ 𝑟 : �secuencia parcial
❑ 𝐶 � el último tiempo de finalización en la máquina � entre los trabajos en ��
� �1 1 = �11 , �2 1 = �11 + �12 , �3 1 = �11 + �12 + �13
❑ Límites: 𝑏 �� =límite inferior de la duración de la máquina �
�1 �� = �1 �� + � 𝑝𝑗1 +𝑗∈𝐽′
min{𝑝𝑗2 + 𝑝 }𝑗3
𝑗∈𝐽′ 𝑟


�2 �� = �2 �� + � 𝑝𝑗2 +∈𝐽′
𝑗min{𝑝 }𝑗3

𝑗 �

∈𝐽′�
�3 �� = �3
�� + � 𝑝𝑗3
𝑗∈𝐽′

� �� = max{��(��)}

❑ Actualiz
ación:
� �� = máx

Eduyn López-Santana 27
𝐶1 𝐽𝑟 Ignall
= 𝐶1 𝐽𝑟-1& Schrage
+ 𝑝𝑗1 ∀𝑖 𝐶𝑖-1 � + �� �� , 𝐽𝑟-1 + ��
�� ��
≠ �

Eduyn López-Santana 28
Ejemplo
Tra M1 M2 M3
baj
o
1 14 6 15
2 8 11 4
3 10 13 17
4 16 15 5

Eduyn López-Santana 29
Secuencia
� �(� �� (� ���(�� )
parcial
�� )� )�
1 14 20 35 63 63 61 63 1
2 8 19 23 68 58 60 68 0
3 10 23 40 63 59 64 64 0
4 16 31 36 63 65 72 72 0
1,2 22 33 39 68 66 61 68 0
1,3 24 37 54 63 67 63 67 1
1,4 30 45 50 63 73 71 73 0
3,1 24 30 55 63 60 64 64 1
3,2 18 34 44 68 60 64 68 0
3,4 26 41 46 63 62 65 65 0
3,1,2 32 43 59 68 63 64 68 1
3,1,4 40 55 60 63 70 64 70 0
3,4,1 40 47 62 63 62 66 66 1
3,4,2 34 52 56 69 73 71 73 0

Eduyn López-Santana 35
0

63 68 64 72
1 2 3 4

68 67 73 64 68 65
1,2 1,3 1,4 3,1 3,2 3,4

68 70 66 73
3,1,2 3,1,4 3,4,1 3,4,2

Eduyn López-Santana 36
2 Puestos de trabajo, M máquinas
❑ P1 C A E F D B

2 3 4 5 6 1

❑ P2
B A E F C D

2 2 5 3 2 3

�max = 24

Eduyn López-Santana 37
𝟏|𝒔𝒋𝒌|σ𝒔𝒋𝒌
❑ Revisar este material

Eduyn López-Santana 38
n Trabajos, una máquina, minimizar el total de
trabajos atrasados

Eduyn López-Santana 39
Algoritmo de
Moore
❑ El algoritmo añade repetidamente trabajos en el orden EDD al final
de una programación parcial de trabajos puntuales.
❑ Si la adición del trabajo 𝑗 hace que este trabajo se complete después
de su fecha de vencimiento 𝑑𝑗 , entonces se elimina un trabajo del
calendario parcial con el mayor tiempo de procesamiento y se declara
tarde.
❑ Todos los trabajos retrasados se programan en un orden arbitrario
después de los trabajos puntuales.

Eduyn López-Santana 40
Ejemplo
Empleo 1 2 3 4 5 6
�� 15 6 9 23 20 30
�� 10 3 4 8 10 6

Trabajo
��

��

��

Trabajo
��

��

��

Eduyn López-Santana 41
Ejemplo
Trabajo 1 2 3 4 5 6
�� 15 6 9 23 20 30
�� 10 3 4 8 10 6

Trabajo 2 3 5 4 6
�� 6 9 20 23 30
�� 3 4 10 8 6
�� 3 7 17 25 31

Trabajo
��

��

��

Eduyn López-Santana 42
Ejemplo
Trabajo 1 2 3 4 5 6
�� 15 6 9 23 20 30
�� 10 3 4 8 10 6

Trabajo 2 3 4 6 1 5
�� 6 9 23 30
�� 3 4 8 6
�� 3 7 15 21

Trabajo 2 3 4 6 5 1
�� 6 9 23 30
�� 3 4 8 6
�� 3 7 15 21

Eduyn López-Santana 43
Modelos de retraso

1. El algoritmo de Lawler que da un horario óptimo


con el mínimo coste hmax
cuando los trabajos están sujetos a una relación de precedencia
1 | prec | hmax

44
Algoritmo de Lawler

• Algoritmo hacia atrás que da un programa óptimo para


1 | prec | h hmaxmax = max ( h1 (C1 ), ... ,h (C ) ) ,hn (Cn )
)
hj son funciones de costes no decrecientes

Notación
makespan Cmax = ∑ pj finalización del último
trabajo. ⎡ ⎤
�C - ∑ p j,C max ⎥
J conjunto de trabajos ya programados máx j�J ⎦
deben procesarse durante el intervalo de tiempo ⎣

JC complemento del conjunto J , conjunto de trabajos


45
pendientes de programación
J ' ⊆ J Conjunto de trabajos que pueden programarse
inmediatamente antes del conjunto J (trabajos
programables).

46
Algoritmo de Lawler para 1 | | hmax
Paso 1.
J=∅
JC = {1,...,n}
k=n

Segundo paso.
⎛⎜ ⎞ ⎛ ⎞
Sea j* tal que hj* ∑ p j ⎟ = ⎜ p j⎟
minC hj ∑
⎝ j�J C
⎠ j�J ⎝ j�JC ⎠
Colocar j* en J en la posición de orden k
Eliminar j* de JC

Tercer paso.
Si JC = ∅ entonces Stop
si no k = k - 1
ir al paso 2

47
Ejemplo (sin relaciones de precedencia entre empleos)

J=∅ JC ={1, 2, 3} trabajos pendientes de programar


Cmáx = 10
h1 (10) = 11
h2 (10) =12
h3 (10) =10
El trabajo 3 se programa en último lugar y debe procesarse en [5, 10].

... 3
5 10

48
J = {3} JC ={1, 2} trabajos pendientes de programar
Cmáx = 5
h1 (5) = 6
h2 (5) = 6
La tarea 1 o la tarea 2 pueden procesarse antes que la tarea 3.

1 2 3
5 10
o

2 1 3
5 10

Dos horarios son óptimos: 1, 2, 3 y2 , 1, 3

49
Algoritmo de Lawler para 1 | prec | hmax
Primer paso.
J = �, JC = {1,...,n}
J' el conjunto de todos los trabajos sin sucesores
k=n

Segundo paso. ⎛ ⎞ ⎛
Sea j* tal que hj*
⎜ ∑ p ⎟=m
j
⎝ j�J C
Colocar j* en J en la posición de orden k
Borrar j* de JC
Modifique J' para representar el conjunto de trabajos que pueden programarse
inmediatamente antes del set J.

Paso 3.
Si JC = ∅ entonces Stop
si no k = k - 1
ir al paso 2

50
Ejemplo . ¿Qué ocurrirá en el ejemplo anterior si el
precedencia 1 → 2 debe tenerse en cuenta?
J=∅
J C ={1, 2, 3} pendiente de programar
J'={2, 3} no tienen sucesores
Cmax = 10
... 3
h2 (10) = 12
h3 (10) = 10 5 10

J = {3}
J C ={1, 2} pendiente de programar
J'={2} puede programarse inmediatamente 2 3
antes que J Cmax = 5 2 5 10
h2 (5) = 6
J = {3, 2} J C ={1} J'={1}
h1 (2) = 3 1 2 3
Horario óptimo: 1, 2, 3,
2 5 10
hmax = 10

51
1 || Lmax es el caso especial del 1 | prec | hmax
donde hj = Cj - dj
El algoritmo da como resultado un programa que ordena los trabajos de
forma creciente
pedir
de sus fechas de vencimiento - regla de la fecha de vencimiento más
temprana primero (EDD)

1 | rj | Lmax es NP difícil, se utiliza branch-and-bound

1 | rj , prec | Lmax similar branch-and-bound

52

También podría gustarte