1 Star 0 Fork 1

s372073628/免疫算法选址

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
Cross.m 1.26 KB
一键复制 编辑 原始数据 按行查看 历史
function ret=Cross(pcross,chrom,sizepop,length)
% 交叉操作
% pcorss input : 交叉概率
% chrom input : 抗体群
% sizepop input : 种群规模
% length input : 抗体长度
% ret output : 交叉得到的抗体群
% 每一轮for循环中,可能会进行一次交叉操作,随机选择染色体是和交叉位置,是否进行交叉操作则由交叉概率(continue)控制
for i=1:sizepop
% 随机选择两个染色体进行交叉
pick=rand;
while prod(pick)==0
pick=rand(1);
end
if pick>pcross
continue;
end
% 找出交叉个体
index(1)=unidrnd(sizepop);
index(2)=unidrnd(sizepop);
while index(2)==index(1)
index(2)=unidrnd(sizepop);
end
% 选择交叉位置
pos=ceil(length*rand);
while pos==1
pos=ceil(length*rand);
end
% 个体交叉
chrom1=chrom(index(1),:);
chrom2=chrom(index(2),:);
k=chrom1(pos:length);
chrom1(pos:length)=chrom2(pos:length);
chrom2(pos:length)=k;
% 满足约束条件赋予新种群
flag1=test(chrom(index(1),:));
flag2=test(chrom(index(2),:));
if flag1*flag2==1
chrom(index(1),:)=chrom1;
chrom(index(2),:)=chrom2;
end
end
ret=chrom;
end
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Matlab
1
https://gitee.com/s372073628/immune-algorithm-location.git
git@gitee.com:s372073628/immune-algorithm-location.git
s372073628
immune-algorithm-location
免疫算法选址
master

搜索帮助