Documente Academic
Documente Profesional
Documente Cultură
Flow Shops
Ciro Amaya
2019
Características de Flow Shop
• m máquinas, n trabajos
• Un trabajo consiste de operaciones, que se realizan en cada máquina
• Los trabajos se procesan en serie en las máquinas, cada trabajo tiene
la misma ruta de máquinas.
• El tiempo de procesamiento del trabajo j en la máquina i es pij
1
11/10/2019
Restricciones de Flow Shop
• |block| Almacenamiento intermedio:
• Ilimitado
• Limitado => genera bloqueo
• | prmu | mantener la secuencia
• Si en cada máquina se usa la regla FCFS (First‐come‐first‐served),
los trabajos no intercambian su secuencia, mantienen la misma
permutación en todas las máquinas.
• Permutation flow shop
Flow Shop
2
11/10/2019
Fm | prmu |Cmax
• Los tiempos de terminación en las máquinas se pueden calcular así:
𝐶, ∑ 𝑝, i=1, ... , m
𝐶 , ∑ 𝑝 , k=1, ... , n
𝐶, max 𝐶 , ,𝐶 , + 𝑝 , i= 2, … , m ; k= 2, … , n
• Ver Fm Gantt.R
3
11/10/2019
Fm | prmu |Cmax
• Existe una secuencia óptima en la cual no es necesario cambiar las
secuencias entre la primera y segunda máquinas y entre la penúltima
y última máquina
• Eso conlleva a qué:
• F2|| Cmax y F3|| Cmax tienen secuencias óptimas que se mantienen en
las máquinas.
...
p2, j1 ... ... pi , j k pi , jk 1 ...
4
11/10/2019
F4 | prmu |Cmax
5 Trabajos, 3 máquinas, pij:
jobs j1 j2 j3 j4 j5
5 5 3 6 3
p1, jk
p2 , jk 4 4 2 4 4
4 4 3 4 1
p3, jk
p4 , jk 3 6 3 2 5
5 5 3 6 3
4 4 2 4 4
4 4 3 4 1
3 6 3 2 5
Critical path
5
11/10/2019
Ejemplo R
#ejemplo 6.1.1
n <‐ 5
m <‐ 4
p1 <‐ c(5, 5, 3, 6, 3)
p2 <‐ c(4, 4, 2, 4, 4)
p3 <‐ c(4, 4, 3, 4, 1)
p4 <‐ c(3, 6, 3, 2, 5)
P <‐ rbind(p1,p2,p3,p4)
6
11/10/2019
• La secuencia de los trabajos de acuerdo con la permutación j1, ..., jn
en el primer taller produce el mismo Makespan que la permutación
jn, ..., j1 en el segundo.
El Makespan no cambia si los trabajos atraviesan el taller de flujo en
la dirección opuesta en orden inverso (Reversibilidad).
• #ejemplo 6.1.1
• n <‐ 5
• m <‐ 4
• p1 <‐ c(5, 5, 3, 6, 3)
• p2 <‐ c(4, 4, 2, 4, 4)
• p3 <‐ c(4, 4, 3, 4, 1)
• p4 <‐ c(3, 6, 3, 2, 5)
• P <‐ rbind(p1,p2,p3,p4)
• #ejemplo 6.1.3
• n <‐ 5
• m <‐ 4
• p1 <‐ c( 5, 2, 3, 6, 3 )
• p2 <‐ c( 1, 4, 3, 4, 4 )
• p3 <‐ c( 4, 4, 2, 4, 4 )
• p4 <‐ c( 3, 6, 3, 5, 5 )
• P <‐ rbind(p1,p2,p3,p4)
7
11/10/2019
• Ver ejemplosdatos.R
Flow Shop
Caso: F2 | |Cmax
16
8
11/10/2019
F2 | |Cmax
• La regla de Johnson genera un óptimo. Un óptimo tiene la misma
permutación en las dos maquinas
• Dividir los trabajos en dos conjuntos:
• Conjunto I: Trabajos que p1j p2j
• Conjunto II: Trabajos que p2j p1j
• Secuencia SPT(1)‐LPT(2)
• Hacer secuencia SPT de los trabajos del Conjunto I
• Hacer secuencia LPT de los trabajos del Conjunto II
• Los trabajos con tiempos de proceso iguales en las dos máquinas, se pueden agregar
a cualquiera de los dos conjuntos.
Flow Shop
Caso: Fm | prmu|Cmax
18
9
11/10/2019
Fm | prmu|Cmax
• ES NP‐hard, de hecho
• F3|prmu|Cmax es NP‐hard en sentido estricto
20
10
11/10/2019
Gráficamente
ik
Iik Wi,k+1
Wik
MIP para Fm|prmu|Cmax
• Objetivo:
Min Makespan ~ Minimizar el tiempo de inactividad en la máquina m
𝑝 𝐼
Minimiza:
• Tiempo de inactividad antes de del primer trabajo en última máquina.
• Tiempo de inactividad en la última máquina.
11
11/10/2019
MIP para Fm|prmu|Cmax
Dado que hay un solo trabajo en posición k, se tiene:
𝑝 = ∑ 𝑋 𝑝
∑ 𝑝 = ∑ ∑ 𝑋 𝑝
MIP para Fm|prmu|Cmax
Min ∑ ∑ 𝑋 𝑝 ∑ 𝐼
Sujeto a:
∑ 𝑋 1 k = 1, ... , n
∑ 𝑋 1 j = 1, ... , n
𝐼 ∑ 𝑋, 𝑃 𝑊, 𝑊
∑ 𝑋 𝑃 , 𝐼 , 0 for k = 1, ..., n‐1; i = 1, ..., m‐1
Wi1 = 0 i = 1, ..., m‐1 xjk {0,1} j=1, ...,n
I1k = 0 k = 1, ..., n‐1 k=1, ...,m
Wik 0 i = 1, ..., m‐1; k = 1, ..., n
Iik 0 i = 1, ..., m; k = 1, ..., n‐1
12
11/10/2019
La tercera restricción: 𝑰𝒊𝒌 ∑𝒏𝒋 𝟏 𝑿𝒋,𝒌 𝟏 𝑷𝒊𝒋 𝑾𝒊,𝒌 𝟏 𝑾𝒊𝒌 ∑𝒏𝒋 𝟏 𝑿𝒋𝒌 𝑷𝒊 𝟏,𝒋 𝑰𝒊 𝟏,𝒌 0
ik
𝑝 = ∑ 𝑋 𝑝
Iik Wi,k+1
𝐼 𝑝 𝑊,
Máquina i pi(k) pi(k+1) 𝑊 𝑝 𝐼 ,
Wik Ii+1.k
13
11/10/2019
Heurística Slope Fm|prmu|Cmax
• Calcule el índice Slope para cada trabajo:
•𝐴 ∑ 𝑚 2𝑖 1 𝑝 j=1, … , n
• El índice es grande si los tiempos de procesamiento en las máquinas
posteriores son grandes en relación con los tiempos de procesamiento en las
máquinas anteriores
• Secuenciar los trabajos en orden decreciente del índice calculado
job j1 j2 j3 j4 j5
Ejemplo 1 5 2 3 6 3
2 1 4 3 4 4
A1 = ‐(3 x 5) – (1 x 4) + (1 x 4) + (3 x 3) = ‐6 3 4 4 2 4 4
4 3 6 3 5 5
A2 = ‐(3 x 5) – (1 x 4) + (1 x 4) + (3 x 6) = +3
A3 = ‐(3 x 3) – (1 x 2) + (1 x 3) + (3 x 3) = +1
A4 = ‐(3 x 6) – (1 x 4) + (1 x 4) + (3 x 2) = ‐12 𝐴 𝑚 2𝑖 1 𝑝
A5 = ‐(3 x 3) – (1 x 4) + (1 x 1) + (3 x 5) = +3
Las secuencias 2,5,3,1,4 y 5,2,3,1,4
(que son óptimas)
14
11/10/2019
• Ver Fm_prmu_Cmax Hslopa.R
Flow Shop proporcional
Caso: Fm | prmu, pij=pj|
30
15
11/10/2019
Flow shops proporcional
• El tiempo de procesamiento no cambia en las máquinas:
pij=pj
(el tiempo total está repartido por igual en las máquinas)
• Teorema 6.1.8
• El makespan de Fm|prmu,pij=pj|Cmax es
Cmax=pj+(m‐1)max(p1,…,pn)
Y es independiente de la secuencia
31
Similitudes entre 1 máquinas y tiempos
proporcionales
Regla/algoritmo Una máquina Flow Shop proporcional
SPT 1||Cj Fm|pij=pj|Cj
Algoritmo 3.3.1 1||Uj Fm|prmu,pij=pj|Uj
Algoritmo 3.2.1 1||hmax Fm|prmu,pij=pj|hmax
Algoritmo 3.4.4 1||Tj Fm|prmu,pij=pj|Tj
Lema 3.5.1 1||wjTj Fm|prmu,pij=pj|wjTj
Nota: WSPT no es óptimo para Fm|prmu,pij=pj|wjCj
32
16
11/10/2019
|block| Almacenamiento
Intermedio Limitado
=> genera bloqueo
|block|
• Sólo es necesario considerar el caso con almacenamiento intermedio
de cero
• SI es >0, se crea máquinas virtuales de tiempos cero.
• Notación:
• Dij : tiempo en que el trabajo j sale de la máquina i(deja de estar
bloqueado)
• D0j : tiempo en que el trabajo j comienza a ser procesado en la
máquina 1
Cij ≤ Dij
17
11/10/2019
Fm | block |Cmax
Los tiempos de salida de los trabajos en las máquinas se pueden
calcular así:
𝐷, ∑ 𝑝, i=1, ..., m
𝐷 , max 𝐷 , 𝑝, , 𝐷 , k=2, ..., n
𝐷, max 𝐷 , 𝑝, , 𝐷 , i=2, …, m‐1; k=2, ..., n
𝐷 , 𝐷 , + 𝑝 , k= 2, …, n
El Makespan de una secuencia se puede calcular con el método de la
ruta más larga.
Representación con grafo
𝝅 1 2 3 4 5
p1j 5 5 3 6 3
p2j 4 4 2 4 4
p3j 4 4 3 4 1
p4j 3 6 3 2 5
18
11/10/2019
Fm|block|Cmax
Heurística PF (profile fitting)
1. Se selecciona un trabajo para ir primero
2. Se prueban los otros trabajos para ser el siguiente
• Usar las ecuaciones de la diapositiva anterior para calcular los tiempos de
salida
• Calcule una penalización como la suma de los tiempos de inactividad y los
tiempos bloqueados en todas las máquinas.
• Elige el trabajo con la penalidad más baja para ir a continuación.
3. Si todos los trabajos han sido programados => TERMINAR, De lo
contrario, vaya al Paso 2.
job j 1 2 3 4 5
Ejemplo PF
p1j 5 5 3 6 3
Fm|block|Cmax p2j 4 4 2 4 4
p3j 4 4 3 4 1
Seleccione el de menos tiempo
J3 p4j 3 6 3 2 5
Busque el mejor Segundo que genera menos suma de tempo parado (inactividad +
bloqueo)
J5 3
Continue ….
• La secuencia es 3, 5, 1,2,4
19
11/10/2019
|no‐wait| Almacenamiento
Intermedio Limitado
=> Sistema pull
|no‐wait|
20
11/10/2019
• Cuando m≧ 3, son diferentes
F2 /block / Cmax
Cada vez que un trabajo comienza su
procesamiento en la máquina 1, el trabajo
anterior comienza su procesamiento en la
máquina 2.
21
11/10/2019
F2 /block / Cmax
• El problema de min Makespan es equivalente al TSP con n+1
ciudades, con distancias entre ciudades:
doj = P1j , dko= P2k , djk= max(P1k,P2j), j k
F2 /block / Cmax
• La matriz de distancias se puede simplificar, pues:
2Cmax = ∑ 𝑃 𝑃 + Tiempo inactividad máquinas
Min Cmax ≈ Min inactividad máquinas
22
11/10/2019
• EL TSP con estructura de distancias de la forma: Sjk =| ak‐bj|
El tiempo de Setup entre j y k es el tiempo necesario para llevar la máquina
del estado bj al estado ak, y este es proporcional a la diferencia absoluta entre
los dos estados.
En este caso particular, existe un algoritmo Polinomial
algoritmo 4.4.5
No‐wait
46
23
11/10/2019
Fm | nwt | Cmax
• El Fm | nwt |Cmax, a diferencia de Fm | block |Cmax, se puede
formular como un TSP, con distancias:
𝑑 max 𝑝 𝑝 j, k 0, … , n
..
Si hay más de 2 máquinas este problema es NP‐duro.
Flexible Flow Shop
Compound Flow Shop
Multi‐processor Flow Shop
Hybrid Flow Shop
48
24
11/10/2019
FFc | |
• Hay c etapas
• En la etapa l, hay ml idénticas máquinas, con tiempos de proceso pcj
• Capacidad de almacenamiento ilimitado
• Objetivos: Cmax y ∑𝑪𝒋
• Los ambientes de Máquinas en Paralelo y Flow Shop, son casos
particulares.
• FFC es un ambiente complejo.
• Caso particular:
25