Sunteți pe pagina 1din 10

ALGORITMO GENTICO PARA SOLUCIONAR EL PROBLEMA DE

PROGRAMACIN EN N MQUINAS EN PARALELO CUANDO


HAY M TRABAJOS QUE NECESITAN RECURSOS DUALES
MINIMIZANDO LA FECHA DE TERMINACIN

DIEGO HERNN DAZ MARTNEZ


200021645

UNIVERSIDAD DE LOS ANDES


FACULTAD DE INGENIERA
DEPARTAMENTO DE INGENIERA INDUSTRIAL
ASESOR: GONZALO MEJA
AGRADECIMIENTOS A DASH OPTIMIZATION
BOGOT, DICIEMBRE DE 2005

1. Resumen
El problema de secuenciar tareas en mquinas ha sido ampliamente estudiado a travs de los aos con el
propsito de optimizar tiempos de proceso, minimizar tardanzas, entre otras razones. Existen muchos
tipos de problemas con diferentes variaciones. En este proyecto se estudiar el caso de programar tareas
que necesitan recursos duales en mquinas en paralelo. Recursos duales significa que un trabajo debe
utilizar 1 o ms mquinas iguales al mismo tiempo para ser procesada.
El caso para 2 mquinas en paralelo fue estudiado por Sheng-Fuu Lin y Jaw-Yeh Chen (2000). En su
trabajo, los autores disean un algoritmo a partir de propiedades matemticas de las soluciones ptimas.
Su algoritmo busca minimizar penalidades por tardanza. Este es probado obteniendo resultados
satisfactorios.
Problemas similares han sido estudiados con algoritmos genticos para solucionarlos. Tal es el caso de
Liu Min y Wu Cheng (1999) quienes disean un algoritmo gentico para minimizar el tiempo de
terminacin del ltimo trabajo en el caso de mquinas paralelas idnticas. En este caso, cualquier trabajo
puede ser procesado en cualquiera de las mquinas (slo una). Los autores utilizan un cromosoma de
tamao n en el que cada dgito puede tomar un valor de 1 a m. Cada posicin corresponde a uno de los n
trabajos y el nmero que est en cada posicin indica la mquina en la que ser procesado ese trabajo.
Utiliza una funcin exponencial basada en la funcin objetivo del problema a minimizar para calcular la
aptitud de cada cromosoma. Luego utiliza los operadores comunes para construir el algoritmo gentico.
Este proyecto busca encontrar soluciones ptimas para el problema generalizado diseando un algoritmo
gentico. La funcin objetivo a minimizar en este caso es el de la fecha de terminacin del ltimo trabajo.
Este problema es por lo menos NP-hard1, pues el P2||Cmax (dos mquinas en paralelo, minimizar la fecha
de terminacin del ltimo trabajo) lo es. El algoritmo diseado se ha probado con problemas de hasta 30
trabajos con tiempos de proceso debajo de 60 segundos. Se comparar el algoritmo diseado contra el
mtodo de programacin lineal entera en el programa Xpress en 26 instancias diferentes.

Pinedo, Michael. Scheduling: Theory, Algorithms, and Systems (2nd Edition). Prentice-Hall. 2004.

2. Notacin
El algoritmo busca resolver el problema de programacin de trabajos con recursos duales cuando se tienen
n mquinas en paralelo y m trabajos. La siguiente notacin ser utilizada en todo el documento.

M: Es el conjunto de m mquinas. Su ndice correspondiente es i.


N: Es el conjunto de n trabajos. Su ndice correspondiente es j.
Pj: Tiempo de procesamiento del trabajo j.
Yj: Variable de decisin que indica la fecha en la que el trabajo j se comienza a procesar.
hijk: Variable binaria que nos indica si el trabajo jk (se utiliza el ndice k para indicar la parte del
trabajo j, es decir, si j necesita 3 mquinas entonces existir j0, j1 y j2 que sern procesados en
una mquina cada uno; a este conjunto de ndices particulares al trabajo j lo llamo {Jj}) ser
procesada en la mquina i.
Cj =Yj +Pj: Fecha de terminacin del trabajo j.
Cmax= max(C j ) para todo j: Fecha de terminacin del ltimo trabajo.
3. Programacin Lineal Entera Mixta del Problema

En este trabajo se desarroll una formulacin matemtica del problema como un programa lineal entero
mixto con el fin de comparar los resultados del algoritmo gentico con las soluciones resultantes del
mtodo exacto. El resultado fue el siguiente:

m in C m a x
s .a .
m

i =1

h ijk = 1; ( j , k ) j = 1, ..., n ; k { J

{ j}

h ijk 1; i = 1, ..., m ; j = 1, ..., n

k J

h ijk

j
k { J j }
j =1

y j + p j C m ax ;
n

C m a x ; i = 1, ..., m

j = 1, ..., n

y j y r p r h irk +
k { J r }

h ijk 1 M (1 a u x ( j , r )); j k ; j , k = 1, .. ., n ; i = 1, ..., m

k {J j }

y r y j p j h ir k +
k { J r }

y j 0; j = 1, ..., n

h
1
ijk M a u x ( j , r ); j k ; j , k = 1, ..., n ; i = 1, ..., m
k { J j }

1
h ijk = ; i = 1, ..., m ; j = 1, ..., n ; k { J
0

Las variables de decisin son yj y hijk.

El primer conjunto de restricciones implica que cada parte del trabajo j slo puede ser procesado
en una mquina.
El segundo conjunto de restricciones (en combinacin con la primera) sirve para obligar a la
solucin a que cada parte del trabajo j se procese en una mquina diferente.
El tercer conjunto de restricciones se encarga que todo el tiempo que la mquina este trabajando
sea menor a la funcin objetivo.
El cuarto conjunto de restricciones se utiliza para que el tiempo de terminacin de cada trabajo sea
menor a la funcin objetivo.
El quinto y sexto conjuntos de restricciones obliga al programa a que, si un trabajo j y un trabajo r
deben ser procesados en una misma mquina i, entonces uno se programe despus del otro y
nunca al mismo tiempo.

La quinta restriccin tiene una nueva variable de decisin de tipo binario a la que llamo aux (j, r) pues el
planteamiento original utilizaba el operador lgico o uniendo el quinto y sexto conjuntos de
restricciones en uno solo. En este caso se divide la restriccin en dos restricciones lineales, restndole a
cada una un nmero grande, M, que va multiplicado por 0 o por 1 dependiendo del valor que tome la
variable. Esto se hace con el fin de que slo una de las restricciones quede activa, pues solo puede ocurrir
que el trabajo j est antes que r o que el trabajo r est antes que j si deben ser procesados en la misma
mquina (en el caso que los dos trabajos no usen la misma mquina, existe la posibilidad de que
comiencen al mismo tiempo).

4. Diseo y Funcionamiento del Algoritmo Gentico


Se decidi abordar el problema a travs de un mtodo heurstico del tipo gentico, ya que en problemas
similares se haba utilizado este mtodo con excelentes resultados como los casos de Liu Min y Wu
Cheng (1999) y Jeffery K. Cochran, Shwu-Min Horno y John W. Fowler (2003) quienes abordaron
diferentes problemas de mquinas en paralelo a travs de este mtodo. Cada solucin se codific de la
siguiente manera: Si existen n trabajos, el cromosoma tendr entonces n posiciones. En cada posicin ira
un nmero de 1 a n que representa uno de los trabajos a ser programados. Entonces, el cromosoma es una
secuencia de n nmeros. Este orden representa una regla de programacin, es decir, que si el trabajo 2
est en la primera posicin y este necesita x mquinas para ser procesado, ese trabajo se programar
primero en las x mquinas que necesita. Supongamos que luego sigue el trabajo 4 y que este necesita y
mquinas. Si existen y mquinas disponibles, entonces se programar y empezar al mismo tiempo que el
trabajo 2; si el nmero de mquinas disponibles es menor que y, se deber esperar a que se termine de
procesar el trabajo 2 para proceder a programar el trabajo 4. El siguiente ejemplo ilustra mejor el
funcionamiento del cromosoma:

No.
Nmero de Trabajos
Nmero de Mquinas

5
3

1
2
3
4
5

Tabla 1 Ejemplo Problema

Nmero de
Mquinas
Necesitadas

Tiempos de
Proceso
5
3
1
2
3

2
1
2
3
3

Tenemos el siguiente ejemplo de cromosoma:


2

Figura 1 Cromosoma Ejemplo


Entonces, la programacin a la cual corresponde el cromosoma mencionado es la siguiente:
Mquina
1

Unidades
de Tiempo

9 10 11

Figura 2 Programacin Cromosoma


Sin embargo, existe la posibilidad de tener codificaciones diferentes que lleven a una misma solucin
como por ejemplo la siguiente:
1

Figura 2 Cromosoma Ejemplo


el cual codifica la misma solucin, pues los trabajos 1 y 2 comienzan a ser procesados al mismo tiempo en
este caso.
En la programacin hecha en Visual Basic, se utiliz una posicin extra al final para guardar el valor de la
funcin objetivo de ese cromosoma (en el ejemplo anterior sera 11).
Los operadores utilizados son crossover o cruce de 1 posicin y tambin se aplica con cierta probabilidad
el operador de mutacin que intercambia dos posiciones de un cromosoma.
Las siguientes figuras explican el funcionamiento de estos operadores en el algoritmo diseado.

Figura 3 Operador Mutacin Algoritmo

Figura 4 Operador Cruce Algoritmo


El algoritmo gentico diseado para abordar el problema comprende bsicamente 4 pasos: Inicializacin
de Datos, Creacin de Poblacin Inicial, Paso de Generaciones y Entrega de Mejor Solucin.
Paso 1: Inicializacin de Datos
El programa procede a obtener de la hoja de clculo los datos del problema (nmero de trabajos, numero
de mquinas, tiempo de proceso de cada trabajo y nmero de mquinas que necesita cada trabajo) y los
valores de los parmetros.
Paso 2: Creacin de Poblacin Inicial
El programa crea una matriz cuyo nmero de filas es el mismo que el tamao de poblacin. El nmero de
columnas es del tamao del cromosoma (si son 5 trabajos, tendr 5 filas) ms una fila para guardar el
valor de la funcin objetivo de cada cromosoma. En cada fila se genera un cromosoma aleatoriamente.
Luego que todas las filas tengan un cromosoma, se procede a calcular la funcin objetivo de cada uno de
estos cromosomas y se escribe en la ltima posicin de esa fila.
Paso 3: Paso de Generaciones
En cada generacin ocurre lo siguiente (se repite dependiendo del nmero de generaciones especificado):
Paso 3.1: Escoger a los Padres Ms Aptos
El programa crea una matriz cuyo nmero de filas es igual al nmero de hijos. El nmero de columna es
el mismo que el de la matriz de poblacin. Se procede a llenar la matriz de hijos con los individuos de la
poblacin que tienen los mejores valores de la funcin objetivo (en este caso, los que tengan la mnima
fecha de terminacin del ltimo trabajo).
Paso 3.2: Operador de Cruce (Produccin de Hijos)
Se utiliza el operador de cruce para genera los hijos. Al finalizar, todos los cromosomas de la matriz hijos
son el resultado del cruce de dos padres (o individuos mejor adaptados de la poblacin).
Paso 3.3: Operador Mutacin
Para cada hijo se genera un nmero aleatorio entre 0 y 1 y, dependiendo del valor de la probabilidad de
mutacin, se utiliza o no el operador mutacin.
Paso 3.4: Calcular Funcin Objetivo de los Hijos
Paso 3.5: Reemplazando a los Peores Individuos
Los individuos de la poblacin que tienen peores funciones objetivos son reemplazados por los hijos y se
forma una nueva poblacin.

Paso 4: Entrega de Mejor Solucin


Entre la poblacin resultante de la ltima generacin se busca el cromosoma con la menor funcin
objetivo y se procede a mostrar la solucin en una hoja nueva de Excel.

Figura 5 Diagrama de Flujo del Algoritmo Gentico

5. Ajuste de Parmetros
Para el ajuste parmetros se procedi a correr un mismo problema con cambios a cada parmetro (dejando
los dems parmetros en un valor fijo) para encontrar los valores para los cuales el algoritmo diera los
mejores resultados en cuanto a tiempo de ejecucin y calidad de la solucin. En cada valor de cada
parmetro se corri diez veces el problema y se obtuvo su respectivo tiempo de ejecucin promedio y
solucin promedio.
Las conclusiones a las que se llegaron fueron las siguientes:
I.
Los mejores valores para cada uno de los parmetros son los siguientes si observamos su
incidencia en la solucin promedio:
Tamao de poblacin: 350
Al variar este parmetro se logr ver que para valores mayores a 350 de poblacin no se
reportaron mejoras importantes a la solucin. Esto se puede ver en la siguiente grfica:

Sol. Promedio

Tamao de Poblacin vs. Solucin Promedio


72,5
72
71,5
71
70,5
70
69,5
0

100

200

300

400

Tamao de Poblacin

Figura 5 Tamao de Poblacin vs. Solucin Promedio

500

Nmero de generaciones: 300


Al igual que con el parmetro anterior, para valores mayores a 300 generaciones no se
observaron mejoras importantes en la solucin promedio.

Sol. Promedio

Nm ero de Generaciones vs. Solucin Prom edio


72
71,5
71
70,5
70
69,5
150

200

250

300

350

400

450

Nm ero de Generaciones

Figura 6 Nmero de Generaciones vs. Solucin Promedio


Nmero de hijos: 20
El comportamiento de este parmetro muestra que existe un nmero ideal de hijos para el
algoritmo en el que valores menores o mayores ofrecen peores soluciones. Esto se puede ver
en la grfica siguiente.

Sol. Promedio

Nmero de Hijos vs. Solucin Promedio


73
72,5
72
71,5
71
70,5
70
0

10

20

30

40

50

60

Nmero de Hijos

Figura 7 Nmero de Hijos vs. Solucin Promedio


Probabilidad de mutacin: no se logr determinar
Este parmetro no mostr un comportamiento que ayudara a la escogencia de un valor
determinado.
II.
III.

IV.

El nmero de hijos es un parmetro importante en el algoritmo y que debe ser cuidadosamente


escogido para obtener buenos resultados al solucionar un problema
El aumento en el nmero de generaciones y el tamao de poblacin al parecer lleva a mejorar
las soluciones obtenidas segn los resultados obtenidos. Esto se puede deber a que, al existir
ms individuos y mas cruces entre los ms aptos, hay mayores probabilidades de encontrar
cromosomas que se acerquen ms al ptimo.
El aumento en cualquiera de los parmetros lleva a un aumento en el tiempo de ejecucin.
Esto se puede deber a que se debe ejecutar ms veces el clculo de la funcin objetivo de los
hijos (la cual es una instruccin que contiene muchos ciclos y es algo compleja), el nmero de
veces que se realiza mutacin, se aumenta el tamao de las matrices que maneja el algoritmo,
y se deben manipular ms individuos.

V.

En una futura investigacin, se disear un experimento para ajustar los parmetros del
algoritmo gentico, pues los parmetros trabajan en conjunto y para encontrar una
combinacin que sea ptima se debe tomar en cuenta que todos los parmetros inciden al
mismo tiempo en el funcionamiento del algoritmo. Se debe encontrar una combinacin que
de buenas soluciones en un tiempo razonable. Adems se podran plantear hiptesis
estadsticas que puedan determinar si las conclusiones respecto a la incidencia de los
parmetros son correctas.

6. Comparacin entre el Algoritmo Gentico y el Programa Lineal Entero Mixto


Se construyeron 26 problemas, los cuales fueron corridos 15 veces en el algoritmo gentico. Los
problemas tenan diferentes tamaos: 5, 7, 9, 11, 13 y 15 trabajos. Cada problema tena un nmero
diferente de mquinas. Se puso como tiempo lmite de ejecucin para Xpress 600 segundos en los casos
en los que no llegase a terminar de ejecutarse el mtodo lineal. Las pruebas se hicieron en un computador
Pentium 4 de 1500 Mhz y 512 MB de RAM. Xpress logr llegar al ptimo solamente en 7 de los
problemas. Sus tiempos de ejecucin variaron entre los 0.4 segundos y los 217 segundos, dependiendo del
tamao del problema. En estos casos, el algoritmo gentico logr tambin llegar al ptimo en tiempos
inferiores a los 30 segundos. En los dems problemas, Xpress no termin de ejecutarse (en este caso se
guarda la mejor solucin a la que lleg Xpress luego de 600 segundos). Se compararon los resultados del
algoritmo gentico con la cota mnima dada por Xpress al problema relajado.
Diferencias Porcentuales Respecto a la Cota
Inferior dada por Xpress
70,00%
60,00%
50,00%
40,00%
30,00%
20,00%
10,00%
0,00%

Diferencia
Porcentual Xpress

uno
dos
tres
uno
dos
tres
uno
dos
tres
cuatro
cinco
uno
dos
tres
cuatro
cinco
uno
dos
tres
cuatro
cinco
uno
dos
tres
cuatro
cinco

Diferencia
Porcentual
Algoritmo

11

13

15

Problem a

Figura 6 Diferencias porcentuales respecto a la cota inferior dada por Xpress


El punto mximo del algoritmo es en el problema 11 cuatro en el cual la diferencia porcentual es de un
23%. El algoritmo gentico esta siempre igual o ms cerca a la cota inferior dada por el problema que el
programa lineal. Adems los tiempos de ejecucin son inferiores a los tiempos de Xpress (debajo de los
30 segundos)
7. Pruebas con Instancias Grandes
Se probaron instancias de 20 y 30 trabajos (16 en total) con el algoritmo gentico. Se encontr que los
tiempos de procesos crecen inevitablemente a medida que crecen los problemas, puesto que se deben
procesar matrices ms grandes, calcular funciones objetivos de cromosomas con ms posiciones entre

otros. Sin embargo, en los problemas probados, los tiempos siguen permaneciendo debajo de los 60
segundos.

Tiempo de Ejecucin
Promedio (seg.)

Tiempo de Ejecucin Promedio Algoritmo


Gentico
50
40
30
20
10
0
0

10

15

20

25

30

35

Nmero de Trabajos

Figura 7 Tiempos Algoritmo Gentico


Tambin es ms difcil llegar a soluciones ptimas a medida que aumenta la complejidad de los
problemas, pues entre ms trabajos tenga existen ms cromosomas posibles y por lo tanto la probabilidad
de llegar a un cromosoma que contenga la solucin ptima se ve reducida. Esto se ve en una tendencia al
aumento de la diferencia porcentual promedio entre la solucin mnima obtenida por el algoritmo y la
solucin promedio y tambin por el aumento de la variabilidad de las soluciones obtenidas al finalizar la
ejecucin a medida que aumentan en tamao los problemas.
Diferencia Porcentual Promedio Entre la Solucin
Promedio y la Mejor Solucin del Algoritmo
Gentico

Diferencia
Porcentual
Promedio

6,00%
4,00%
2,00%
0,00%
-2,00% 0

10

15

20

25

30

35

Nmero de Trabajos

Figura 8 Diferencia Porcentual Promedio entre Solucin Promedio y Mejor Solucin del Algoritmo
Gentico
Desviaciones Estandar Algoritmo Gentico
1,5

DS

1
0,5
0
-0,5

10

20

30

40

Nm ero de Trabajos

Figura 9 Grfica Desviaciones Estndar de Soluciones del Algoritmo

8. Conclusiones
En este proyecto se estudi el problema de programacin en mquinas en paralelo de trabajos que
necesitan recursos duales minimizando la fecha de terminacin del ltimo trabajo. Se dise para tal
propsito un algoritmo gentico cuyo funcionamiento fue comparado en 26 instancias con el mtodo de
programacin lineal en el programa Xpress.
Los resultados obtenidos mostraron que el algoritmo obtiene las mismas o mejores soluciones que las que
obtiene Xpress y en tiempos menores a un minuto si se comparan con la cota inferior obtenida por Xpress
de un problema relajado, sin embargo, entre ms grande es el problema, ms tiempo tomar en ejecutarse
el algoritmo debido a que el aumento de tamao del problema lleva a una aumento en el tamao de las
matrices utilizadas, aumento en el tamao de los cromosomas, entre otros.
Se logr tambin identificar la importancia de los parmetros en el funcionamiento del algoritmo; una
combinacin ptima de los valores de esto es de vital importancia a la hora de tener el mejor rendimiento
de este tipo de algoritmos en cuanto a tiempo de ejecucin y calidad de las soluciones encontradas.
Para futuras investigaciones se podran disear algoritmos que minimizaran otras funciones objetivos.
Tambin se podran disear cotas a las soluciones para este tipo de problemas con el fin de obtener
resultados ms exactos en cuanto al funcionamiento del algoritmo. Finalmente, se podra optimizar el
algoritmo mejorando la forma en la que se calcula la funcin objetivo y penalizando cromosomas distintos
que codifiquen mismas soluciones.
9.

Bibliografa

a. Sheng-Fuu Lin & Jaw-Yeh Chen. Two Parallel Machines Scheduling. Systems Analysis
Modelling Simulation 2002; Vol.42: pp.1429 1437.
b. S. M. T. Fatemi Ghomi & F. Jolai Ghazvini. A pairwise interchange algorithm for parallel
machine scheduling. Production Planning & Control 1998; Vol. 9 (7): pp. 685 - 689.
c. Pinedo, Michael. Scheduling: Theory, Algorithms, and Systems (2nd Edition). PrenticeHall. 2004.
d. Liu Min & Wu Cheng. A genetic algorithm for minimizing the makespan in the case of
scheduling identical parallel machines. Artificial Intelligence in Engineering 1999; Vol. 13:
pp. 399 403.
e. Jeffery K. Cochran, Shwu-Min Horno & John W. Fowler. A multi-population genetic
algorithm to solve multi-objective scheduling problems for parallel machines. Computers &
Operations Research 2003; Vol. 30: pp. 1087 1102.
f. Daniels RL, Hua SY & Webster S. Heuristics for parallel machine flexible resource
schedulin problems with unspecified job assignment. Computers & Operations Research
1999; Vol. 26 (2): pp. 143 155.
g. Alex J. Ruiz-Torres & Grisselle Centeno. Scheduling with flexible resources in parallel
workcenters to minimize maximum completion time Computers & Operations Research
2005.
h. Chingchang Jou. A genetic algorithm with sub-indexed partitioning genes and its
application to production scheduling of parallel machines. Computers & Operations
Research 2005; Vol. 48: pp. 39 54.
i. Liu Min & Wu Cheng. Genetic algorithm for optimal common due date assignment and the
optimal scheduling policy in parallel machina earliness/tardiness scheduling problems.
Robotics and Computer-Integrating Manufacturing 2005.
j. Federico Della Croce, Roberto Tadeo & Giuseppe Volta. A Genetic Algorithm for the job
Shop Problem. Computers & Operations Research 1995; Vol. 22: pp. 15 - 24.

10

S-ar putea să vă placă și