Está en la página 1de 4

Toolbox de Algoritmos genticos en MATLAB Pequeo manual

Para abrir el toolbox haga clic en el Botn de la esquina inferior izquierda de MATLAB y abra genetic algorithm and Direct Search Saldr un cuadro en el que ingresaremos los datos correspondientes al problema que deseamos optimizar (que por defecto es para minimizar). En l se ingresan los siguientes datos: (R significa que es requerido obligatoriamente)

Fitness function (R) es la funcin objetivo que se desea minimizar. Esta funcin se especifica de la forma @objfun, donde objfun.m es un M-file que retorna un escalar.

Para crear el M-file, en MATLAB, cree un archivo nuevo tipo .m, y ponga, por ejemplo, las siguientes instrucciones: function y = simple_fitness(x) y = 100 * (x(1)^2 - x(2)) ^2 + (1 - x(1))^2; y slvelo como simple_fitness.m Para el ejemplo, en Fitness function se pondra @ simple_fitness

Number of variables (R) es el nmero de variables de decisin

Constraints Las restricciones pueden ser lineales con signo de desigualdad, lineales con signo de igualdad y no lineales: Linear inequalities de la forma A*x b son definidas por la matriz A y el vector b. Por ejemplo 4X(1) +2X(2) 15, sera A42 B 15 Linear equalities de la forma Aeq*x = beq son definidas por la matriz Aeq y el vector beq. Bounds son limites de las variables.

Lower = limite mnimo (en forma de vector). Por ejemplo 0 2 significa que X(1) >= 0 y X(2)>=2

Upper = limite mximo (en forma de vector).

Nonlinear constraint function define las restricciones no lineales. Se debe especificar la function de la forma @nonlcon, donde nonlcon.m es un archivo .m que retorna los vectores c y ceq. Las igualdades no lineales son de la forma ceq = 0, y las desigualdades son de la forma c 0. Por ejemplo: function [C Ceq] = problem_1_RES(x) C = 0.25*x(1)^2 +x(2)^2 - 1; Ceq = x(1) - 2*x(2) + 1; End y slvelo como restriccionNL1.m y luego en Nonlinear constraint function del toolbox se pone: @ restriccionNL1 Plot Functions Permite dibujar varias caractersticas de los AG a medida que se va ejecutando.

Plot interval especifica el numero de generaciones entre actualizaciones sucesivas de la grafica. Best fitness dibuja el mejor valor de aptitud versus el numero de iteracin. Best individual dibuja los valores de x del mejor individuo la generacin. Scores grafica los valores de los individuos en cada generacin. Max constraint grafica la mxima violacin de la restriccin no lineal. Range grafica los valores de aptitud mnima, mximo y medio en cada generacin. Selection grafica un histograma de los padres.

Run solver(R) Para correr el solver haga clic en Start

Options
Permite especificar opciones especiales:

Population Population options Population type especifica el tipo de individuos. Puede ser Double vector, o Bit string, o custom. Population size especifica cuntos individuos habr en cada generacin

Creation function especifica la funcin de distribucin para crear la poblacin inicial: por defecto crea la poblacin aleatoriamente siguiendo una funcin uniforme.

Fitness scaling Convierte valores de aptitud puros a valores en un rango, que es usado luego por la funcin de seleccin. Scaling function especifica la funcin que hace el reescalamiento:

Rank reescala con base en el orden (rank) de cada individuo. El orden de cada individuo es su posicin en la lista ordenada de aptitudes Proportional reescala proporcionalmente a los valores de aptitud.

Selection Elige padres para la prxima generacin con base en sus aptitudes reescaladas:

Roulette simula una ruleta circular con el rea de cada segmento proporcional a su aptitud reescalada. Luego usa un nmero aleatorio para seleccionar una de las secciones con una probabilidad igual a su rea. Tournament selecciona cada padre eligiendo Tournament size individuos aleatoriamente y luego eligiendo el mejor individuo de ellos como padre.

Reproduction Determina como el AG crea hijos en cada nueva generacin Elite count especifica el numero de individuos que se garantizan para sobrevivir a la prxima generacin. Crossover fraction especifica qu fraccin de la prxima generacin, aparte de los elitistas, sern producidos por cruzamiento.

Mutation Especifica la funcin que hace la mutacin:

Gaussian adiciona un nmero aleatorio a cada trmino de un individuo. Este nmero es tomado de una distribucin Gaussiana con media cero y varianza definida en Scale en la primera generacin. El parmetro Shrink controla la forma en que la varianza disminuye de generacin en generacin. Si Shrink =0, la varianza es constante. Uniform es un proceso de dos pasos. Primero, el algoritmo selecciona una fraccin de los genes del vector de un individuo para ser mutados, en la que cada gen tiene la misma probabilidad de ser mutado (segn la probabilidad de mutacin). En el segundo paso, el algoritmo reemplaza cada gen seleccionado por un nmero aleatorio seleccionado uniformemente de un rango de entrada.

Adaptive feasible aleatoriamente genera direcciones que se adaptan respecto a los xitos o fracasos de la ultima generacin.

Crossover Combina 2 individuos padres para formar un Nuevo hijo para la prxima generacin Aqu se especifica la funcin a usar:

Scattered crea aleatoriamente un vector binario: para cada gen selecciona de cul padre va a formarse el hijo: si es 1 es del primer padre y si es 0 del Segundo. Por ejemplo, p1 = [a b c d e f g h] p2 = [1 2 3 4 5 6 7 8] el vector binario = [1 1 0 0 1 0 0 0] hijo = [a b 3 4 e 6 7 8] Single point elige aleatoriamente un entero n entre 1 y Number of variables para hacer el corte, y selecciona los genes enumerados menor que o igual a n del primer padre y los dems del segundo padre. Por ejemplo: p1 = [a b c d e f g h] p2 = [1 2 3 4 5 6 7 8] punto de corte = 3 hijo = [a b c 4 5 6 7 8]

Stopping criteria Determina la causa por la que para el algoritmo Generations especifica el nmero mximo de iteraciones. Time limit especfica el tiempo mximo de corrida en segundos. Fitness limit Si el mejor valor de aptitud es menor que o igual a un valor limite, el algoritmo para. Stall time limit Si no hay mejoras en el mejor valor de aptitud por un intervalo de tiempo en segundos, definido por Stall time limit, el algoritmo para.

También podría gustarte