查看: 400|回复: 1|关注: 0

[未答复] matlab遗传算法gatbx的field函数和crtbp函数的用法,及一些代码问题

[复制链接]

新手

10 麦片

财富积分


050


1

主题

2

帖子

0

最佳答案
发表于 2019-1-12 13:18:11 | 显示全部楼层 |阅读模式
NIND=20;                   %个体数目
MAXGEN=200;                %最大遗传代数
NVAR=4;                   %变量维数
PRECI=20;                  %变量的二进制位数
GGAP=0.9;                  %代沟
trace=zeros(MAXGEN,2);     %算法性能跟踪
%建立区域描述器
FieldD=[rep(PRECI,[1,NVAR]);rep([-1;0],[1,NVAR]);rep([1;0;1;1],[1,NVAR])];
Chrom=crtbp(NIND,NVAR*PRECI);                               %创建初始种群
gen=0;                                                      %代计数器
ObjV=TotalCost(bs2rv(Chrom,FieldD));                        %计算初始种群个体的目标函数

标红两行的语句分别表示什么意思?
创建初始种群时,初始种群的矩阵的列数为什么 变量维数 乘以 变量二进制位数?

Field函数、crtbp函数的用法;


%%另一个遗传算法实例
NIND=40;        %个体数目(Number of individuals)
MAXGEN=25;      %最大遗传代数(Maximum number of generations)
PRECI=20;       %变量的二进制位数(Precision of variables)
GGAP=0.9;       %代沟(Generation gap)说明子代与父代的重复率为0.1
trace=zeros(MAXGEN,2);                        %寻优结果的初始值
FieldD=[20;-1;2;1;0;1;1];                      %区域描述器(Build field descriptor),第2、3行为自变量的下界和上界
Chrom=crtbp(NIND, PRECI);                      %定义初始种群

这里的Field函数用法和意思貌似与上一个不同?
生成初始种群时,矩阵列数直接等于 变量的二进制位数?


请路过的大神帮忙解答一下,万分感谢。




新手

10 麦片

财富积分


050


1

主题

2

帖子

0

最佳答案
 楼主| 发表于 2019-1-12 16:06:19 | 显示全部楼层
不好意思,问错了,不是Field函数,是rep函数
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /3 下一条

快速回复 返回顶部 返回列表