Está en la página 1de 7

SCHEDULING E

INVENTARIOS
 

 
 
Modelos para una Máquina (II)
 

 
 
 
 

   
 
 

 
 
 
 

 
 
 

 
 
 
 

 
 
 
   
 

• MODELOS  PARA  UNA  MÁQUINA  (II)  


 

Tiempo  total  de  terminación  ponderado  con  cadenas  


Consideremos,  ahora,  la  forma  más  sencilla  de  restricciones  de  precedencia,  es  decir,  cuando  
estas   toman   forma   de   cadenas.   Este   problema   puede   ser   resuelto   por   un   algoritmo  
relativamente  sencillo,  que  tiene  complejidad  de  orden  polinomial.  

Consideremos  dos  cadenas  de  trabajos  CI  y  CII.  Donde  CI  contiene  los  trabajos  1,  …,  k;  y  CII  
contiene  los  trabajos  k+1,    …,  n.  Las  restricciones  de  precedencia  son:  

1 → 2 → 3 → ⋯ → !  

Y    

! + 1 → ! + 2 → ⋯ → !  

Se  tienen  que  procesar  todos  los  trabajos  de  una  cadena  antes  de  poder  comenzar  los  de  la  
otra.   Se   debe   determinar   cuál   de   las   cadenas   se   debe   procesar   primero   para   minimizar   el  
tiempo   total   de   terminación   ponderado   de   todos   los   trabajos.   Para   esto   debemos  
determinar  si  
! !
!!! !! !!!!! !!
! < !  
!!! !! !!!!! !!

Si   la   condición   anterior   se   cumple,   primero,   se   debe   procesar   la   cadena   que   contiene   los  
trabajos  1 → 2 → ⋯ → !,   de   lo   contrario   se   debe   procesar   la   cadena   que   contiene   los  
trabajos   + 1 → ! + 2 → ⋯ → !.  Este  intercambio  entre  dos  cadenas  adyacentes  se  conoce  
comúnmente  como  Intercambio  de  secuencias  adyacentes  (Adjacent  Sequence  Interchange).    

En  algunos  casos,  no  existe  la  restricción  de  terminar  todos  los  trabajos  de  la  cadena,  es  decir,  
se   puede   interrumpir   el   procesamiento   de   una   de   estas,   insertar   trabajos   de   otra  
(respetando  las  restricciones  de  precedencia)  y,  algún  tiempo  después,  volver  a  los  trabajos  
faltantes  de  la  cadena  inicial.  Si  este  es  el  caso,  se  debe  calcular  el  ! − !"#$%&  de  las  cadenas  
remanentes,  seleccionar  aquella  con  el  ! − !"#$%&  más  alto  y  secuenciar  todos  los  trabajos  
de   dicha   cadena   hasta   que   incluya   el   que   determina   el  ! − !"#$%,   sin   interrupciones.   Se  
debe  repetir  el  procedimiento  hasta  secuenciar  todos  los  trabajos.  

El  ! − !"#$%&  (denotado  por  !(1, 2, … , !)  de  la  cadena  de  trabajos  1 → 2 → ⋯ → !  como:  
!∗ !
!!! !! !!! !!
!∗
= max !    
!!! !! !!! !!
!!!!!

 
2   [ POLITÉCNICO GANCOLOMBIANO]
 

 El  trabajo  ! ∗  es  conocido  como  el  trabajo  que  determina  el  ! − !"#$%&  de  la  cadena.  

Ejemplo1  
Considere   dos   cadenas   1 → 2 → 3 → 4  y   5 → 6 → 7  con   las   siguientes   ponderaciones   y  
tiempos  de  proceso:  

j   wj   pj  
1   6   3  
2   18   6  
3   12   6  
4   8   5  
5   8   4  
6   17   8  
7   18   10  
 
!
!!! !!
Para  la  primera  cadena  calculamos       !  para  cada  ! = 1, 2, 3, 4:  
!!! !!

j   (∑(j=1)l  wj  )/(∑(j=1)l  pj)  


1   2.00  
2   2.67  
3   2.40  
4   2.20  
 

Podemos  observar  que  el  ! − !"#$%&  esta  dado  por  el  trabajo  número  2.  
!
!!! !!
Mientras  que  para  la  segunda  cadena,   !  para  ! = 5, 6, 7:  
!!! !!

j   (∑(j=1)l  wj  )/(∑(j=1)l  pj)  


5   2.00  
6   2.08  
7   1.95  
Podemos  observar  que  el  ! − !"#$%&  esta  dado  por  el  trabajo  número  6.  

Como   el  ! − !"#$%&  de   la   primera   cadena   es   mayor   que   el   de   la   segunda,   se   procesan  


primero  los  trabajos  1  y  2.    Ahora,  para  el  remanente  de  la  primera  cadena,  el  ! − !"#$%& = 2  
y  esta  dato  por  el  trabajo  3:    

                                                                                                               
1
 Tomado  de  PINEDO,  Michael.  Scheduling,  theory,  algorithms,  and  systems.  4  ed.  New  York:  Springer,  2010.    

 
[ SCHEDULING E INVENTARIOS ] 3
 

j   (∑(j=1)l  wj  )/(∑(j=1)l  pj)  


3   2  
4   1.818181818  
 

Como   el  ! − !"#$%&  de   la   segunda   cadena   (2.08)   es   mayor   que   el   del   remanente   de   la  
primera   (2.0),   se   procede   a   procesar   los   trabajos   5   y   6   de   la   segunda   cadena,   dado   que   el  
! − !"#$%&  de  la  segunda  cadena  está  determinado  por  el  trabajo  6.  

Hasta   el   momento   hemos   secuenciado   los   trabajos  1 → 2  y   luego  5 → 6.   Para   las   cadenas  
restantes  tenemos    

J   (∑(j=1)l  wj  )/(∑(j=1)l  pj)  


3   2  
4   1.818181818  
 

J   (∑(j=1)l  wj  )/(∑(j=1)l  pj)  


7   1.8  
 

Lo   cual   implica   que   secuenciaremos   el   trabajo   3,   obteniendo   así   nuevas   cadenas   remanentes  
con  los  siguientes  trabajos:  

j   (∑(j=1)l  wj  )/(∑(j=1)l  pj)  


7   1.8  
 

j   (∑(j=1)l  wj  )/(∑(j=1)l  pj)  


4   1.6  
 

Dado   que   el  ! − !"#$%&  de   la   cadena   que   contiene   al   trabajo   7   es   mayor,   se   secuencia   el  
trabajo  7  y  luego  se  secuencia  el  trabajo  4.    

Por  ultimo  obtenemos  que  la  secuencia  de  trabajos  es:  

Sub  Cadena   S   wj   pj   Cj   Cjwj  


1   1   6   3   3   18  
1   2   18   6   9   162  
2   5   8   4   13   104  
2   6   17   8   21   357  

 
4   [ POLITÉCNICO GANCOLOMBIANO]
 

3   3   12   6   27   324  
4   7   18   10   37   666  
5   4   8   5   42   336  
 

Cada  color  indica  una  sub-­‐cadena  perteneciente  a  las  cadenas  originales.  Esta  secuencia  tiene  
un  tiempo  total  de  terminación  ponderado  igual  a  1967.  

Retraso  máximo  (maximum  lateness)  


Es   uno   de   los   modelos   que   se   relacionan   con   la   fecha   de   entrega   (due   date),   el   cual   se  
denomina   1 !"#$ ℎ!"#   donde   ℎ!" = max(ℎ! !! , ℎ! !! , … , ℎ! (!! )) .   Donde   ℎ! es   una  
función  de  costos  no  decreciente.  Este  objetivo  se  vincula  con  la  fecha  de  entrega,  dado  que  
la   función   ℎ!  puede   tomar   alguna   de   las   formas   de   las   funciones   de   penalización   con  
respecto  a  la  fecha  de  entrega  !! , !!  !  !!  ,  las  cuales  se  muestran  a  continuación.  

 
El  último  trabajo  se  termina  de  procesar  en  el  tiempo  !!"# = !! ,  el  cual  es  independiente  
de   la   secuencia   utilizada.   Denotemos  !  el   conjunto   de   trabajos   que   ya   fueron   programados   y  
que  serán  procesados  durante  el  intervalo  de  tiempo[!!"# − !  ∈  ! !! , !!"# ].  Denotemos  !!  
al  complemento  del  conjunto  !,  es  decir,  los  trabajos  que  no  han  sido  programados,  y  !′  un  
subconjunto   de   !!  ,   el   conjunto   de   los   trabajos   que   pueden   ser   programados  
inmediatamente   antes   de  !,   es   decir   todos   aquellos   trabajos   cuyos   sucesores   están   en   el  
conjunto  ! .     Al   utilizar   el   algoritmo   que   se   expone   a   continuación   se   garantiza   una  
programación  óptima.  

Algoritmo  para  minimizar  el  costo  máximo  


Paso  1:  

  Inicialice  ! = ∅, !! = 1, … , !  !    

!! !"  !"#$%#&"  !"  !"#$#%&'  !"#  !"  !"#$#$  !"#$!%&$!.  

 
[ SCHEDULING E INVENTARIOS ] 5
 

Paso  2:  

  Sea  ! ∗  tal  que  

ℎ! ∗ !! = !"#! ℎ! !!    
!  ∈  !
!  ∈!! !∈!!

  Añada  ! ∗  !  !  

  Borre  ! ∗ !"  !!  

  Modifiquemos   J ! de   tal   manera   que   represente   el   nuevo   conjunto   de   trabajos  


programables.  

Paso  3:    

  Si  J ! = ∅,  entonces  finaliza  el  algoritmo.  

  De  lo  contrario  vaya  al  Paso  2.  

□  

Ejemplo2  
Considere  el  siguiente  conjunto  de  trabajos  

j   pj   hj(Cj)  
1   2   1+C1  
2   3   1.2C2  
3   5   10  
 

Dado  que  el  makespam  !!"# = 10,  podemos  calcular    

ℎ! 10 = 1 + 10 = 11  
ℎ! 10 = 1.2 ∗ 10 = 12  

ℎ! 10 = 10  

De   donde   obtenemos    ℎ! 10 < ℎ! 10 < ℎ! 10  .   Así,   el   trabajo   3   debe   ser   programado   de  
último  y  su  procesamiento  empezará  en  el  instante  de  tiempo  t=5.  

Para   determinar   cuál   trabajo   deberá   ser   programado   justo   antes   del   trabajo   3   calculamos  
ℎ! 5  !  ℎ! (5)    
                                                                                                               
2
 Tomado  de  PINEDO,  Michael.  Scheduling,  theory,  algorithms,  and  systems.  4  ed.  New  York:  Springer,  2010.    

 
6   [ POLITÉCNICO GANCOLOMBIANO]
 

   
ℎ! 5 = 1 + 5 = 6  
ℎ! 5 = 1.2 ∗ 5 = 6  

Dado   que   se   presenta   un   empate,   es   indiferente   cuál   de   los   dos   trabajos   restantes   se  
programen  justo  antes  del  trabajo  3.  

□  

El   problema  1||!!"#  es   el   caso   más   conocido   de   la   familia   de   problemas  1 !"#$ ℎ!"# .   En  
este   problema     la   función  ℎ!  toma   la   forma   de  !! − !!  y   el   algoritmo   produce   secuencias  
ordenadas  de  forma  de  ascendente  con  respecto  al  due  date.  Este  resultado  del  algoritmo  se  
conoce  como  la  regla  EDD  primero  (Earliest  Due  Date  first).  

BIBLIOGRAFÍA  

PINEDO,  Michael.  Scheduling  theory,  algorithms  and  systems.  4  ed.  New  York:  Springer,  2010.  
673  p.      

 
[ SCHEDULING E INVENTARIOS ] 7

También podría gustarte