Вы находитесь на странице: 1из 11

See discussions, stats, and author profiles for this publication at: https://www.researchgate.

net/publication/228776617

Un algoritmo voraz para resolver el problema de la programación de tareas


dependientes en máquinas diferentes

Article · January 2004

CITATIONS READS

9 944

2 authors:

Manuel Tupia David Mauricio


Pontifical Catholic University of Peru National University of San Marcos
31 PUBLICATIONS   59 CITATIONS    48 PUBLICATIONS   127 CITATIONS   

SEE PROFILE SEE PROFILE

Some of the authors of this publication are also working on these related projects:

Method for detecting DDoS attacks in the application layer based on user’s dynamism View project

Cybersecurity model for e-Government services View project

All content following this page was uploaded by Manuel Tupia on 26 May 2014.

The user has requested enhancement of the downloaded file.


RISI 1(1),
RISI 1(1),9-18
9-18(2004)
(2004) MANUEL TUPIA et al.
Rev. investig. sist. inform.
Facultad de Ingeniería de Sistemas e Informática
Universidad Nacional Mayor de San Marcos
ISSN: 1815-0268 (impreso)

ARTÍCULOS

UN ALGORITMO VORAZ PARA RESOLVER EL PROBLEMA


DE LA PROGRAMACIÓN DE TAREAS DEPENDIENTES EN
MÁQUINAS DIFERENTES

Manuel Tupia*, David Mauricio**

RESUMEN
La planificación industrial ha experimentado notables avances desde sus orígenes a mediados del siglo XX
tanto en importancia de aplicación dentro de todas las industrias en donde es usada, como en la eficiencia y
sofisticación de los algoritmos que buscan resolver todas sus variantes existentes. El interés por la aplicación
de métodos heurísticos ante la necesidad de dar respuestas a los problemas del área de planificación nos ha
llevado a desarrollar nuevos algoritmos para resolver una de las variantes del problema de la planificación
desde el punto de vista de la Inteligencia Artificial: la programación de tareas o task scheduling definida como
un conjunto de tareas dependientes de una línea de producción a ser programadas en un determinado grupo
de máquinas diferentes, encontrar un orden adecuado de ejecución que minimice el tiempo total de trabajo de
las máquinas o makespan. El presente trabajo muestra un algoritmo voraz para resolver dicha variante del
problema del task scheduling.
Palabras clave: algoritmos golosos, programación de tareas, optimización combinatoria, heurísticas, Inteli-
gencia Artificial.

A GREEDY ALGORITHM FOR TASK SCHEDULING PROBLEM


ABSTRACT
The industrial planning has experimented great advances since its beginning for a middle of 20th century. It
has been demonstrated its applications importance into the several industrial where its involved even though
the difficult of design exact algorithms that resolved the variants. It has been applied heuristics methods for
the planning problems due their high complexity; especially Artificial Intelligence when develop new strategies
for resolving one of the most important variant, called task scheduling.
It is able to define the task scheduling problem like: a set of N production line ‘s tasks and M machines, which
ones can execute those tasks. The goal is to find an order that minimize the accumulated execution time,
known as makespan. This paper presents a meta heuristic strategy GRASP for the problem of programming of
dependent tasks in different single machines.
Keywords: greedy myopic algorithms, task scheduling, combinatorial optimization, heuristics, Artificial
Intelligence.

1. INTRODUCCIÓN trabajos de procesadores en los inicios de la


microelectrónica [2]. Ese tipo de problema puede
El problema de la programación de tareas o definirse, desde el punto de vista de la optimización
task scheduling presenta sus antecedentes en la combinatoria [3], como sigue:
planificación industrial [1] y en la programación de

* Pontificia Universidad Católica del Perú, Departamento de Ingeniería, Sección Informática, Lima-Perú.
E-mail: tupia.mf@pucp.edu.pe
** Universidad Nacional Mayor de San Marcos, Instituto de Investigación de la Facultad de Ingeniería de Sistemas e Informática,
Lima-Perú. E-mail: dms@terra.com

FISI-UNMSM 9
UN ALGORITMO VORAZ PARA RESOLVER EL PROBLEMA DE LA PROGRAMACIÓN DE TAREAS DEPENDIENTES EN MÁQUINAS DIFERENTES

Dadas M máquinas (consideradas


procesadores) y N tareas con Tij unidades de tiem- Minimiza X 0
po de duración de cada tarea i-ésima ejecutada r n

en la máquina j-ésima. Se desea programar las N s. a. X 0


≥ ∑ Tij * X ij ∀ j ∈ 1 ..M
i =1
tareas en las M máquinas, procurando el orden de m
ejecución más apropiado, cumpliendo determina- X 0 ≥ ∑ X ij = 1 ∀ i ∈ 1 ..N
das condiciones que satisfagan la optimalidad de j =1
la solución requerida para el problema.
Figura N.º 1. Modelo matemático del task
El problema del scheduling presenta una se- scheduling
rie de variantes dependiendo de la naturaleza y el
comportamiento; tanto de las tareas como de las
máquinas. Una de las variantes más difíciles de II. MÉTODOS EXISTENTES PARA RESOLVER EL
plantear, debido a su alta complejidad PROBLEMA DE LA PROGRAMACIÓN DE
computacional, es aquella en donde las tareas son TAREAS Y SUS VARIANTES
dependientes y las máquinas son diferentes.
Resumiremos aquí partes importantes de tra-
En esta variante cada tarea presenta una lis- bajos que pretenden resolver el problema del
ta de tareas que la preceden y para ser ejecutada scheduling en general tanto de forma exacta como
deben esperar el procesamiento de dicha lista en aproximada.
su totalidad. A esta situación hay que agregarle la
característica de heterogeneidad de las máquinas: 2.1 Métodos existentes
cada tarea demora tiempos distintos de ejecución
en cada máquina. El objetivo será minimizar el tiem- Las soluciones existentes que pretenden re-
po acumulado de ejecución de las máquinas, co- solver el problema de la planificación industrial en
nocido en la literatura como makespan [3]. general pueden ser divididas en dos grupos: mé-
todos exactos y métodos aproximados.
Al observar el estado del arte del problema,
vemos que tanto su aplicación práctica de forma Los métodos exactos [6,7,8,9,10] pretenden
directa en la industria como su importancia acadé- hallar un plan jerárquico único analizando todos
mica, al ser un problema NP-difícil, se justifica en los posibles ordenamientos de las tareas o proce-
diseño de un algoritmo heurístico que busque una sos involucrados en la línea de producción (explo-
solución óptima al problema, dado que no existen ración exhaustiva). Sin embargo, una estrategia
métodos exactos para resolver el problema. de búsqueda y ordenamiento que analice todas las
combinaciones posibles es computacionalmente
En muchas industrias como las del ensam- cara y sólo funciona para algunos tipos (tamaños)
blado, embotellado, manufactura, etc., vemos lí- de instancia.
neas de producción en donde los períodos de es-
Los métodos aproximados [3,4,5], por su par-
pera por trabajo de las máquinas involucradas y
te, sí buscan resolver las variantes más complejas
el ahorro del recurso tiempo son temas muy im-
en las que interviene el comportamiento de tareas
portantes y requieren de una conveniente planifi- y máquinas, como se mencionó en el apartado an-
cación. terior. Dichos métodos no analizan exhaustivamente
A partir de la definición dada, podemos pre- todas las posibles combinaciones de patrones del
problema, sino que más bien eligen los que cum-
sentar el problema como un modelo matemático
plan determinados criterios. Obtienen finalmente
de optimización combinatoria en su forma más
soluciones lo suficientemente buenas para las ins-
general, en la siguiente figura y en donde:
tancias que resuelven, lo que justifica su uso.
• X 0 representa al makespan
Seguidamente presentamos los métodos de
• X ij será 0 si la máquina j-ésima no ejecuta la solución existentes para las variantes más conoci-
tarea i-ésima y 1 en caso contrario das del scheduling.

10 FISI-UNMSM
RISI 1(1), 9-18 (2004) MANUEL TUPIA et al.

2.1.1. Métodos heurísticos para resolver la producción flexible. Por otro lado, la investiga-
variante del Job Scheduling ción de Davis [18] consistió básicamente en la
división de las tareas en cromosomas muy pe-
Dentro de la teoría de colas podemos encon- queños de tal forma que las poblaciones gene-
trar la primera y más estudiada variante del radas sean lo más variadas posibles.
scheduling: el problema de la planificación de tra-
bajos en cola o atención en cola, conocido en la • Usando búsqueda Tabú: Taillard [19] conside-
literatura como job scheduling [11]. Este proble- raba como vecindades para la aplicación de las
ma consiste en: listas Tabú al movimiento de una candidata a
operación i-ésima (tarea) a programar en una
• Dado un lote finito de trabajos a ser procesa- máquina hacia otra máquina, siendo la lista Tabú
dos. aquella matriz formada por las operaciones y
• Dado un infinito número de procesadores (má- las máquinas donde ejecutarlas; otros traba-
quinas). jos interesantes son los de Chambers y Barnes
[20] que consideraban una ruta flexible; ruta
• Cada trabajo (job) esta caracterizado por un flexible es aquella en la que existen máquinas
conjunto de operaciones convenientemente or- que pueden operar más de un tipo de opera-
denadas; por su parte, las máquinas pueden ción, extendiendo la definición del JSP; y final-
procesar una única tarea a la vez, sin interrup- mente los trabajos de Subramani [21] donde
ciones. aplica los conceptos de JSP sobre las técnicas
El objetivo del JSP es encontrar una progra- de Grid (Grid Computing) en la programación
mación determinada que minimice el tiempo de de tareas de súper computadoras. Las estrate-
procesamiento. Existen numerosos algoritmos gias Grid consisten en la programación de va-
heurísticos planteados para resolver el problema rios trabajos recurrentes y simultáneos que
del job scheduling, entre los que destacamos: aparecen en la atención de los procesadores.

• Usando ramificación y acotación: Bard y Feo


[12,13] presentan el conocido método de bús- 2.1.2. Métodos heurísticos para resolver la
queda en grafos dirigidos de ramificación y aco- variante del Task Scheduling
tación, con el cual proceden a recorrer un ár-
bol cuyos nodos son secuencias de operacio- Los algoritmos para esta variante pueden ser
nes en líneas de manufacturas. No consideran usados para resolver complicados problemas de
líneas con penalidades por retrasos ni por los planificación o programación de acciones y opera-
pasos de las tareas de una máquina a otra; de ciones en células de trabajo. Se plantea un deter-
allí la aplicabilidad directa de un método de minado número finito de máquinas y tareas y se
barrido de árboles en el proceso de selección busca, al igual que en el JSP, una programación
de instrumentos y trayectorias. Similares tra- adecuada donde se minimice el tiempo de proce-
bajos fueron presentados por Brucker, Jurisch samiento de lote o makespan.
y Sievers [14]. Por la naturaleza de las máquinas y las ta-
• Usando algoritmos GRASP: Binato, Hery y reas, puede hacerse la siguiente subdivisión vista
Resende [15] incorporan dos nuevos concep- anteriormente:
tos en el desarrollo de una GRASP convencio- • Máquinas idénticas y tareas independientes
nal para el JSP: un procedimiento de intensifi-
• Máquinas idénticas y tareas dependientes
cación estratégica (otra forma de distribución
probabilística) para crear candidatas a solución • Máquinas diferentes y tareas independientes
y una técnica POP (del inglés Proximate • Máquinas diferentes y tareas dependientes: el
Optimality Principle) también en la fase de cons- modelo más complejo que será motivo de es-
trucción. Ambos conceptos ya habían sido apli- tudio en este trabajo.
cados para resolver el problema de la asigna-
ción cuadrática. Algunos algoritmos planteados son:

• Usando algoritmos genéticos: Trabajos de • Usando algoritmos voraces: Campello, Maculan


Goncalves, De Magalahes y Resende [16] y Davis [3] para máquinas idénticas. El planteamiento
[17]. La representación de los cromosomas se que realizan los autores es a partir de la defini-
basa en tasas del elitismo aleatorias; los auto- ción del problema como uno de programación
res pretenden asemejar el comportamiento de discreta (posible al ser de la clase NP-difícil),
un entorno de trabajo variable en una línea de como se vio anteriormente.

FISI-UNMSM 11
UN ALGORITMO VORAZ PARA RESOLVER EL PROBLEMA DE LA PROGRAMACIÓN DE TAREAS DEPENDIENTES EN MÁQUINAS DIFERENTES

• Usando algoritmos voraces: Tupia [22] para tarea i; luego agregaba el tiempo de ejecución
máquinas diferentes y tareas independientes. para cada trabajo y el concepto de penalidad
El autor presenta el caso de las máquinas dife- por retrasos en la línea. Se pretendía aplicar
rentes y tareas independientes. Se adaptó el las técnicas GRASP para minimizar la suma de
modelo de Campello y Maculan considerando las penalidades. En la misma línea investigativa,
que habían tiempos distintos de ejecución para Ríos y Bard [28] plantean una GRASP para
cada máquina: es decir aparece el concepto secuenciamiento de líneas de flujo de trabajo:
matricial de que es el tiempo que se demora la encontrar una secuencia de N tareas en un
tarea i-ésima en ser ejecutada por la máquina ambiente de flow-shop. Presentaron dos
j-ésima. heurísticas: la primera basada en el trabajo de
Nawaz [29], quien busca construir una secuen-
• Usando algoritmos GRASP: Tupia [22] presen-
cia factible de ejecución, y otro algoritmo pro-
ta el caso de las máquinas diferentes y tareas
puesto es un procedimiento GRASP cuya fase
independientes. En este trabajo, el autor am-
de construcción se basa en el algoritmo ante-
plió el criterio voraz del algoritmo anterior apli-
rior; otro trabajo interesante de Feo y
cando las fases convencionales de la técnica
Venkatraman [30] para un único tipo de má-
GRASP y mejorando en cerca del 10% los re-
quina con penalización de tiempo de flujo y cos-
sultados del algoritmo voraz para instancias de
tos por terminación adelantada.
hasta 12500 variables (250 tareas por 50 má-
quinas). • Usando heurísticas de búsqueda Tabú: Encon-
tramos el trabajo de Acero y Torres [31] para
líneas de producción flexible. Propusieron una
2.1.3 Métodos heurísticos para resolver el
representación natural de una solución factible
problema de la planificación de tareas en
por medio de un vector de dimensiones 2 x N x
tiempo real (STR)
M componentes (siendo N el número de traba-
jos y M el número de etapas).
• Planificación basada en el reloj (basada en el
• Usando algoritmos voraces: Trabajos de Chand
tiempo) [23]: El plan de ejecución se calcula
y Scheneeberger [32] para líneas con máqui-
fuera de línea y se basa en el conocimiento de
nas simples y trabajos sin demoras.
los tiempos de inicio y de cómputo de todos los
trabajos. El plan de ejecución está en una tabla
y no es concurrente. III. ALGORITMOS VORACES
• Planificación round robin [24] con y sin priori-
Los algoritmos golosos-miopes o voraces (del
dades: Las tareas tienen prioridades asigna-
inglés greedy-myopic) reciben esta denominación
das por el usuario (fuera de línea). Dentro de
por las siguientes razones [34]:
cada prioridad, las tareas se planifican en round
robin con un determinado tiempo asignado a • Es goloso o voraz porque siempre escoge el
cada una de ellas (quantum). mejor candidato para formar parte de la solu-
ción: aquel que tenga mejor valor de la función
• Planificación basada en prioridades [25]: Las
objetivo, lo que constituye el cumplimiento de
prioridades las asigna el algoritmo de planifi-
cierto criterio goloso de selección.
cación. La tarea con mayor prioridad se ejecu-
ta en cualquier instante. • Es miope porque esta elección es única e
inmodificable dado que no analiza más allá los
• Algoritmo Dual Priority y sus adaptaciones [26]
efectos de haber seleccionado un elemento
para la asignación dinámica de tareas en entornos
como parte de la solución. No deshacen una
de multiprocesador con memoria compartida.
selección ya realizada: una vez incorporado un
elemento a la solución permanece hasta el fi-
2.1.4 Métodos heurísticos para resolver la nal y cada vez que un candidato es rechazado,
variante del flow-shop scheduling lo es permanentemente.

Se sabe sin embargo, que la calidad de los


• Usando algoritmos GRASP: Los trabajos de Feo, algoritmos golosos está en relación con las carac-
Sarathy, McGahan [27] para máquinas simples terísticas de las instancias que pretenden resol-
consistían en asignar un costo a la ejecución ver: puede arrojar muy buenos resultados para
de cada trabajo. Representaba el costo de eje- determinadas instancias del problema pero para
cutar inmediatamente la tarea j después de la otras no. Otro inconveniente que presentan es que

12 FISI-UNMSM
RISI 1(1), 9-18 (2004) MANUEL TUPIA et al.

se estancan en óptimos locales de las funciones IV. ALGORITMO VORAZ PROPUESTO


que pretenden optimizar y quizá no analizan ve-
cindades más allá del criterio goloso por lo que Debemos partir del supuesto que se tiene una
pueden estar dejando de considerar al óptimo glo- instancia de trabajo completa que incluya lo siguien-
bal. Analicemos la siguiente figura: te: cantidad de tareas y máquinas (N y M respec-

Figura 2: Miopía de los algoritmos voraces y estancamiento en óptimos


locales.

Puede verse que en valores de entre 5 y 10, tivamente), matriz de tiempos de ejecución T y
la función a optimizar arroja óptimos locales pero lista de predecesoras por tarea.
que no puede apreciar más allá, la presencia de
un mejor valor global pico. Vamos a presentar un
algoritmo voraz planteado en su forma genérica. 4.1. Estructuras de datos usadas por el
Previamente consideremos las siguientes variables: algoritmo
Consideremos que en el lote hay al menos
una tarea sin predecesoras que se convertirá en la
E = {e1, e2, e3, e4,.., eN} es una colección de N
inicial, así como no existen referencias circulares
objetos o variables del problema.
entre las predecesoras de las tareas que impidan
F: es una colección de subconjuntos de elemen- su correcta programación. En la siguiente figura
tos de E que cumple con una determinada vemos las estructuras de datos que vamos a nece-
propiedad sitar para la presentación del algoritmo:
c: E à R es la función a optimizar.
S: conjunto solución.
N: número de tareas J1 , J 2 ,..., J N
Figura N.º 3: Estructuras de datos para un algoritmo M: número de máquinas M 1 , M 2 ,..., M M
voraz. Matriz T: [ Tij ] MxN de tiempos de procesamiento,
donde cada entrada representa el tiempo que se
demora la máquina j-ésima en ejecutar la tarea i-ésima.
El algoritmo voraz en su forma general sería Vector A: [ Ai ] de tiempos de procesamiento
como sigue: acumulado, donde cada entrada Ai es el tiempo de
trabajo acumulado de la máquina M i .
Pk : Conjunto de tareas predecesoras de la tarea J k .
Algoritmo Voraz General(N,c,S,E,F) Vector U: [U k ] de tiempos de finalización de cada
Inicio
tarea J k .
0. Leer N, c, E, F
1. Ordenar bajo algún criterio, los elementos de Vector V: [ Vk ] de tiempos de finalización de las tareas
E de acuerdo al valor de c predecesoras de J k , donde se cumple que
2. S:= φ Vk = max{U r }, J r ∈ Pk .
3. Para i: 1 a N, hacer Si : Conjunto de tareas asignadas a la máquina M i .
3.1.Si S ∪ {ei} es una solución viable entonces S = E: Conjunto de tareas programadas.
S ∪ {ei} C: Conjunto de tareas candidatas a ser programadas.
Fin Voraz General

Figura N.º 4: Algoritmo voraz en su formato genérico. Figura N.º 5. Estructuras de datos usadas por el algoritmo.

FISI-UNMSM 13
UN ALGORITMO VORAZ PARA RESOLVER EL PROBLEMA DE LA PROGRAMACIÓN DE TAREAS DEPENDIENTES EN MÁQUINAS DIFERENTES

4.2 Consideraciones Generales Sin perder generalidad y basándonos en el


extracto de la tabla anterior formaremos dos lis-
Los lineamientos generales de este algorit- tas1 con los tiempos acumulados de trabajo:
mo son los siguientes:
• Lista para la tarea J 1 : {10, 12, 11}. Determi-
• Seleccionar las tareas aptas o candidatas a ser
namos el mínimo: 10
ejecutadas siguiendo los siguientes criterios:
√ El criterio goloso de selección de la mejor • Lista para la tarea J 2 : {23, 9, 8}. Determina-
tarea a ejecutar: Se escoge aquella tarea mos el mínimo: 8
cuyo tiempo de ejecución sea el más bajo
para evitar perturbaciones. A partir de los datos anteriores, nuestro cri-
√ El criterio goloso de selección de la mejor terio de selección de la mejor tarea escogería la
máquina ejecutora: La tarea se asigna a la tarea para ser ejecutada en primer lugar, debido
máquina que la ejecuta en menor tiempo. a que su tiempo de acumulado goloso es más bajo
(10>8) que el tiempo acumulado.
• Una tarea se considerará apta para ser ejecu-
tada si todas sus predecesoras ya han sido pro-
gramadas o carece de ellas. 4.2.2 Criterio goloso de selección de la mejor
• En el caso particular de las tareas cuyas prede- máquina
cesoras ya han sido ejecutadas en su totalidad Por su parte, el criterio goloso de selección
seguiremos así:
de la mejor máquina será el de aquella que ejecu-
√ Como la tarea J i se debe ejecutar después
ta la tarea apta para ser programada (elegida des-
de todas sus predecesoras, debemos ubicar
de el criterio anterior) en el menor tiempo. Luego,
la predecesora que finaliza más tarde (ter-
siguiendo el ejemplo: para J2 tenemos que el me-
mina de ser ejecutada en el mayor tiempo).
nor tiempo de ejecución es 8 unidades, corres-
√ La mejor máquina M k se elegirá de entre
pondiente a la máquina M3. A la máquina M3 se le
los M valores posibles: será aquella que mi-
asignaría la ejecución de la tarea J2.
nimice el valor de la suma de la entrada de
la matriz de tiempos de ejecución Tij con
el máximo de entre la entrada correspon- 4.3 Presentación del algoritmo propuesto
diente al vector de tiempos acumulados res-
pectiva Ak y al tiempo de finalización de la
última de las predecesoras de: Ji : V k
= max{U r }, J r ∈ Pk Inicio Algoritmo_Voraz_HETDEP(M, N, T , A, S, U, V)
1. Leer e inicializar N, M, J 1 , J 2 ,..., J N , T, A, S, U, V
√ A la mejor máquina le asignamos tarea J,
2. E = φ
actualizando al vector A en la entrada co-
rrespondiente a Mk . 3. Mientras E ≠ N hacer
Inicio
• Se repite el proceso para el resto de tareas. 3.1 C = φ
• Finalmente el mayor tiempo o entrada de la 3.2 Para : 1 a N, hacer
lista A será el makespan. Si (P ⊆ E) ∧ (J ∉ E) ⇒ C = C ∪ { J }
3.3 Para cada J ∈ C hacer
Inicio
4.2.1 Criterio de selección de la mejor tarea 3.3.1 Vl = maxJl ∈Pk {U l }
3.3.2 k = ArgMini∈[1 ,M ] {Til + max{Ai , Vl }}
Sean por ejemplo, las tareas y tareas sin pre- J l ∈C

decesoras; se tienen 3 máquinas M1, M2, M 3 y un


extracto de la matriz de tiempos de ejecución T en 3.3.3 i = ArgMinp ∈[1, M ]{Tpk + max{Ap ,Vk }}
la tabla N.º 1: Fin para
3.4 Si = S i ∪ { J k }
Tabla N.º 1. Extracto de una matriz de tiempos de 3.5 E = E ∪ {J k }
ejecución T. 3.6 Ai = Tik + max{ Ai ,Vk }
M1 M2 M3 3.7 U k = Ai
J1 10 12 11
J2 23 9 8

1
La formación de las listas no es tan trivial como la simple copia directa de los datos de la matriz T. Más adelante se explica el
proceso correspondiente.

14 FISI-UNMSM
RISI 1(1), 9-18 (2004) MANUEL TUPIA et al.

mínimo valor, y de entre todos los míni-


k i
mos hallados (uno por cada tarea J l
Fin Mientras
candidata) escogemos el menor. Aque-
4. makespan = maxk →1..M Ak
lla tarea que posee ese tiempo mínimo
5. Retornar makespan, S i ∀i ∈ [1, M ]
(el mejor de los mínimos locales), será
Fin Algoritmo_Voraz_HETDEP. la mejor a programar (argumento k).
√ Línea 3.3.3: Criterio de selección de la
mejor máquina: una vez conocida la ta-
Figura N.º 6. Algoritmo voraz propuesto. rea k-ésima (k calculado en la línea an-
terior) a programar, usando el criterio
4.3.1 Comentarios goloso de mejor a aquella máquina que
ejecute a k en el menor tiempo, volve-
• Línea 1: Se inicializan las estructuras de datos. mos a generar la lista anterior para Jk:
• Línea 2: Se inicializa el conjunto E en vacío por- esta vez elegimos la menor entrada co-
que ninguna tarea ha sido programada aún. rrespondiente a la mejor máquina (ar-
gumento i).
• Línea 6: El proceso de programación terminará
cuando en el conjunto E estén contenidas las N - Línea 3.4: Actualizamos S para la entrada
tareas (cardinalidad de E igual a N). Si , pues ahora la máquina Mi ejecuta a la
tarea Jk.
− Línea 3.1: El conjunto C de tareas candidatas
a ser programadas (aptas) se inicia en va- - Línea 3.5: Actualizamos E, con Jk porque ya
cío para cada iteración. está programada.

− Línea 3.2: Se procede a determinar las ta- - Línea 3.6: Actualizamos al vector Ai .
reas candidatas. Sabemos que una tarea Jl - Línea 3.7: Actualizamos al vector U. El tiempo
formará parte de C si sus predecesoras ya de finalización de Jk será igual a la entrada
han sido ejecutadas (incluidas en E) o no de Ai .
presenta predecesoras (vacío incluido en E)
y si además dicha Jl no ha sido programada • Línea 4: Se calcula el makespan que es la ma-
(no pertenece a E). yor entrada del vector A.
• Línea 5: Se presentan el makespan y las tareas
− Línea 3.3: Para las tareas candidata de C
asignadas a cada máquina.
seleccionaremos la mejor, así como la me-
jor máquina ejecutora siguiendo los crite-
rios explicados en apartados anteriores. V. EXPERIENCIAS NUMÉRICAS
√ Línea 3.3.1: Actualizamos al vector V. Es-
Las instancias con las que se probó el algorit-
cogemos la predecesora de la tarea Jl
mo están conformadas por la cantidad M de má-
que finaliza más tarde (mayor entrada
quinas, N de tareas y por una matriz T de tiempos
de U de las predecesoras de Jl ).
de ejecución. Los valores que se manejaron para
√ Línea 3.3.2: Criterio de selección de la M y N respectivamente fueron:
mejor tarea: para cada tarea Jl en C,
• Número de tareas N: En el intervalo 100 a 250,
formamos una lista de M elementos con-
tomando como puntos de referencia los valo-
teniendo el tiempo de ejecución Til para
res de 100, 150, 200, 250.
cada Mi máquina, más el máximo valor
entre la entrada correspondiente de Ai • Número de máquinas M: Un máximo de 50
y el tiempo de la última predecesora de máquinas tomando como puntos de referencia
J–! en ser ejecutada (V–!). Esto repetimos, los valores de 12, 25, 37, 50.
debido a que J–! debe programarse des-
• Matriz de tiempos de proceso: Se generará de
pués de la finalización de todas sus pre-
forma aleatoria con valores entre 1 y 100 uni-
decesoras (en particular de la que aca-
dades de tiempo.2
ba al final). De cada lista obtenemos el

2
Notemos que un tiempo de ejecución muy alto (+α) puede interpretarse como que la máquina no ejecuta una tarea determinada.
Usar en este caso un tiempo de ejecución igual a 0 podría confundirse como que la máquina ejecuta tan rápido la tarea que se
puede asumir que lo hace de forma instantánea, sin ocupar tiempo.

FISI-UNMSM 15
UN ALGORITMO VORAZ PARA RESOLVER EL PROBLEMA DE LA PROGRAMACIÓN DE TAREAS DEPENDIENTES EN MÁQUINAS DIFERENTES

En total tenemos 16 combinaciones para las De otro lado, para determinar la real calidad
combinaciones de máquinas-tareas. De la mis- de las soluciones decidimos aplicar el modelo ma-
ma forma, para cada combinación se generarán 10 temático del problema a paquetes solucionadores
instancias diferentes, lo que arroja un total de 160 de problemas de la programación lineal como la
problemas-test realizados. Se enfrentó el algo- herramienta LINDO [35] en su versión estudiantil3,
ritmo voraz con una meta heurística GRASP [36]: a fín de obtener soluciones exactas y enfrentarlas
con las que arrojaba el algoritmo voraz propuesto.
Para que los modelos sean manejables se disminu-
Tabla N.º 2. Eficiencia del algoritmo voraz frente a yó considerablemente el tamaño de las instancias
una meta heurística GRASP. de prueba. A continuación se presenta la configura-
ción de dichas instancias (recuérdese que N es el
Máquinas\\ GOLOSO GRASP C número de tareas y M el número de máquinas):
Tareas Makespan Makespan %
100 \ 12 213.3 193.7 Tabla N.º 3: Configuración de instancias N x M para
100 \ 25 113.7 108.6 los experimentos exactos.
100 \ 37 76.5 74.3
100 \ 50 59.1 57.8 N 6 8 1 2 1 5 1 0 15 20 25
150 \ 12 283.1 258.2 M 3 3 3 3 5 5 5 5
150 \ 25 125.2 114
150 \ 37 86.1 84.1
150 \ 50 68.6 67.4 Las Tablas N. os 10 y 11 resumen los resulta-
200 \ 12 325.9 307 dos exactos obtenidos frente a los resultados
200 \ 25 heurísticos (solución voraz) y meta heurísticos (so-
127 117
lución GRASP). Asimismo, presentaremos los va-
200 \ 37 109.8 105.2
lores de las constantes de relajación usadas para
200 \ 50 76.4 74.6
la fase de construcción GRASP en donde se reali-
25 0 \ 12 411.8 377.1 zaron cerca de 7000 iteraciones para todos los
250 \ 25 183.5 168.2 casos.
250 \ 37 125.3 119.6
250 \ 50 96.5 91.1 Los promedios de eficiencia están haciendo re-
Eficiencia algoritmo GRASP sobre el ferencia a qué tan cerca está la solución del método
algoritmo Goloso respectivo de la solución considerada exacta.

Tabla N.º 4. Eficiencia de la solución voraz para instancias con M igual a 3.

Resultado Algoritmo A
Matriz N M del LINDO voraz GRASP

6x3_0 6 3 28 35

6x3_1 6 3 67 67
6x3_2 6 3 75 87

8x3_0 8 3 40 45
8x3_1 8 3 88 102

3
Esta versión gratuita del LINDO tiene limitantes en el número de restricciones que puede contener el modelo, de allí que con las
versiones profesionales del programa podríamos trabajar con instancias de mayor porte.

16 FISI-UNMSM
RISI 1(1), 9-18 (2004) MANUEL TUPIA et al.

Tabla N.º 5. Eficiencia de la solución voraz para instancias con M igual a 5.

Resultado Algoritmo Algoritmo % %


Matriz N M del LINDO voraz GRASP Exacto/Voraz Exacto/GRASP α θ

25x5_2 25 5 86 96 90 11.63% 4.65% 0.04 0.08


Promedios de eficiencia

VI. CONCLUSIONES 2. Drozdowski M. Scheduling multiprocessor tasks:


An overview, European Journal, Operation
El algoritmo voraz arroja soluciones que es- Research 94: 215–230 (1996).
tán muy cerca de las soluciones exactas. El tiempo
que le ocupa al computador ejecutar este algorit- 3. Campello R., Maculan N. Algoritmos e Heurísticas
mo es insignificante para casi cualquier instancia Desenvolvimiento e avaliaçao de performance.
de prueba (por debajo de los 2 segundos). Siendo Apolo Nacional Editores, Brasil (1992).
tan solo una heurística, apenas es superada por 4. Pinedo M. Scheduling, Theory, Algorithms and
los algoritmos meta heurísticos a los que se en- Systems. Prentice Hall (1995 y 2002)
frentó, siendo muy buenos los resultados para ins-
tancias de gran porte. 5. Feo T., Resende M., Greedy Randomized
Adaptive Search Procedure Journal of Global
Los sistemas existentes en el mercado que Optimization, 6:.109-133 (1995).
pueden ser considerados como planificadores de 6. Rauch W. Aplicaciones de la inteligencia Artifi-
tareas no han aplicado técnicas meta heurísticas cial en la actividad empresarial, la ciencia y la
sino más bien métodos exactos. No buscan la industria. Tomo II, Editorial Díaz de Santos, Es-
optimización del ordenamiento de las tareas a eje- paña (1989).
cutar, sino más bien dan énfasis a encontrar pla-
nes factibles de ser ejecutados (penalidades más 7. Kumara P. Artificial Intelligence: Manufacturing
que orden). Tampoco existen sistemas que planifi- theory and practice . Editorial NorthCross
quen líneas de producción completas consideran- Institute of industrial Engineers, USA (1988).
do entre otras cosas: el desplazamiento de los pro- 8. Blum A., Furst M. Fast Planning through Plan-
ductos, la ejecución de las operaciones, la disposi- graph Analysis. Article of memories from 14th
ción de la maquinaria (layout) y de las facilidades International Joint Conference on Artificial
(instalaciones), potenciales reducciones de los tiem- Intelligence, pp. 1636-1642. Ediciones Morgan-
pos muertos, etc. Kaufmann - USA (1995).
El tiempo de ejecución es bastante bajo para 9. Conway R. Theory of Scheduling. Addison–
la configuración del hardware donde se realizaron Wesley Publishing Company, Massachussets–
las pruebas Esto nos lleva a inferir que, con una USA, (1967).
configuración más potente sí se podría pasar esta
10.Miller G; Galanter E. Plans and the Structure of
barrera. El tiempo de CPU empleado no pasaba de
Behavior. Editorial Holt, New York-USA, (1960).
los 2 segundos para las instancias más grandes
(250x50). 11.Suárez R., Bautista J., Mateo M. Secuenciación
de tareas de ensamblado con recursos limita-
dos mediante algoritmos de exploración de
VII. BIBLIOGRAFÍA entornos. www.upc.es/sol.upc.es/~suarez/
pub.html Instituto de Organización y Control de
1. Miller G., Galanter E. Plans and the Structure of Sistemas Industriales Universidad Politécnica de
Behavior, Editorial Holt, New York-USA (1960) Cataluña (1999).

FISI-UNMSM 17
UN ALGORITMO VORAZ PARA RESOLVER EL PROBLEMA DE LA PROGRAMACIÓN DE TAREAS DEPENDIENTES EN MÁQUINAS DIFERENTES

12. Bard J; Feo T. Operations sequencing in discrete 25. AFIPS Fall Joint Computer Conference (1962,
parts manufacturing Journal of Management USA). An experimental time-sharing system.
Science. 35: 249-255 (1989) memoria Eds. Corbato F, Merwin M, Daley R.,
13. Bard J; Feo T. An algorithm for manufacturing USA, 335-344.
equipment selection problem. IEEE 26. Banús J; Moncusí A; Labarta J. The Last Call
Transactions, 23: 83-91, (1991). Scheduling Algorithm for Periodic and Soft
14. Brucker P; Jurisch B; Sievers B. A branch and Aperiodic Tasks in Real-Time Systems.
bound algorithm for the job-shop scheduling Departament d’Enginyeria Informàtica
problem. Journal of Discrete Applied Universitat Rovira i Virgili, Tarragona – España
Mathematics, 49:105-127 (1994) (2000).
27. Feo T; Sarathy K; McGahan J. A GRASP for
15. Binato S., Hery W., Loewenstern D. y Resende M.
single machine scheduling with sequence
A GRASP for Job Scheduling. Technical Report
dependt setup cost and linear delay penalities.
N° 00.6.1 AT&T Labs Research (1999-200).
University of Texas – USA, reporte técnico TX
16. Gonçalves J., Magalhäes J., Resende M. A Hibrid 78712-1064 (1994).
Genetic algorith for the Jos Shop Scheduling.
AT&T Labs Research Technical Report TD- 28. Ríos R; Bard J. Heurísticas para el
5EAL6J (2002). secuenciamiento de tareas en líneas de flujo
(en línea). Universidad Autónoma de Nuevo
17. Davis L. Job shop scheduling with genetic León (México) Disponible http://
algorithms. First International Conference on osos.fime.uanl.mx/~roger/ papers (2000).
Genetic Algorithms and their Applications, 136-
140. Morgan – Kaufmann USA, (1985). 29. Nawaz M; Enscore E; Ham I. A heuristic algorithm
for the m-machine, n-job flow-shop sequencing
18. International Conference on Genetic Algorithms problem. Omega, 11(1): 91-95 (1983).
and their Applications (1, 1985, USA). Job shop
scheduling with genetic algorithms. (reporte) Ed. 30. Feo T; Venkatraman K. A Grasp for a difficult sin-
Davis L., Morgan – Kaufmann USA, 136-140. gle machine scheduling problem. Journal of
Computer and Operation Research, No.18 (1991).
19. Taillard E. Parallel Taboo Search Technique for
the Job shop Scheduling Problem. Journal on 31. Acero R; Torres J. Aplicación de una heurística
Computing Science, 6: 108-117, (1994). de búsqueda tabú en un problema de progra-
mación de tareas en línea flexible de manu-
20. Chambers J; Barnes W. Taboo Search for the factura. Revista de la Sociedad de Estadística
Flexible-Routing Job Shop Problem. Department e Investigación Operativa, Colombia, 5(2):
of Computer Sciences, University of Texas- 283–297, (1997).
USA, Reporte técnico TAY 2.124, (1997).
32. Chand S; Schneeberger H. Single machine
21. Subramani V; Kettimuthu R; Srinivasan S; scheduling to minimize earliness subject to no-
Sadayappan P. Distributed Job Scheduling on tardy jobs. European Journal of Operational
Computational Grids using Multiple Research, 34: 221-230 (1988).
Simultaneous Requests. Department of
Computer and Information Science of Ohio 33. Laguna M; Gonzalez J. A search heuristic for
State University, USA. Disponible http:// just-in-time scheduling in parallel machines.
www.gridforum.org (2003). Journal of Intelligent Manufacturing, No. 2:253-
260, (1991).
22. Tupia, M. Un algoritmo Voraz Adaptativo y
Randómico para resolver el problema de la Pro- 34. Cormen T.; Leiserson Ch.; Rivest R.
gramación de Tareas independientes en má- Introduction to Algorithms, MIT Press, Edito-
quinas homogéneas. Pontificia Universidad Ca- rial McGraw Hill (2001)
tólica del Perú (2001). 35. Scharage L. Optimization modeling with LIN-
23. Kleinrock L. Quering Systems. John Wiley DO. Duxbury Press. USA (1997).
Editions, USA, (1974). 36. Conferencia Latinoamericana de Informática
24. Yongpei Guan Y, Wen-Qiang Xiao, Cheung R.; (30,2004, Perú) (a imprimirse) Un algoritmo
Chung-Lu Lin. A multiprocessor task scheduling GRASP para resolver el problema de la pro-
model for berth allocation heuristic and worst- gramación de tareas dependientes en
case analysis. Operations Research Letters, 30: maquinas diferentes, memoria Eds. M. Solar,
343 – 350, Elsevier Science, (2002). D. Fernández-Baca, E. Cuadros-Vargas,
Arequipa – Perú, p. 129—139, (2004).

18 FISI-UNMSM

View publication stats