Matlab遗传算法工具箱基于Matlab平台的遗传算法(GA)工具箱主要有:美国北卡罗来纳大学开发的GAOT、英国谢菲尔德大学开发的GATBX以及GADS(GeneticAlgorithmandDirectSearchToolbox)遗传算法与直接搜索工具箱。遗传算法与直接搜索工具箱的界面如图所示:GADS工具箱用户界面(1)Solver(求解器):用于选择需要的算法。(2)Problem:需要解决的问题。包括:1)Fitnessfunction:需要最小化的适应度函数,填写的格式为:@objfun,其中objfun.m是编写适应度函数的M文件,返回一个具体数值。2)Numberofvariables:适应度函数的自变量的数目,此处表示优化设计的设计变量个数。(3)Constraints约束。1)Linearinequalities线性不等式约束,表示为:*Axb,填写矩阵A和向量b的信息。2)Linearequalities线性等式约束,表示为:*Aeqxbeq,填写矩阵Aeq和向量beq的信息。3)Bounds:填写独立变量的取值范围。在Lower中填写变量的取值下界,Upper中填写变量的取值上界,均以向量形式表示。4)Nonlinearconstraintfunction非线性约束函数,编写非线性约束函数的M文件nonlcon.m,则在此处填写@nonlcon。(4)Runsolverandviewresults运行求解器并观察结果。点击Start即可开始运行。Currentiteration中将显示当前运行的代数。Finalpoint栏中显示最优解对应的变量的取值。(5)Option部分是遗传算法参数的设定。1)Population种群参数设定。Populationtype种群类型,设定适应度函数的输入数据类型。工具箱提供了两种输入类型:双精度、串位,用户还可以编写M文件自定义输入数据的类型。Populationsize种群规模,定义每一代种群的个体数量。种群规模越大,遗传算法的运行速度越慢。Creationfunction创建函数,用于创建初始种群。Initialpopulation初始种群,如果不指定初始种群,则系统将运用创建函数创建初始种群。Initialscores初始得分,如果此处没有定义初始得分,则系统应用适应度函数来计算初始得分。Initialrange初始范围,用于指定初始种群中的各变量的上下限。初始范围用一个矩阵表示,该矩阵行数为2,列数为变量的个数。其中第一行描述初始种群中变量的取值下限,第二行描述初始种群中变量的取值上限。2)Fitnessscaling适应度测量,包括:Rank排序尺度变换、Proportional比例尺度变换、Top顶级尺度变换、Shiftlinear线性转换尺度变换以及Custom用户自定义。3)Selection选择,工具箱提供了以下几种选择函数:Stochasticuniform随机均匀分布、Remainder剩余、Uniform均匀分布、Roulette轮盘赌选择、Tournament锦标赛选项、Custom用户自定义。4)Reproduction再生参数,需设定可生存到下一代的精英个数Elitecount,以及下一代由交叉产生的部分所占比例Crossoverfraction。5)Mutation变异,工具箱提供的变异函数有:Gaussian高斯函数、Uniform均匀变异、Adaptivefeasible自适应变异、以及用户自定义。6)Crossover交叉,工具箱提供的交叉函数有:Scattered多点交叉、Singlepoint单点交叉、Twopoint两点交叉、Arithmetic算数交叉等。7)Migration迁移,需设置个体在子种群中移动的方向Direction、间隔Interval,以及两个子种群中较小种群的个体迁移百分比Fraction。8)Stopingcriteria终止条件。可设置遗传算法的最大代数、适应度极限、停滞时间、停滞代数等。9)Hybirdfunction混合函数参数。在遗传算法结束之后,可指定一个最小值优化函数。工具箱提供的优化函数有:fminsearch、patternsearch、fminunc、fmincon。其中fminsearch、fminunc适用于无约束的优化,fmincon适用于有约束的优化。10)Displaytocommandwindow输出命令到窗口。Display表示显示级别,是一个结构体。其中包含:Off只有最终结果显示;Iterative显示每一次迭代的有关信息;Diagnose显示每一次迭代的信息,而且还列出函数缺省值已经被改变的有关信息;Final显示遗传算法的结果(成功与否)、停止的原因、最终点。11)工具箱还提供了Plotfunctions图形输出、Outputfunction输出函数、Userfunctionevaluation用户函数评估界面供用户选择。