# GA Solver en Matlab.

## Presentation on theme: "GA Solver en Matlab."— Presentation transcript:

GA Solver en Matlab

GA Solver X = GA(FITNESSFCN,NVARS) finds the minimum of FITNESSFCN using GA. NVARS is the dimension (number of design variables) of the FITNESSFCN. FITNESSFCN accepts a vector X of size 1-by-NAVRS, and returns a scalar evaluated at X. X = GA(FITNESSFCN,NAVRS,OPTIONS) finds the minimum for FITNESSFCN with the default optimization parameters replaced by values in the structure OPTIONS. OPTIONS can be created with the GAOPTIMSET function. X = GA(PROBLEM) finds the minimum for PROBLEM. PROBLEM is a structure that has the following fields: fitnessfcn: <Fitness Function> nvars: <Number of design variables> options: <Options structure created with GAOPTIMSET> randstate: <Optional field to reset rand state> randnstate: <Optional field to reset randn state>

GA Solver [X, FVAL] = GA(FITNESSFCN, ...) returns FVAL, the value of the fitness function FITNESSFCN at the solution X. [X,FVAL,REASON] = GA(FITNESSFCN, ...) returns the REASON for stopping. [X,FVAL,REASON,OUTPUT] = GA(FITNESSFCN, ...) returns a structure OUTPUT with the following information: randstate: <State of the function RAND used before GA started> randnstate: <State of the function RANDN used before GA started> generations: <Total generations, excluding HybridFcn iterations> funccount: <Total function evaluations> message: <GA termination message> [X,FVAL,REASON,OUTPUT,POPULATION] = GA(FITNESSFCN, ...) returns the final POPULATION at termination. [X,FVAL,REASON,OUTPUT,POPULATION,SCORES] = GA(FITNESSFCN, ...) returns the SCORES of the final POPULATION.

GA Solver There are several steps to the GA: population generation
scoring loop fitness scaling selection crossover mutation migration output termination testing end loop Each of these steps can be controlled by the options structure created by GAOPTIMSET.

GA Solver Example: Minimize 'rastriginsfcn' fitness function of numberOfVariables = 2 x = Display plotting functions while GA minimizes options = gaoptimset('PlotFcns',... [x,fval,reason,output] =

Opciones del algoritmo I
GAOPTIMSET Create a genetic algorithm options structure. GAOPTIMSET returns a listing of the fields in the options structure as well as valid parameters and the default parameter. OPTIONS = GAOPTIMSET('PARAM',VALUE) creates a structure with the default parameters used for all PARAM not specified, and will use the passed argument VALUE for the specified PARAM. OPTIONS = GAOPTIMSET('PARAM1',VALUE1,'PARAM2',VALUE2,....) will create a structure with the default parameters used for all fields not specified. Those FIELDS specified will be assigned the corresponding VALUE passed, PARAM and VALUE should be passed as pairs. OPTIONS = GAOPTIMSET(OLDOPTS,'PARAM',VALUE) will create a structure named OPTIONS. OPTIONS is created by altering the PARAM specified of OLDOPTS to become the VALUE passed. OPTIONS = GAOPTIMSET(OLDOPTS,'PARAM1',VALUE1,'PARAM2',VALUE2,...) will reassign those fields in OLDOPTS specified by PARAM1, PARAM2, ... to VALUE1, VALUE2, ...

Opciones del algoritmo I
PopulationType The type of Population being entered [ 'bitstring' | 'custom' | {'doubleVector'} ] PopInitRange Initial range of values a population may have [ Matrix | {[0;1]} ] PopulationSize Positive scalar indicating the number of individuals [ positive scalar | {20} ] EliteCount Number of best individuals that survive to next generation without any change [ positive scalar | {2} ] CrossoverFraction - The fraction of genes swapped between individuals [ positive scalar | {0.8} ] MigrationDirection - Direction that fittest individuals from the various sub-populations may migrate to other sub-populations ['both' | {'forward'}] MigrationInterval - The number of generations between the migration of the fittest individuals to other sub-populations MigrationFraction - Fraction of those individuals scoring the best that will migrate [ positive scalar | {0.2} ] Generations Number of generations to be simulated [ positive scalar | {100} ]

Opciones del algoritmo I
TimeLimit The total time (in seconds) allowed for simulation [ positive scalar | {INF} ] FitnessLimit The lowest allowed score [ scalar | {-Inf} ] StallGenLimit If after this number of generations there is no improvement, the simulation will end [ positive scalar | {50} ] StallTimeLimit If after this many seconds there is no improvement, the simulation will end [ positive scalar | {20} ] InitialPopulation - The initial population used in seeding the GA algorithm [ Matrix | {[]} ] InitialScores The initial scores used to determine fitness; used in seeding the GA algorithm [ column vector | {[]} ] [ positive scalar | {1} ] CreationFcn Function used to generate initial population [ ] FitnessScalingFcn - Function used to scale fitness scores. | ]

Opciones del algoritmo I
SelectionFcn Function used in selecting parents for next generation | @selectionroulette | @selectiontournament | ] CrossoverFcn Function used to do crossover | @crossoversinglepoint | ] MutationFcn Function used in mutating genes | ] HybridFcn Another optimization function to be used once GA has normally terminated (for whatever reason) | {[]} ] Display Level of display [ 'off' | 'iter' | 'diagnose' | {'final'} ] OutputFcns Function(s) called in every generation. This is more general than PlotFcns. | {[]} ] PlotFcns Function(s) used in plotting various quantities during simulation | @gaplotexpectation | @gaplotrange | @gaplotstopping | {[]} ] PlotInterval The number of generations between plotting results [ positive scalar | {1} ] Vectorized Objective function is vectorized and it can evaluate more than one point in one call [ 'on' | {'off'} ]