Anda di halaman 1dari 5

1

Job-shop Problem en una perspectiva de algoritmo


paralelo
Morales Canahualpa, Leonel
ResumenEl presente articulo hace parte de un proyecto de
investigaci on del uso de algoritmos paralelos para mejorar el
tiempo de ejecuci on y hallar soluciones a ciertos problemas de
optimizaci on combinatoria como pueden ser el problema del
Vendedor viajero, el problema del arbol de expansi on mnima,
problema de la mochila, etc; pero nos enfocaremos especial-
mente el el problema de programaci on de trabajos. Presenta
los conceptos b asicos de teora y algunas implementaciones en
programaci on paralela.
DescriptoresOptimizaci on combinatoria, problema de pro-
gramaci on de trabajos,Job-Shop Problem, Ant Colony Optimi-
zation, algoritmos paralelos.
I. INTRODUCCI ON
O
PTIMIZACI

ON es un campo de a un r apido crecimiento.


Ha jugado un rol vital en muchas areas de la ciencia,
ingeniera, 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-
tes se traducen en ordenes de producci on que se liberan
y transforman en trabajos con fecha de entrega asociada.
La programaci on de producci on que asigna estos trabajos
a recursos productivos limitados, debe realizarse de manera
detallada y eciente para permitir un mejor control de las
operaciones dentro del sistema productivo y constituir una
ventaja competitiva difcil de imitar.
Los diferentes productos requieren en su fabricaci on distintas
operaciones, las cuales se realizan en un orden y conguraci on
productiva determinada, que depende del tipo de producto,
el volumen de producci on, la variedad de productos que se
producen en el sistema, etc etera.
El taller de m aquinas paralelas consiste en un sistema de
m m aquinas dispuestas en paralelo (multicapacidad), que
procesan trabajos que requieren una operaci on, la cual puede
realizarse en cualesquiera de las m m aquinas.
Los problemas de optimizaci on de acuerdo al tama 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 heurstica son necesarios para hallar (no necesa-
riamente optima) soluciones a estos problemas. Las heursticas
exploran una peque na parte del espacio soluci on del problema,
donde se cree que buenas soluciones se pueden hallar.
Para resolver la programaci on de un taller de m aquinas
paralelas existen diferentes m etodos exactos y heursticos,
constructivos o de mejora. La heurstica LPT es una de las
heursticas 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 tratado diferentes problemas de m aquinas paralelas
id enticas con setup aplicando diferentes metaheursticas y
m etodos de b usqueda local.
II. 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
podran 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 variable de decisi on a determinar de tal manera
que optimicef cumpliendo las restricciones. En los problemas
de optimizaci on combinatoria, las variables de decisi on son
enteras y, por lo general, el espacio de soluciones est a formado
por ordenaciones o subconjuntos de n umeros naturales.
III. 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 proceso. El tiempo de preparaci on en el que se incurre
al procesar un trabajo en una m aquina depende del trabajo
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 tiempo de proceso de cada trabajo est a jo y existen
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,
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 producci on).
Se consideran los siguientes supuestos:
1. Cada operacion debe ser procesado en una, y s olo una
m aquina k, k = 1, 2, ..., n.
2. El tiempo de proceso del trabajo i en la m aquina j,
est a dado por p
ij
((i, j) = (1, 1), ..., (m, n)).
3. Cada m aquina puede procesar s olo un trabajo a la vez.
4. El proceso de un trabajo en una m aquina no se puede
interrumpir (nonpreemption).
5. Todos los trabajos son independientes entre s y se
encuentran disponibles en el instante inicial.
6. Las m aquinas operan sin fallas en el horizonte de pro-
gramaci on.
7. El objetivo es minimizar C
max
.
Bajo la notaci on introducida por Graham el problema de
m aquinas paralelas caracterizado por los supuestos menciona-
dos se denota por P
m
/s
ij
/C
max
, y es un conocido problema
NP-Hard, lo que hace impracticable la obtenci on de la soluci on
optima para problemas de mediano a gran tama no.
En este trabajo se resuelve el problema P
m
/s
ij
/C
max
usando
distintas heursticas y algoritmos. Un esquema simple para
resolver la programaci on para este problema es denir un orde-
namiento de los trabajos de acuerdo a un criterio determinado,
y luego continuar de acuerdo al procedimiento de asignaci on
de trabajos presentado en el algoritmo 1.
Algoritmo 1 Asignaci on de trabajos
Denir ListaTrabajos ordenada por un criterio.
mientras ListaTrabajos no vaca hacer
Asignar primer trabajo de la lista a la m aquina donde
naliza antes.
Eliminar primer trabajo de ListaTrabajos.
n mientras
Utilizaremos la regla LPT (largest processing time) para ge-
nerar la ListaTrabajos inicial del procedimiento de Asignaci on
de Trabajos del algoritmo 1.
IV. ALGORITMO GEN ETICO
Los algoritmos gen eticos fueron introducidos por Holland
(1975), utilizan un lenguaje de gen etica natural modelando,
en forma articial, mecanismos de la evoluci on natural apli-
cados a la optimizaci on de problemas. Asocian el concepto
de individuo a una soluci on factible del problema y el de
poblaci on a un conjunto de individuos (soluciones factibles).
Los individuos est an formados por genes (elementos orde-
nados en una sucesi on lineal), que se eval uan a trav es de
una funci on de aptitud denominada tness, que corresponde
a una medida de la calidad del individuo como soluci on del
problema (Goldberg, 1989; Davis, 1991 y Michalewicz,1999).
Otros enfoques evolutivos actuales e inspirados en procesos de
la naturaleza, extendidos tambi en a m as de un objetivo pueden
revisarse en Coello et al. (2010). El algoritmo 2 muestra una
estructura general de un algoritmo gen etico.
La poblaci on inicial de soluciones (P
0
) se determina de
Algoritmo 2 Algoritmo Gen etico
1: t 0
2: inicializar
3: evaluar P
i
4: mientras t < N
g
hacer
5: t t + 1
6: seleccionar padres de P
i
7: formar partici on P
i
8: evaluar P
i
9: n mientras
manera aleatoria y el proceso de selecci on durante el pro-
ceso evolutivo se realiza de acuerdo con una distribuci on
de probabilidades, que determina que un individuo tiene una
probabilidad de ser seleccionado proporcional a su tness.
Esto signica que en el proceso de selecci on los individuos de
mejor tness tienen mayor probabilidad de ser seleccionados.
La formaci on de la poblaci on de la generaci on t (P
t
), a partir
de la poblaci on de la generaci on t 1 (P
t1
), se realiza de
acuerdo con un proceso de cruzamiento, ver gura 2, de dos
individuos, sujeto a una probabilidad de cruzamiento (p
c
),
generando descendencia (hijos). Sobre la descendencia opera
una mutaci on, ver gura 3, de acuerdo con una probabilidad
de mutaci on (P
m
). La evaluaci on de la poblaci on P
t
eval ua a
cada individuo determinando su tness. El proceso evolutivo
utiliza un operador de cruzamiento y un operador de mutaci on,
y se realiza hasta que se eval uan N
g
generaciones.
3
Figura 2. Cruzamiento de dos individuos.
Figura 3. Mutaci on de un individuo.
El algoritmo gen etico denido 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 asignaci on de trabajos
a las m aquinas de acuerdo al procedimiento indicado en el
algoritmo 1. Se utiliz o esta estructura del cromosoma, dado
que el algoritmo gen etico se compar o con otras heursticas
que generan la programaci on basada en una secuencia de
trabajos; el mismo argumento anterior explica tambi en el por
qu e tampoco se adopt o incluir elitismo en el proceso de
evoluci on.
V. HEURISTICA LPT*
La heurstica LPT, aplicada con buenos resultados al pro-
blema de m aquinas paralelas sin setup, se extiende en este
trabajo al caso de m aquinas paralelas id enticas con setup,
denomin andola heurstica LPT*. La heurstica LPT* redene
los tiempos de proceso de cada trabajo i estimando su tiempo
de ocupaci on de m aquina (pei) como la suma de su tiempo
de proceso y el promedio de los tiempos de setup que puede
tener cada trabajo, esto es:
pe
i
= p
i
+
n

j=1
s
ji
/n
En lugar de ordenar los trabajos de mayor a menor tiempo
de proceso pi como lo hace la heurstica LPT, los trabajos
se ordenan de mayor a menor tiempo estimado de ocupaci on
de m aquina pe
i
, formando as la ListaTrabajos inicial para el
procedimiento de Asignaci on de Trabajos de el algoritmo 1.
VI. OPTIMIZACI ON 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 cienticos quienes est an interesados
en entender las interacciones sutiles que existen entre estos
Figura 4. Comportamiento de forrajeo de las hormigas.
Figura 5. Construcci on de nidos de hormigas tejedoras.
animales que crean grandes y elavoradas comunidades. Ade-
mas de los bi ologos, los ingenieros esperan aplicar el cono-
cimiento obtenido por los cientcos para resolver problemas
intrincados en las ciencias de la computaci on, las redes de
comunicaciones y la rob otica, entre otras areas.
Una metaheurstica es un conjunto de conceptos algortmicos
que pueden ser usados para denir m etodos heursticos apli-
cables a un conjunto de problemas diferentes.
Ant Colony Optimization (ACO) es una metaheurstica que
engloba un conjunto de t ecnicas de optimizaci on inspiradas
en el comportamiento colectivo de forrajeo, gura 4, de las
hormigas, las cuales son capaces de encontrar un camino
corto entre el nido, gura 5, y la fuente de alimento; esta
t ecnica naci o 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
adaptaci on 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 mayora 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 continuaci on se
describe el proceso mediante el cual, utilizando feromona, las
hormigas son capaces de construir la ruta mas corta entre el
nido y el alimento.
Al desconocer alg un camino hacia el alimento, las hormigas
empiezan con uns distribuci on azaroza por el espacio explo-
rado, ver gura6(a). Al cabo de cierto tiempo, y sabiendo que
las hormigas se mueven a una misma velocidad constante, la
cantidad de feromona se har a m as persistente en lugares que
son mas transitados y evitar a su r apida evaporaci on. De tal
forma, las distancias mas cortas entre el nido y la fuente de
alimento tender an a ser transitadas m as frecuentemente por
las hormigas, loq ue permitir a hacer m as fuerte el rastro de
4
Figura 6. Comportamiento adaptativo de las hormigas.
los caminos m as cortos y estas tender an a abandonar con el
tiempo los caminos m as largos, ver gura6(b).
Si esta ruta se pierde por el bloqueo de alg un objeto o por los
cambios ambientales, ver gura6(c), una vez que las hormigas
se encuentren en el punto que se ha perdido el rastro volver an a
elegir aleatoriamente un camino, ver gura6(d), algunas hacia
arriba y otras hacia abajo. Sin embargo, aquellas que elijan ir
por la parte de arriba que es el camino m as corto, alcanzar an
el otro extremo con mayor rapidez que las que eligieron el
camino m as largo, de tal forma que, transcurrido cierto tiempo
(por retroalimentaci on de la feromona), volver an a reestablecer
el camino corto y terminar an abandonando el camino largo,
ver gura6(e).
De este modo, las colonias de hormigas pueden establecer
rutas cortas utilizando la feromona como medio de intercambio
de informaci on, lo que se conoce como stigmergy.
Algoritmo 3 Algoritmo de la colonia de hormigas
1: Construcci on de soluciones por hormigas
2: Actualizaci on de feromona
3: Servidor de acciones
La actualizaci on de la feromona es el proceso mediante el
cual los rastros de feromona son modicados. 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 tambi en puede decrementarse por medio de la
simulaci on de la evaporaci on 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 activaci on de un
procedimiento de optimizaci on local o la compilaci on de
informaci on global que puede ser usada para tomar decisiones
que modiquen el comportamiento del algoritmo en forma
general o parcial.
VI-A. Explicacion del algoritmo
Tenemos 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 tau
0
. 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.
5
Para evitar una convergencia temprana dos metodos de se-
lecci on 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 =

argmax
uJ(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 denido como el inverso del
peso de (r,u). q es un n umero aleatorio distribuido en [0,1], q
0
es 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)

uJ(r)
[(r, u)] [(r, u)

]
, si s J(r)
0, si no es asi
(5)
La estrategia de selecci on usado arriba es tambien llamado
selecci on ruleta rusa ya que su mecanismo es la simulaci on
de la operaci on de una ruleta rusa. Cada punto tiene su
probabilidad de ser escogido, mientras mas grande sea, mayor
probabilidad es de ser escogido.
VII. DISCUSI ON Y CONCLUSIONES
Este articulo ha aplicado el Algoritmo de Colonia de
Hormigas al Job-Shop Problem se observa que cambiando los
parametros jos 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 jos 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.
VIII. TRABAJOS FUTURO
Se queria observar como el ACH puede darnos buenas
soluciones a un problema dicil como JSP. Como trabajo
futuro que quiere estudiar otras heuristicas complejas como
los Algoritmos Gen eticos para hacer una comparaci on de
resultados, tiempos y bajo que circunstancias uno es m as
eciente que otro.
Algoritmo 4 Algoritmo Colonia de Hormigas Paralelizado
1: /* Inicializaci on */
2: para cada par(r,s) hacer
3: tau(r, s)
0
4: n para
5: para i = 1 to ANTS hacer
6: next set

O
11
, O
21
, . . . , O
JOBS,1

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


siguiente paso */
8: time[i] 0
9: 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: n para
14: /* esta es la fase en cual las hormigas contruyen sus viajes, el viaje de
hormiga i es guardado en tour
k
*/
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 itaraci on AND hormiga i esta en la
primera operacion entonces
20: /*en este programa el numero de hormigas es el mismo al
numero de trabajos(JOBS), y en el principio del algoritmo
aca trabajo tiene una hormiga*/
21: la primera operacion del trabajo k es la primera operaci on de
la hormiga k
22: poner Operacion
k,2
en next set
23: tour[1] primera operacion de trabajo k para hormiga k
24: si no
25: escoge la siguiente operaci on de acuerdo a las desigualdades
arriba hechas
26: tour[i] next operation para hormiga k
27: /* next operation es el [(next operation-1) % MACHI-
NES+1]avo operaci on del trabajo [(next operation-1)/ MA-
CHINES+1]*/
28: si next operation no es la ultima operacion de alg un trabajo
entonces
29: poner operaci on que le sigue a next operation de hormiga
k
30: n si
31: n si
32: n 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: n para
38: n 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 operation
43: n para
44: n para
45: /* n de la iteraci on */
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 tiempo
k
para la hormiga k
50: n para
51: Encontrar el menor tiempo de todas las hormigas
52: /* actualizar cada arista que pertenezca a tour
best
53: para cada arista(r,s) que pertenezca a tour
best
hacer
54: (r, s) (1 )(r, s) +(shortest time)
1
55: n para

Anda mungkin juga menyukai