问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

粒子群优化算法(PSO)的matlab运行程序~~谢谢大家啦!

发布网友 发布时间:2022-05-01 13:43

我来回答

2个回答

热心网友 时间:2023-10-15 20:48

%不知道你具体的问题是什么,下面是一个最基本的pso算法解决函数极值问题,如果是一些大型的问题,需要对速度、惯性常数、和自适应变异做进一步优化,希望对你有帮助
function y = fun(x)
y=-20*exp(-0.2*sqrt((x(1)^2+x(2)^2)/2))-exp((cos(2*pi*x(1))+cos(2*pi*x(2)))/2)+20+2.71289;
%下面是主程序
%% 清空环境
clc
clear

%% 参数初始化
%粒子群算法中的两个参数
c1 = 1.49445;
c2 = 1.49445;

maxgen=200; % 进化次数
sizepop=20; %种群规模

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.8
k=ceil(2*rand);%ceil朝正无穷大方向取整
pop(j,k)=rand;
end

%适应度值
fitness(j)=fun(pop(j,:));

%个体最优更新
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(['适应度曲线 ' '终止代数=' num2str(maxgen)]);
xlabel('进化代数');ylabel('适应度');追问谢谢你哈!可不可以加个QQ啊~846494364~万分感谢!

追答已加,验证码PSO

热心网友 时间:2023-10-15 20:48

问题补充:所需的SVMMATLAB程序有c版本的和matlab由于此算法精度高,采取措施对误差进行抑制,所以其实现原理也较复杂。该算法追问该算法怎么啦~这位大侠,你能不能教教我怎么在matlab上运行pso程序啊~万分感谢!

热心网友 时间:2023-10-15 20:48

%不知道你具体的问题是什么,下面是一个最基本的pso算法解决函数极值问题,如果是一些大型的问题,需要对速度、惯性常数、和自适应变异做进一步优化,希望对你有帮助
function y = fun(x)
y=-20*exp(-0.2*sqrt((x(1)^2+x(2)^2)/2))-exp((cos(2*pi*x(1))+cos(2*pi*x(2)))/2)+20+2.71289;
%下面是主程序
%% 清空环境
clc
clear

%% 参数初始化
%粒子群算法中的两个参数
c1 = 1.49445;
c2 = 1.49445;

maxgen=200; % 进化次数
sizepop=20; %种群规模

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.8
k=ceil(2*rand);%ceil朝正无穷大方向取整
pop(j,k)=rand;
end

%适应度值
fitness(j)=fun(pop(j,:));

%个体最优更新
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(['适应度曲线 ' '终止代数=' num2str(maxgen)]);
xlabel('进化代数');ylabel('适应度');追问谢谢你哈!可不可以加个QQ啊~846494364~万分感谢!

追答已加,验证码PSO

热心网友 时间:2023-10-15 20:48

问题补充:所需的SVMMATLAB程序有c版本的和matlab由于此算法精度高,采取措施对误差进行抑制,所以其实现原理也较复杂。该算法追问该算法怎么啦~这位大侠,你能不能教教我怎么在matlab上运行pso程序啊~万分感谢!

热心网友 时间:2023-10-15 20:48

%不知道你具体的问题是什么,下面是一个最基本的pso算法解决函数极值问题,如果是一些大型的问题,需要对速度、惯性常数、和自适应变异做进一步优化,希望对你有帮助
function y = fun(x)
y=-20*exp(-0.2*sqrt((x(1)^2+x(2)^2)/2))-exp((cos(2*pi*x(1))+cos(2*pi*x(2)))/2)+20+2.71289;
%下面是主程序
%% 清空环境
clc
clear

%% 参数初始化
%粒子群算法中的两个参数
c1 = 1.49445;
c2 = 1.49445;

maxgen=200; % 进化次数
sizepop=20; %种群规模

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.8
k=ceil(2*rand);%ceil朝正无穷大方向取整
pop(j,k)=rand;
end

%适应度值
fitness(j)=fun(pop(j,:));

%个体最优更新
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(['适应度曲线 ' '终止代数=' num2str(maxgen)]);
xlabel('进化代数');ylabel('适应度');追问谢谢你哈!可不可以加个QQ啊~846494364~万分感谢!

追答已加,验证码PSO

热心网友 时间:2023-10-15 20:48

问题补充:所需的SVMMATLAB程序有c版本的和matlab由于此算法精度高,采取措施对误差进行抑制,所以其实现原理也较复杂。该算法追问该算法怎么啦~这位大侠,你能不能教教我怎么在matlab上运行pso程序啊~万分感谢!

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
请问昆山正仪到江苏省昆山市出口加工区新竹路99号 怎么坐班车最近? 跪求苏州神达电脑地址!!! 华为运动耳机挂脖式怎么配对 雅酷美挂脖式无线蓝牙防水耳机-运动时尚,自由畅听 已知函数f(x)=cos^2x-sin^2x+2根号3sinxcosx+1 原先微信有联系后来突然对方要求我对他进行朋友验证我没有他电话号码... 已知函数f(x)=cos^2x-sin^2x+2根号3sinxcosx 已知函数fx=cos^2*x-sin^2*x+2sinx*cosx,求fx的最小正周期,并求当... 已知函数f(x)=cos2x-sin2x 4sinx·cosx求f(x)的最小正周期,并求当x为... 已知f(x)=cos^2x-sin^x+2sinxcosx。①求函数最小正周期②当x∈【0... 一般吃哪种维生素可以提高免疫力? 如何用fortran实现粒子群算法 哪种维生素能提高免疫力效果好呢? 多目标协同算法用什么软件 iSDG 复合维生素营养片适合免疫力不好的人用吗? 求实现基于粒子群算法的函数极值寻优算法MATLAB程序 抵抗力吃复合维生素有用吗? 一般多种维生素可以提高免疫力吗? 复合维生素有什么用 用粒子群群算法优化BP神经网络的参数,进行极值寻优 粒子群算法和离散粒子群算法有什么不同?主要差别体现在哪里 梦见被盗十几万现金和存款五十万 求一个基于粒子群的最短路径算法研究与实现源代码 一般吃多种维生素能提高免疫力吗? 关于吃多种维生素能提高免疫力吗效果好不? 粒子群编写出来的算法为什么不稳定?我用粒子群算法编写用于投影寻踪模型的程序。 求粒子群算法MATLAB完整代码 有哪位大侠知道有什么好用的在线视频抓取软件啊?找到的软件都不好用,是能抓取视频,但是不能录制音频 通常吃多种维生素可以提高免疫力吗? 梦见自己在山上丢了贵重的包包和大量现金 粒子群算法中处理多目标,然后转换成单一目标处理怎么实现 烟感器为什么一直是亮的 怎么解决? 求带约束条件的粒子群算法的MATLAB编程 电脑桌面下面的任务栏怎么变成灰色的了 之前的主题也不见了怎么回事 电脑任务栏和页面变成灰色什么原因 电脑任务栏和菜单栏都变成灰色了.怎么办? 电脑任务栏不知道什么时候变成灰色,开机还显示配置失败关机?win7 任务栏由蓝色变成灰色了,怎么调回来? 微信设置青少年模式还能加好友嘛- 问一问 可以看微信?但是不能玩游戏,有什么办法请帮助。 vivos7儿童模式怎么添加企业微信 金点猫什么时候显毛色 中山市中考体育实心球大概多少千克? 无锡中考体育实心球重量 请问有谁知道如何把写保护的360杀毒软件从电脑里删除? 中考的体育实心球一定要动作标准吗? 中考体育满分攻略:实心球有哪些得分技巧 文件如何去掉写保护? 电脑360卸载不了 也删除不了 总是出现磁盘被写保护 求高手帮忙啊 中考体育实心球有多重