Вы находитесь на странице: 1из 9

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 scoring 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 = 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)

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 [ 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} ]

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} ]

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'} ]

Opciones del algoritmo I

Вам также может понравиться