ga solver en matlab

9
GA Solver en Matlab

Upload: hai-duc

Post on 06-Apr-2018

227 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: GA Solver en Matlab

8/3/2019 GA Solver en Matlab

http://slidepdf.com/reader/full/ga-solver-en-matlab 1/9

GA Solver en Matlab

Page 2: GA Solver en Matlab

8/3/2019 GA Solver en Matlab

http://slidepdf.com/reader/full/ga-solver-en-matlab 2/9

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>

Page 3: GA Solver en Matlab

8/3/2019 GA Solver en Matlab

http://slidepdf.com/reader/full/ga-solver-en-matlab 3/9

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.

Page 4: GA Solver en Matlab

8/3/2019 GA Solver en Matlab

http://slidepdf.com/reader/full/ga-solver-en-matlab 4/9

GA Solver 

There are several steps to the GA:

population generation

scoring

loop

fitness

scalingselection

crossover 

mutation

scoring

migration

outputtermination testing

end loop

Each of these steps can be controlled by the options structure created

by GAOPTIMSET.

Page 5: GA Solver en Matlab

8/3/2019 GA Solver en Matlab

http://slidepdf.com/reader/full/ga-solver-en-matlab 5/9

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,@gaplotexpectation,@gaplotstopping});

[x,fval,reason,output] =ga(@rastriginsfcn,2,options)

Page 6: GA Solver en Matlab

8/3/2019 GA Solver en Matlab

http://slidepdf.com/reader/full/ga-solver-en-matlab 6/9

Opciones del algoritmo I

GAOPTIMSET Create a genetic algorithm options structure.

GAOPTIMSET returns a listing of the fields in the options structure aswell 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 thepassed argument VALUE for the specified PARAM.

OPTIONS = GAOPTIMSET('PARAM1',VALUE1,'PARAM2',VALUE2,....) will create astructure 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 namedOPTIONS. OPTIONS is created by altering the PARAM specified of OLDOPTS to

become the VALUE passed.

OPTIONS = GAOPTIMSET(OLDOPTS,'PARAM1',VALUE1,'PARAM2',VALUE2,...) willreassign those fields in OLDOPTS specified by PARAM1, PARAM2, ... toVALUE1, VALUE2, ...

Page 7: GA Solver en Matlab

8/3/2019 GA Solver en Matlab

http://slidepdf.com/reader/full/ga-solver-en-matlab 7/9

Opciones del algoritmo IPopulationType - 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} ]

Page 8: GA Solver en Matlab

8/3/2019 GA Solver en Matlab

http://slidepdf.com/reader/full/ga-solver-en-matlab 8/9

Opciones del algoritmo ITimeLimit - 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} ]

Page 9: GA Solver en Matlab

8/3/2019 GA Solver en Matlab

http://slidepdf.com/reader/full/ga-solver-en-matlab 9/9

Opciones del algoritmo ISelectionFcn - 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 GAhas 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'} ]