web browser http://www.ilovematlab.cn/thread-64644-1-1.html
%% 清空环境
clc
clear
%% 参数初始化
%粒子群算法中的两个参数
c1 = 1.49445;
c2 = 1.49445;
maxgen=500; % 进化次数
sizepop=100; %种群规模
Vmax=1;
Vmin=-1;
popmax=5;
popmin=-5;
%% 产生初始粒子和速度
for i=1:sizepop
%随机产生一个种群
pop(i,:)=5*rands(1,2); %初始种群
V(i,:)=rands(1,2); %初始化速度
%计算适应度
fitness(i)=fun(pop(i,:)); %染色体的适应度
end
%% 个体极值和群体极值
[bestfitness bestindex]=min(fitness);
zbest=pop(bestindex,:); %全局最佳
gbest=pop; %个体最佳
fitnessgbest=fitness; %个体最佳适应度值
fitnesszbest=bestfitness; %全局最佳适应度值
%% 迭代寻优
for i=1:maxgen
for j=1:sizepop
%速度更新
V(j,:) = V(j,:) + c1*rand*(gbest(j,:) - pop(j,:)) + c2*rand*(zbest - pop(j,:));
V(j,find(V(j,:)>Vmax))=Vmax;
V(j,find(V(j,:)<Vmin))=Vmin;
%种群更新
pop(j,:)=pop(j,:)+0.5*V(j,:);
pop(j,find(pop(j,:)>popmax))=popmax;
pop(j,find(pop(j,:)<popmin))=popmin;
if rand>0.98
pop(j,:)=rands(1,2);
end
%适应度值
fitness(j)=fun(pop(j,:));
end
for j=1:sizepop
%个体最优更新
if fitness(j) < fitnessgbest(j)
gbest(j,:) = pop(j,:);
fitnessgbest(j) = fitness(j);
end
%群体最优更新
if fitness(j) < fitnesszbest
zbest = pop(j,:);
fitnesszbest = fitness(j);
end
end
yy(i)=fitnesszbest;
end
%% 结果分析
plot(yy)
title('最优个体适应度','fontsize',12);
xlabel('进化代数','fontsize',12);ylabel('适应度','fontsize',12);
web browser http://www.ilovematlab.cn/thread-64644-1-1.html
四散
- 粉丝: 19
- 资源: 1万+
会员权益专享
最新资源
- jacob-1.18的dll资源文件
- 基于PC的自动化:通过C# .net编程的,使用OPC-XML的开放接口进行数据库连接
- FortiClient-6.0.10.0297.msi 安装包,Windows系统可用 附带FortiClient安装使用手册
- VMware虚拟机安装linux后,每次重启后网卡(ens33网卡失效)找不到了,需要手动添加.怎么解决
- 三款exe bug上报工具.当程序崩溃时主动上报给开发者
- STM32F103VET6单片机基于定时器TIM3的CH2通道产生PWM波形控制LED的明暗变化软件例程源码.rar
- STM32F103VET6单片机实现SD卡上的文件后缀为txt的文件内容通过串口1打印出来软件例程源.rar
- 电子锁.zip
- ASP恒华贸易有限公司网站(源代码+毕设文档+开题报告).zip
- 211060150713李乐.pka
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈


