Algoritmos genéticos con matlab
-
Upload
univ-of-peru -
Category
Documents
-
view
2.904 -
download
1
Transcript of Algoritmos genéticos con matlab
Algoritmos Genéticos y .Comandos básicos con Matlab
Dr Juan Cevallos
Definición
• Algoritmo Genético es un método de búsqueda que imita la teoría de la evolución biológica e Darwin para la resolución de problemas.
• Se parte de una población inicial de la cual se seleccionan los individuos más capacitados para luego reproducirlos y mutarlos para finalmente obtener la siguiente generación de individuos que estarán más adaptados que la anterior generación.
Pasos Básicos
• Evaluar la puntuación de cada uno de los cromosomas generados
• Permitir la reproducción siendo los más aptos los que tengan más probabilidad de reproducirse.
• Con cierta probabilidad de mutación, mutar un gen del nuevo individuo generado.
• Organizar la nueva población.
Operaciones Fundamentales
1. Codificación de las variables: binaria, numérica, por valor directo, en árbol.
2. Selección: por rueda de ruleta, por rango, elitista, por estado estacionario, por torneo, escalada, jerárquica.
3. Reproducción o Crossover: c. 1 punto, c. 2 puntos, c. uniforme, c. aritmético.
4. Mutación
Otros Operadores
• Cromosomas de longitud variable.
• Operadores de nicho.
Alternativas con Matlab
• Con Optimization Tool
• Con Command Line
Con Optimization Tool
• Optimizar la función Rastrigin (minimizar):
• Ras(x)=20+x12+x2
2-10(cosπx1+cos2πx2)
• Ingresar la función en un archivo: rastriginsfcn.m
• Comandos:
• Optimtool(‘ga’)
• En cuadro: en Fitness function: @rastriginsfcn
• En Number of variables: 2
• Start
• Sale Respuesta: iteraciones 53; valor de función objetivo: 0.055; x1=.001;x2=-.017 (son valores inicio al azar, luego los resultados varían pero son similares)
Con Command Line
Comandos:>>rng(1,'twister')>> [x fval exitflag]=ga(@rastriginsfcn,2)Resultado:Optimization terminated: average change in the fitness value less than
options.TolFun.x =
0.0071 0.0220fval =
0.1058exitflag =
1Lo que interesan son los valores de x, en este caso x1 y x2
Fin