Anda di halaman 1dari 3

ALGORITMOS PRINCIPALES PARA SECUENCIACIÓN ENPROBLEMAS MONO-

MÁQUINA

Suponga que vamos a realizar n trabajos, van a procesarse a través de una


máquina. Para cada trabajo i, defina las siguientes cantidades:

 ti: Tiempo de procesamiento para el trabajo i,


 di: Fecha de entrega del trabajo i,
 Wi: Tiempo de espera para el trabajo i,
 Fi: Tiempo de flujo para el trabajo i,
 Li: Retraso del trabajo i,
 Ti: Retardo del trabajo i,
 Ei: Anticipación del trabajo i.
El tiempo de procesamiento y la fecha de entrega son constantes que están
incorporadas a la descripción de cada trabajo.
los tiempos de procesamiento de todos los trabajos anteriores. El tiempo de flujo es
simplemente el tiempo de espera más el de procesamiento del trabajo (Fi = Wi +ti).
El tiempo de flujo del trabajo i y el de terminación del trabajo i son los mismos.
Vamos a definir el retraso del trabajo i como Li = Fi - di, y supondremos que el
retraso puede ser una cantidad positiva o bien, una negativa. El retardo es la parte
positiva del retraso (Ti = máx. Li,0]), y la anticipación es la parte negativa del retraso
(Ei = Max [-Li, 0]). Otras cantidades relacionadas son el retardo máximo T
máx., dado por la fórmula T máx. = máx. {T1, T2, . . ., Tn}, y el tiempo de flujo medio
F, dado por la fórmula
𝑛

𝐹´ = 1 ∑ 𝐹1
𝑖=1

Como solamente estamos considerando una sola máquina, cada calendario puede
representarse por una permutación (es decir, ordenamiento) de los enteros 1, 2, . .
., n. ¡Hay exactamente n! calendarios de permutación diferentes [n! =n (n -1) …2)
(1)].

Programación del tiempo de procesamiento más cortó

La regla de programación que minimiza el tiempo de flujo medio F´es SPT.


Sea [1], [2], …, [ n] cualquier permutación de los enteros 1, 2, 3, . . . , n. El tiempo
de flujo del trabajo que se programa en la posición k está dado por
𝐾

F[𝐾] = ∑ 𝑡[𝑖]
𝑖=1

SE concluye que el tiempo de flujo esta dado por


𝑛
𝑛 𝑘

𝐹´ = 1 ∑ F[𝐾] = 1 ∑ ∑ 𝑡[𝑖]
𝑘=1 𝑖=1
𝑘=1

El término de doble sumatoria puede escribirse de forma diferente. Al expandir la


doble sumatoria, obtenemos
k =1: t [1]
k =2: t [1] + t [2]
.
.
.
k =n: t[1] + t[2] +…+ t[n].
que claramente se minimiza al establecer
t[1]≤ t[2] ≤…≤ t[n],
que es exactamente la regla de secuenciación SPT Las siguientes medidas
son equivalentes:

 Tiempo de flujo medio


 Tiempo de espera medio
 Retraso medio En conjunto

se establece que SPT minimiza el tiempo de flujo medio, el tiempo de espera medio
y el retraso medio para la secuenciación de una sola máquina.

Programación de la primera fecha de entrega

Si el objetivo es minimizar el retraso máximo, entonces los trabajos deben


ordenarse de acuerdo con sus fechas de entrega. Es decir, d [1] ≤ d[2] ≤…≤ d[n].
No presentaremos una prueba de este resultado. La idea que fundamenta la prueba
es seleccionar algún programa que no ordene los trabajos en relación con sus
fechas de entrega; eso implica que existe un valor k tal que d[k]>d[k+1]. Se
demuestra que al intercambiar las posiciones de los trabajos k y k +1, se reduce el
retraso máximo.

Minimización del número de trabajos retrasados

Hay muchos ejemplos en los cuales la penalización por un trabajo atrasado


permanece igual sin importar qué tan grande sea el retraso. Por ejemplo, cualquier
atraso en la terminación de todas las tareas que se requieren para la preparación
de un lanzamiento al espacio podría causar el aborto del lanzamiento. Vamos a
describir el algoritmo de miento, que minimiza el número de trabajos retardados
para el problema de una sola máquina.
Paso 1. Ordene los trabajos de acuerdo con la fecha de la primera entrega para
obtener la solución inicial. Es decir, d [1]≤ d [2] ≤...≤ d [n].

Paso 2. Encuentre el primer trabajo retardado en la secuencia presente, digamos el


trabajo [i]. Sino existe ninguno, vaya al paso 4.

Paso 3. Considere los trabajos [1], [2], . . ., [i]. Rechace el trabajo con el mayor
tiempo de procesamiento. Regrese al paso 2.

Paso 4. Forme una secuencia óptima tomando la secuencia presente y


adjuntándole los trabajos rechazados. Los trabajos adjuntos a la secuencia
presente pueden programarse en cualquier orden porque constituyen los trabajos
retardados.

Restricciones de precedentes:

Algoritmo de Lawler, el algoritmo de Lawler (Lawler, 1973) es una técnica para la


solución de varios problemas restringidos de programación. Se supone que la
función objetivo es de la forma

Minmaxgi (Fi)
1≤i≤n

donde gi es cualquier función no decreciente del tiempo de flujo Fi. Además, el


algoritmo maneja
cuales quiera restricciones de precedencia. Se presentan restricciones
de precedencia cuando ciertos trabajos deben terminarse antes de que otros
trabajos puedan comenzar; son muy comunes en los problemas de programación.
Algunos ejemplos de funciones gi que pueden considerarse son gi (Fi) =Fi - di = Li,
que corresponde a minimizar el retraso máximo, o sea gi (Fi) = máx (Fi - di,0), que
equivale a la minimización del retraso máximo.
El algoritmo de Lawler programa primero el trabajo que debe terminarse en último
lugar, luego el siguiente trabajo que debe terminarse después del último, etc. En
cada etapa sede termina el conjunto de trabajos que no se requiere que precedan
a ningún otro. Denominemos a este conjunto V. Entre el conjunto V, seleccione el
trabajo k que satisfaga

gi (T) = min (gi (T))


i, €, V
Donde 𝑇 = ∑𝑛𝑖=1 𝑡𝑖 y corresponde al tiempo de procesamiento de la secuencia
presente. Ahora el trabajo k se programa como el último. Considere los trabajos
restantes y determine nuevamente el conjunto de trabajos que no se requiere que
precedan a ningún otro trabajo restante. Tras programar el trabajo k, este conjunto
pudo haber cambiado.