Documentos de Académico
Documentos de Profesional
Documentos de Cultura
INVENTARIOS
Modelos para una Máquina (II)
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:
!!! !!
Podemos
observar
que
el
! − !"#$%&
esta
dado
por
el
trabajo
número
2.
!
!!! !!
Mientras
que
para
la
segunda
cadena,
!
para
! = 5, 6, 7:
!!! !!
1
Tomado
de
PINEDO,
Michael.
Scheduling,
theory,
algorithms,
and
systems.
4
ed.
New
York:
Springer,
2010.
[ SCHEDULING E INVENTARIOS ] 3
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
Lo
cual
implica
que
secuenciaremos
el
trabajo
3,
obteniendo
así
nuevas
cadenas
remanentes
con
los
siguientes
trabajos:
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.
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.
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.
Inicialice ! = ∅, !! = 1, … , ! !
[ SCHEDULING E INVENTARIOS ] 5
Paso 2:
ℎ! ∗ !! = !"#! ℎ! !!
! ∈ !
! ∈!! !∈!!
Añada ! ∗ ! !
Paso 3:
□
Ejemplo2
Considere
el
siguiente
conjunto
de
trabajos
j
pj
hj(Cj)
1
2
1+C1
2
3
1.2C2
3
5
10
ℎ! 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