%%%%%%遗传算法随机稀疏线阵%%%%%%%%
%%%%%%%%%初始化参数%%%%%%%%%%%%
clear all; close all; clc;
NP=50;%种群数量
Pc=0.8;%交叉率
Pm=0.05;%变异率
d=0.5;%满阵阵元间距,半倍波长
lamda=1;%波长
seta0=0*pi/180;%波束指向
G=120;%最大遗传代数
d=0.5;%半倍波长
dd=50;%阵列口径,可算出满阵个数为101
L=50;%阵元个数
NN=1800;%扫描角度间隔,根据阵元数确定
Xx=0;
Xs=dd-d*(L-1);
%%%%%%%%%%%%%生成初始种群%%%%%%%%%%%%%%
%%%%%%%%%%%%%0为没有阵元,1为有阵元%%%%%%%%%%%%%
D=d*ones(L,NP);%生成均匀间隔序列
D(1,:)=zeros(1,NP);
D=cumsum(D,1);%cumsum(A,1) 返回的是沿着第一维(各列)的累加和
f=rand(L,NP)*(Xs-Xx)+Xx;%把搜索空间从 [0, R] 减小至 [0, R ? (L ? 1)d r ]
f(1,:)=zeros(1,NP);
f=sort(f);%对每列进行升序排列处理并记录升序的位置信息
ff=f+D;
ff(end,:)=ones(1,NP)*dd;%强制尾基因为孔径大小
%%%%%%%%%%%%%%遗传算法循环%%%%%%%%%%%%%%
for k=1:G
k
%%%%%%%%%%%%%%计算适应度,即最大旁瓣%%%%%%%%%%%%
for i=1:NP
Fit(i)=-func_sparse_line(lamda,NN,seta0,ff(:,i));
end
maxFit=max(Fit);%最大值
minFit=min(Fit);%最小值
rr=find(Fit==maxFit);%找出最大值
ffBest=ff(:,rr(1,1));%历代最优个体
Fit=(Fit-minFit)/(maxFit-minFit);%归一化适应度值
%%%%%%%%%%%%%%%基于轮盘赌的选择操作%%%%%%%%%%%%%%%%
sum_Fit=sum(Fit);
fitvalue=Fit./sum_Fit;
fitvalue=cumsum(fitvalue);
ms=sort(rand(NP,1));
fiti=1;
newi=1;
while newi<=NP
if (ms(newi))<fitvalue(fiti)
nf(:,newi)=f(:,fiti);
newi=newi+1;
else
fiti=fiti+1;
end
end
%%%%%%%%%%%%%%%%基于概率的交叉操作%%%%%%%%%%%%%%%%%%%
for i=1:2:NP
p=rand;
if p<Pc
q=randi([0,1],1,L);
for j=1:L
if q(j)==1;
temp=nf(j,i+1);
nf(j,i+1)=nf(j,i);
nf(j,i)=temp;
end
end
end
end
%%%%%%%%%%%%%%%%基于概率的变异操作%%%%%%%%%%%%%%%%%%%
for m=1:NP
for n=1:L
r=rand;
if r<Pm
nf(n,m)=rand*(Xs-Xx)+Xx;
end
end
end
f=sort(nf);%对每列进行升序排列处理并记录升序的位置信息
ff=f+D;
ff(1,:)=zeros(1,NP);
ff(end,:)=ones(1,NP)*dd;
ff(:,1)=ffBest;%保留最优个体在新种群中
ttrace(k)=maxFit;%历代最优适应度值
end
figure(4)
plot(ttrace,'k')
xlabel('进化代数')
ylabel('适应度值')
title('适应度进化曲线')
grid on
save ffBest2.mat ffBest%存储优化结果
save ttrace2.mat ttrace%存储优化结果
GAsuiji.zip_sparse genetic_遗传算法 _遗传算法改进_随机稀疏线阵_随机阵
版权申诉
5星 · 超过95%的资源 162 浏览量
2022-07-15
01:53:36
上传
评论
收藏 4KB ZIP 举报
钱亚锋
- 粉丝: 88
- 资源: 1万+
最新资源
- vscode-1.64.1.tar源码文件
- vscode-1.64.0.tar源码文件
- vscode-1.52.0.tar源码文件
- Music-Player +PlayerActivity+ rockplayer+ SeeJoPlayer 播放器JAVA源码
- vscode-1.46.0.tar源码文件
- 最近很火植物大战僵尸杂交版2.08苹果+安卓+PC+防闪退工具V2+修改工具+高清工具+通关存档整合包更新
- 超级好用的截图工具PixPin,可录制Gif图
- Screenshot_2024-05-21-17-06-42-64_2332cb9b27b851b548ba47a91682926c.jpg
- 毕业设计参考 - 基于树莓派、OpenCV及Python的人脸识别
- node-v18.20.2-linux-arm64
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈