Vous êtes sur la page 1sur 8

SCHEDULING E

INVENTARIOS
 

 
Modelos para Flow Shops II
 

 
 

• MODELOS  PARA  FLOW  SHOPS  II  


 

Flow  shops  proporcionales  con  buffers  de  capacidad  finita  e  infinita  


Un   caso   especial   de   los   problemas   de   flow   shop   permutation   con   capacidad   limitada   es   el  
conocido   como   proportionate   permutation   flow   shop.   En   este   problema,   los   tiempos   de  
procesamiento   del   trabajo   j   en   cada   una   de   las   m   máquinas   es   igual   a  !! ,   es   decir,    !!,! =
!!,! = ⋯ = !!,! .   La   minimización   del   makespan   en   un   proportinate   pernmutation   flow   shop  
es  denotado  !! !"#$, !!,! = !! !!"# .    
 
Para   este   tipo   de   problema   se   puede   definir   una   secuencia   llamada   SPT-­‐LPT,   así,   un   conjunto  
de   n   trabajos   pueden   ser   dividido   en   dos   subconjuntos,   los   trabajos   van   al   primer  
subconjunto  de  acuerdo  a  la  regla  SPT  y  el  resto  van  al  segundo  subconjunto  de  acuerdo  a  la  
regla  LPT.  De  ese  modo,  una  secuencia  !! , !! , !! , … , !!  es  SPT-­‐LPT,  si  solo  existe  un  trabajo  !! :  
 
!!! ≤ !!! ≤ !!! ≤ ⋯ ≤ !!!  
Y    
!!! ≥ !!!!! ≥ ⋯ ≥ !!!  
 
En  general,  para  un  problema  !" !"#$, !!,! = !! !!"#  el  makespan  es  igual:  
 
!
!!"# = !! + ! − 1 max !! , !! , … , !!  
!!!
 
Y  es  independiente  de  la  secuencia.  
 
Se   puede   demostrar   que   los   schedules   son   óptimos   en   problemas   en   los   que   los   trabajos  
pueden  adelantarse  entre  sí  mientras  esperan  en  los  buffers,  es  decir  !" !!,! = !! !!"# .  Esto  
implica,   que   de   cierto   modo,   el   problema   del   proportionate   flow   shop   es   similar   al   caso   de  
una  maquina  donde  el  makespan  no  depende  de  la  secuencia.  Se  pueden  extender  algunos  
de  los  resultados  del  caso  de  una  máquina  para  su  contraparte:  

i. La  regla  SPT  es  óptima  para  1||∑!! ,  así  como  para  !" !"#$, !!,! = !! ∑!! .  
ii. El  algoritmo  que  genera  schedules  óptimos  para  el  1||∑!! ,  también  genera  schedules  
óptimos  para  !" !"#$, !!,! = !! ∑!! .  
iii. El   algoritmo   que   genera   schedules   óptimos   para  1||ℎ!"#,  también   genera   schedules  
óptimos  !" !"#$, !!,! = !! ℎ!"# .  
iv. El   algoritmo   de   programación   dinámica   pseudo-­‐polinómico   para   1||∑!!  puede  
aplicarse  al  problema  !" !"#$, !!,! = !! ∑!! .  

 
2 [ POLITÉCNICO GRANCOLOMBIANO]
 

Cabe   aclarar   que   no   todos   los   resultados   para   los   problemas   de   una   máquina   se   pueden  
extender  para  el  proportionate  flow  shop.  
 
Sin   embargo,  !" !"#$, !!,! = !! ∑!! !!  puede   ser   todavía   resuelto   en   tiempo   polinomial.  
Para  describir  el  algoritmo  que  minimiza  el  tiempo  total  de  terminación  ponderado,  debemos  
introducir  algunos  resultados  preliminares:  
 
! !
• Si   para   dos   trabajos   j   y   k   ambos   con   ! ! ≥ ! !  y  !! ≤ !! ,   entonces   existe   una   secuencia  
! !
óptima  en  la  cual  el  trabajo  j  precede  al  trabajo  k.  
• En   una   secuencia-­‐permutación   arbitraria  1, … , !  el   trabajo   j   se   conoce   como   un  
trabajo   new-­‐max   si   y   solo   si  !! > max !! , !! , … , !!!! .   Una   secuencia   dada  1, … , !  
puede   ser   partida   con   base   en   sus   trabajos   new-­‐max.   Supongamos   que   hay   r   trabajos  
new-­‐max   en   la   secuencia  1, … , !  y   llamémoslos   !! , … , !! .   El   trabajo  !!  es   el   primer  
trabajo   de   la   secuencia.   Luego   la   secuencia   se   parte   en   r   segmentos  1, … , !,   con   el  
segmento   !  compuesto   del   trabajo   new-­‐max   !!  y   todos   los   trabajos   programados  
entre   el   trabajo   new-­‐mas  !!  y  !!!! .   El   último   segmento,   segmento   r,   está   compuesto  
por   el   trabajo   new-­‐max  !  y   todos   los   trabajos   que   lo   suceden   hasta   incluir   el   último  
trabajo  de  la  secuencia.  
• En   una   secuencia   óptima   cualquiera,   todos   los   trabajos   en   un   segmento   dado,  
incluido   el   segmento   del   trabajo   new-­‐max   inicial,   son   programados   en   orden  
!
decreciente  de   ! ! .  
!

Los   enunciados   anteriores   implican   que   la   secuencia   óptima   debe   tener   una   estructura  
similar  a  la  que  se  presenta  en  la  siguiente  figura  
 

Wj/pj  

 
[ SCHEDULING E INVENTARIOS ] 3
 

pj  

 
Para   describir   el   algoritmo   que   minimiza   el   tiempo   total   de   terminación,   se   re-­‐indexan   los  
! ! !
primeros   trabajos   de   tal   forma   que   ! ! ≥ ! ! ≥ ⋯ ≥ !"! ,   es   decir,   los   trabajos   se   indexan   de  
! !
acuerdo   a   la   regla   WSPT.   El   algoritmo   realiza   n   iteraciones.   En   la   iteración   k,   el   algoritmo  
inicia   con   una   secuencia   parcial  !!!! ,   dicha   secuencia   contiene   los   trabajos  1, … , ! − 1  en  
cierto   orden;   el   algoritmo,   entonces,   extiende   esta   secuencia   parcial   tomando   el   k-­‐ésimo  
trabajo  e  insertándolo  en  la  posición  que  cause  menos  incremento  en  la  función  objetivo.    
 
El  algoritmo  anterior  se  puede  describir  de  la  siguiente  forma:  
 
Paso  1  
Sea  !! la  secuencia  que  contiene  al  trabajo  1.  
K=2  
Paso  2  
Generen   una   secuencia   parcial  !!  tomando   la   secuencia   parcial  !!!!  e   inserte   el   k-­‐
ésimo  trabajo  de  tal  forma  que  el  incremento  en  la  función  objetivo  sea  minimizado.  
Si  existen  varias  posiciones  que  cumplen  con  el  requisito  anterior,  seleccionen  aquella  
posición  que  se  encuentra  más  hacia  el  final.  
K=k+1  
Paso  3  
Si  k<=n  ir  al  paso  2  
Si  k  =  n+1,  entonces  PARE;  la  secuencia  óptima  es  !!  
□  
El  algoritmo  anterior  genera  un  schedule  óptimo  que  es  conocido  como  WSPT-­‐MCI  (Weighted  
Shortet  Processing  Time  first  with  Minimun  Cost  Insertion).  
 
El   modelo   del   proportionate   permutation   flow   shop   puede   ser   generalizado   para   incluir  
maquinas   con   diferentes   velocidades.   Si   la   velocidad   de   la   máquina   i   es  !! ,   entonces,   el  
tiempo   de   procesamiento   del   trabajo   j   en   la   máquina   i   está   dado   por  !!,! = ! /!!  .   La  
máquina   con   la   velocidad  !!  más   pequeña   es   conocida   como   la   máquina   cuello   de   botella.  
Bajo  estas  circunstancias  el  makespan  no  es  independiente  del  schedule.  

 
4 [ POLITÉCNICO GRANCOLOMBIANO]
 

Si   en   un   proportionate   permutation   flow   shop   con   diferentes   velocidades,   la   primera   (última)  


máquina  es  el  cuello  de  botella,  entonces  la  regla  LPT(SPT)  minimiza  el  makespan.  
 
Para   el   caso   particular   del   proportionate   permutation   flow   shop   con   buffers   de   tamaño  
limitado   (!" !"#$%, !!,! = !! !!"# ),   un   schedule   es   óptimo,   si   y   solo   si   es   un   schedule   creado  
bajo  la  regla  SPT-­‐LPT.  
 
También,   se   puede   demostrar   que   la   regla   SPT   es   óptima   para   el   problema  
!" !"#$%, !!! , ! = !! |∑!! .  
□  
Heurística  GRASP  para  el  problema  de  Sequence-­‐Dependent  Setup  Time  Flow  Shop  (SDSTFS)  
Un   procedimiento   de   búsqueda   voraz   adaptativa   aleatorizada   (GRASP:   Greedy   Randomized  
Adaptive   Search   Procedure)   es   una   metodología   heurística   enfocada   hacia   problemas   de  
optimización  combinatoria,  la  cual  combina  el  poder  de  heurísticas  voraces,  aleatorización  y  
técnicas   de   búsqueda   local.   GRASP   ha   sido   aplicada,   exitosamente,   a   una   diversidad   de  
problemas  derivados  de  la  optimización  combinatoria.  
 
GRASP   consiste   de   dos   fases:   una   de   construcción   donde   se   forma   la   solución   factible   y   otra  
de  post-­‐proceso,  en  la  cual,  se  aplica  la  búsqueda  local  para  mejorar  la  calidad  de  la  solución.  
 
Durante  la  etapa  de  construcción,  la  solución  factible  es  construida  añadiendo  un  elemento  a  
la  vez.  En  cada  iteración,  la  elección  del  siguiente  elemento  a  ser  añadido  se  logra  ordenando  
el   subconjunto   restantes   de   elementos   en   una   lista   de   elementos   candidatos   con   respecto   a  
una   función   voraz   apropiada.   Esta   función   evalúa   el   beneficio   de   seleccionar   cada   uno   de   los  
elementos.   El   componente   probabilístico   de   GRASP   se   manifiesta   al   elegir   a   uno   de   los  
elementos  de  la  lista  de  candidatos  aleatoriamente  (no  necesariamente  el  mejor).  Una  forma  
de   limitar   el   tamaño   de   la   lista   de   candidatos   es   por   cardinalidad,   donde   solo   los   mejores  
elementos  λ  son  incluidos  en  la  lista.  Cada  vez  que  la  fase  1  de  GRASP  es  ejecutada  se  obtiene  
una   solución   distinta   (en   este   caso   una   secuencia)   luego,   entonces,   la   estrategia   es   correr  
GRASP  N  veces  por  medio  de  diferentes  semillas  para  el  generador  de  números  aleatorios,  
así,  se  obtiene  N  posibles  soluciones  diferentes  y  se  toma  la  mejor  de  ellas.  
 
Ahora   bien,   la   elección   del   parámetro    !     requiere   conocimiento   profundo   de   la   estructura  
del  problema.  Tiene  que  existir  un  compromiso  entre  ser  o  no  ser  muy  estricto.  Si  el  criterio  
es  muy  selectivo,  por  ejemplo,  serán  muy  pocos  los  candidatos  disponibles.  El  caso  extremo  
es   cuando   solo   un   elemento   es   permitido   en   la   lista   restringida   de   candidatos,   el   cual  
corresponde   a   una   postura   puramente   voraz.   En   este   caso,   GRASP   reportará   una   sola  
solución   perdiendo   por   completo   la   ventaja   del   factor   aleatorio.   La   ventaja   de   ser   restrictivo  
al  formar  la  lista  de  candidatos  es  que  no  se  compromete  demasiado  el  valor  de  la  función  
objetivo.  Sin  embargo,  el  riesgo  de  tener  una  baja  variabilidad  es  que  la  solución  óptima  (y  
posiblemente  otras  muy  buenas  soluciones)  pudiera  no  ser  encontrada.  

 
[ SCHEDULING E INVENTARIOS ] 5
 

La   fase   constructiva   de   GRASP   es   muy   similar   al   algoritmo   expuesto   anteriormente.   La  


diferencia   entre   éstos   está   en   la   forma   en   que   eligen   la   posición   de   la   secuencia   parcial,  
donde  la  siguiente  tarea  será  insertada.  En  GRASP,  las  posiciones  disponibles  para  inserción  
son   ordenadas   por   valores   no   decrecientes   de  !(!)  (el   tiempo   total   de   terminación   de   todas  
las   tareas   en   la   secuencia   parcial   al   insertar   h).     La   lista   restringida   de   candidatos   (LRC)   se  
forma   con   las   mejores    !  posiciones.   La   estrategia   probabilística   de   GRASP   selecciona   una   de  
estas   posiciones   al   azar   con   igual   probabilidad.   La   tarea   h   es   insertada   en   la   posición   elegida  
en  S.  Este  es  el  pseudo-­‐código  de  la  fase  1  del  procedimiento.  La  fase  1  de  GRASP  corre  en  
tiempo  !(!!! ).  ).  El  caso  extremo  de  GRASP  es  cuando    ! = 1  corresponde  a  una  estrategia  
puramente  voraz.  
 
Procedimiento  GRASP-­‐Fase-­‐1  
Entrada:   un   conjunto   P=   {1,   2,   ...,   n}   de   tareas   a   ser   secuenciadas   y    !  ,   el   tamaño   de   la  
lista  restringida  de  candidatos.  
Salida:  una  secuencia  factible  S.  
Paso  0:  Inicializar  S=∅  (conjunto  vacío).  
Paso  1:  mientras   ! > 0  ejecutar.  
Paso  1-­‐a:        Remover  h,  la  primera  tarea  de  P.  
Paso  1-­‐b:        Calcular  !(!)  para  cada  posición  ! = 0, … , |!|.  
Paso  1-­‐c:        Construir  la  LRC  con  las  mejores    !    posiciones.  
Paso  1-­‐d:          Elegir  aleatoriamente  una  posición  k  de    LRC.  
Paso  1-­‐e:        Insertar  h  en  la  posición  k  en  S-­‐  
Paso  2:  Entregar  S  como  salida.  
Paso  3:  Fin  
 
Fase  de  Post-­‐proceso  
En  general,  una  solución  construida  por  un  algoritmo  de  aproximación  no  es  necesariamente  
una   solución   óptima   local.   Entonces,   es   conveniente   aplicar   una   fase   de   post-­‐proceso   donde  
se  intenta  mejorar  la  actual  secuencia  S  mediante  la  inspección  de  su  “vecindad”  (el  conjunto  
de  secuencias  que  están  cercanas  a  S),  moviéndose  a  una  secuencia  S’  con  un  mejor  valor  de  
la  función  objetivo  (tiempo  total  de  procesamiento).  Esta  nueva  secuencia  S’  define,  a  su  vez,  
una   vecindad   diferente   y   el   proceso   se   repite   iterativamente   hasta   que   ya   no   sea   posible  
encontrar  una  mejor  solución.  En  este  caso,  decimos  que  hemos  alcanzado  un  óptimo  local  
(con  respecto  a  la  vecindad  considerada).  La  búsqueda  local  depende  de  cómo  se  defina  la  
vecindad  de  la  solución  factible  dada.    
 
Modelo  MILP  para  flow  shops  con  buffers  de  capacidad  ilimitada  
En  esta  sección  se  presenta,  brevemente,  un  modelo  de  programación  entera  mixta  para  la  
programación   de   un   flow   shop   con   capacidad   ilimitada   en   los   buffers   minimizando   la   suma  
del  lateness  y  el  earliness.  
 
 

 
6 [ POLITÉCNICO GRANCOLOMBIANO]
 

Los  parámetros  del  problema  son  los  siguientes:  

• n:  el  número  de  trabajos/tareas  


• m:  el  número  de  máquinas  
• !!,! :  el  tiempo  de  procesamiento  del  trabajo  i  en  la  máquina  k  
• !! :  el  due  date  del  trabajo  i  
Las  variables  del  modelo  se  enumeran  a  continuación:  

• !!,! ∈ 0,1 ;  ! = 1, … , !; ! = 1, … !:  es  igual  a  1  si  el  trabajo  i  está  en  la  posición  j  de  la  
secuencia  o  de  lo  contrario.  
• !! ≥ 0  ; ! = 1, … , !:  es  el  earliness  del  trabajo  j.  
• !! ≥ 0  ; ! = 1, … , !:  es  la  tardanza  del  trabajo  j.  
• !!,! ≥ 0  ; ! = 1, … , !; ! = 1, … ! − 1:   es   el   tiempo   que   tiene   que   esperar   el   trabajo   j  
en  el  buffer  entre  las  máquinas  k  y  k+1  
• !!,! ≥ 0  ; ! = 1, … , ! − 1; ! = 1, … !:  es  el  tiempo  ocioso  entre  el  trabajo  j  y  el  trabajo  
j+1  en  la  máquina  k.    
• !!,!  ! = 1, … , !:  es  el  tiempo  de  finalización  del  trabajo  j  en  la  máquina  m.  
El  problema  MIP  quedaría  de  la  siguiente  manera:  
 
!
!"#"$"%&'   !! + !!  
!!!
 
Sujeto  a  
 
!
!! ≥ ! ,! − !!,! !! ;    ! = 1, … , !  
!!!
!
!! ≥ !!,! !! −   !!,! ;    ! = 1, … , !    
!!!
!!! ! !
!!,! = !!,! !!,!   + !!,! + !!,! !!,!    
!!! !!! !!!
!
!!,! = !!!!,! + !!!!,! + !!,! !!,! ;      ! = 2, … , !  
!!!
! !
!!,! + !!,!!! !!,! + !!!!,! = ! ,! + !!,! !!,!!! + !!,!!! ; ! = 1, … , ! − 1  
!!! !!!
!
!!,! = 1;      ! = 1, … , !  
!!!
!
!!,! = 1;      ! = 1, … , !  
!!!
 
La   primera   restricción   junto   con   la   restricción   de   no   negatividad  !! ≥ 0  corresponden   a   la  
linealización   de   !! = max  (!!,! − !!!! !!,! !! , 0) .   La   segunda     restricción   junto   con   la  

 
[ SCHEDULING E INVENTARIOS ] 7
 

restricción   de   no   negatividad   !! ≥ 0  corresponden   a   la   linealización   de  


!! = max  ( !!!! !!,! !! −   !!,! , 0).     La   tercera   y   la   cuarta   restricción   permiten   obtener   los  
tiempos  de  finalización  de  cada  trabajo  en  la  máquina  m.  La  tercera  restricción  aplica  solo  al  
trabajo  en  la  primera  posición  en  la  secuencia,  cuyo  tiempo  de  finalización  depende  de  sus  
tiempos  de  procesamiento  en  cada  máquina.  La  cuarta  restricción  es  general,  se  basa  en  los  
tiempos  de  finalización  del  trabajo  previo,  el  tiempo  ocioso  de  la  última  máquina  entre  dos  
trabajos   consecutivos   y   el   tiempo   de   procesamiento   del   trabajo.   La   sexta   y   la   séptima  
restricción   aseguran   que   un   trabajo   solo   puede   ser   asignado   a   una   posición   y   que   una  
posición   solo   puede   ser   asignada   a   un   trabajo.   La   quinta   restricción   expresa   las   relaciones  
entre   variables   como   tiempos   de   procesamientos   y   tiempos   ociosos   entre   máquinas   y  
trabajos.  Estas  relaciones  se  pueden  expresar  a  través  de  la  siguiente  figura.  
 

 
 
Vale   aclarar   que   esta   no   es   la   única   formulación   para   este   problema,   ya     que   esta   puede   ir  
cambiando   de   acuerdo   con   el   nivel   de   detalle   o   las   restricciones   del   modelo   que   se   esté  
considerando.  
 
 
□  
 
 
 
 
   

 
8 [ POLITÉCNICO GRANCOLOMBIANO]