gusucode.com > 遗传算法 gaot工具箱matlab源码程序 > code_rar/gaot/floatExample.m

    echo on
% This script shows how to use the ga using a float representation. 
% You should see the demos for
% more information as well. gademo1, gademo2, gademo3
global bounds

% Setting the seed to the same for binary
rand('seed',156789)

% Crossover Operators
xFns = 'arithXover heuristicXover simpleXover';
xOpts = [1 0; 1 3; 1 0];

% Mutation Operators
mFns = 'boundaryMutation multiNonUnifMutation nonUnifMutation unifMutation';

mOpts = [2 0 0;3 200 3;2 200 3;2 0 0];

% Termination Operators
termFns = 'maxGenTerm';
termOps = [200]; % 200 Generations

% Selection Function
selectFn = 'normGeomSelect';
selectOps = [0.08];

% Evaluation Function
evalFn = 'gaMichEval';
evalOps = [];

type gaMichEval

% Bounds on the variables
bounds = [-3 12.1; 4.1 5.8];

% GA Options [epsilon float/binar display]
gaOpts=[1e-6 1 1];

% Generate an intialize population of size 20
startPop = initializega(20,bounds,'gaMichEval',[1e-6 1])

% Lets run the GA
% Hit a return to continue
pause


[x endPop bestPop trace]=ga(bounds,evalFn,evalOps,startPop,gaOpts,...
    termFns,termOps,selectFn,selectOps,xFns,xOpts,mFns,mOpts);


% x is the best solution found
x
% Hit a return to continue
pause


% endPop is the ending population
endPop
% Hit a return to continue
pause


% bestPop is the best solution tracked over generations
bestPop
% Hit a return to continue
pause


% trace is a trace of the best value and average value of generations
trace
% Hit a return to continue
pause


% Plot the best over time
clf
plot(trace(:,1),trace(:,2));
% Hit a return to continue
pause


% Add the average to the graph
hold on
plot(trace(:,1),trace(:,3));
% Hit a return to continue
pause


% Lets increase the population size by running the defaults
% 

[x endPop bestPop trace]=ga(bounds,evalFn,evalOps,[],gaOpts);

% x is the best solution found
x
% Hit a return to continue
pause


% endPop is the ending population
endPop
% Hit a return to continue
pause


% bestPop is the best solution tracked over generations
bestPop
% Hit a return to continue
pause


% trace is a trace of the best value and average value of generations
trace
% Hit a return to continue
pause


% Plot the best over time
clf
plot(trace(:,1),trace(:,2));
% Hit a return to continue
pause


% Add the average to the graph
hold on
plot(trace(:,1),trace(:,3));


echo off