# Genetic Algorithm Solvers in Matlab

Two versions of GA solvers, GA Solver en Matlab and GA Solver X, are available for finding the minimum of FITNESSFCN with NVARS design variables. FITNESSFCN is a scalar function that takes a vector X as input. Additionally, GA Solver X also allows for customizable optimization parameters through the use of the OPTIONS structure. Lastly, GA PROBLEM is another solver option that takes in a structured problem with fields for fitness function, number of variables, optimization options, and random seed states.

• Uploaded on | 3 Views
• jevon

## About Genetic Algorithm Solvers in Matlab

PowerPoint presentation about 'Genetic Algorithm Solvers in Matlab'. This presentation describes the topic on Two versions of GA solvers, GA Solver en Matlab and GA Solver X, are available for finding the minimum of FITNESSFCN with NVARS design variables. FITNESSFCN is a scalar function that takes a vector X as input. Additionally, GA Solver X also allows for customizable optimization parameters through the use of the OPTIONS structure. Lastly, GA PROBLEM is another solver option that takes in a structured problem with fields for fitness function, number of variables, optimization options, and random seed states.. The key topics included in this slideshow are . Download this presentation absolutely free.

## Presentation Transcript

1. GA Solver en Matlab

2. 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: nvars: options: randstate: randnstate:

3. 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: randnstate: generations: funccount: 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.

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

5. GA Solver Example: Minimize 'rastriginsfcn' fitness function of numberOfVariables = 2 x = ga(@rastriginsfcn,2) Display plotting functions while GA minimizes options = gaoptimset('PlotFcns',... {@gaplotbestf,@gaplotbestindiv,@gaplotexpect ation,@gaplotstopping}); [x,fval,reason,output] = ga(@rastriginsfcn,2,options)

6. 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, ...

7. 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 [ positive scalar | {20} ] 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} ]

8. 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 [ {@gacreationuniform} ] FitnessScalingFcn - Function used to scale fitness scores. [ @fitscalingshiftlinear | @fitscalingprop | @fitscalingtop | {@fitscalingrank} ]

9. Opciones del algoritmo I SelectionFcn - Function used in selecting parents for next generation [ @selectionremainder | @selectionrandom | @selectionroulette | @selectiontournament | {@selectionstochunif} ] CrossoverFcn - Function used to do crossover [ @crossoverheuristic | @crossoverintermediate | @crossoversinglepoint | @crossovertwopoint | {@crossoverscattered} ] MutationFcn - Function used in mutating genes [ @mutationuniform | {@mutationgaussian} ] HybridFcn - Another optimization function to be used once GA has normally terminated (for whatever reason) [ @fminsearch | @patternsearch | @fminunc | {[]} ] Display - Level of display [ 'off' | 'iter' | 'diagnose' | {'final'} ] OutputFcns - Function(s) called in every generation. This is more general than PlotFcns. [ @gaoutputgen | {[]} ] PlotFcns - Function(s) used in plotting various quantities during simulation [ @gaplotbestf | @gaplotbestindiv | @gaplotdistance | @gaplotexpectation | @gaplotgeneology | @gaplotselection | @gaplotrange | @gaplotscorediversity | @gaplotscores | @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'} ]