Está en la página 1de 10

UNIVERSIDAD AUTÓNOMA DEL ESTADO DE MÉXICO

FACULTAD DE INGENIERÍA

Algoritmos genéticos aplicados al


problema de calendarización de
procesos de máquinas en paralelo (PMS)

Algoritmos genéticos

Elaborado por:
Alan Arturo Mejía Rodríguez

Toluca, México; 11 de enero del 2017

1
Índice
Introducción-------------------------------------------------------------3

Formulación del problema (Parallel Machine Scheduling ---4


problem)

Representación de los cromosomas-------------------------------5

Función fitness----------------------------------------------------------6

Selección------------------------------------------------------------------6

Cruza-----------------------------------------------------------------------6

Mutación-----------------------------------------------------------------7

Resultados ---------------------------------------------------------------8

Conclusiones-----------------------------------------------------------10

Bibliografía-------------------------------------------------------------10
2
Introducción
En diferentes ares de la ciencia es necesario encontrar soluciones a situaciones que
requieren de ellas en un tiempo considerable, ya que a pesar de que algunos tienen una
solución concreta los recursos necesarios, ya sea tiempo o energía, y los métodos
determinísticos no permiten obtener esa solución de forma adecuada. Es por eso que se
deben de aplicar conceptos y operadores que permiten encontrar soluciones a problemas
combinacionales y de optimización en un tiempo útil.

Los algoritmos genéticos es una herramienta que proporciona métodos y operadores que
nos pueden ayudar a resolver problemas de gran complejidad, que si bien no
necesariamente encuentran la mejor solución, las diversas operaciones nos permiten llegar
a una solución cercana a la óptima en fracciones de tiempo y de desempeño
considerablemente menores a los que se obtendrían con otros métodos.

En el siguiente documento se presente la aplicación de un algoritmo genético y sus


operadores sobre el problema de calendarización de procesos de máquinas en paralelo
(Parallel Machine Scheduling), el cual es uno de los problemas optimización combinacional
de mayor dificultad debido al gran espacio de búsqueda que se genera.

3
Formulación del problema
En el PMS problem se tienen m máquinas que pueden procesar j tareas procesos
disponibles a la misma o a diferente velocidad. La calendarización de procesos se puede
considerar como un problema de dos pasos, el primero es decidir que procesos se van a
asignar a que máquinas, y el segundo es la secuencia de procesos asignados a cada máquina.

M[k]->maquinas

J[n]->procesos

Problema de dos pasos

p.e.:

 k=5 (propuesta para el proyecto 6, 30 y 100 máquinas)


 n=6 (propuesta para el proyecto 10, 50 y 300 procesos)

1.-

J[1], J[3] M[1]

J[2], J[6]  M[2] } Cuales procesos se asignan a cuales maquinas

J[4], J[5]  M[3]

2.-

Secuencia de procesos asignados a cada maquina

Algo que se debe tener en consideración es que a través de métodos tradicionales este
problema es muy complicado de resolver, por ejemplo:
 Una instancia de 4 máquinas y 5 procesos da como resultado:
-Al principio cada proceso tiene 20 formas de acomodarse en los espacios
formados por las 4 máquinas
-Una vez que un proceso ha ocupado un lugar se limita el espacio
-Por lo tanto la cantidad de combinaciones está determinado por:
C=20*19*18*17*16
C=1860480 combinaciones
 Como se ve a pesar de no tener una gran numero de máquinas y procesos el espacio de
búsqueda es bastante grande

4
Una de las dificultades que se pueden encontrar al utilizar algoritmos genéticos con este tipo de
problemas es encontrar una representación adecuada de los cromosomas así como operadores
genéticos que permitan generan soluciones factibles.

Representación de los cromosomas


Considérese la instancia de 3 máquinas y 5 procesos, como se muestra en la siguiente tabla:

Cada máquina tiene un tiempo de procesamiento diferente para cada tarea, si toma en cuenta el
ejemplo se necesitan 5*3= 15 bits para representar a un individuo. Tomando en cuenta la tabla para
la primera máquina existen4 valores nulos, mientras que para la maquina 2 y 3 se tiene 3 valores
nulos, debido a que se tienen 5 posibles valores nulos (por los 5 procesos que existen), para el caso
de la maquina 1 un valor ya está ocupado.

M1-1 a 5 posibles valores null M2-1-5 posibles valores null M3-1-5 posibles valores null

10000 - 11000 - 11000

Entonces un cromosoma quedaría representado de la siguiente forma:

Cromosoma: 10000|11000|11000

En la implementación para llevar cuenta de los procesos y el orden que tenían en cada una de las
maquinas se utilizó la siguiente representación, en forma matricial:

Quedando de la siguiente forma:

5 101 102 103 104


4 1 105 106 107
2 3 108 109 110

5
Función fitness
Para obtener la función fitness se tomaron ciertas consideraciones: debido a que en el PMS se debe
de tomar en cuenta la secuencia de procesamiento (orden) de las tareas en cada máquina, se le dio
un peso o valor a la posición en donde se encontraba cada proceso, considérese el ejemplo:

4 3 2 1 0

Para esta secuencia de procesos la tarea 5 procesada por la maquina 1 se le asigna un tiempo de
procesamiento de 5ms , entonces para obtener el costo que tendrá en el fitness se multiplica por la
potencia de 2 a la n siendo n=posición del proceso (desde 0, de derecha izquierda):

f=5 ms*24=80 ms

Y para la matriz completa:

4 3 2 1 0

= 5ms*24 = 80 ms

= (8ms*24) + (3ms*23) = 152 ms

= (7ms*24) + (4ms*23) = 144 ms

FitnessTotal = 376 ms

Selección
Para la selección se hizo uso del esquema de torneo, el cual permite escoger al individuo
con mejor fitness de entre un grupo de N individuos seleccionados al azar.
Para la mayoría de las instancias evaluadas se produjo una población de 8 individuos, a
partir de los cuales se realiza la selección.

Cruza
La cruza se realiza a través de la cruza basada en a la posición o PBX (Position Based
Crossover), la cual se realiza de la siguiente manera:
a) Seleccionar cadena de genes padre al azar para decidir que genes tendrán descendencia
b) Seleccionar dos padres (torneo, ruleta, etc.)

6
c) Del primer padre se selecciona un primer conjunto de posiciones a heredar (primer
descendiente)a partir de los valores “1” en el padre
d) Cada posición de un gen es marcado con una probabilidad de 0.5
e) Después de llenar genes vacíos, los genes del segundo padre se toman de izquierda a
derecha en orden y sin repetición
f) Para el descendiente 2, se aplica el mismo procedimiento, solo que empezando con el
segundo padre mientras que el valor dominante es “0”

A continuación se muestra un ejemplo:

J5(1)-101(1)-104(1)-105(1)-107(1)-108(1) -109(1) -110(1)

P1
J5 101 104 105 107 108 109 110

P2
J4 J2 102 J3 103 106 J1

OF1
J5 101 J4 J2 104 102 J3 105 103 107 106 J1 108 109 110

P2
J2 101 J3 103 105 J1 107

P1
J5 102 104 J4 106 108 109 110

OF2
J5 102 J2 101 104 J3 103 J4 105 106 J1 107 108 109 110

Mutación
La mutación se realiza por medio de un swaping o intercambio de genes de un individuo
determinado, con una probabilidad 0.001.

7
1.-Dos genes aleatorios se seleccionan y se intercambian

2.-Si dos genes null se seleccionan, se debe hacer otra selección hasta que se escoja un proceso

J5 101 102 103 104 J4 J1 105 106 107 J2 J3 108 109 110

Index1= Random (1…15)=3


Index2 = Random (1…15)=9

Index1 Index2

J5 101 J1 102 103 J4 104 105 J2 106 107 J3 108 109 110

J5 101 J2 102 103 J4 104 105 J1 106 107 J3 108 109 110

Resultados
A continuación se pueden ver las gráficas de desempeño de algoritmo para diferentes
instancias:
a) 3 máquinas y 5 procesos, 300 iteraciones y 35 corridas

Instancia A
80
70
60
50
40
30 Promedio
20
10
0
89
100
111
1
12
23
34
45
56
67
78

122
133
144
155
166
177
188
199
210
221
232
243
254
265
276
287
298

Series1 Series2 Series3 Promedio

Con un tiempo menor a 5 segundos, aproximadamente, en realizar todo le


procesamiento.

8
b) 6 máquinas y 10procesos, 300 iteraciones y 35 corridas

Instancia B
2500

2000

1500

1000

500
Promedio
0

232
1
12
23
34
45
56
67
78
89
100
111
122
133
144
155
166
177
188
199
210
221

243
254
265
276
287
298
Series1 Series2 Series3 Promedio

Tardando menos 15 segundos aproximadamente en realizar todo el


procesamiento.

c) 30 máquinas y 50 procesos, 300 iteraciones y 35 corridas

Instancia C
8E+14
7E+14
6E+14
5E+14
4E+14
3E+14
2E+14
1E+14 Promedio
0
45
1
12
23
34

56
67
78
89
100
111
122
133
144
155
166
177
188
199
210
221
232
243
254
265
276
287
298

Series1 Series2 Series3 Promedio

Tardando un tiempo menor a 4 minutos 30 segundos, aproximadamente, en


realizar todo le procesamiento.

9
d) 100/80 máquinas y 350/100 procesos, 300 iteraciones y 35 corridas

Instancia D
7E+100

6E+100

5E+100

4E+100

3E+100

2E+100
Promedio
1E+100

0
1 2 3 4 5 6

En este caso el procesamiento duro mas de 2 horas .

Conclusiones
Se pudo observar y confirmar que al aplicar algoritmos genéticos a problemas como el
PMS es posible obtener resultados óptimos en un tiempo considerable, que de otra forma
hubieran sido incalculables.
Así mismo es de notar la importancia que tiene el proceso de análisis para modelar los
problemas y ajustarlos para que pueden ser resueltos de forma satisfactoria por un
algoritmo genético, desde proponer una representación de los cromosomas así como
establecer la función fitness, hasta implementar os operadores de selección, cruza y
mutación.

Bibliografía
 Ak, Bilgesu & Koc, Erdem. (2012). A guide for genetic algorithm based on parallel machine
scheduling and flexible job-shop scheduling. Noviembre 20, 2016, de Elsevier Sitio web:
http://www.sciencedirect.com/science/article/pii/S1877042812035793

 Goldberg, D. (1989). Genetic algorithms in search, optimization and machine learning.


USA: Addison-Wesley

10

También podría gustarte