Professional Documents
Culture Documents
swarm micro-
migrating birds
optimizer for a multi-
resource-constrained
flexible job shop
scheduling
Liang Gao, Quan-Ke Pan
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
La Programacin de Problemas Job Shop Flexibles (FJSSPs) han constituido un campo muy
activo de investigacin en los ltimos aos.
La operacin debe ser procesada por cualquier mquina del conjunto dentro de un
perodo de constante de tiempo , conocido.
Para iniciar una operacin, la mquina y todos los recursos necesarios deben estar
disponibles al mismo tiempo.
Todos los trabajos estn listos para su procesamiento en el tiempo 0, y no existe preferencia.
| , , , , |
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.
(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
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
= max(1 + ,1, , + , )
= max( , )
= +
Esta seleccin no retrasa el inicio de la operacin actual pero da espacio para que
operaciones posteriores inicien ms temprano.
= +
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
Dividir en Comparacin
microenjambres Hijos - seguidores
Ordenar por Cmax Seguidores - lderes BEST!
Lderes Modificar los lderes
Seguidores
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
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
Manual de uso
Para el ejemplo:
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.
Experimentos realizados
Conclusiones
El algoritmo presentado presenta poca eficiencia la cual puede ser mejorada con
depuracin de