Algoritmos genéticos con matlab

9
Algoritmos Genéticos y . Comandos básicos con Matlab Dr Juan Cevallos

Transcript of Algoritmos genéticos con matlab

Page 1: Algoritmos genéticos con matlab

Algoritmos Genéticos y .Comandos básicos con Matlab

Dr Juan Cevallos

Page 2: Algoritmos genéticos con matlab

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.

Page 3: Algoritmos genéticos con matlab

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.

Page 4: Algoritmos genéticos con matlab

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

Page 5: Algoritmos genéticos con matlab

Otros Operadores

• Cromosomas de longitud variable.

• Operadores de nicho.

Page 6: Algoritmos genéticos con matlab

Alternativas con Matlab

• Con Optimization Tool

• Con Command Line

Page 7: Algoritmos genéticos con matlab

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)

Page 8: Algoritmos genéticos con matlab

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

Page 9: Algoritmos genéticos con matlab

Fin