Está en la página 1de 14

SCHEDULING E

INVENTARIOS
 

 
Modelos para Flow Shop I
 

 
 

• MODELOS  PARA  FLOW  SHOP  I  


 

En  las  semanas  anteriores,  estudiamos  problemas  de  programación  de  tareas  para  sistemas  
que  estaban  conformados  por  una  o  varias  máquinas  en  paralelo,  en  los  cuales,  los  trabajos  
solo   debían   recibir   una   operación   (en   alguna   de   las   máquinas).   Ahora,   vamos   a   estudiar  
problemas  donde  los  trabajos  requieren  más  de  una  operación  y    pasan  por  varias  estaciones.  
Es   común   encontrar   en   las   empresas   de   sistemas   de   manufactura   o   ensamble   que   cada  
trabajo   tenga   que   sufrir   diferentes   transformaciones   (operaciones).   En   particular,   en   estas  
dos  semanas,  estudiaremos  los  sistemas  flow  shops,  donde  las  máquinas  están  organizadas  
en   serie   (una   tras   otra)   y     los   trabajos   tienen   que   pasar,   obligatoriamente,   por   todas   las  
operaciones  en  la  misma  ruta.    
 
Un   elemento   fundamental   en   estos   modelos   es   que   consideran   más   de   una   estación   de  
trabajo   o   buffers.   Los   buffers   son   los   espacios   para   almacenamiento   que   existe   entre   una  
estación  y  otra.  Según  el  tamaño  en  relación  con  los  trabajos  que  transitan  por  el  sistema,  los  
buffers   tienen   capacidad   finita   o   infinita;   se   considera   infinita   cuando   su   tamaño   permite  
almacenar  una  cantidad  de  trabajos  mayor  que  la  que  normalmente  se  necesita.    En  el  caso  
en   que   los   buffers   son   finitos,   se   pude   presentar   una   situación   conocida   como   blocking   o  
bloqueo,  la  cual  consiste  en  que  si  el  contenido  de  un  buffer  está  ocupando  toda  la  capacidad,  
cuando   la   máquina   que   le   precedía   termine   un   trabajo,   no   podrá   entregarlo,   dado   que   el  
buffer   está   lleno,   y   por   ende,   la   máquina   retendrá   el   trabajo   finalizado   sin   poder   iniciar  
operaciones  sobre  otro.  
 
 Un   sistema   de   manufactura,   un   poco   más   general,   es   aquel   que   está   conformado   por   varias  
estaciones   de   trabajo,   dentro   de   las   cuales   puede   haber   más   de   una   máquina   que   trabaja   en  
paralelo.  Cada  vez  que  un  trabajo  llega  a  una  estación  es  procesado  sólo  por  una  máquina.  
Dicho  sistema  de  manufactura  es  conocido  como  flexible  flow  shop.  

Flow  shops  con  buffers  con  capacidad  infinita  


Cuando   se   trata   de   encontrar   un   schedule   óptimo   para   el   problema  !! ||!!"# ,  la   primera  
pregunta  que  nace  es  si  es  suficiente  determinar  la  permutación  (orden  de  los  trabajos)  en  la  
cual,  todos  los  trabajos  van  a  atravesar  el  sistema.  Es  posible  que  algún  trabajo  sobrepase  a  
otro   mientras   ambos   esperan   a   ser   atendidos   en   una   estación.   Lo   anterior   implica   que   las  
máquinas   no   trabajan   bajo   la   regla   FCFS   y   que   la   secuencia   en   la   cual   son   atendidos   los  
trabajos   puede   cambiar   a   lo   largo   del   sistema.   Dichos   cambios   pueden   convertirse,   en  
algunas  ocasiones,  en   un   menor  makespan.  Sin  embargo,  se  puede  demostrar  que  siempre  
existe   un   schedule   óptimo   sin   cambios   en   la   secuencia   entre   las   dos   primeras   máquinas   y  
entre   las   dos   últimas   máquinas.-­‐   Lo   anterior   implica   que   existen   schedules   óptimos   para  
!2||!!"#  y  !3||!!"#  que  no  requieren  realizar  cambios  en  la  secuencias  entre  máquinas.  

 
2 [ POLITÉCNICO GRANCOLOMBIANO]
 

Encontrar   un   schedule   óptimo   cuando   se   permiten   modificaciones   en   las   secuencias   entre  


máquinas,  es  mucho  más  complejo  que  si  no  se  permitieran  dichos  cambios.  Los  flow  shops  
que   no   permiten   modificaciones   en   las   secuencias   entre   máquinas   se   conocen   como  
permutation   flow   shops.   En   estos   flow   shops,   la   misma   secuencia   se   sigue   en   todas   las  
máquinas.   Este   es   el   tipo   de   sistemas   que   analizaremos   a   lo   largo   de   las   siguientes   dos  
semanas.  
Si   se   conoce   la   permutación   de   un   schedule  !! , … , !!  para   un   flow   shop   con  !  máquinas,   el  
tiempo   de   finalización   del   k-­‐esimo   trabajo   (!! )  se   puede   calcular   fácilmente   a   través   de   un  
conjunto  de  ecuaciones  recursivas  
 
!!,!! = !!!! !!,!!         ! = 1, … , !  
!
!!,!! = !!! !!,!!         ! = 1, … , !  
!!,!! = max !!!!,!! , !!,!!!! + !!,!!     ! = 2, … , !;      ! = 2, … , !  
 
El  valor  del  makespan  para  una  permutación  conocida  se  puede  calcular  determinando  la  ruta  
crítica  en  un  grafo  dirigido  que  corresponde  al  schedule.  Para  una  secuencia  dada  !! , … !! ,  el  
grafo   dirigido   puede   ser   construido   de   la   siguiente   forma:   para   cada   operación   en   el  
procesamiento   del   trabajo  !!  en   la   máquina  ! ,   existe   un   nodo  (!, !! )  con   un   peso   igual   al  
tiempo   de   procesamiento   del   trabajo  !!  en   la   máquina  ! .   Los   nodos   !, !! ,  ! = 1, … , ! −
1, ! = 1, … ! − 1,   tienen   arcos   que   salen   hacia   los   nodos   ! + 1, !!  o  (!, !!!! ).   Los   nodos  
correspondientes   a   la   máquina   m   solo   tiene   un   nodo   de   salida,   así   como   los   nodos  
correspondientes   al   trabajo  !! .   El   nodo  (!, !! )  no   tiene   ningún   arco   saliente.   El   peso   total   de  
la   ruta   con   el   pedo   máximo   desde   el   nodo   1, !!  hasta   el   nodo  (!, !! )  corresponde   al  
makespan  bajo  la  permutación  estudiada.  
 

Ejemplo  
Consideremos  un  problema  scheduling  en  un  sistema  tipo  flow  shop  que  consiste  en  cinco  (5)  
trabajos  y  cuatro  (4)  máquinas  con  los  siguientes  tiempos  de  procesamiento:  
 
j1   j2   j3   j4   j5  
 p1,jk   5   5   3   6   3  
p2,jk   4   4   2   4   4  
p3,jk   4   4   3   4   1  
p4,jk   3   6   3   2   5  
 
 
 
 
 

 
[ SCHEDULING E INVENTARIOS ] 3
 

El  grafo  correspondiente  se  muestra  en  la  siguiente  figura:  


 
5 5 3 6 3

4 4 2 4 4

4 4 3 4 1

3 6 3 2 5

 
 
Del   grafo   se   puede   concluir   que   el   makespan   es   igual   a   34,   en   este   caso   en   particular,   el  
makespan  está  determinado  por  dos  rutas  críticas.  
□  
Ahora,  comparemos  dos  permutaciones  para  problemas  tipo  flow  shop  permutation  para  m  
máquinas   y   n   trabajos,   sean    !!,!!  y  !!,!!  los   tiempos   de   procesamiento   del   trabajo   j   en   la  
máquina  i  en  la  primera  y  la  segunda  permutación  respectivamente.  Ahora,  supongamos  lo  
siguiente:  
 
!!,!! = !!!!!!,! !
 
 
Aquí,  se  puede  interpretar  que  la  primera  máquina,  en  el  segundo  flow  shop,  es  idéntica  a  la  
última   máquina   en   el   primer   flow   shop;   la   segunda   máquina,   en   el   segundo   flow   shop,   es  
idéntica  a  la  penúltima  máquina  en  el  primer  flow  shop,  y  así  sucesivamente.  Para  esos  dos  
flow  shops  se  puede  establecer:  
 
Secuenciar  los  trabajos  de  acuerdo  a  la  permutación  !! , … , !!  en  el  primer  flow  shop  genera  el  
mismo  makespan  que  si  se  secuenciara  los  trabajos  de  acuerdo  a  la  permutación  !! , … , !!  en  
el  segundo  flow  shop.  Esto  se  conoce  como  propiedad  de  reversibilidad.  
 
De   la   anterior   afirmación   se   puede   establecer   que   el   makespan   no   cambia   si   los   trabajos  
atraviesan   el   sistema   hacia   adelante   (con   la   permutación  !! , … , !! )   o   si   lo   hacen   hacia   atrás  
(con  la  permutación  !! , … , !! ).  
 
Tomemos   ahora   un   problema  !2||!!"# ,   es   decir   un   flow   shop   con   dos   máquinas   y   buffers  
infinitos.   Existe   n   trabajos,   los   cuales   tienen   tiempos   de   procesamiento  !!,!!  y  !!,!!  en   la  
máquina   uno   y   dos   respectivamente.   Este   es   un   problema   muy   conocido   en   investigación   de  
operaciones  y  la  regla  que  lo  minimiza  es  conocida  como  Johnson  (en  nombre  de  su  autor).  

 
4 [ POLITÉCNICO GRANCOLOMBIANO]
 

Para   este   problema   se   puede   encontrar   una   secuencia   óptima   por   medio   del   siguiente  
procedimiento:  

1. Partir  los  trabajos  en  dos  conjuntos,  donde  el  primero  contiene  todos  los  trabajos  con  
!!,! < !!,! ;  y  el  segundo,  todos  los  trabajos  con  !!,! > !!,! .  Los  trabajos  con  !!,! = !!,!  
se  pueden  colocar  en  cualquiera  de  los  dos  conjuntos.  
2. Los   trabajos   en   el   primer   conjunto   se   procesan   primero   y   van   en   orden   ascendente  
con  respecto  a  !!,!  (SPT).  
3. Los   trabajos   en   el   segundo   conjunto   se   procesan   después   y   van   en   orden  
descendente   con   respecto   a  !!,!  (LPT).   Cualquier   empate   se   resuelve   de   manera  
arbitraria.  
El  procedimiento  anterior  da  origen  a  schedules  conocidos  como  SPT(1)-­‐LPT(2).  Debido  a  los  
posibles   empates   (entre   otras   situaciones)   se   pueden   obtener   muchos   schedules,   sin  
embargo  todos  ellos  son  óptimos  para  el  problema  !2||!!"# .  
 
Los   schedules   SPT(1)-­‐LPT(2)   no   son   los   únicos   óptimos   para   los   problemas  !2||!!"# .   La   clase  
de  los  schedules  óptimos  es  difícil  de  caracterizar  y  dependen  de  los  datos.    
 
Desafortunadamente,   la   estructura   de   los   schedules   SPT(1)-­‐LPT(2)   no   se   puede   generalizar  
para  flow   shops  con  más  de  2  máquinas.  Sin  embargo,  el  problema  de  minimizar  el  makespan  
en   un   flow   shop   permutation   con   un   número   arbitrario   de   máquinas   (!"|!"#$|!!"# )   puede  
ser   formulado   como   un   problema   de   programación   entera   mixta   (MIP   por   sus   siglas   en  
inglés).  
 
Para  formular  dicho  problema  como  un  MIP,  definiremos:  

• !!,!  igual  a  uno  (1)  si  el  trabajo  j  es  el  k-­‐ésimo  trabajo  en  la  secuencia  y  cero  (0)  de  lo  
contrario.  
• !!,!  es  el  tiempo  ocioso  de  la  máquina  i  entre  los  procesamientos  del  trabajo  k-­‐ésimo  y  
del  trabajo  (k+1)-­‐ésimo.  
• !!,!  es   el   tiempo   de   espera   del   trabajo   en   la   k-­‐ésima   posición   entre   las   máquinas   i   y   la  
máquina  i+1.  
Es   obvio   que   las   variables  !!,!  y  !!,!  están   relacionadas;   si  !!,! > 0,   entonces  !!,!  tiene   que  
ser  cero.  Dicha  relación  se  puede  formular  si  se  considera  la  diferencia  entre  el  tiempo  en  que  
el  trabajo  de  la  (k+1)-­‐ésima  posición  comienza  a  ser  procesado  en  la  máquina  i+1  y  el  tiempo  
en  que  el  trabajo  en  la  k-­‐ésima  posición  completa  su  procesamiento  en  la  máquina  i.  Si  ∆!,!  
denota   dicha   diferencia   y   si  !! !  denota   el   tiempo   de   procesamiento   en   la   máquina   i   del  
trabajo  en  la  k-­‐ésima  posición  en  la  secuencia,  entonces:  
 
∆!,! = !!,! + !! !!! + !!,!!! = !!,! + !!!! ! + !!!!,!  

 
[ SCHEDULING E INVENTARIOS ] 5
 

En   este   caso   minimizar   el   makespan   es   igual   a   minimizar   el   tiempo   ocioso   en   la   última  


máquina  (máquina  m).  Este  tiempo  ocioso  se  puede  representar  de  esta  forma:  
 
!!! !!!
!! ! + !!,!    
!!! !!!
 
La  expresión  anterior  es  el  tiempo  ocioso  que  ocurre  antes  de  que  el  trabajo  en  la  primera  
posición   alcance   la   última   máquina,   y   la   suma   de   los   tiempos   ociosos   entre   trabajos   en   la  
última  máquina.  Acá  se  usa    la  expresión:  
 
!
!! ! = !!,! !!,!  
!!!
 
El  MIP  se  puede  formular  como  sigue:  
 
!!! ! !!!
!"#   !!,! !!,! + !!,!  
!!! !!! !!!
 
Sujeto  a  
 
!
!!,! = 1;        ! = 1, … , !  
!!!
!
!!,! = 1;        ! = 1, … , !  
!!!
! !
!!,! + !!,!!! !!,! + !!,!!! − !!,! − !!,! !!!!,! − !!!!,! = 0;              ! = 1, … , ! − 1; !
!!! !!!
= 1, … , ! − 1  
!!,! = 0,              ! = 1, … , ! − 1  
!!,! = 0;      ! = 1, … , ! − 1  
!!,! ∈ 0,1 ∀!, ∀!  
!!,! ∈ ℝ  
!!,! ∈ ℝ  
 
El   primer   bloque   de   restricciones   establece   que   a   cada   posición   se   debe   asignar   solo   un  
trabajo,  mientras  que  el  segundo  bloque  de  restricciones  establece  que  cada  trabajo  se  debe  
asignar  solo  a  una  posición.    
 
Por  otro  lado,  el  tercer  bloque  de  restricciones  relaciona  entre  la  variable  de  decisión  !!,!  y  
las  variables  de  decisión  de  los  tiempos  de  ocio  y  los  tiempos  de  espera.  
 

 
6 [ POLITÉCNICO GRANCOLOMBIANO]
 

Ejemplo  
Consideremos  el  mismo  conjunto  de  datos  del  problema  anterior,  sin  conocer  la  permutación  
previamente:  
 
1   2   3   4   5  
 p1,j   5   5   3   6   3  
p2,j   4   4   2   4   4  
p3,j   4   4   3   4   1  
p4,j   3   6   3   2   5  
 
La  función  objetivo  del  MIP  quedaría  de  la  siguiente  forma:    
 
z
= 5x!,! + 5x!,! + 3x!,! + 6x!,! + 3x!,! + 4x!,! + 4x!,! + 2x!,! + 4x!,! + 4x!,! + 4x!,! + 4x!,!
+ 3x!,! + 4x!,! + 1x!,! + 3x!,! + 6x!,! + 3x!,! + 2x!,! + 5x!,!  
 
El   primer   y   el   segundo   conjunto   de   restricciones   del   MIP   contienen   5  restricciones   cada   una.  
Mientras   que   el   tercer   conjunto   de   restricciones   contiene     (5-­‐1)x(4-­‐1)   =12   restricciones.   Por  
ejemplo,  la  restricción  correspondiente  a  i=3  y  k=2    quedaría  de  la  siguiente  forma:  
 
!!,! + 4!!,! + 4!!,! + 3!!,! + 4!!,! + !!,! + !!,! − !!,! − 3!!,! − 6!!,! − 3!!,! − 2!!,!
− 5!!,! − !!,! = 0  
□  
El  problema  !3||!!"# ,  y  aquellos  problemas  de  este  tipo  con  más  de  2  máquinas,  son  NP-­‐
Hard.  
 
El   problema  !"||!!"#  es   uno   de   los   problemas   básicos   en   scheduling   y,   por   lo   tanto,   ha  
recibido  gran  atención  a  lo  largo  de  los  años.  Una  de  las  primeras  heurísticas  desarrolladas  
para   este   problema   es   la   conocida   como   slope   heuristic.   De   acuerdo   con   esta   heurística   se  
calcula  un  slope  index  para  cada  trabajo  de  la  siguiente  manera:  
 
!
!! =   − ! − 2! − 1 !!,!  
!!!
 
Luego,   los   trabajos   son   secuenciados   en   orden   decreciente   de   su   slope   index.   Esta   heurística  
utiliza   el   mismo   razonamiento   que   el   método   de   Johnson:   los   trabajos   con   tiempos   de  
procesamiento  cortos  en  la  primera  máquina  y  largos  en  la  segunda  se  colocan  al  principio  de  
la  secuencia,  mientras  que  los  trabajos  con  tiempos  de  procesamiento  largos  en  la  primera  
máquina   y   cortos   en   la   segunda   se   colocan   al   final   de   la   secuencia.   El   slope   index   es   mayor   si  

 
[ SCHEDULING E INVENTARIOS ] 7
 

los   tiempos   de   procesamiento   en   las   máquinas,   al   final   de   la   línea,   son   mayores   que   los  
tiempos  de  procesamiento  en  las  máquinas  al  principio  de  la  línea.  

Ejemplo  
Observemos  el  conjunto  de  trabajos  del  ejemplo  anterior.  Se  puede  calcular  los  slope  index  
para  cada  trabajo  de  la  siguiente  manera:  
 
1   2   3   4   5  
 
p1,j   5   5   3   6   3  
p2,j   4   4   2   4   4  
p3,j   4   4   3   4   1  
p4,j   3   6   3   2   5  
Aj   -­‐6   3   1   -­‐12   3  
 
De  los  resultados  anteriores  se  concluye  que  la  permutación  a  secuenciar  debe  ser  2,  5,  3,  1,  4  
o  5,  2,    3,  1,  4.  El  makespan  bajo  ambas  permutaciones  es  igual  a  32.  El  diagrama  de  Gantt  para  
la  primera  permutación  es:  
 

 
 
Mientras  que  el  diagrama  de  Gantt  para  la  segunda  permutación  es:  
 

 
 
Como  se  puede  observar,  ambas  permutaciones  generan  un  makespan  de  32.  
□  

Flow  shops  con  buffers  con  capacidad  finita  


Pensemos,  ahora,  m  máquinas  en  serie  con  buffers  de  capacidad  cero  (0)  entre  cada  par  de  
máquinas.  Bajo  esta  configuración,  cuando  una  máquina  termina  de  procesar  un  trabajo,  este  
no   puede   pasar   a   la   siguiente   máquina   si   está   ocupada.   En   este   caso,   el   trabajo   debe  
permanecer  en  la  máquina  que  acabó  de  procesarlo,  esto  genera  un  bloqueo  (blocking)  en  
ella.    

 
8 [ POLITÉCNICO GRANCOLOMBIANO]
 

En   adelante,   todos   los   flow   shops   considerados   serán   de   este   tipo   (buffers   de   capacidad  
cero),   dado   que   cualquier   flow   shop   con   buffers   de   capacidad   finita   puede   ser   modelado  
como  un  flow  shop  con  buffers  de  capacidad  cero,  si  se  asume  que  los  espacios  son  máquinas  
sucesivas,  en  los  cuales,  los  diferentes  trabajos  tienen  un  tiempo  de  procesamiento  de  cero  
(0).  
 
Los   problemas   en   los   cuales   se   quiere   minimizar   el   makespan   en   un   flow   shop   con   buffers   de  
capacidad  cero  (0),  lo  denotaremos  !" !"#$% !!"# .  
 
Denotemos   por  !!,!  el   tiempo   en   el   cual   el   trabajo   j   deja   la   máquina   i.   Es   evidente   que  
!!,! ≥ !!,! ;  si  el  trabajo  j  no  queda  bloqueado  en  la  estación,  entonces  !!,! = !!,! .  El  instante  
de  tiempo  en  el  cual  el  trabajo  j  inicia  su  procesamiento  en  la  primera  máquina  se  denota  !!,! .    
 
Para  una  secuencia  !! , … , !! ,  las  siguientes  relaciones  recursivas  se  mantienen:  
 
!
!!,!! = !!,!!  
!!!
!!,!! = max  (!!!!,!! + !!,!! , !!!!,!!!! )  
!!,!! = !!!!,!! + !!,!!  
 
Para  este  modelo,  el  makespan  también  se  puede  calcular  como  la  ruta  crítica  sobre  un  grafo  
dirigido.   En   este   grafo   dirigido   el   nodo  (!, !! )  denota   el   instante   de   tiempo,   en   el   cual,   el  
trabajo   j   deja   la   máquina   i.   En   este   procedimiento   (a   diferencia   del   anterior),   los   pesos   están  
ubicados  sobre  los  arcos  y  no  sobre  los  nodos.  
 
El   nodo   !, !! , ! = 1, … , ! − 1;    ! = 1, … , ! − 1  tiene   dos   arcos   salientes,   uno   va   hacia   el  
nodo  (! + 1, !! )  con  un  arco  cuyo  peso  es  !!!!,!! ;  y  el  otro  va  hacia  el  nodo   ! − 1, !!!!  con  
un  arco  cuyo  peso  es  cero  (0).  
 
El  nodo  (!, !! )  solo  tiene  un  arco  saliente  hacia  los  nodos   ! − 1, !!!!  con  un  peso  de  cero  
(0).  
 
El  nodo  (!, !! )  solo  tiene  un  arco  saliente  hacia  el  nodo  (! + 1, !! )  con  un  peso  de  !!!!,!! .  
 
El  nodo  (!, !! )  no  tiene  arcos  salientes.  
 
El   makespan   !!"# ,  bajo   una   secuencia  !! , … , !! ,  es   igual   a   la   longitud   de   la   ruta   crítica   con  
mayor   peso   desde   el   nodo  (0, !! )  hasta   el   nodo  (!, !! ).   El   esquema   general   del   grafo   se  
aprecia  en  la  siguiente  figura:  

 
[ SCHEDULING E INVENTARIOS ] 9
 

0,j1 0,j2 0,jn

1,j1 1,j2

i-­‐1,jk

i,jk

i+1,j
k

m,j1 m,jn
 
 

Ejemplo  
Observemos  el  conjunto  de  trabajos-­‐máquinas  que  se  ha  venido  estudiando:  
 
j1   j2   j3   j4   j5  
 p1,jk   5   5   3   6   3  
p2,jk   4   4   2   4   4  
p3,jk   4   4   3   4   1  
p4,jk   3   6   3   2   5  
 
A  continuación,  se  muestra  el  diagrama  de  Gantt  correspondiente:  
 
Maquina  1 5 5 3 6 3

Maquina  2 4 4 2 4 4

Maquina  3 4 4 3 4 1

Maquina  4 3 6 3 2 5
 
 
En  el  diagrama  de  Gantt  se  puede  identificar  los  espacios  en  negro,  los  cuales  corresponden  
a  los  lapsos  de  tiempo  que  cada  máquina  permanece  bloqueada.  
□  
La   propiedad   de   reversibilidad   también   se   extiende   a   flow   shops   con   buffers   de   capacidad  
cero  (0),  es  decir,  que  se  tienen  dos  sistemas  tipo  !" !"#$% !!"#  donde    !!,!!  y  !!,!!"  son  los  
tiempos   de   procesamiento   del   trabajo   j   en   la   máquina   i   en   el   primer   y   en   el   segundo   sistema  
respectivamente:  
 

 
10 [ POLITÉCNICO GRANCOLOMBIANO]
 

Si  !!,!! =   !!!!!!,!
!
,  entonces,   la   secuencia  !! , … , !!  en   el   primer   sistema   produce   el   mismo  
makespan  que  la  secuencia  !! , … , !!  en  el  segundo  sistema.  
□  
Ahora,  analicemos  el  problema  !2 !"#$% !!"# ,  donde  el  flow  shop  cada  vez  que  un  trabajo  
inicia   su   proceso   en   la   primera   máquina,   el   trabajo   que   le   precede   inicia   su   proceso   en   la  
segunda   máquina.   El   tiempo   que   el   trabajo   !!  permanece   en   la   máquina   1   es  
max !!,!! , !!,!!!! .  El  primer  trabajo  en  la  secuencia  permanece  solo  !!,!!  en  la  máquina  1.  Así  
este  problema  de  minimización  del  makespan  es  equivalente  al  problema  del  agente  viajero  
(TSP,  Travelling  Salesman  Problem)  con  n+1  ciudades  por  visitar.  Sea  la  distancia  de  la  ciudad  j  
a  la  ciudad  k  igual  a:  
 
!!,! = !!,!  
!!,! = !!,!  
!!,! = max  (!!,! , !!,! )  
 
La  distancia  total  recorrida  es  igual  al  makespan  del  flow  shop.  
 
En   lugar   de   minimizar   el   makespan,   se   puede   minimizar   el   tiempo   total   entre   0   y  !!"#  que  
uno  de  las  dos  máquinas  está  ociosa  o  bloqueada.  Estos  dos  objetivos  son  equivalentes  dado  
que   el   makespan   es   igual   a   la   suma   de   los   tiempos   de   proceso   de   los   dos   trabajos,   más   la  
suma  de  los  tiempos  ociosos.  Minimizar  la  suma  de  todos  los  tiempos  ociosos  es  equivalente  
al  siguiente  TSP  con  n+1  ciudades:  
 
!!,! = !!,!  
!!,! = !!,!  
!!,! = ||!!,! − !!,! ||  
 
El   tiempo   ocioso   en   una   de   las   máquinas,   cuando   el   trabajo   j   inicia   su   procesamiento   en   la  
máquina  dos  y  el  trabajo  k  inicia  su  procesamiento  en  la  máquina  uno,  es  la  diferencia  entre  
el   tiempo   de   procesamiento  !!,!  y  !!,! .   Si  !!,!  el   cual   es   mayor   que  !!,! .  El   trabajo   k   estará  
bloqueado   por   un   lapso   de   tiempo  !!,! − !!,! .   Si   por   el   contrario,    !!,!  es   mayor   que  !!,! ,  la  
máquina  dos  estará  ociosa  por  un  lapso  de  tiempo  !!,! − !!,! .  

Ejemplo  
Considere   un   conjunto   de   cuatro   (4)   trabajo   a   ser   programados   en   un   sistema   tipo  
!2 !"#$! !!"#  
 
J1   J2   J3   J4  
 p1,j   2   3   3   9  
p2,j   8   4   6   9  

 
[ SCHEDULING E INVENTARIOS ] 11
 

 
Este   problema   se   puede   traducir   a   un   TSP   con   5   ciudades,   donde   se   obtiene   la   siguiente  
matriz  de  distancias:  
 
C0   C1   C2   C3   C4  
 C0       2   3   3   9  
C1   8       5   5   1  
C2   4   2       1   5  
C3   6   4   3       3  
C4   9   7   6   6      
 
Se   puede   utilizar   cualquier   método   para   solucionar   el   TSP   para   obtener   el   tour   resultante  
014230.   De   hecho,   dos   toures   son   óptimos:   014230   y  
014320.    
□  
Una   gran   cantidad   de   heurísticas   se   han   desarrollado   para   minimizar   el   makespan   en  
problemas   tipo   flow   shop   con   buffers   de   capacidad   limitada.   Una   heurística   muy   conocida  
para  !"   !"#$% !!"#  ,   es   la   PF   (Profile   Fitting),   la   cual   opera   de   la   siguiente   manera:   se  
selecciona   un   trabajo  !!  para   ser   programado   bajo   algún   esquema,   por   ejemplo,   el   trabajo  
con   la   suma   de   tiempos   de   procesamiento   más   pequeña.   Dicho   trabajo   no   encuentra   ningún  
tipo   de   bloqueo   en   la   línea   y   pasa   sin   problema   por   las   dos   máquinas   que   crean   un   perfil.  
Dicho  perfil  está  determinado  por  el  instante  en  el  cual.  el  trabajo  sale  de  la  máquina  i.  Si  el  
trabajo  !!  corresponde  al  trabajo  k,  entonces:  
! !
!!,!! = !!,!! = !!,!  
!!! !!!
 
Para  determinar  cuál  trabajo  debe  ir  en  segunda  posición  en  la  permutación,  cada  uno  de  los  
trabajos   que   quedan   sin   procesar   se   deben   someter   a   una   prueba.   Para   cada   candidato   se  
realiza  un  cálculo  con  el  fin  de  determinar  la  cantidad  de  tiempo  que  las  máquinas  estarían  
desocupadas  y  el  tiempo,  en  el  cual  un  trabajo  estaría  bloqueado  en  una  máquina.  El  instante  
en   el   que   un   trabajo   candidato   a   la   segunda   posición   partiría   de   cada   máquina   puede   ser  
calculado  así:  
 
!!,!! = max !!,!! + !!,!! , !!,!!  
!!,!! = max !!!!,!! + !!,!! , !!!!,!!      ! = 2, … , ! − 1  
!!,!! = max !!!!,!! , !!,!! + !!,!!  
 
El  tiempo  perdido  en  cada  máquina  i,  es  decir,  el  tiempo  que  la  máquina  está  desocupada  o  
bloqueada,   es  !!,!! − !!,!! − !!,!! .   Luego   se   calcula   la   suma   de   estos   tiempos   (bloqueado   o  

 
12 [ POLITÉCNICO GRANCOLOMBIANO]
 

desocupado)  sobre  las  m  máquinas.  El  candidato  con  la  menor  suma  es  seleccionado  como  el  
segundo  trabajo  en  la  permutación.  
 
Una   vez   se   ha   seleccionado   el   mejor   trabajo   para   ocupar   la   posición   número   2   en   la  
permutación,   se   calcula   un   nuevo   perfil,     es   decir,   se   calculan   los   tiempos   de   partida   del  
segundo   trabajo   en   cada   una   de   las   m   máquinas.   Este   procedimiento   se   repite   para   los  
trabajos  3,  …,  n.  
 
En  la  anterior  descripción  de  la  heurística  PF,  el  ajuste  de  un  trabajo  es  calculado  con  base  en  
el   tiempo   total   que   se   desperdicia   en   las   m   máquinas.   Cada   máquina   es   considerada  
igualmente  importante.  Es  evidente  que  el  tiempo  que  se  desperdicia  en  la  máquina  cuello  
de   botella   tiene   mayor   impacto   que   el   que   se   pierde   en   las   demás   máquinas,   por   lo   anterior,  
cuando  se  calcula  la  suma  de  los  tiempos  desperdiciados,  se  debe  multiplicar  por  un  factor  
que  refleje  (proporcional)  el  nivel  de  congestión  de  cada  máquina.  

Ejemplo  
Consideremos  el  siguiente  conjunto  de  trabajos  y  sus  respectivos  tiempos  de  procesamiento:  
 

Jobs   j1   j2   j3  
p1,j   1   1   2  
p2,j   1   1   1  
p3,j   2   1   1  
p4,j   3   1   1  
 
 
Se  desea  aplicar  la  heurística  PF  para  encontrar  una  permutación  a  secuenciar.  
 
Lo  primero  que  hacemos  es  definir  el  primer  trabajo  a  ser  secuenciado.  Si  definimos  que  el  
primer   trabajo   es   aquel   que   tenga   menor   suma   de   los   tiempos   de   procesamiento,  
deberíamos   seleccionar   el   trabajo   número   dos   (2)   dado   que   la   suma   de   los   tiempos   de  
procesamiento  es  tres  (4).  
 
Luego,  establecemos  el  perfil  de  cada  uno  de  los  trabajos  restantes.  Para  el  caso  del  trabajo  
uno   (1),   la   siguiente   tabla   presenta   las   columnas   Label   Original   que   corresponde   al   nombre  
original  del  trabajo  y  la  columna  Label  Permutación  que  corresponde  al  nombre  que  obtendrá  
el  trabajo  dentro  de  la  permutación,  es  decir  la  posición.  

Label  Original   Label  Permutación   m1   m2   m3   m4  


j2   j1*   1   2   3   4  

 
[ SCHEDULING E INVENTARIOS ] 13
 

j1   j2*   2   3   5   8  
 
0   0   0   1  
Tiempo  desperdiciado  por  máquina  
 
Para  el  caso  del  trabajo  2  el  tiempo  total  desperdiciado  por  máquina  es  de  uno  (1).  
 
Al  evaluar  el  trabajo  3,  la  siguiente  tabla  presenta  los  resultados  arrojados:  

Label  Original   Label  Permutación   m1   m2   m3   m4  


j2   j1*   1   1   2   3  
j3   j2*   3   4   5   6  
 
0   2   2   2  
Tiempo  desperdiciado  por  máquina  
 
Para  el  caso  del  trabajo  3,  el  tiempo  total  desperdiciado  por  máquina  es  de  uno  (6).  
 
De  lo  anterior,  concluimos  que  la  secuencia  a  utilizar  es  213.  
 
 

   
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 
14 [ POLITÉCNICO GRANCOLOMBIANO]

También podría gustarte