请问matlab中matlab 遗传算法法里面的bound(也就是个体范围,变量边界)是如何确定的?

1 matlab 遗传算法法步骤 1 根据具体问题选擇编码方式随机产生初始种群,个体数目一定每个个体表现为染色体的基因编码 2 选择合适的适应度函数,计算并评价群体中各个体的適应 3 选择(selection)。根据各个个体的适应度按照一定的规则或方法,从当前群体中选择出一些优良的个体遗传到下一代群体 4 交叉(crossover)将选择过后嘚群体内的各个个体随机搭配成对,对每一对个体以一定概率(交叉概率)交换它们中的部分基因。 5 变异(mutation)对交叉过后的群体中的每一个个體,以某个概率(称为变异概率)改n 变某一个或某一些基因位上的基因值为其他的等位基因 6 终止条件判断若满足终止条件,则以进化过程中嘚到的具有最大适应度的个体作为最优解输出终止运算。否则迭代执行Step2 至Step5。 适应度是评价群体中染色体个体好坏的标准是算法进化嘚驱动力,是自然选择的唯一依据改变种群结构的操作皆通过适应度函数来控制。在matlab 遗传算法法中以个体适应度的大小来确定该个体被遗传到下一代群体中的概率。个体的适应度越大被遗传到下一代的概率就越大,相反被遗传到下一代的概率就越小。 1 [a,b,c]=gaopt(bound,fun)其中bound=[xm,xM]为求解区间上届和下届构成的矩阵Fun为用户编写的函数。a为搜索的结果向量由搜索的出的最优x向量与目标函数构成,b为最终搜索种群c为中間搜索过程变参数,其第一列为代数后边列分别为该代最好的的个体与目标函数的值,可以认为寻优的中间结果 2 ga函数。[X,F, FLAG,OUTPUT] = 窗格为变量个數其它窗格参数根据情况填入。填好各窗格内容单击Start 按钮,便可运行matlab 遗传算法法 例子1 应用实例 已知某一生物的总量y(单位:万个)与時间t(月)之间的关系为y=k0(1-exp(-k1*t)) 统计十个月得到数据见表1,试求关系式中的k0k1。先编写目标函数并以文件名myfung.m 存盘。 function y=myfung(x) TOT=[2.0567

我要回帖

更多关于 matlab 遗传算法 的文章

 

随机推荐