%% 清空环境
clc
clear,
close all
X=[-6.9602 -6.9781 -6.9882 -6.9585 -7.09596 -7.299596 -7.69596 -8.39596 -8.99596 -9.99596];
% load maydata.mat
%% 参数初始化
%粒子群算法中的两个参数
c1 = 1.49445;
c2 =1.49445;
maxgen=30; % 进化次数
sizepop=20; %种群规模
Vmax=0.25;
Vmin=-0.25;
popmax=1;
popmin=0;
%% 产生初始粒子和速度
for i=1:sizepop
%随机产生一个种群
pop(i,:)=1*rand(1,2); %初始种群
V(i,:)=0.25*rand(1,2); %初始化速度
%计算适应度
fitness(i)=fun(X,pop(i,:)); %染色体的适应度
end
%% 个体极值和群体极值
[bestfitness bestindex]=max(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,:)+V(j,:);
pop(j,find(pop(j,:)>popmax))=popmax;
pop(j,find(pop(j,:)<popmin))=popmin;
%适应度值
fitness(j)=fun(X,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(abs(yy))
legend('','')
zbest
abs(fitnesszbest)
title('最优个体适应度','fontsize',12);
xlabel('进化代数','fontsize',12);ylabel('适应度','fontsize',12);
yuce(X,zbest(1))
%如需帮助,联系作者QQ2027771338
神经网络机器学习智能算法画图绘图
- 粉丝: 2824
- 资源: 660
最新资源
- 基于java的在线动漫周边店的设计与实现
- 生成式 AI 爆发:医疗 AI 走到十字路口
- 基于Matlab实现三相电压型PWM逆变电路仿真模型.rar
- LVBench: An Extreme Long Video Understanding Benchmark
- 基于javaweb的在线投票系统论文.doc
- 在digital电路中,用两个或非门实现一个锁存器
- 基于web的在线心理咨询系统的设计与实现论文.doc
- 圣诞节代码html飘雪花 代码实现示例.docx
- 基于java的足球直播论坛的设计与实现.doc
- Autoregressive Image Generation without Vector Quantization
- 基于web的中小企业信息管理系统
- 2024中国数字经济企业出海报告
- EFC-main.zip
- 基于Python的招聘数据采集分析平台的设计与实现.doc
- MDPO: Conditional Preference Optimization for Multimodal Large Language Models
- 使用C语言将二进制转为Verilog可识别的hex文件(如jpeg文件转mif文件)
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈