回 帖 发 新 帖 刷新版面

主题:matlab遗传编程

模型:Min c=13x1+14x2
      s.t  x1+x2<=500
           0<=x1<=200
           0<=x2<=100
    
遗传算法的主要参数

编码:本文采用二进制编码方案,即用二进制数构成的符号串来表示一个个体,从而得出两类员工在人力费用最低的情况下招聘的人数。

初始群体的确定:设初始群体规模N=50,初始群体中的个体用随机的方法产生。

确定适应度函数:根据目标函数计算其值作为该个体的适应值。

选择算子:选择过程是利用求得的各个适应值大小,淘来一些较差的个体而选出一些比较优良的个体,以进行下一步的交叉和变异操作。采用随机均匀分布选择概率Pc=0.8

交叉算子:交叉方法采用分散交叉,交叉概率为 0.15<=Pk<=0.17

变异算子:根据编码的特点,采用循环循环移位变异算子,变异概率为 [0.03<=Pm<=0.05

终止条件:迭代次数为100代。

请各位大侠,给出编程,和在matlab上的操作步骤。谢谢!!!

回复列表 (共2个回复)

沙发

首先画出流程图然后按照流程逐个实现语言和c差不多

板凳

MATLAB与其它大部分高级语言一样,有它自己的控制流语句.控制流极其重要,因为它使过去的计算影响将来的运算。MATLAB提供如下几种控制流结构:For循环,While循环,If-Else-End结构和switch-case-end结构。由于这些结构经常包含大量的MATLAB命令,故经常出现在M文件中.MATLAB支持的控制流语句和C语言支持的控制流语句在调用格式上非常相似.

我来回复

您尚未登录,请登录后再回复。点此登录或注册