查看: 100|回复: 6|关注: 0

[已解决] 遗传算法中,有一步看不明白

[复制链接]

新手

12 麦片

财富积分


050


1

主题

4

帖子

0

最佳答案
最后一步,要进行二进制中某一点的直接变异,
程序如下:
        N=4;L=3;
    mm=rand(N,2*L)<pm;%%pm是变异的几率
    mm(N,:)=zeros(1,2*L);%%这是保证最后一列不进行变异
    bval(mm)=1-bval(mm);%%最后看不懂了bval是个矩阵,mm还是个矩阵,bval(mm)是什么,最后这一步作用是什么

MATLAB 基础讨论
版块优秀回答者

入门

224 麦片

财富积分


50500


20

主题

410

帖子

31

最佳答案
  • 关注者: 2
发表于 3 天前 | 显示全部楼层 |此回复为最佳答案
我不懂遗传算法,但都是矩阵,应该相同
给你举个例子,帮你理解
>> B = [1,2,3,4,5;6,7,8,9,10];
>> A = [4,5;3,6]

A =

     4     5
     3     6

>> B(A)%即提取B中,A对应的A(index)

ans =

     7     3
     2     8

>> B

B =

     1     2     3     4     5
     6     7     8     9    10

新手

12 麦片

财富积分


050


1

主题

4

帖子

0

最佳答案
 楼主| 发表于 前天 12:46 | 显示全部楼层
onlye_caisA 发表于 2020-3-25 22:47
我不懂遗传算法,但都是矩阵,应该相同
给你举个例子,帮你理解
>> B = [1,2,3,4,5;6,7,8,9,10];

大哥,是这样的,看完您的回复,我有些明白了。但还是有点疑惑。比如
bval
0 1 0 1 0 0
1 0 0 1 0 0
mm
0 0 0 0 0 1
0 0 0 0 0 0
bval(mm)=1-bval(mm)这个指令能让
bval
0 1 0 1 0 0 %% 这个o变成1吗?
1 0 0 1 0 0

MATLAB 基础讨论
版块优秀回答者

入门

224 麦片

财富积分


50500


20

主题

410

帖子

31

最佳答案
  • 关注者: 2
发表于 前天 13:14 | 显示全部楼层
50贝里 发表于 2020-3-26 12:46
大哥,是这样的,看完您的回复,我有些明白了。但还是有点疑惑。比如
bval
0 1 0 1 0 0

bval(mm),如mm中含有0,会出现错误,

新手

12 麦片

财富积分


050


1

主题

4

帖子

0

最佳答案
 楼主| 发表于 前天 22:42 | 显示全部楼层
onlye_caisA 发表于 2020-3-26 13:14
bval(mm),如mm中含有0,会出现错误,

出现错误就无法进行了吗?

MATLAB 基础讨论
版块优秀回答者

入门

224 麦片

财富积分


50500


20

主题

410

帖子

31

最佳答案
  • 关注者: 2
发表于 前天 22:47 | 显示全部楼层
50贝里 发表于 2020-3-26 22:42
出现错误就无法进行了吗?

除非你try catch end

新手

12 麦片

财富积分


050


1

主题

4

帖子

0

最佳答案
 楼主| 发表于 昨天 17:22 | 显示全部楼层

好的,谢谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

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