Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Algoritmos Geneticos Proyecto 1
Algoritmos Geneticos Proyecto 1
FACULTAD DE INGENIERÍA
Algoritmos genéticos
Elaborado por:
Alan Arturo Mejía Rodríguez
1
Índice
Introducción-------------------------------------------------------------3
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.
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
p.e.:
1.-
2.-
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.
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
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:
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
4 3 2 1 0
= 5ms*24 = 80 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”
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 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
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
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
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
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
10