粒子群算法MATLAB代码,怎么运行不行,高手们给我修改一下,本人是菜鸟!谢谢!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了粒子群算法MATLAB代码,怎么运行不行,高手们给我修改一下,本人是菜鸟!谢谢!相关的知识,希望对你有一定的参考价值。

functionF=fitness(x)
F=(x(1)-17.3962)^2+(x(2)-17.2974)^2+(x(3)-17.6002)^2+(x(4)-18.3051)^2+(x(5)-19.4117)^2+(x(6)-20.9202)^2+(x(7)-22.8304)^2
>> [xm,fv]=LinwPSO(@fitness,100, 1.2,1.8,0.9992,0.0008,200,7)
%下面是主程序
%% 清空环境
clc
clear
%% 参数初始化
%粒子群算法中的两个参数
c1=1.2 ; %最大权重
c2=1.8; %最小权重
w1=0.9992; %学习因子1
w2=0.0008; %学习因子2
M=200; %最大迭代次数
D=7; %搜索空间维数(未知数个数)
N=100; %初始化群体个体数目
eps=10^(-5); %设置精度(在已知最小值时候用)
%------初始化种群的个体(可以在这里限定位置和速度的范围)------------
for i=1:N
for j=1:D
x(i,j)=randn; %随机初始化位置
v(i,j)=randn; %随机初始化速度
end
end
for i=1:N
p(i)=fitness(x(i,:));
y(i,:)=x(i,:);
end
pg=x(N,:); %Pg为全局最优
for i=1:(N-1)
if fitness(x(i,:))<fitness(pg)
pg=x(i,:);
end
end
for t=1:M
for i=1:N
w=wmax-(t-1)*(wmax-wmin)/(M-1); %权重线性递减
v(i,:)=w*v(i,:)+c1*rand*(y(i,:)-x(i,:))+c2*rand*(pg-x(i,:));
x(i,:)=x(i,:)+v(i,:);
if fitness(x(i,:))<p(i)
p(i)=fitness(x(i,:));
y(i,:)=x(i,:);
end
if p(i)<fitness(pg)
pg=y(i,:);
end
end
end
xm=pg
fv=fitness(pg),

参考技术A 混合整数规划是一个研究报告,在这方面也更加圆润,一些圆润,在MATLAB中采用了圆形功能可以实现的。也很有用三角函数变换,我不知道具体情况。另一个问题,的约束需要添加的规划,约束处理。 参考技术B 混合整数规划的研究报告,在这方面更加圆润,一些圆,使用循环功能可以实现在MATLAB。也很有用三角函数的变换,我不知道具体的情况。另一个问题,约束需要被添加到的规划,约束处理。

求直接调用的matlab粒子群算法和模拟退火法的函数

我目标函数已经编好了,现在只要直接调用matlab内部的粒子群算法和模拟退火法就可以了,想请问一下直接调用的函数和设置是怎么写的?两行就搞定的那种

参考技术A 没有,自己网上去下别人编好的工具箱吧。

以上是关于粒子群算法MATLAB代码,怎么运行不行,高手们给我修改一下,本人是菜鸟!谢谢!的主要内容,如果未能解决你的问题,请参考以下文章

MATLAB粒子群算法初始化粒子群函数

求直接调用的matlab粒子群算法和模拟退火法的函数

基于改进粒子群算法实现WSN节点优化部署matlab代码

基于改进粒子群算法实现WSN节点优化部署matlab代码

求带约束条件的粒子群算法的MATLAB编程

路径优化基于人工蜂群(ABC)算法和粒子群优化算法的组合求解路径优化问题(Matlab代码实现)