inteligencia artificial

10
9 FISI-UNMSM * Pontificia Universidad Católica del Perú, Departamento de Ingeniería, Sección Informática, Lima-Perú. E-mail: [email protected] ** 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: [email protected] 1. INTRODUCCIÓN El problema de la programación de tareas o task scheduling presenta sus antecedentes en la planificación industrial [1] y en la programación de 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 20 th 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. trabajos de procesadores en los inicios de la microelectrónica [2]. Ese tipo de problema puede definirse, desde el punto de vista de la optimización combinatoria [3], como sigue: RISI 1(1), 9-18 (2004) 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

Upload: hamet-huallpa-paz

Post on 08-Nov-2015

213 views

Category:

Documents


0 download

DESCRIPTION

Good

TRANSCRIPT

  • MANUEL TUPIA et al.

    9FISI-UNMSM

    RISI 1(1), 9-18 (2004)

    * Pontificia Universidad Catlica del Per, Departamento de Ingeniera, Seccin Informtica, Lima-Per.E-mail: [email protected]

    ** Universidad Nacional Mayor de San Marcos, Instituto de Investigacin de la Facultad de Ingeniera de Sistemas e Informtica,Lima-Per. E-mail: [email protected]

    1. INTRODUCCIN

    El problema de la programacin de tareas otask scheduling presenta sus antecedentes en laplanificacin industrial [1] y en la programacin de

    UN ALGORITMO VORAZ PARA RESOLVER EL PROBLEMADE LA PROGRAMACIN DE TAREAS DEPENDIENTES EN

    MQUINAS DIFERENTES

    Manuel Tupia*, David Mauricio**

    RESUMEN

    La planificacin industrial ha experimentado notables avances desde sus orgenes a mediados del siglo XXtanto en importancia de aplicacin dentro de todas las industrias en donde es usada, como en la eficiencia ysofisticacin de los algoritmos que buscan resolver todas sus variantes existentes. El inters por la aplicacinde mtodos heursticos ante la necesidad de dar respuestas a los problemas del rea de planificacin nos hallevado a desarrollar nuevos algoritmos para resolver una de las variantes del problema de la planificacindesde el punto de vista de la Inteligencia Artificial: la programacin de tareas o task scheduling definida comoun conjunto de tareas dependientes de una lnea de produccin a ser programadas en un determinado grupode mquinas diferentes, encontrar un orden adecuado de ejecucin que minimice el tiempo total de trabajo delas mquinas o makespan. El presente trabajo muestra un algoritmo voraz para resolver dicha variante delproblema del task scheduling.

    Palabras clave: algoritmos golosos, programacin de tareas, optimizacin combinatoria, heursticas, 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. Ithas been demonstrated its applications importance into the several industrial where its involved even thoughthe difficult of design exact algorithms that resolved the variants. It has been applied heuristics methods forthe planning problems due their high complexity; especially Artificial Intelligence when develop new strategiesfor 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, whichones 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 ofdependent tasks in different single machines.

    Keywords: greedy myopic algorithms, task scheduling, combinatorial optimization, heuristics, ArtificialIntelligence.

    trabajos de procesadores en los inicios de lamicroelectrnica [2]. Ese tipo de problema puededefinirse, desde el punto de vista de la optimizacincombinatoria [3], como sigue:

    RISI 1(1), 9-18 (2004)Rev. investig. sist. inform.Facultad de Ingeniera de Sistemas e InformticaUniversidad Nacional Mayor de San MarcosISSN: 1815-0268 (impreso)

    ARTCULOS

  • 10

    UN ALGORITMO VORAZ PARA RESOLVER EL PROBLEMA DE LA PROGRAMACIN DE TAREAS DEPENDIENTES EN MQUINAS DIFERENTES

    FISI-UNMSM

    Dadas M mquinas (consideradasprocesadores) y N tareas con ijT unidades de tiem-po de duracin de cada tarea i-sima ejecutadaen la mquina j-sima. Se desea programar las Ntareas en las M mquinas, procurando el orden deejecucin ms apropiado, cumpliendo determina-das condiciones que satisfagan la optimalidad dela solucin requerida para el problema.

    El problema del scheduling presenta una se-rie de variantes dependiendo de la naturaleza y elcomportamiento; tanto de las tareas como de lasmquinas. Una de las variantes ms difciles deplantear, debido a su alta complejidadcomputacional, es aquella en donde las tareas sondependientes y las mquinas son diferentes.

    En esta variante cada tarea presenta una lis-ta de tareas que la preceden y para ser ejecutadadeben esperar el procesamiento de dicha lista ensu totalidad. A esta situacin hay que agregarle lacaracterstica de heterogeneidad de las mquinas:cada tarea demora tiempos distintos de ejecucinen cada mquina. El objetivo ser minimizar el tiem-po acumulado de ejecucin de las mquinas, co-nocido en la literatura como makespan [3].

    Al observar el estado del arte del problema,vemos que tanto su aplicacin prctica de formadirecta en la industria como su importancia acad-mica, al ser un problema NP-difcil, se justifica endiseo de un algoritmo heurstico que busque unasolucin ptima al problema, dado que no existenmtodos exactos para resolver el problema.

    En muchas industrias como las del ensam-blado, embotellado, manufactura, etc., vemos l-neas de produccin en donde los perodos de es-pera por trabajo de las mquinas involucradas yel ahorro del recurso tiempo son temas muy im-portantes y requieren de una conveniente planifi-cacin.

    A partir de la definicin dada, podemos pre-sentar el problema como un modelo matemticode optimizacin combinatoria en su forma msgeneral, en la siguiente figura y en donde:

    0X representa al makespan

    ijX ser 0 si la mquina j-sima no ejecuta latarea i-sima y 1 en caso contrario

    Minimizar

    0 X

    s. a. 0 X =

    n

    i ij ij X T

    1 * " j M .. 1

    0 X 1 1

    = =

    m

    j ij X " i N .. 1

    Figura N. 1. Modelo matemtico del taskscheduling

    II. MTODOS EXISTENTES PARA RESOLVER ELPROBLEMA DE LA PROGRAMACIN DETAREAS Y SUS VARIANTES

    Resumiremos aqu partes importantes de tra-bajos que pretenden resolver el problema delscheduling en general tanto de forma exacta comoaproximada.

    2.1 Mtodos existentes

    Las soluciones existentes que pretenden re-solver el problema de la planificacin industrial engeneral pueden ser divididas en dos grupos: m-todos exactos y mtodos aproximados.

    Los mtodos exactos [6,7,8,9,10] pretendenhallar un plan jerrquico nico analizando todoslos posibles ordenamientos de las tareas o proce-sos involucrados en la lnea de produccin (explo-racin exhaustiva). Sin embargo, una estrategiade bsqueda y ordenamiento que analice todas lascombinaciones posibles es computacionalmentecara y slo funciona para algunos tipos (tamaos)de instancia.

    Los mtodos aproximados [3,4,5], por su par-te, s buscan resolver las variantes ms complejasen las que interviene el comportamiento de tareasy mquinas, como se mencion en el apartado an-terior. Dichos mtodos no analizan exhaustivamentetodas las posibles combinaciones de patrones delproblema, sino que ms bien eligen los que cum-plan determinados criterios. Obtienen finalmentesoluciones lo suficientemente buenas para las ins-tancias que resuelven, lo que justifica su uso.

    Seguidamente presentamos los mtodos desolucin existentes para las variantes ms conoci-das del scheduling.

  • MANUEL TUPIA et al.

    11FISI-UNMSM

    RISI 1(1), 9-18 (2004)

    2.1.1. Mtodos heursticos para resolver lavariante del Job Scheduling

    Dentro de la teora de colas podemos encon-trar la primera y ms estudiada variante delscheduling: el problema de la planificacin de tra-bajos en cola o atencin en cola, conocido en laliteratura como job scheduling [11]. Este proble-ma consiste en:

    Dado un lote finito de trabajos a ser procesa-dos.

    Dado un infinito nmero de procesadores (m-quinas).

    Cada trabajo (job) esta caracterizado por unconjunto de operaciones convenientemente or-denadas; por su parte, las mquinas puedenprocesar una nica tarea a la vez, sin interrup-ciones.

    El objetivo del JSP es encontrar una progra-macin determinada que minimice el tiempo deprocesamiento. Existen numerosos algoritmosheursticos planteados para resolver el problemadel job scheduling, entre los que destacamos:

    Usando ramificacin y acotacin: Bard y Feo[12,13] presentan el conocido mtodo de bs-queda en grafos dirigidos de ramificacin y aco-tacin, con el cual proceden a recorrer un r-bol cuyos nodos son secuencias de operacio-nes en lneas de manufacturas. No consideranlneas con penalidades por retrasos ni por lospasos de las tareas de una mquina a otra; deall la aplicabilidad directa de un mtodo debarrido de rboles en el proceso de seleccinde instrumentos y trayectorias. Similares tra-bajos fueron presentados por Brucker, Jurischy Sievers [14].

    Usando algoritmos GRASP: Binato, Hery yResende [15] incorporan dos nuevos concep-tos en el desarrollo de una GRASP convencio-nal para el JSP: un procedimiento de intensifi-cacin estratgica (otra forma de distribucinprobabilstica) para crear candidatas a soluciny una tcnica POP (del ingls ProximateOptimality Principle) tambin en la fase de cons-truccin. Ambos conceptos ya haban sido apli-cados para resolver el problema de la asigna-cin cuadrtica.

    Usando algoritmos genticos: Trabajos deGoncalves, De Magalahes y Resende [16] y Davis[17]. La representacin de los cromosomas sebasa en tasas del elitismo aleatorias; los auto-res pretenden asemejar el comportamiento deun entorno de trabajo variable en una lnea de

    produccin flexible. Por otro lado, la investiga-cin de Davis [18] consisti bsicamente en ladivisin de las tareas en cromosomas muy pe-queos de tal forma que las poblaciones gene-radas sean lo ms variadas posibles.

    Usando bsqueda Tab: Taillard [19] conside-raba como vecindades para la aplicacin de laslistas Tab al movimiento de una candidata aoperacin i-sima (tarea) a programar en unamquina hacia otra mquina, siendo la lista Tabaquella matriz formada por las operaciones ylas mquinas donde ejecutarlas; otros traba-jos interesantes son los de Chambers y Barnes[20] que consideraban una ruta flexible; rutaflexible es aquella en la que existen mquinasque pueden operar ms de un tipo de opera-cin, extendiendo la definicin del JSP; y final-mente los trabajos de Subramani [21] dondeaplica los conceptos de JSP sobre las tcnicasde Grid (Grid Computing) en la programacinde tareas de sper computadoras. Las estrate-gias Grid consisten en la programacin de va-rios trabajos recurrentes y simultneos queaparecen en la atencin de los procesadores.

    2.1.2. Mtodos heursticos para resolver lavariante del Task Scheduling

    Los algoritmos para esta variante pueden serusados para resolver complicados problemas deplanificacin o programacin de acciones y opera-ciones en clulas de trabajo. Se plantea un deter-minado nmero finito de mquinas y tareas y sebusca, al igual que en el JSP, una programacinadecuada donde se minimice el tiempo de proce-samiento de lote o makespan.

    Por la naturaleza de las mquinas y las ta-reas, puede hacerse la siguiente subdivisin vistaanteriormente:

    Mquinas idnticas y tareas independientes Mquinas idnticas y tareas dependientes Mquinas diferentes y tareas independientes Mquinas diferentes y tareas dependientes: el

    modelo ms complejo que ser motivo de es-tudio en este trabajo.

    Algunos algoritmos planteados son:

    Usando algoritmos voraces: Campello, Maculan[3] para mquinas idnticas. El planteamientoque realizan los autores es a partir de la defini-cin del problema como uno de programacindiscreta (posible al ser de la clase NP-difcil),como se vio anteriormente.

  • 12

    UN ALGORITMO VORAZ PARA RESOLVER EL PROBLEMA DE LA PROGRAMACIN DE TAREAS DEPENDIENTES EN MQUINAS DIFERENTES

    FISI-UNMSM

    Usando algoritmos voraces: Tupia [22] paramquinas diferentes y tareas independientes.El autor presenta el caso de las mquinas dife-rentes y tareas independientes. Se adapt elmodelo de Campello y Maculan considerandoque haban tiempos distintos de ejecucin paracada mquina: es decir aparece el conceptomatricial de que es el tiempo que se demora latarea i-sima en ser ejecutada por la mquinaj-sima.

    Usando algoritmos GRASP: Tupia [22] presen-ta el caso de las mquinas diferentes y tareasindependientes. En este trabajo, el autor am-pli el criterio voraz del algoritmo anterior apli-cando las fases convencionales de la tcnicaGRASP y mejorando en cerca del 10% los re-sultados del algoritmo voraz para instancias dehasta 12500 variables (250 tareas por 50 m-quinas).

    2.1.3 Mtodos heursticos para resolver elproblema de la planificacin de tareas entiempo real (STR)

    Planificacin basada en el reloj (basada en eltiempo) [23]: El plan de ejecucin se calculafuera de lnea y se basa en el conocimiento delos tiempos de inicio y de cmputo de todos lostrabajos. El plan de ejecucin est en una tablay no es concurrente.

    Planificacin round robin [24] con y sin priori-dades: Las tareas tienen prioridades asigna-das por el usuario (fuera de lnea). Dentro decada prioridad, las tareas se planifican en roundrobin con un determinado tiempo asignado acada una de ellas (quantum).

    Planificacin basada en prioridades [25]: Lasprioridades las asigna el algoritmo de planifi-cacin. La tarea con mayor prioridad se ejecu-ta en cualquier instante.

    Algoritmo Dual Priority y sus adaptaciones [26]para la asignacin dinmica de tareas en entornosde multiprocesador con memoria compartida.

    2.1.4 Mtodos heursticos para resolver lavariante del flow-shop scheduling

    Usando algoritmos GRASP: Los trabajos de Feo,Sarathy, McGahan [27] para mquinas simplesconsistan en asignar un costo a la ejecucinde cada trabajo. Representaba el costo de eje-cutar inmediatamente la tarea j despus de la

    tarea i; luego agregaba el tiempo de ejecucinpara cada trabajo y el concepto de penalidadpor retrasos en la lnea. Se pretenda aplicarlas tcnicas GRASP para minimizar la suma delas penalidades. En la misma lnea investigativa,Ros y Bard [28] plantean una GRASP parasecuenciamiento de lneas de flujo de trabajo:encontrar una secuencia de N tareas en unambiente de flow-shop. Presentaron dosheursticas: la primera basada en el trabajo deNawaz [29], quien busca construir una secuen-cia factible de ejecucin, y otro algoritmo pro-puesto es un procedimiento GRASP cuya fasede construccin se basa en el algoritmo ante-rior; otro trabajo interesante de Feo yVenkatraman [30] para un nico tipo de m-quina con penalizacin de tiempo de flujo y cos-tos por terminacin adelantada.

    Usando heursticas de bsqueda Tab: Encon-tramos el trabajo de Acero y Torres [31] paralneas de produccin flexible. Propusieron unarepresentacin natural de una solucin factiblepor medio de un vector de dimensiones 2 x N xM componentes (siendo N el nmero de traba-jos y M el nmero de etapas).

    Usando algoritmos voraces: Trabajos de Chandy Scheneeberger [32] para lneas con mqui-nas simples y trabajos sin demoras.

    III. ALGORITMOS VORACES

    Los algoritmos golosos-miopes o voraces (delingls greedy-myopic) reciben esta denominacinpor las siguientes razones [34]:

    Es goloso o voraz porque siempre escoge elmejor candidato para formar parte de la solu-cin: aquel que tenga mejor valor de la funcinobjetivo, lo que constituye el cumplimiento decierto criterio goloso de seleccin.

    Es miope porque esta eleccin es nica einmodificable dado que no analiza ms all losefectos de haber seleccionado un elementocomo parte de la solucin. No deshacen unaseleccin ya realizada: una vez incorporado unelemento a la solucin permanece hasta el fi-nal y cada vez que un candidato es rechazado,lo es permanentemente.

    Se sabe sin embargo, que la calidad de losalgoritmos golosos est en relacin con las carac-tersticas de las instancias que pretenden resol-ver: puede arrojar muy buenos resultados paradeterminadas instancias del problema pero paraotras no. Otro inconveniente que presentan es que

  • MANUEL TUPIA et al.

    13FISI-UNMSM

    RISI 1(1), 9-18 (2004)

    se estancan en ptimos locales de las funcionesque pretenden optimizar y quiz no analizan ve-cindades ms all del criterio goloso por lo quepueden estar dejando de considerar al ptimo glo-bal. Analicemos la siguiente figura:

    Puede verse que en valores de entre 5 y 10,la funcin a optimizar arroja ptimos locales peroque no puede apreciar ms all, la presencia deun mejor valor global pico. Vamos a presentar unalgoritmo voraz planteado en su forma genrica.Previamente consideremos las siguientes variables:

    Figura 2: Miopa de los algoritmos voraces y estancamiento en ptimoslocales.

    Figura N. 3: Estructuras de datos para un algoritmovoraz.

    El algoritmo voraz en su forma general seracomo sigue:

    Figura N. 4: Algoritmo voraz en su formato genrico.

    IV. ALGORITMO VORAZ PROPUESTO

    Debemos partir del supuesto que se tiene unainstancia de trabajo completa que incluya lo siguien-te: cantidad de tareas y mquinas (N y M respec-

    tivamente), matriz de tiempos de ejecucin T ylista de predecesoras por tarea.

    4.1. Estructuras de datos usadas por elalgoritmo

    Consideremos que en el lote hay al menosuna tarea sin predecesoras que se convertir en lainicial, as como no existen referencias circularesentre las predecesoras de las tareas que impidansu correcta programacin. En la siguiente figuravemos las estructuras de datos que vamos a nece-sitar para la presentacin del algoritmo:

    N: nmero de tareas NJJJ ,...,, 21M: nmero de mquinas

    MMMM ,...,, 21Matriz T: [ ijT ] MxN de tiempos de procesamiento,donde cada entrada representa el tiempo que sedemora la mquina j-sima en ejecutar la tarea i-sima.Vector A: [ iA ] de tiempos de procesamientoacumulado, donde cada entrada iA es el tiempo detrabajo acumulado de la mquina iM .

    kP : Conjunto de tareas predecesoras de la tarea kJ .Vector U: [ kU ] de tiempos de finalizacin de cadatarea kJ .Vector V: [ kV ] de tiempos de finalizacin de las tareaspredecesoras de kJ , donde se cumple que

    kV krr PJU = },max{ .iS : Conjunto de tareas asignadas a la mquina iM .

    E: Conjunto de tareas programadas.C: Conjunto de tareas candidatas a ser programadas.

    Figura N. 5. Estructuras de datos usadas por el algoritmo.

    Algoritmo Voraz General(N,c,S,E,F)Inicio 0. Leer N, c, E, F 1. Ordenar bajo algn criterio, los elementos de

    E de acuerdo al valor de c 2. S:= f 3. Para i: 1 a N, hacer 3.1.Si S {ei} es una solucin viable entonces S =

    S {ei}Fin Voraz General

    E = {e1, e2, e3, e4,.., eN} es una coleccin de Nobjetos o variables del problema.

    F: es una coleccin de subconjuntos de elemen-tos de E que cumple con una determinadapropiedad

    c: E R es la funcin a optimizar.

    S: conjunto solucin.

  • 14

    UN ALGORITMO VORAZ PARA RESOLVER EL PROBLEMA DE LA PROGRAMACIN DE TAREAS DEPENDIENTES EN MQUINAS DIFERENTES

    FISI-UNMSM

    4.2 Consideraciones Generales

    Los lineamientos generales de este algorit-mo son los siguientes:

    Seleccionar las tareas aptas o candidatas a serejecutadas siguiendo los siguientes criterios: El criterio goloso de seleccin de la mejor

    tarea a ejecutar: Se escoge aquella tareacuyo tiempo de ejecucin sea el ms bajopara evitar perturbaciones.

    El criterio goloso de seleccin de la mejormquina ejecutora: La tarea se asigna a lamquina que la ejecuta en menor tiempo.

    Una tarea se considerar apta para ser ejecu-tada si todas sus predecesoras ya han sido pro-gramadas o carece de ellas.

    En el caso particular de las tareas cuyas prede-cesoras ya han sido ejecutadas en su totalidadseguiremos as: Como la tarea iJ se debe ejecutar despus

    de todas sus predecesoras, debemos ubicarla predecesora que finaliza ms tarde (ter-mina de ser ejecutada en el mayor tiempo).

    La mejor mquina kM se elegir de entrelos M valores posibles: ser aquella que mi-nimice el valor de la suma de la entrada dela matriz de tiempos de ejecucin ijT conel mximo de entre la entrada correspon-diente al vector de tiempos acumulados res-pectiva kA y al tiempo de finalizacin de laltima de las predecesoras de: Ji: Vk

    krr PJU = },max{ A la mejor mquina le asignamos tarea J,

    actualizando al vector A en la entrada co-rrespondiente a Mk.

    Se repite el proceso para el resto de tareas.

    Finalmente el mayor tiempo o entrada de lalista A ser el makespan.

    4.2.1 Criterio de seleccin de la mejor tarea

    Sean por ejemplo, las tareas y tareas sin pre-decesoras; se tienen 3 mquinas M1, M2, M 3 y unextracto de la matriz de tiempos de ejecucin T enla tabla N. 1:

    Tabla N. 1. Extracto de una matriz de tiempos deejecucin T.

    Sin perder generalidad y basndonos en elextracto de la tabla anterior formaremos dos lis-tas1 con los tiempos acumulados de trabajo:

    Lista para la tarea 1J : {10, 12, 11}. Determi-namos el mnimo: 10

    Lista para la tarea 2J : {23, 9, 8}. Determina-mos el mnimo: 8

    A partir de los datos anteriores, nuestro cri-terio de seleccin de la mejor tarea escogera latarea para ser ejecutada en primer lugar, debidoa que su tiempo de acumulado goloso es ms bajo(10>8) que el tiempo acumulado.

    4.2.2 Criterio goloso de seleccin de la mejormquina

    Por su parte, el criterio goloso de seleccinde la mejor mquina ser el de aquella que ejecu-ta la tarea apta para ser programada (elegida des-de el criterio anterior) en el menor tiempo. Luego,siguiendo el ejemplo: para J2 tenemos que el me-nor tiempo de ejecucin es 8 unidades, corres-pondiente a la mquina M3. A la mquina M3 se leasignara la ejecucin de la tarea J2.

    4.3 Presentacin del algoritmo propuesto

    1 La formacin de las listas no es tan trivial como la simple copia directa de los datos de la matriz T. Ms adelante se explica elproceso correspondiente.

    M1 M2 M3J1 10 12 11J2 23 9 8

    Inicio Algoritmo_Voraz_HETDEP(M, N, T , A, S, U, V) 1. Leer e inicializar N, M, NJJJ ,...,, 21 , T, A, S, U, V2. E = f 3. Mientras NE hacer Inicio 3.1 C = f 3.2 Para : 1 a N, hacer Si (P E) (J E) C = C { J } 3.3 Para cada J C hacer Inicio 3.3.1 lV }{max lPJ Ukl= 3.3.2 k = }},max{{],1[ liil

    CJMi VATArgMin

    l

    +

    3.3.3 i = }},max{{],1[ kppkMp VATArgMin + Fin para 3.4 iS = iS }{ kJ 3.5 E = E }{ kJ 3.6 =iA },max{ kiik VAT + 3.7 kU = iA

  • MANUEL TUPIA et al.

    15FISI-UNMSM

    RISI 1(1), 9-18 (2004)

    Figura N. 6. Algoritmo voraz propuesto.

    4.3.1 Comentarios

    Lnea 1: Se inicializan las estructuras de datos.

    Lnea 2: Se inicializa el conjunto E en vaco por-que ninguna tarea ha sido programada an.

    Lnea 6: El proceso de programacin terminarcuando en el conjunto E estn contenidas las Ntareas (cardinalidad de E igual a N).

    - Lnea 3.1: El conjunto C de tareas candidatasa ser programadas (aptas) se inicia en va-co para cada iteracin.

    - Lnea 3.2: Se procede a determinar las ta-reas candidatas. Sabemos que una tarea J

    l

    formar parte de C si sus predecesoras yahan sido ejecutadas (incluidas en E) o nopresenta predecesoras (vaco incluido en E)y si adems dicha J

    l no ha sido programada(no pertenece a E).

    - Lnea 3.3: Para las tareas candidata de Cseleccionaremos la mejor, as como la me-jor mquina ejecutora siguiendo los crite-rios explicados en apartados anteriores.

    Lnea 3.3.1: Actualizamos al vector V. Es-cogemos la predecesora de la tarea J

    l

    que finaliza ms tarde (mayor entradade U de las predecesoras de J

    l).

    Lnea 3.3.2: Criterio de seleccin de lamejor tarea: para cada tarea J

    l en C,formamos una lista de M elementos con-teniendo el tiempo de ejecucin ilT paracada Mi mquina, ms el mximo valorentre la entrada correspondiente de iAy el tiempo de la ltima predecesora deJ! en ser ejecutada (V!). Esto repetimos,debido a que J! debe programarse des-pus de la finalizacin de todas sus pre-decesoras (en particular de la que aca-ba al final). De cada lista obtenemos el

    mnimo valor, y de entre todos los mni-mos hallados (uno por cada tarea J

    l

    candidata) escogemos el menor. Aque-lla tarea que posee ese tiempo mnimo(el mejor de los mnimos locales), serla mejor a programar (argumento k).

    Lnea 3.3.3: Criterio de seleccin de lamejor mquina: una vez conocida la ta-rea k-sima (k calculado en la lnea an-terior) a programar, usando el criteriogoloso de mejor a aquella mquina queejecute a k en el menor tiempo, volve-mos a generar la lista anterior para Jk:esta vez elegimos la menor entrada co-rrespondiente a la mejor mquina (ar-gumento i).

    - Lnea 3.4: Actualizamos S para la entrada

    iS , pues ahora la mquina Mi ejecuta a latarea Jk.

    - Lnea 3.5: Actualizamos E, con Jk porque yaest programada.

    - Lnea 3.6: Actualizamos al vector iA .

    - Lnea 3.7: Actualizamos al vector U. El tiempode finalizacin de Jk ser igual a la entradade iA .

    Lnea 4: Se calcula el makespan que es la ma-yor entrada del vector A.

    Lnea 5: Se presentan el makespan y las tareasasignadas a cada mquina.

    V. EXPERIENCIAS NUMRICAS

    Las instancias con las que se prob el algorit-mo estn conformadas por la cantidad M de m-quinas, N de tareas y por una matriz T de tiemposde ejecucin. Los valores que se manejaron paraM y N respectivamente fueron:

    Nmero de tareas N: En el intervalo 100 a 250,tomando como puntos de referencia los valo-res de 100, 150, 200, 250.

    Nmero de mquinas M: Un mximo de 50mquinas tomando como puntos de referencialos valores de 12, 25, 37, 50.

    Matriz de tiempos de proceso: Se generar deforma aleatoria con valores entre 1 y 100 uni-dades de tiempo.2

    2 Notemos que un tiempo de ejecucin muy alto (+a) puede interpretarse como que la mquina no ejecuta una tarea determinada.Usar en este caso un tiempo de ejecucin igual a 0 podra confundirse como que la mquina ejecuta tan rpido la tarea que sepuede asumir que lo hace de forma instantnea, sin ocupar tiempo.

    k i

    Fin Mientras 4. makespan = Mk ..1max kA 5. Retornar makespan, iS ],1[ Mi "

    Fin Algoritmo_Voraz_HETDEP.

  • 16

    UN ALGORITMO VORAZ PARA RESOLVER EL PROBLEMA DE LA PROGRAMACIN DE TAREAS DEPENDIENTES EN MQUINAS DIFERENTES

    FISI-UNMSM

    En total tenemos 16 combinaciones para lascombinaciones de mquinas-tareas. De la mis-ma forma, para cada combinacin se generarn 10instancias diferentes, lo que arroja un total de 160problemas-test realizados. Se enfrent el algo-ritmo voraz con una meta heurstica GRASP [36]:

    3 Esta versin gratuita del LINDO tiene limitantes en el nmero de restricciones que puede contener el modelo, de all que con lasversiones profesionales del programa podramos trabajar con instancias de mayor porte.

    N 6 8 12 15 10 15 20 25M 3 3 3 3 5 5 5 5

    Las Tablas N.os 10 y 11 resumen los resulta-dos exactos obtenidos frente a los resultadosheursticos (solucin voraz) y meta heursticos (so-lucin GRASP). Asimismo, presentaremos los va-lores de las constantes de relajacin usadas parala fase de construccin GRASP en donde se reali-zaron cerca de 7000 iteraciones para todos loscasos.

    Los promedios de eficiencia estn haciendo re-ferencia a qu tan cerca est la solucin del mtodorespectivo de la solucin considerada exacta.

    De otro lado, para determinar la real calidadde las soluciones decidimos aplicar el modelo ma-temtico del problema a paquetes solucionadoresde problemas de la programacin lineal como laherramienta LINDO [35] en su versin estudiantil3,a fn de obtener soluciones exactas y enfrentarlascon las que arrojaba el algoritmo voraz propuesto.Para que los modelos sean manejables se disminu-y considerablemente el tamao de las instanciasde prueba. A continuacin se presenta la configura-cin de dichas instancias (recurdese que N es elnmero de tareas y M el nmero de mquinas):

    Tabla N. 4. Eficiencia de la solucin voraz para instancias con M igual a 3.

    GOLOSO Makespan Makespan %

    100 \ 12 213.3 193.7 100 \ 25 113.7 108.6 100 \ 37 76.5 74.3 100 \ 50 59.1 57.8 150 \ 12 283.1 258.2 150 \ 25 125.2 114 150 \ 37 86.1 84.1 150 \ 50 68.6 67.4 200 \ 12 325.9 307 200 \ 25 127 117 200 \ 37 109.8 105.2 200 \ 50 76.4 74.6 25 0 \ 12 411.8 377.1 250 \ 25 183.5 168.2 250 \ 37 125.3 119.6 250 \ 50 96.5 91.1

    \

    GRASP C

    Eficiencia algoritmo GRASP sobre el algoritmo Goloso

    TareasMquinas\

    Tabla N. 2. Eficiencia del algoritmo voraz frente auna meta heurstica GRASP.

    Matriz N M Resultado del LINDO

    Algoritmo voraz

    AGRASP

    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

    Tabla N. 3: Configuracin de instancias N x M paralos experimentos exactos.

  • MANUEL TUPIA et al.

    17FISI-UNMSM

    RISI 1(1), 9-18 (2004)

    VI. CONCLUSIONES

    El algoritmo voraz arroja soluciones que es-tn muy cerca de las soluciones exactas. El tiempoque le ocupa al computador ejecutar este algorit-mo es insignificante para casi cualquier instanciade prueba (por debajo de los 2 segundos). Siendotan solo una heurstica, apenas es superada porlos algoritmos meta heursticos a los que se en-frent, siendo muy buenos los resultados para ins-tancias de gran porte.

    Los sistemas existentes en el mercado quepueden ser considerados como planificadores detareas no han aplicado tcnicas meta heursticassino ms bien mtodos exactos. No buscan laoptimizacin del ordenamiento de las tareas a eje-cutar, sino ms bien dan nfasis a encontrar pla-nes factibles de ser ejecutados (penalidades msque orden). Tampoco existen sistemas que planifi-quen lneas de produccin completas consideran-do entre otras cosas: el desplazamiento de los pro-ductos, la ejecucin de las operaciones, la disposi-cin de la maquinaria (layout) y de las facilidades(instalaciones), potenciales reducciones de los tiem-pos muertos, etc.

    El tiempo de ejecucin es bastante bajo parala configuracin del hardware donde se realizaronlas pruebas Esto nos lleva a inferir que, con unaconfiguracin ms potente s se podra pasar estabarrera. El tiempo de CPU empleado no pasaba delos 2 segundos para las instancias ms grandes(250x50).

    VII. BIBLIOGRAFA

    1. Miller G., Galanter E. Plans and the Structure ofBehavior, Editorial Holt, New York-USA (1960)

    2. Drozdowski M. Scheduling multiprocessor tasks:An overview, European Journal, OperationResearch 94: 215230 (1996).

    3. Campello R., Maculan N. Algoritmos e HeursticasDesenvolvimiento e avaliaao de performance.Apolo Nacional Editores, Brasil (1992).

    4. Pinedo M. Scheduling, Theory, Algorithms andSystems. Prentice Hall (1995 y 2002)

    5. Feo T., Resende M., Greedy RandomizedAdaptive Search Procedure Journal of GlobalOptimization, 6:.109-133 (1995).

    6. Rauch W. Aplicaciones de la inteligencia Artifi-cial en la actividad empresarial, la ciencia y laindustria. Tomo II, Editorial Daz de Santos, Es-paa (1989).

    7. Kumara P. Artificial Intelligence: Manufacturingtheory and practice . Editorial NorthCrossInstitute of industrial Engineers, USA (1988).

    8. Blum A., Furst M. Fast Planning through Plan-graph Analysis. Article of memories from 14thInternational Joint Conference on ArtificialIntelligence, pp. 1636-1642. Ediciones Morgan-Kaufmann - USA (1995).

    9. Conway R. Theory of Scheduling. AddisonWesley Publishing Company, MassachussetsUSA, (1967).

    10.Miller G; Galanter E. Plans and the Structure ofBehavior. Editorial Holt, New York-USA, (1960).

    11.Surez R., Bautista J., Mateo M. Secuenciacinde tareas de ensamblado con recursos limita-dos mediante algoritmos de exploracin deentornos. www.upc.es/sol.upc.es/~suarez/pub.html Instituto de Organizacin y Control deSistemas Industriales Universidad Politcnica deCatalua (1999).

    Tabla N. 5. Eficiencia de la solucin voraz para instancias con M igual a 5.

    Matriz N MResultado del LINDO

    Algoritmo voraz

    Algoritmo GRASP

    % Exacto/Voraz

    % Exacto/GRASP

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

    Promedios de eficiencia

    a q

  • 18

    UN ALGORITMO VORAZ PARA RESOLVER EL PROBLEMA DE LA PROGRAMACIN DE TAREAS DEPENDIENTES EN MQUINAS DIFERENTES

    FISI-UNMSM

    12. Bard J; Feo T. Operations sequencing in discreteparts manufacturing Journal of ManagementScience. 35: 249-255 (1989)

    13. Bard J; Feo T. An algorithm for manufacturingequipment selection problem. IEEETransactions, 23: 83-91, (1991).

    14. Brucker P; Jurisch B; Sievers B. A branch andbound algorithm for the job-shop schedulingproblem. Journal of Discrete AppliedMathematics, 49:105-127 (1994)

    15. Binato S., Hery W., Loewenstern D. y Resende M.A GRASP for Job Scheduling. Technical ReportN 00.6.1 AT&T Labs Research (1999-200).

    16. Gonalves J., Magalhes J., Resende M. A HibridGenetic algorith for the Jos Shop Scheduling.AT&T Labs Research Technical Report TD-5EAL6J (2002).

    17. Davis L. Job shop scheduling with geneticalgorithms. First International Conference onGenetic Algorithms and their Applications, 136-140. Morgan Kaufmann USA, (1985).

    18. International Conference on Genetic Algorithmsand their Applications (1, 1985, USA). Job shopscheduling with genetic algorithms. (reporte) Ed.Davis L., Morgan Kaufmann USA, 136-140.

    19. Taillard E. Parallel Taboo Search Technique forthe Job shop Scheduling Problem. Journal onComputing Science, 6: 108-117, (1994).

    20. Chambers J; Barnes W. Taboo Search for theFlexible-Routing Job Shop Problem. Departmentof Computer Sciences, University of Texas-USA, Reporte tcnico TAY 2.124, (1997).

    21. Subramani V; Kettimuthu R; Srinivasan S;Sadayappan P. Distributed Job Scheduling onComputational Grids using MultipleSimultaneous Requests. Department ofComputer and Information Science of OhioState University, USA. Disponible http://www.gridforum.org (2003).

    22. Tupia, M. Un algoritmo Voraz Adaptativo yRandmico para resolver el problema de la Pro-gramacin de Tareas independientes en m-quinas homogneas. Pontificia Universidad Ca-tlica del Per (2001).

    23. Kleinrock L. Quering Systems. John WileyEditions, USA, (1974).

    24. Yongpei Guan Y, Wen-Qiang Xiao, Cheung R.;Chung-Lu Lin. A multiprocessor task schedulingmodel for berth allocation heuristic and worst-case analysis. Operations Research Letters, 30:343 350, Elsevier Science, (2002).

    25. AFIPS Fall Joint Computer Conference (1962,USA). An experimental time-sharing system.memoria Eds. Corbato F, Merwin M, Daley R.,USA, 335-344.

    26. Bans J; Moncus A; Labarta J. The Last CallScheduling Algorithm for Periodic and SoftAperiodic Tasks in Real-Time Systems.Departament dEnginyeria InformticaUniversitat Rovira i Virgili, Tarragona Espaa(2000).

    27. Feo T; Sarathy K; McGahan J. A GRASP forsingle machine scheduling with sequencedependt setup cost and linear delay penalities.University of Texas USA, reporte tcnico TX78712-1064 (1994).

    28. Ros R; Bard J. Heursticas para elsecuenciamiento de tareas en lneas de flujo(en lnea). Universidad Autnoma de NuevoLen (Mxico) Disponible http://osos.fime.uanl.mx/~roger/ papers (2000).

    29. Nawaz M; Enscore E; Ham I. A heuristic algorithmfor the m-machine, n-job flow-shop sequencingproblem. Omega, 11(1): 91-95 (1983).

    30. Feo T; Venkatraman K. A Grasp for a difficult sin-gle machine scheduling problem. Journal ofComputer and Operation Research, No.18 (1991).

    31. Acero R; Torres J. Aplicacin de una heursticade bsqueda tab en un problema de progra-macin de tareas en lnea flexible de manu-factura. Revista de la Sociedad de Estadsticae Investigacin Operativa, Colombia, 5(2):283297, (1997).

    32. Chand S; Schneeberger H. Single machinescheduling to minimize earliness subject to no-tardy jobs. European Journal of OperationalResearch, 34: 221-230 (1988).

    33. Laguna M; Gonzalez J. A search heuristic forjust-in-time scheduling in parallel machines.Journal of Intelligent Manufacturing, No. 2:253-260, (1991).

    34. Cormen T.; Leiserson Ch.; Rivest R.Introduction to Algorithms, MIT Press, Edito-rial McGraw Hill (2001)

    35. Scharage L. Optimization modeling with LIN-DO. Duxbury Press. USA (1997).

    36. Conferencia Latinoamericana de Informtica(30,2004, Per) (a imprimirse) Un algoritmoGRASP para resolver el problema de la pro-gramacin de tareas dependientes enmaquinas diferentes, memoria Eds. M. Solar,D. Fernndez-Baca, E. Cuadros-Vargas,Arequipa Per, p. 129139, (2004).