24小时热门版块排行榜    

CyRhmU.jpeg
查看: 1129  |  回复: 6

brucexmc

新虫 (正式写手)

[求助] 求教Matlab遗传算法对变量的细分程度已有1人参与

各位大神,假设遗传算法中的种群数量为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份,其实变量也很稀疏,感觉和最优值可能有一定的距离。但是如果增大种群数量,计算过程慢得难以想象。

虽然看了帮助文件,还是没有得到解答。谢谢大家!
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

brucexmc

新虫 (正式写手)

求大神赐教!
2楼2021-02-08 08:35:34
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

bcsnow

铁杆木虫 (著名写手)

【答案】应助回帖

感谢参与,应助指数 +1
编码确定的,比如你x1用2位编码,那间隔为1,你用4位,间隔就可以细分到0.2

发自小木虫IOS客户端

» 本帖已获得的红花(最新10朵)

3楼2021-02-09 14:19:37
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

brucexmc

新虫 (正式写手)

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

非常感谢您的回答。如果一个变量就简单分成4份,那么间隔会非常大,优化结果误差就会很大。我就是想问一下matlab到底细分到什么程度呢?如果可以改变细分程度通过哪个参数来设置呢?
4楼2021-02-09 15:13:46
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

bcsnow

铁杆木虫 (著名写手)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
brucexmc: 金币+40, ★★★★★最佳答案 2021-03-02 19:46:42
细分程度需要你自己根据问题决定。参数就是编码数量。想连续搜索的话,可以用其他优化方法

发自小木虫IOS客户端
5楼2021-02-09 20:58:36
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

brucexmc

新虫 (正式写手)

引用回帖:
5楼: Originally posted by bcsnow at 2021-02-09 20:58:36
细分程度需要你自己根据问题决定。参数就是编码数量。想连续搜索的话,可以用其他优化方法

如果我用matlab中的ga函数,有什么方法吗设置细分程度吗?

发自小木虫Android客户端
6楼2021-02-09 22:07:42
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

bcsnow

铁杆木虫 (著名写手)

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

发自小木虫IOS客户端
7楼2021-02-09 23:51:29
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 brucexmc 的主题更新
信息提示
请填处理意见