Vous êtes sur la page 1sur 12

30-5-2017 A shuffled multi-

swarm micro-
migrating birds
optimizer for a multi-
resource-constrained
flexible job shop
scheduling
Liang Gao, Quan-Ke Pan

Maria Camila Camacho Buitrago,


Laura Garca Valenzuela
UNIVERSIDAD NACIONAL DE COLOMBIA
Resumen
Numerosas investigaciones se han desarrollado alrededor de la configuracin de planta tipo
Job Shop flexible. A continuacin, se detalla el problema presentado para la programacin
de trabajos en una planta con esta configuracin y con la restriccin adicional de mltiples
recursos. En el presente trabajo se desarrolla en lenguaje Visual Basic, el algoritmo
propuesto por Liang Gao y Quan-Ke Pan para este tipo de problemas mediante el uso de un
algoritmo gentico basado en el vuelo en forma de V de las aves en migracin y que,
adicionalmente, cuenta con una forma de diversificar la poblacin a travs del fenmeno de
la edad.

Keywords: Migrating birds optimization, flexible job shop scheduling, multi-resource constrained.

Abstract
Numerous inquiries have been developed around Flexible Job Shop floor configuration. The
problem presented for the scheduling of jobs in a plant with this configuration and with the
additional restriction of multiple resources is detailed below. In the present work the
algorithm proposed by Liang Gao and Quan-Ke Pan for this type of problems is developed
on Visual Basic language by the use of a genetic algorithm based on the flight in the form of
V of the birds in migration and that, additionally, it has a Way of diversifying the population
through the phenomenon of age.

Palabras clave: Optimizacin por migracin de aves, Job Shop flexible, restriccion de mltiples
recursos.

Introduccin

El presente trabajo desarrollado para el curso Programacin de la Produccin de la Facultad


de Minas de la Universidad Nacional de Colombia, expone el uso de algoritmos genticos
para la programacin, apoyados en un artculo publicado

La Programacin de Problemas Job Shop Flexibles (FJSSPs) han constituido un campo muy
activo de investigacin en los ltimos aos.

En un FJSSP tradicional, hay un conjunto de trabajos que se procesan en un conjunto de


mquinas con diferentes rutas de procesamiento.

La optimizacin de migracin de las aves (MBO) es un metaheurstico inspirado por


minimizacin de la energa en el vuelo en formacin de V de las aves migratorias. MBO
trata una solucin como un pjaro que est alineado en una formacin en forma de V y
puede compartir buena informacin de la solucin frente a ella.
Un algoritmo microevolutivo se refiere a un algoritmo evolutivo que opera en un pequeo
conjunto de poblaciones con reinicializacin. Se encontr que el algoritmo gentico con una
pequea poblacin de tres individuos es suficiente para converger, con independencia de
que tengan diferentes longitudes.

El algoritmo propuesto adopta tecnologas avanzadas y eficaces, incluyendo un micro-


MBO, el mtodo multi-enjambre, bsqueda paralela, proceso de reproduccin aleatoria al
azar, la estrategia de control de la diversidad, y el operador de bsqueda adaptativa

Planteamiento del problema

El MRC-FJSSP considerado en este trabajo se puede describir brevemente como sigue:

Tenemos un conjunto = {1 , 2 , , } de n trabajos los cuales deben ser sometidos en un


grupo = {1,2, . . . , } de mquinas.

El procesamiento de cada trabajo consta de operaciones secuenciales 1 , 2 , , .


Para cada , hay un conjunto de mquinas elegibles que puede procesar .

La operacin debe ser procesada por cualquier mquina del conjunto dentro de un
perodo de constante de tiempo , conocido.

Hay tipos de recursos nombrados 1 , 2 , , . La cantidad de cada tipo de recurso


{1 , 2 , , } est dada. Cada mquina requiere la cooperacin de varios tipos de
recursos de {1 , 2 , , } para la produccin.

Para iniciar una operacin, la mquina y todos los recursos necesarios deben estar
disponibles al mismo tiempo.

La operacin requiere el uso ininterrumpido y exclusivo de la mquina y los recursos para


la totalidad de su perodo de procesamiento.

Los intervalos de procesamiento entre dos recursos u operaciones de la mquina en conflicto


no pueden superponerse.

El tiempo de configuracin separable durante el cual un trabajo sufre una transicin de


la mquina a la mquina .

Un trabajo puede ser procesado a lo sumo una mquina en cualquier momento.

Todos los trabajos estn listos para su procesamiento en el tiempo 0, y no existe preferencia.

No hay restriccin de precedencia entre las operaciones de los distintos trabajos.


Todas las mquinas y los recursos estn disponibles continuamente.

Nuestro objetivo es encontrar un programa que determina de forma ptima la asignacin


de las operaciones a las mquinas, la secuencia de operaciones en cada mquina, y la
seleccin de los recursos para cada mquina de manera que el sea mnimo.

Por tanto, el modelo | | ser de la forma

| , , , , |

Descripcin del modelo y ejemplo

Es necesario conocer: (i) Nmero de trabajos, (ii) nmero de mquinas, (iii) nmero de
recursos, (iv) cantidad de operaciones por trabajo, (v) cantidad de unidades disponibles de
cada recurso, (vi) tiempos de procesamiento de cada operacin en cada mquina, (vii)
recursos utilizados por cada mquina y (viii) tiempos de preparacin entre mquinas.

Para el ejemplo inicial se tendr en cuenta los siguientes datos:

(i) 4 trabajos
(ii) 3 mquinas
(iii) 3 tipos de recursos
(iv) cantidad de operaciones por trabajo

Trabajos Operaciones
1 3
2 2
3 1
4 1
(v) cantidad de unidades disponibles de cada recurso

Recursos Cantidad
1 2
2 2
3 2
(vi) tiempos de procesamiento de cada operacin en cada mquina

Mquina
Operacin 1 2 3
101 6 8 10
102 X 4 6
103 5 5 X
201 6 X 6
202 X 6 5
301 X 10 5
401 10 X 7
(vii) recursos utilizados por cada mquina

BINARIA Recurso
Mquina 1 2 3
1 1 1 1
2 1 0 1
3 0 1 1
(viii) tiempos de preparacin entre mquinas

Mquina 1 2 3
1 0 2 1
2 2 0 1
3 1 2 0

El algoritmo parte de la generacin aleatoria de 2 vectores: (i) Vector de asignacin de


mquina y (ii) Vector de Secuencia de operaciones

Vector de asignacin de mquina 1 3 1 1 2 2 3


Operacin correspondiente 11 12 13 21 22 31 41

Vector de secuencia de operacin 1 3 2 1 2 4 1


Operacin correspondiente 11 12 13 21 22 31 41

Para el clculo del

Para iniciar una operacin se deben satisfacer 3 condiciones simultneamente: (i) el trabajo
llega a la mquina asignada, (ii) la mquina asignada est disponible y el tiempo de
preparacin ha terminado y (iii) todos los recursos requeridos por la mquina asignada
estn disponibles

Tiempo de inicio de la operacin


Tiempo de procesamiento de la operacin en la mquina
Tiempo en el que est disponible la mquina
Tiempo de preparacin entre la mquina y
Tiempo en el que todos los recursos requeridos por una mquina estn disponibles
Tiempo en el que est disponible la unidad de recurso
De tal manera, se calcula:

= max(1 + ,1, , + , )

Suponiendo que la mquina requiere un recurso de 1 y uno de 2, el tiempo ms prximo


en el que todos los recursos requeridos estn disponibles es:

= =1,2( ( ))

Si es la primer operacin del trabajo j, entonces puede ser simplificado as:

= max( , )

Despus de que la operacin se ha terminado, la mquina y los recursos usados son


liberados de inmediato. El tiempo de disponibilidad de la mquina est dado por:

= +

En el momento puedn haber varios recursos disponibles para la mquina . Se selecciona


el recurso que est disponible en el momento ms cercano a pero no ms all.

= arg( {| , ( )
0}

Esta seleccin no retrasa el inicio de la operacin actual pero da espacio para que
operaciones posteriores inicien ms temprano.

El tiempo de disponibilidad de est dado por:

= +

Una vez todas las operaciones del vector de secuencia de operaciones han sido
consideradas, se obtiene el siguiente makespan.

= =1,,(, + ,, )
Parmetros iniciales Situaciones Edad
Microenjambres BEST mejora: lifespan+2 En cualquier caso
Edad lmite Un lder mejora: lifespan + 1 Edad = Edad + 1
Factor de cruce ningn individuo mejora:
lifespan=0

Generacin de Unir Reinicializacin


poblacin Ordenar, seleccionar el Conservar mejores
3* individuos nuevo mejor Generar nueva poblacin
Edad = 0

Dividir en Comparacin
microenjambres Hijos - seguidores
Ordenar por Cmax Seguidores - lderes BEST!
Lderes Modificar los lderes
Seguidores

Mejorar los lderes Mejorar los seguidores


Mutacin Cruce entre lderes y
Insercin seguidores
Swap Cruce de mquinas
Cruce IPOX

Descripcin del software

El software de programacin se desarroll en lenguaje Visual Basic de Excel.

El pseudocdigo se describe a continuacin:

Iniciar el algoritmo
Bienvenida al usuario
Creacin de tablas parmetros
Declaracin de variables
Lectura de datos iniciales
Definicin de parmetros iniciales
While no termine do
Elegir edad y tiempo de vida
While edad < Lifespan do
Generacin de 3*teta individuos aleatorios
If individuo generado= individuo existente then
Generacin de nuevo individuo aleatorio
End if
Calcular cmax para cada individuo
Ordenar los individuos de menor a mayor valor de Cmax
Dividir la poblacin de individuos en teta microenjambres
For cada teta
Elegir un aleatorio entre los 10 mejores individuos como lder
Generar aleatorio
Si aleatorio < 0,5
El individuo pertenece a la izquierda
Generar aleatorio y enviar al microenjambre seleccionado
Else
El individuo pertenece a la derecha
Generar aleatorio y enviar al microenjambre seleccionado
End for
For cada micro enjambre do
Mejorar el lder
For cada seguidor do

End for
End for
End while
Realizar procedimiento de re-inicializacin
End while
Imprimir bestsofar

Mejorar el lder //Encontrar un vecindario para el lder


If rand < 0.5 then //cambiar el vector de asignacin de mquina del lder
Seleccionar aleatoriamente una operacin
Seleccionar aleatoriamente una de las posibles mquinas de la operacin seleccionada
Reasignar la mquina escogida a la operacin seleccionada
Else //cambiar el vector de secuencia de operacin del lder
If rand < 0.5 then
Insertar al vector secuencia de operacin
Else
Intercambiar una operacin del vector secuencia de operacin
End if
End if
If el vecindario es mejor que el lder then
Reemplazar el lder con el vecindario
End if

Clculo del Cmax


Lectura de datos
Inicializacin de variables AL, AR, Ark
Creacin matriz de clculos
Extraccin operacin, trabajo, mquina y tiempo de procesamiento de cada operacin
Clculo operacin inicial
For cada operacin
If es la primera operacin del trabajo j
For cada tipo de recurso
For cada recurso disponible
If la mquina seleccionada requiere recurso tipo i then
Clculo menor tiempo disponible del recurso
End if
End for
End for
Actualizar tiempo disponible mquina seleccionada
Clculo tiempo de inicio de operacin j de trabajo i asignada a mquina l
If tiempo de inicio tiempo disponible de cada recurso > 0 then
Clculo recurso con tiempo disponible ms cercano al tiempo de inicio
End if
Actualizacin tiempo disponible de la mquina
Actualizacin tiempo disponible de recursos usados
Else
For cada tipo de recurso
For cada recurso disponible
If la mquina seleccionada requiere recurso tipo i then
Clculo menor tiempo disponible del recurso

End if
End for
End for
Actualizar tiempo disponible mquina seleccionada
Recuperar tiempo de terminacin de operacin anterior del trabajo j
Clculo tiempo de inicio de operacin j de trabajo i asignada a mquina l
If tiempo de inicio tiempo disponible de cada recurso > 0 then
Clculo recurso con tiempo disponible ms cercano al tiempo de inicio
End if
Actualizacin tiempo disponible de la mquina
Actualizacin tiempo disponible de recursos usados
End if
End for

For cada mquina


Hallar el tiempo de mquina disponible ms cercano
Cmax= Tiempo de mquina disponible ms cercano
End for

Manual de uso

En primer lugar, se tendr la pestaa Bienvenidos, en la cual el usuario ingresa 3 datos:


Trabajos, Mquinas y Recursos. Seguidamente debe presionar el botn 1
Para el ejemplo, se tendr 4 trabajos, 3 mquinas, 3 recursos. Tras presionar el botn 1 se
despliega el listado de trabajos y recursos frente a los cuales el usuario debe ingresar el
nmero de operaciones de cada trabajo y la cantidad de cada tipo de recurso. Tras ingresar
estos ltimos, proceder a presionar el botn 2.

Para el ejemplo:

Tras presionar el botn 2, en las hojas T1_Procesamiento, T2_Recursos, T3_Setup se generan


unas tablas que el usuario debe llenar en su totalidad como se indica a continuacin:

La tabla T1 indica los tiempos de procesamiento de la operacin j0i en la mquina m. Dado


el caso una operacin no pueda realizarse en una mquina, se llenar el espacio con una X
La tabla T2 indica si la mquina requiere o no de los recursos. Se llena con datos binarios, 1
si s requiere del recurso y 0 en caso contrario

La tabla T3 indica los tiempos de preparacin de una mquina a otra, es decir que un trabajo
que pasa de la mquina 1 a la 3 requiere de 1 unidad de tiempo para preparar esta mquina.
Cabe resaltar que este tiempo de preparacin no requiere que se haya terminado el trabajo
en la mquina anterior para empezarlo, sino que depende del tiempo en el que la mquina
que recibe queda disponible.
Una vez diligenciadas todas las tablas se regresa a la hoja Bienvenido y se presiona el botn
3, con el cual se ordena al programa correr el algoritmo.

Los resultados son presentados en la hoja Programa

Experimentos realizados

Conclusiones

El algoritmo presentado presenta poca eficiencia la cual puede ser mejorada con
depuracin de

Vous aimerez peut-être aussi