Job-shop Problem en una perspectiva de algoritmoparalelo
-
Upload
alonso-tenorio -
Category
Documents
-
view
223 -
download
0
Transcript of 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,
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.
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
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.
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
k
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