您好,欢迎访问三七文档
§5.5图形界面的Matlab遗传算法工具箱在命令窗口的提示符后输入gatool并回车即可进行matlab7.0提供的基于图形界面的遗传工具箱。输入适应值函数输入变量个数输入约束条件选择图形输出运行、暂停和中止求解器显示当前代数状态及结果显示窗口显示最优解参数设置区参数说明gatool图形界面窗口中各选项说明一、适应度函数参数Fitnessfunction—定义适应度函数极小化问题的适应度函数句柄,一般格式为@objfun,其中objfun.m是极小化问题适应度函数的M文件,在使用gatool之前,先用MATLAB的M文件编辑器进行编辑。Numberofvariables—适应度函数中独立的变量个数。Constraints—约束条件Linearinequalities—输入线性不等式约束条件A*x=b,其中A为一矩阵,而b为一向量;Linearequalities—输入线性等式约束条件Aeq*x=beq,其中Aeq为一矩阵,而beq为一向量;一、适应度函数参数Bounds—变量边界Lower—变量下界向量Upper—变量上界向量Nonlinearconstraintfunction—定义非线性约束函数,一般格式为@nonlcon,其中nonlcon.m是非线性约束函数的M文件,在使用gatool之前,先用MATLAB的M文件编辑器编辑好.一、适应度函数参数Plotinterval—指定相邻两次调用图形函数时的遗传代数;Bestfitnessplots—画出每一代最佳适应值和平均适应值;Bestindividualplots—画出当前最佳适应度个体;Distanceplots—画出每一代个体之间的平均距离;二、绘图参数(PlotFunctions)Expectationplots—画出与每一代原始得分对应的期望子代数;Genealogyplots—画出从一代到下一代的个体谱系。其中红线表示变异子辈;兰线表示交叉子辈;黑线表示原始个体。Rangeplots—画出每一代中最大、最小和平均适应度函数值。Scorediversityplots—画出每一代的得分直方图。二、绘图参数(PlotFunctions)Scoresplots—画出每一代个体的得分。Selectionplots—画出双亲直方图Stoppingplots—画出停止条件水平Custom—用户自定义绘图函数,一般格式为@myplotfcn,其中myplotfcn.m是用户自定义绘图函数的M文件,在使用gatool之前,先用MATLAB的M文件编辑器编辑好.二、绘图参数(PlotFunctions)三、种群参数(PopulationOptions)Populationtype—指定适应度函数的输入数据类型。其中Doublevector表示输入数据双精度向量;Bitstring表示输入数据位串;Custom表示输入数据为自定义类型,此时用户必须自己编写创建变异和交叉函数来接受这种类型种群的输入。Populationsize—指定种群规模三、种群参数(PopulationOptions)Creationfunction—指定创建初始种群的函数。其中Uniform创建具有均匀分布的随机初始种群;Custom由用户自定义创建函数。Initialpopulation—指定初始种群Initialscores—指定种群的初始适应值Initialrange——指定被创建函数生成的初始种群向量范围。单击“populatiom”选项前的“+”号单击“∨”按钮弹出下拉菜单选择输入数据类型输入种群规模指定创建初始种群的函数四、适应度比例参数(FitnessScalingOptions)Scalingfunction—适应度缩放比例函数。Rankscales—缺省的适应度比例函数。Rank函数根据个体的适应度值排列顺序而不是根据个体适应度值的大小来衡量个体的优劣。个体的排列是按个体的适应度值排序的。最适应个体排序为1,次最适应个体2,依此类推。Rank函数按适应度比例进行排队序,从而消除了原始适应度值的影响。四、适应度比例参数(FitnessScalingOptions)Proportional—通过计算个体的适应值在群体总适应值中所占的比例的大小分配适应度;Top—找出适应度值排在前n位的个体,给这些个体按1/n等比例分配适应度,其余个体的比例值指派为0。其中“quantity”规定了指派正比例值的个体数目。它可以是1到种群大小之间的整数,也可以是0到1之间的小数,这个小数是种群大小的百分比,其缺省值为0.4。单击“FitnessScaling”选项前的“+”号选择适应度变换函数选择“top”函数时输入参数“quantity”四、适应度比例参数(FitnessScalingOptions)Shiftlinear—利用线性转换来衡量适应度值,将使最适应个体的期望值等于个体的平均值乘以一个常数。在“Maxsurvivalrate”(最大生存率)字段中,可以设置这个常数,其默认值为2。Custom—用户自定义选择“Shiftlinear”函数时输入参数“MaxSurvivalRate”五、选择参数(SelectionOptions)Stochasticuniform—随机均匀选择函数,为缺省的选择函数;Remainder—剩余选择函数;Uniform—均匀选择函数;Roulette—轮盘赌选择函数;Tournament—锦标赛选择函数;Custom—自定义选择函数。单击“Selection”选项前的“+”号六、再生参数(ReproductionOptions)Elitecount—是一个小于群体中个体数目的正整数,指定将生存到下一代的个体数,缺省值为2;Crossoverfraction—是一个0到期1之间的小数,指定交叉概率。缺省值为0.8。单击“Reproduction”选项前的“+”号七、变异参数(MutationOptions)Gaussian—高斯变异函数,缺省的变异函数,它通过将一个高斯分布、具有均值0的随机数加到期父向量的每一项。其中,参数Scale确定第一代方差,缺省值为0.5;参数Shrink控制方差怎样随着迭代次数增大而收缩,缺省值为0.7。Uniform—均匀变异函数。Adaptivefeasible—可行的自适应变异函数。Custom—自定义变异函数。单击“Mutation”选项前的“+”号八、交叉参数(CrossoverOptions)Scattered—分散交叉函数,缺省的交叉函数。它先创建一个与染色体等长的二进制向量,如果该向量的某一位是1,则子辈在该位上的基因来自于第一个父辈;如果是0,则子辈在该位上的基因来自于第二个父辈。例如:p1=[abcdefgh]p2=[12345678]crossovervector=[11001000]child=[ab34e678]八、交叉参数(CrossoverOptions)Singlepoint—单点交叉。随时产生一个交叉点,将两个父辈染色体在交叉点处分成两段,取第一个父辈的前半段和第二个父辈的后半段组成新的个体。例如:p1=[abcdefgh]p2=[12345678]crossoverpoint=3child=[abc45678]八、交叉参数(CrossoverOptions)Twopoint——单点交叉。随时产生两个交叉点,将两个父辈染色体在交叉点处分成三段,取第一个父辈的前段和后段,第二个父辈的中段组成新的个体。例如:p1=[abcdefgh]p2=[12345678]crossoverpoints=3,6child=[abc456gh]八、交叉参数(CrossoverOptions)Intermediate—中间重组。新个体通过以下方式产生:child1=parent1+rand*Ratio*(parent2-parent1)其中Ratio为权值,衡量两个父辈对子辈的贡献,rand为0与1之间的随机数。八、交叉参数(CrossoverOptions)Heuristic—线性重组。新个体通过以下方式产生:child1=parent2+Ratio*(parent1–parent2)产生的子辈与两个父辈在同一直线上,其中Ratio衡量子辈离两个父辈的距离,越远离父辈,则产生的子辈的适应度越低。Arithmetic—算术重组。Custom—自定义单击“Crossover”选项前的“+”号九、迁移参数(MigrationOptions)Direction–迁移方向,可选项为Forward或Both。如果为Forward,则迁移发生在下一个子种群,即由第n个子种群向第n+1个子种群迁移;如果为Both,则迁移发生在两个邻近子种群,即由第n个子种群向第n-1个和第n+1个子种群迁移。Fraction—迁移个体数目在子种群个体总数中所占的比例。Interval—指定两次迁移间要经过多少代。单击“Migration”选项前的“+”号十、算法设置(AlgorithmSettings)InitialPenalty—初始惩罚参数,必须大于或等于1的常数;PenaltyFactor—惩罚因素,必须大于1。单击“Algorithmsettings”选项前的“+”号十一、混合函数参数(HybridFunctionOptions)混合函数是运行在遗传算法中止后的另一最小化函数。混合函数有以下选项:None—没有混合函数fminsearch(仅适用于无约束条件情形)—使用MATLAB函数fminsearchpatternsearch—使用模式搜索fminunc(仅适用于无约束条件情形)—使用优化工具箱函数fminuncfmincon(仅适用于有约束条件情形)—使用优化工具箱函数fmincon单击“Hybirdfunction”选项前的“+”号十二、停止准则参数(StoppingCriteriaOptions)Generations—指定最大进化代数;Timelimit—指定运算最长时间;Fitnesslimit—指定适应度限;Stallgenerations—指定停滞代数;Stalltimelimit—指定停滞时间。单击“Stoppingcriteria”选项前的“+”号十三、输出函数参数(OutputFunctionOptions)Historytonewwindow—间隔输出算法迭代的历史到窗口,其中间隔的代数由Interval指定;Custom—自定义输出函数。单击“Outputfunction”选项前的“+”号十四、显示到命令窗口参数(DisplaytoCommandWindowOptions)Off—只有最终结果显示;Iterative—显示每一次迭代的信息;Diagnose—显示每一次迭代的信息,除此之外还列出函数缺省值已被改变的有亲信息;Final—显示遗传算法的结果(成功与不成功)、停止原因、最终点。十四、显示到命令窗口参数(DisplaytoCommandWindowOptions)其中Iterative与Diagnose两者显示如下信息:Generation—代数;f-count—适应度评估的累计数;Bestf(x)—最佳适应度值;Mean—平均适应度值;Stallgeneration—停滞代数,即最后一次改进适应度以来的代数。单击“Displaytocommandwindow”选项前的“+”号十五、向量化参数(VectorizeOption)指明适应度函数的计算是否被向量化。Off—每次迭代循环中分别对每一个体调用适应度函数计算适应度值;On—将群体作为一输入向量,每次迭代循环只调用适应度函数一次。只有适应度函数能接受矩阵输入时可选用这一选项。单击“Vectorlize”选项前的“+”号图形界面的遗传算法工具箱的应用一、编辑计算适应值函数的
本文标题:遗传算法实验七
链接地址:https://www.777doc.com/doc-2009851 .html