matlab chrom(i pos),Matlab遗传算法问题 MATLAB遗传算法

该博客详细介绍了如何在Matlab中实现遗传算法,包括种群初始化、交叉、变异等操作,并给出了一个具体的测试函数例子。同时,博主还讨论了遗传算法中染色体编码、交叉算子编写以及如何处理实数变量等问题,并分享了如何在遗传算法中设置变量约束条件。
摘要由CSDN通过智能技术生成

导航:网站首页 >

Matlab遗传算法问题 MATLAB遗传算法

Matlab遗传算法问题 MATLAB遗传算法

相关问题:

匿名网友:

function ret=Code(lenchrom,bound)

%本函数将变量编码成染色体,用于随机初始化一个种群

% lenchrom input : 染色体长度

% bound input : 变量的取值范围

% ret output: 染色体的编码值

flag=0;

while flag==0

pick=rand(1,length(lenchrom));

ret=bound(:,1)'+(bound(:,2)-bound(:,1))'.*pick; %线性插值

flag=test(lenchrom,bound,ret); %检验染色体的可行性

end

function ret=Cross(pcross,lenchrom,chrom,sizepop,bound)

%本函数完成交叉操作

% pcorss input : 交叉概率

% lenchrom input : 染色体的长度

% chrom input : 染色体群

% sizepop input : 种群规模

% ret output : 交叉后的染色体

for i=1:sizepop

% 随机选择两个染色体进行交叉

pick=rand(1,2);

while prod(pick)==0

pick=rand(1,2);

end

index=ceil(pick.*sizepop);

% 交叉概率决定是否进行交叉

pick=rand;

while pick==0

pick=rand;

end

if pick>pcross

continue;

end

flag=0;

while flag==0

% 随机选择交叉位置

pick=rand;

while pick==0

pick=rand;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值