2wef007-5-24总结MatLab遗传算法与直接搜索工具箱(Gads)....doc
文本预览下载声明
2007-5-24:总结MatLab遗传算法与直接搜索工具箱(Gads)by 王桂从
主要的函数:
函数ga(主函数)
格式:
X=ga (fitnessfun, nvars);
X=ga (fitnessfun, nvars,options);
[x, fval, reason]=ga(…);
[x, fval, reason,output]=ga(…);
[x, fval, reason, output, population]=ga(…);
[x, fval, reason ,output, population, scores]=ga(…);
其中:output是一个结构体,包含以下字段:
Randstate——遗传算法启动之前的rand的状态
Randnstate——遗传算法启动之前的randn的状态
Generations——计算的代数
Funccount——适应度函数的估算次数
Message——算法中止的原因,与输出变量reason相同。
Ga的主要算法过程:
(1)函数体:
Function [x,fval,exitflag,output,population,scores]=ga(Fun, genomeLength,options)
(2)输入参数:
Fun——适应度函数句柄
genomeLength——适应度函数的输入变量个数
options——遗传算法参数体,可以由gaoptimset函数进行设置。
(3)输出参数:
X——最优点
Fval——函数的最优值
Exitflag——算法终止的输出
Output——结构体
Population——算法终止时的种群
Scores——算法终止时的适应度值。
(4)算法的计算过程
逻辑流程
第一步:产生初始种群
第二步:计算适应度值
开始循环:
适应度比例
选择
交叉
变异
计算适应度
迁移
输出
终止条件测试
结束循环
程序实现:
定义参数的默认值:defaultopt;
判断输入的参数格式是否正确;其中调用了函数 validate()
获取初始种群和初始适应度值,调用函数makeState()
函数gaoptimget(获取遗传算法参数结构值)
格式:
Val=gaoptimget(options, ‘name’)
可以设置的参数:(详细的请参见[MatLab遗传算法工具箱及应用,雷英杰等编著,P205)
图形参数
绘图参数(PlotFcns)
@gaplotbestf——画图最佳函数值与代数对;
@gaplotexpection——画出与每一代原始得分对应的期望的子代数
@gaplotscorediversity——画出每一代的得分直方图
@plotstopping——画出停止条件水平
@gaplotbestindiv——画出每代中最佳适应度个体的向量值
@gaplotgenealogy——画出个体的谱系
@gaplotscores——画出每一代中个体的得分
@gaplotdistance——画出每一代中个体间的平均距离
@gaplotrange——画出每一代中最大、最小、平均适应度函数值
@gaplotselection——画出双亲的直方图
设置格式:
Options=gaoptimset(‘PlotFcns’,{ @gaplotbestf ,@gaplotexpection …}),显示多个图形。
绘图函数的结构
Function state=plotfun(options, state,flag);
输入:
Options:包含当前所有options设置的结构;
State:包含当前种群信息的结构。
Flag(字符串):一个字符串,表示算法的当前运行阶段。
状态结构State
State结构是图形函数、变异函数、和输出函数的输入参数,主要包含以下字段:
Population:当代种群
Score:当代种群的得分;
Generation:当前代数
StartTime:GA的开始时间
StopFlag:包含停止原因的字符串
Selection:指明被选择出来的优良个体,交叉个体和变异个体
Expectation:希望选择的个体数
Best:每一代具有最好得分个体的向量
LastImprovement:适应度值发生改进的最后一代的代数
LastImprovementTime:适应度值发生改进的最后时间。
种群参数
(1)“PopulationType”:适应度函数的输入数据类型:提供了两种输入类型:“doubleVecktor”和“bitstring”;
(2)“PopulationSize”:种群大小。即种群中个体的数目。默认为20
(3)“Cre
显示全部