Job-shop Problem en una perspectiva de algoritmoparalelo

5
1 Job-shop Problem en una perspectiva de algoritmo paralelo Morales Canahualpa, Leonel  Resumen—El presente articulo hace parte de un proyecto de investigaci´ on del uso de algorit mos paral elos para mejorar el tiempo de ejecuci´ on y hallar soluciones a ciertos problemas de optimizaci´ on combinatoria como pue den ser el pr oble ma del V endedor viajer o, el prob lema del  ´ arbol de expansi ´ on m´ ınima, pro blema de la moc hila , etc; pero nos enf ocaremos especia l- mente el el pro ble ma de pr ogra mac i´ on de trabajos. Pr esen ta los conceptos b´ asicos de teor´ ıa y alguna s implementacio nes en programaci ´ on paralela.  Descriptores—Optimizaci ´ on combinatoria, problema de pro - gramaci ´ on de trabaj os,J ob-Sh op Prob lem, Ant Colony Optimi- zation, algoritmos paralel os. I. I NTRODUCCI ´ ON O PTIMIZACI ´ ON es un campo de a ´ un r ´ apido crecimiento. Ha jugado un rol vital en muchas  ´ areas de la ciencia, ingenier ´ ıa, negocios y nuestra vida diaria. En a ˜ nos recientes, las aplicaciones de optimizaci ´ on y el incremento de la velo- cidad computacional(incluyendo computadoras paralelas) han creado muchas nuevas fronteras y retos ambos te ´ oricamente y num´ ericamente para los investigadores y practicantes en el campo de la optimizaci ´ on. En todo sistema de producci ´ on las necesidades de los clien- te s se tr ad uc en en ´ ord ene s de pro duc ci´ on que se libera n y tra nsf orman en tra baj os con fec ha de ent re ga aso cia da. La prog rama ci ´ on de producci´ on que asigna estos tra baj os a recu rsos produ cti vos limi tado s, debe real izar se de manera det all ada y ec ien te par a per mi tir un mej or con tr ol de las opera cione s dentr o del sist ema produ cti vo y cons titu ir una ventaja competitiva dif ´ ıcil de imitar. Los diferentes productos requieren en su fabricaci ´ on distintas operaciones, las cuales se realizan en un orden y conguraci ´ on produ cti va determinada, que depen de del tipo de produ cto, el volumen de producci´ on, la va rie dad de pro duc tos que se producen en el sistema, etc ´ etera. El  talle r de m ´ aquinas paralelas  consis te en un sis tema de m m´ aqui nas disp uest as en para lelo (multica pacid ad), que procesan trabajos que requieren una operaci ´ on, la cual puede realizarse en cualesquiera de las m m´ aquinas. Los probl emas de opti mizaci ´ on de acue rdo al ta ma ˜ no, su espacio de b ´ usqueda puede ser demasiado grande y su soluci ´ on por t ´ ecnicas de enumeraci ´ on exhaustiva puede tomar mucho tiempo, adem´ as de los problemas de espacio de memoria en uso del computador. Debido a esto, en la pr´ actica, algoritmos de b ´ usqueda heur´ ıstica son necesarios para hallar (no necesa- riamente  ´ optima) soluciones a estos problemas. Las heur ´ ısticas exploran una peque ˜ na parte del espacio soluci ´ on del problema, donde se cree que buenas soluciones se pueden hallar. Par a res olver la pro gra ma ci´ on de un  taller de m´  aquinas  paralelas  exis ten dife rent es m ´ eto dos exactos y heu r´ ısticos, constructivos o de mejora. La  heur ´ ıstica  LPT es una de las heur´ ısticas cl´ asicas de buen desempe˜ no que resuelve el pro- blema sin tiempos de preparaci ´ on dependientes de la secuencia y minimizaci ´ on de  makespan. Se han tra tad o dif ere ntes pro ble mas de m ´ aquinas paralelas id´ enti cas con setu p aplicando dife rentes meta heur´ ıst ica s y etodos de b´ usqueda local. I I . DEFINIENDO UN PROBLEMA DE OPTIMIZACI ´ ON COMBINATORIA Los problemas de optimizaci ´ on combinatoria son un sub- conjunto de problemas globales de optimizaci ´ on, los cuales se podr´ ıan denir de forma general as´ ı : Optimizar  f (x)  con las restricciones: h i  b i i = 1 ...l  (1) h i  b i i = l  + 1 ...m  (2) h i  =  b i i = m + 1 ...n  (3) x  es la va ria ble de dec isi´ on a det ermina r de tal mane ra que optimicef  cumpliendo las restricciones. En los problemas de optimizaci ´ on comb inat oria, las var iable s de deci si ´ on son enteras y, por lo general, el espacio de soluciones est ´ a formado por ordenaciones o subconjuntos de n ´ umeros naturales. I I I . EL TALLER DE M ´ AQUINAS PARALELAS En este trabajo se trata el problema del  taller de m ´ aquinas  paralelas id ´ enticas con tiempos de preparaci ´ on dependientes de la secuencia, que consiste en resolver la programaci ´ on de trabajos en un sistema de capacidad m ´ ultiple con m m´ aquinas que realizan operaciones iguales, dispuestas en paralelo y n trabajos a procesar en una, y s ´ olo una, de las m ´ aquinas. El con- cepto de m´ aquinas id ´ enticas signica que cada trabajo puede ser procesado en cada una de las m ´ aquinas con igual tiempo de pro ces o. El tie mpo de pre par aci ´ on en el que se incurre al procesar un trabajo en una m´ aquin a depe nde del trab ajo previamente procesado en la misma. Este tipo de conguraci ´ on est ´ a presente en diferentes ambientes de manufactura como en la industria textil, industria de la madera, etc ´ etera. El ti empo de pr oceso de ca da tr abaj o est ´ a j o y ex is ten tiempos de preparaci´ on de m´ aquinas que dependen del orden en el que se procesan los trabajos en cada una. El objetivo considerado en este trabajo es minimizar el  makespan  C m ax, que consiste en minimizar el intervalo de tiempo entre el inicio del procesamiento del primer trabajo (tiempo de referencia 0) y el tiempo determinaci´ on del procesamiento del ´ ultimo trabajo,

Transcript of Job-shop Problem en una perspectiva de algoritmoparalelo

Page 1: Job-shop Problem en una perspectiva de algoritmoparalelo

8/10/2019 Job-shop Problem en una perspectiva de algoritmoparalelo

http://slidepdf.com/reader/full/job-shop-problem-en-una-perspectiva-de-algoritmoparalelo 1/5

1

Job-shop Problem en una perspectiva de algoritmo

paraleloMorales Canahualpa, Leonel

 Resumen—El presente articulo hace parte de un proyecto deinvestigacion del uso de algoritmos paralelos para mejorar eltiempo de ejecucion y hallar soluciones a ciertos problemas deoptimizacion combinatoria como pueden ser el problema delVendedor viajero, el problema del   arbol de expansion mınima,problema de la mochila, etc; pero nos enfocaremos especial-mente el el problema de programacion de trabajos. Presentalos conceptos basicos de teorıa y algunas implementaciones enprogramacion paralela.

 Descriptores—Optimizacion combinatoria, problema de pro-gramacion de trabajos,Job-Shop Problem, Ant Colony Optimi-zation, algoritmos paralelos.

I. INTRODUCCION

OPTIMIZACION es un campo de aun rapido crecimiento.

Ha jugado un rol vital en muchas   areas de la ciencia,

ingenierıa, negocios y nuestra vida diaria. En anos recientes,

las aplicaciones de optimizacion y el incremento de la velo-

cidad computacional(incluyendo computadoras paralelas) han

creado muchas nuevas fronteras y retos ambos teoricamente

y numericamente para los investigadores y practicantes en el

campo de la optimizacion.

En todo sistema de produccion las necesidades de los clien-

tes se traducen en ordenes de produccion que se liberan

y transforman en trabajos con fecha de entrega asociada.La programacion de produccion que asigna estos trabajos

a recursos productivos limitados, debe realizarse de manera

detallada y eficiente para permitir un mejor control de las

operaciones dentro del sistema productivo y constituir una

ventaja competitiva dif ıcil de imitar.

Los diferentes productos requieren en su fabricacion distintas

operaciones, las cuales se realizan en un orden y configuracion

productiva determinada, que depende del tipo de producto,

el volumen de produccion, la variedad de productos que se

producen en el sistema, etcetera.

El   taller de m´ aquinas paralelas   consiste en un sistema de

m maquinas dispuestas en paralelo (multicapacidad), que

procesan trabajos que requieren una operacion, la cual puederealizarse en cualesquiera de las m maquinas.

Los problemas de optimizacion de acuerdo al tamano, su

espacio de busqueda puede ser demasiado grande y su solucion

por tecnicas de enumeracion exhaustiva puede tomar mucho

tiempo, ademas de los problemas de espacio de memoria en

uso del computador. Debido a esto, en la practica, algoritmos

de busqueda heurıstica son necesarios para hallar (no necesa-

riamente optima) soluciones a estos problemas. Las heurısticas

exploran una pequena parte del espacio solucion del problema,

donde se cree que buenas soluciones se pueden hallar.

Para resolver la programacion de un   taller de m´ aquinas

 paralelas   existen diferentes metodos exactos y heurısticos,

constructivos o de mejora. La   heur   ıstica   LPT es una de las

heurısticas clasicas de buen desempeno que resuelve el pro-

blema sin tiempos de preparacion dependientes de la secuencia

y minimizacion de  makespan.

Se han tratado diferentes problemas de maquinas paralelas

identicas con setup aplicando diferentes metaheurısticas y

metodos de busqueda local.

II. DEFINIENDO UN PROBLEMA DE OPTIMIZACION

COMBINATORIA

Los problemas de optimizacion combinatoria son un sub-

conjunto de problemas globales de optimizacion, los cuales se

podrıan definir de forma general ası :

Optimizar f (x)   con las restricciones:

hi  ≤ bii = 1 . . . l   (1)

hi  ≥ bii =  l + 1 . . . m   (2)

hi  =  bii =  m + 1 . . . n   (3)

x   es la variable de decision a determinar de tal manera

que optimicef  cumpliendo las restricciones. En los problemas

de optimizacion combinatoria, las variables de decision son

enteras y, por lo general, el espacio de soluciones esta formadopor ordenaciones o subconjuntos de numeros naturales.

III. EL TALLER DE MAQUINAS PARALELAS

En este trabajo se trata el problema del   taller de m ´ aquinas

 paralelas id   enticas con tiempos de preparaci ´ on dependientes

de la secuencia, que consiste en resolver la programacion de

trabajos en un sistema de capacidad multiple con m maquinas

que realizan operaciones iguales, dispuestas en paralelo y n

trabajos a procesar en una, y solo una, de las maquinas. El con-

cepto de maquinas identicas significa que cada trabajo puede

ser procesado en cada una de las maquinas con igual tiempo

de proceso. El tiempo de preparacion en el que se incurreal procesar un trabajo en una maquina depende del trabajo

previamente procesado en la misma. Este tipo de configuracion

esta presente en diferentes ambientes de manufactura como en

la industria textil, industria de la madera, etcetera.

El tiempo de proceso de cada trabajo esta fijo y existen

tiempos de preparacion de maquinas que dependen del orden

en el que se procesan los trabajos en cada una. El objetivo

considerado en este trabajo es minimizar el  makespan C max,

que consiste en minimizar el intervalo de tiempo entre el inicio

del procesamiento del primer trabajo (tiempo de referencia 0) y

el tiempo determinacion del procesamiento del ultimo trabajo,

Page 2: Job-shop Problem en una perspectiva de algoritmoparalelo

8/10/2019 Job-shop Problem en una perspectiva de algoritmoparalelo

http://slidepdf.com/reader/full/job-shop-problem-en-una-perspectiva-de-algoritmoparalelo 2/5

2

Figura 1. Al haber maquinas con diferente rendimiento al trabajo, se tiene que programar los procesos.

es decir, el intervalo de tiempo en el que se procesa comple-

tamente la totalidad de los trabajos (ordenes de produccion).

Se consideran los siguientes supuestos:

1. Cada operacion debe ser procesado en una, y solo una

maquina k, k = 1, 2,...,n.2. El tiempo de proceso del trabajo   i   en la maquina   j,

esta dado por  pij((i, j) = (1, 1),..., (m, n)).

3. Cada maquina puede procesar solo un trabajo a la vez.

4. El proceso de un trabajo en una maquina no se puede

interrumpir (nonpreemption).

5. Todos los trabajos son independientes entre sı y s e

encuentran disponibles en el instante inicial.

6. Las maquinas operan sin fallas en el horizonte de pro-

gramacion.

7. El objetivo es minimizar  C max.

Bajo la notacion introducida por Graham el problema de

maquinas paralelas caracterizado por los supuestos menciona-

dos se denota por  P m/sij/C max, y es un conocido problemaNP-Hard, lo que hace impracticable la obtencion de la solucion

optima para problemas de mediano a gran tamano.

En este trabajo se resuelve el problema P m/sij/C max  usando

distintas heurısticas y algoritmos. Un esquema simple para

resolver la programacion para este problema es definir un orde-

namiento de los trabajos de acuerdo a un criterio determinado,

y luego continuar de acuerdo al procedimiento de asignacion

de trabajos presentado en el algoritmo 1.

Algoritmo 1  Asignacion de trabajos

Definir ListaTrabajos ordenada por un criterio.

mientras   ListaTrabajos no vacıa   hacer

Asignar primer trabajo de la lista a la maquina dondefinaliza antes.

Eliminar primer trabajo de ListaTrabajos.

fin mientras

Utilizaremos la regla LPT (largest processing time) para ge-

nerar la ListaTrabajos inicial del procedimiento de Asignacion

de Trabajos del algoritmo 1.

IV. ALGORITMO GENETICO

Los algoritmos geneticos fueron introducidos por Holland

(1975), utilizan un lenguaje de genetica natural modelando,

en forma artificial, mecanismos de la evolucion natural apli-

cados a la optimizacion de problemas. Asocian el concepto

de individuo a una solucion factible del problema y el de

poblacion a un conjunto de individuos (soluciones factibles).

Los individuos estan formados por genes (elementos orde-nados en una sucesion lineal), que se evaluan a traves de

una funcion de aptitud denominada fitness, que corresponde

a una medida de la calidad del individuo como solucion del

problema (Goldberg, 1989; Davis, 1991 y Michalewicz,1999).

Otros enfoques evolutivos actuales e inspirados en procesos de

la naturaleza, extendidos tambien a mas de un objetivo pueden

revisarse en Coello et al. (2010). El algoritmo 2 muestra una

estructura general de un algoritmo genetico.

La poblacion inicial de soluciones   (P 0)   se determina de

Algoritmo 2  Algoritmo Genetico

1:   t ←− 0

2:   inicializar3:   evaluar  P i4:   mientras  t < N g   hacer

5:   t ←− t + 16:   seleccionar padres de  P i7:   formar particion  P i8:   evaluar  P i9:   fin mientras

manera aleatoria y el proceso de seleccion durante el pro-

ceso evolutivo se realiza de acuerdo con una distribucion

de probabilidades, que determina que un individuo tiene una

probabilidad de ser seleccionado proporcional a su fitness.

Esto significa que en el proceso de seleccion los individuos demejor fitness tienen mayor probabilidad de ser seleccionados.

La formacion de la poblacion de la generacion t  (P t), a partir

de la poblacion de la generacion   t − 1 (P t−1), se realiza de

acuerdo con un proceso de cruzamiento, ver figura 2, de dos

individuos, sujeto a una probabilidad de cruzamiento   ( pc),

generando descendencia (hijos). Sobre la descendencia opera

una mutacion, ver figura 3, de acuerdo con una probabilidad

de mutacion (P m). La evaluacion de la poblacion P t   evalua a

cada individuo determinando su fitness. El proceso evolutivo

utiliza un operador de cruzamiento y un operador de mutacion,

y se realiza hasta que se evaluan N g  generaciones.

Page 3: Job-shop Problem en una perspectiva de algoritmoparalelo

8/10/2019 Job-shop Problem en una perspectiva de algoritmoparalelo

http://slidepdf.com/reader/full/job-shop-problem-en-una-perspectiva-de-algoritmoparalelo 3/5

3

Figura 2. Cruzamiento de dos individuos.

Figura 3. Mutacion de un individuo.

El   algoritmo gen´ etico   definido utiliza   individuos   con es-

tructura de   cromosoma   de   n   elementos, que representa una

lista ordenada de los trabajos a programar. El individuo es

evaluado obteniendo el  makespan  de la asignacion de trabajos

a las maquinas de acuerdo al procedimiento indicado en el

algoritmo 1. Se utilizo esta estructura del cromosoma, dado

que el   algoritmo gen´ etico   se comparo con otras heurısticas

que generan la programacion basada en una secuencia de

trabajos; el mismo argumento anterior explica tambien el por

que tampoco se adopto incluir elitismo en el proceso de

evolucion.

V. HEU RISTICA  LPT*

La heurıstica LPT, aplicada con buenos resultados al pro-

blema de maquinas paralelas sin setup, se extiende en este

trabajo al caso de maquinas paralelas identicas con setup,

denominandola heurıstica LPT*. La heurıstica LPT* redefine

los tiempos de proceso de cada trabajo i estimando su tiempo

de ocupacion de maquina (pei) como la suma de su tiempo

de proceso y el promedio de los tiempos de setup que puede

tener cada trabajo, esto es:

 pei =  pi +

n

j=1sji/n

En lugar de ordenar los trabajos de mayor a menor tiempo

de proceso pi como lo hace la heurıstica LPT, los trabajos

se ordenan de mayor a menor tiempo estimado de ocupacion

de maquina pei, formando ası la ListaTrabajos inicial para el

procedimiento de Asignacion de Trabajos de el algoritmo 1.

VI. OPTIMIZACION DE LA COLONIA DE HORMIGAS (ACO)

El comportamiento inteligente de diversos animales sociales

como hormigas, avejas, termitas, aves y peces, ha motivado su

investigacion por parte de cientificos quienes estan interesados

en entender las interacciones sutiles que existen entre estos

Figura 4. Comportamiento de forrajeo de las hormigas.

Figura 5. Construccion de nidos de hormigas tejedoras.

animales que crean grandes y elavoradas comunidades. Ade-

mas de los biologos, los ingenieros esperan aplicar el cono-

cimiento obtenido por los cientıficos para resolver problemas

intrincados en las ciencias de la computacion, las redes de

comunicaciones y la robotica, entre otras  areas.

Una metaheurıstica es un conjunto de conceptos algorıtmicos

que pueden ser usados para definir metodos heurısticos apli-

cables a un conjunto de problemas diferentes.

Ant Colony Optimization (ACO) es una metaheurıstica que

engloba un conjunto de tecnicas de optimizacion inspiradas

en el comportamiento colectivo de forrajeo, figura 4, de las

hormigas, las cuales son capaces de encontrar un caminocorto entre el nido, figura 5, y la fuente de alimento; esta

tecnica nacio con la tesis doctoral de Marco Dorigo en Milan,

Italia en 1992. En las siguientes secciones se describe el

comportamiento natural de las colonias de hormigas y la

adaptacion que dio origen al primer algoritmo de esta clase.

Las hormigas siendo insectos casi ciegos, pueden determinar el

camino mas corto entre su nido y la fuente de alimento. Como

la mayorıa de las especies de hormigas, las cosechadoras rojas

se comunican mediante el tacto y el olfato. Pero en vez de

oler el aire, utilizan sus sensibles antenas para detectara olores

muy sutiles por hidrocarburos. Estos hidrocarburos que sirven

para comunicarce se denomina feromona. A continuacion se

describe el proceso mediante el cual, utilizando feromona, lashormigas son capaces de construir la ruta mas corta entre el

nido y el alimento.

Al desconocer algun camino hacia el alimento, las hormigas

empiezan con uns distribucion azaroza por el espacio explo-

rado, ver figura6(a). Al cabo de cierto tiempo, y sabiendo que

las hormigas se mueven a una misma velocidad constante, la

cantidad de feromona se hara mas persistente en lugares que

son mas transitados y evitara su rapida evaporacion. De tal

forma, las distancias mas cortas entre el nido y la fuente de

alimento tenderan a ser transitadas mas frecuentemente por

las hormigas, loq ue permitira hacer mas fuerte el rastro de

Page 4: Job-shop Problem en una perspectiva de algoritmoparalelo

8/10/2019 Job-shop Problem en una perspectiva de algoritmoparalelo

http://slidepdf.com/reader/full/job-shop-problem-en-una-perspectiva-de-algoritmoparalelo 4/5

4

Figura 6. Comportamiento adaptativo de las hormigas.

los caminos mas cortos y estas tenderan a abandonar con el

tiempo los caminos mas largos, ver figura6(b).

Si esta ruta se pierde por el bloqueo de algun objeto o por los

cambios ambientales, ver figura6(c), una vez que las hormigas

se encuentren en el punto que se ha perdido el rastro volveran a

elegir aleatoriamente un camino, ver figura6(d), algunas hacia

arriba y otras hacia abajo. Sin embargo, aquellas que elijan ir

por la parte de arriba que es el camino mas corto, alcanzaran

el otro extremo con mayor rapidez que las que eligieron el

camino mas largo, de tal forma que, transcurrido cierto tiempo

(por retroalimentacion de la feromona), volveran a reestablecer

el camino corto y terminaran abandonando el camino largo,

ver figura6(e).

De este modo, las colonias de hormigas pueden establecer

rutas cortas utilizando la feromona como medio de intercambiode informacion, lo que se conoce como stigmergy.

Algoritmo 3  Algoritmo de la colonia de hormigas

1:   Construccion de soluciones por hormigas

2:   Actualizacion de feromona

3:   Servidor de acciones

La actualizacion de la feromona es el proceso mediante el

cual los rastros de feromona son modificados. El valor del

rastro puede incrementarse debido a que las hormigas deposi-

tan feromona en cada uno de los componentes o conexiones

que usan para moverse de un nodo a otro del problema. Y el

valor del rastro tambien puede decrementarse por medio de la

simulacion de la evaporacion de feromona, lo que evita una

convergencia prematura del algoritmo.

El servidor de acciones es un procedimiento utilizado pa-

ra implementar acciones centralizadas las cuales no pueden

ser desarrolladas por las hormigas en forma individual. Un

ejemplo de estas acciones puede ser la activacion de un

procedimiento de optimizacion local o la compilacion de

informacion global que puede ser usada para tomar decisiones

que modifiquen el comportamiento del algoritmo en forma

general o parcial.

VI-A. Explicacion del algoritmoTenemos el algoritmo 2 y presentamos su analisis. En primer

lugar las m hormigas estan inicialmente emplazadas en punto

de inicio con n puntos de decisiones iniciales, y estas escogen

sus rutas de acuerdo a ciertas reglas. Se entiende que cada

punto a escoger es una operacion de cada trabajo.

En el principio, ausmimos que las feromonas en cada camino

es muy reducido   tau0. Para acelerar la velocidad de conver-

gencia de las hormigas, las eleciones son basadas en los rastros

de feromona. Mientras mas hormigas escojan cierta ruta, mas

feromonas es registrada en ese camino y este deberia ser el

mas optimo.

Page 5: Job-shop Problem en una perspectiva de algoritmoparalelo

8/10/2019 Job-shop Problem en una perspectiva de algoritmoparalelo

http://slidepdf.com/reader/full/job-shop-problem-en-una-perspectiva-de-algoritmoparalelo 5/5

5

Para evitar una convergencia temprana dos metodos de se-

leccion son aplicados. Convergencia temprana ocurre cuando

muchas hormigas se juntan en un camino incorrecto y la

feromona se vielve tan densa que una mejor ruta no puede

ser encontrada.

Cada hormiga contruye una ruta repitiendo una regla voraz

estocastica, el cual es llamado regla de estado de transici on.

s =

argmaxu∈J (r)

[τ (r, u)] · [η(r, u)]β

,   si  q  ≤ q 0

S,   si no es asi(4)

(r,u) representa una arista entre r y u, y   τ (r, u)   guarda la

feromona en la arista (r,u).   η(r, u)   es la deseabilidad de la

arista (r,u), el cual es usualmente definido como el inverso del

peso de (r,u). q es un numero aleatorio distribuido en [0,1],  q 0es una parametro ya deifnido,  β  es el parametro que controla

la importancia de la deseabilidad. J(s) es el conjunto de aristas

disponibles en el punto de desicion r. S es la variable aleatoria

selecionada de acuerdo a la distribucion de probabilidad dada

abajo.

P (r, s) =

[τ (r, s)] ·

η(r, s)β

u∈J (r)

[τ (r, u)] · [η(r, u)β],   si  s ∈ J (r)

0,   si no es asi

(5)

La estrategia de seleccion usado arriba es tambien llamado

seleccion ’ruleta rusa’ ya que su mecanismo es la simulacion

de la operacion de una ruleta rusa. Cada punto tiene su

probabilidad de ser escogido, mientras mas grande sea, mayor

probabilidad es de ser escogido.

VII. DISCUSION Y CONCLUSIONES

Este articulo ha aplicado el Algoritmo de Colonia de

Hormigas al Job-Shop Problem se observa que cambiando losparametros fijos y la cantidad de hormigas en el algoritmo se

podra ver variaciones en el resultado, a veces para mejor, lo

que se decuce que aunque se puede obtener buenos resultados,

se tiene que escojer los parametros fijos con cuidado para cada

caso. Al ser el ACH un algoritmo altamente paralelizable, se

puede hacer una gran mejora en los tiempos de ejecuci on.

V III. TRABAJOS FUTURO

Se queria observar como el ACH puede darnos buenas

soluciones a un problema dificil como JSP. Como trabajo

futuro que quiere estudiar otras heuristicas complejas como

los Algoritmos Geneticos para hacer una comparacion deresultados, tiempos y bajo que circunstancias uno es mas

eficiente que otro.

Algoritmo 4   Algoritmo Colonia de Hormigas Paralelizado

1: /* Inicializacion */ 

2:   para  cada par(r,s)  hacer

3:   tau(r, s) ←− τ 04:   fin para

5:   para  i  = 1   to ANTS  hacer

6: next set  ←−

O11, O21, . . . , OJOBS,1

7: /* next set es el conjunto de nodos a visitar por hormiga i en el

siguiente paso */ 

8:   time[i] ←− 09:   tour[i][0] ←− 0

10:   current operation ←− 0

11: /* time es el tiempo usado por hormiga i, tour es el array que guarda

los nodos visitados*/ 

12: /* current operation es la operacion donde hormiga i esta ubicado */ 

13:   fin para

14: /* esta es la fase en cual las hormigas contruyen sus viajes, el viaje de

hormiga i es guardado en   tourk   */ 

15: Aqui las hormigas de distribuyen en los procesadores

16:   para  i=1 to ANTS  hacer

17:   si   i OPERATIONS-1 entonces

18:   para  k=1 to ANTS  hacer

19:   si   estamos en la primera itaracion AND hormiga i esta en la

primera operacion  entonces

20: /*en este programa el numero de hormigas es el mismo alnumero de trabajos(JOBS), y en el principio del algoritmo

aca trabajo tiene una hormiga*/ 

21: la primera operacion del trabajo k es la primera operacion de

la hormiga k 

22: poner  Operacionk,2   en next set

23:   tour[1] ←−   primera operacion de trabajo k para hormiga k 

24:   si no

25: escoge la siguiente operacion de acuerdo a las desigualdades

arriba hechas

26:   tour[i] ←−  next operation para hormiga k 

27: /* next operation es el [(next operati on-1)% MACHI-

NES+1]avo operacion del trabajo [(next operation-1)/ MA-

CHINES+1]*/ 

28:   si  next operation no es la ultima operacion de algun trabajo

entonces

29: poner operacion que le sigue a next operation de hormiga

30:   fin si

31:   fin si

32:   fin para

33:   si no

34:   para  k  ←−  a ANTS  hacer

35: OPERATIONS-1 es el next operation de hormiga k 

36:   tour[i] ←− OPERATIONS − 1

37:   fin para

38:   fin si

39: /* en esta fase la actualizacion local de la feromona ocurre */ 

40:   para  K  ←−  1 to ANTS  hacer

41:   τ (current operation,next operation)   ←−   (1   −

φ)τ (current operation, next operation) + φ ∗ τ 0

42:   current operation ←− next operation43:   fin para

44:   fin para

45: /* fin de la iteracion */ 

46: /* en esta fase se actualiza las feromonas del mejor camino hallado por

las hormigas */ 

47: Aqui se juntan las rutas de las hormigas en un procesador para su analisis

48:   para  k=1 to ANTS  hacer

49: computar el tiempok  para la hormiga k 

50:   fin para

51: Encontrar el menor tiempo de todas las hormigas

52: /* actualizar cada arista que pertenezca a  tourbest53:   para   cada arista(r,s) que pertenezca a  tourbest   hacer

54:   τ (r, s) ←− (1 − α)τ (r, s) + α(shortest time)−1

55:   fin para