当前位置: 首页 > 程序语言 >求教Matlab遗传算法对变量的细分程度

求教Matlab遗传算法对变量的细分程度

作者 brucexmc
来源: 小木虫 300 6 举报帖子
+关注

各位大神,假设遗传算法中的种群数量为20个,有俩个变量x1和x2。根据我自己的理解,遗传算法首先需要在变量的取值范围内对变量进行编码,例如1<x1<4,1<x2<5,那么编码时细分程度是如何控制的?

例如对于x1,是编码成以1为间隔:1,2,3,4?还是以0.1为间隔:1,1.1,1.2,1.3,1.4,... 3.6,3.7,3.8,3.9,4.0?

是通过种群数量来定的吗?例如:种群数量为20,就是把x1分成4份,x2分成5份吗?

有这个问题主要是因为当我把种群数量设置为500时,计算非常慢。还是以种群数量为500举例,如果有两个变量下x1和x2,把x1分成25份,x2分成10份,其实变量也很稀疏,感觉和最优值可能有一定的距离。但是如果增大种群数量,计算过程慢得难以想象。

虽然看了帮助文件,还是没有得到解答。谢谢大家! 返回小木虫查看更多

今日热帖
  • 精华评论
  • brucexmc

    求大神赐教!

  • bcsnow

    编码确定的,比如你x1用2位编码,那间隔为1,你用4位,间隔就可以细分到0.2

  • brucexmc

    引用回帖:
    3楼: Originally posted by bcsnow at 2021-02-09 14:19:37
    编码确定的,比如你x1用2位编码,那间隔为1,你用4位,间隔就可以细分到0.2

    非常感谢您的回答。如果一个变量就简单分成4份,那么间隔会非常大,优化结果误差就会很大。我就是想问一下matlab到底细分到什么程度呢?如果可以改变细分程度通过哪个参数来设置呢

  • bcsnow

    细分程度需要你自己根据问题决定。参数就是编码数量。想连续搜索的话,可以用其他优化方法

  • bcsnow

    不熟悉Matlab的ga,单算法应该是不分语言的,方法上面说过了

猜你喜欢
下载小木虫APP
与700万科研达人随时交流
  • 二维码
  • IOS
  • 安卓