A. 怎么把以下的粒子群算法改成求最小值的优化程序
我文库中有详细注解的MATLAB粒子群算法程序,你只需改动目标函数和几个参数即可。
希望对你有所帮助
B. 粒子群算法 matlab 工具箱 在哪调用 还是没有现成的需要自己下载
http://www.mathworks.com/matlabcentral/fileexchange/7506
这个基复本上快算是官方的制了。粒子群算法工具。注册以后就可以下载了。
C. 如何用粒子群优化(PSO)算法实现多目标优化
粒子群算法,也称复粒子群优化算制法(ParticleSwarmOptimization),缩写为PSO,是近年来发展起来的一种新的进化算法(EvolutionaryAlgorithm-EA)。PSO算法属于进化算法的一种,和模拟退火算法相似,它也是从随机解出发,通过迭代寻找最优解,它也是通过适应度来评价解的品质,但它比遗传算法规则更为简单,它没有遗传算法的“交叉”(Crossover)和“变异”(Mutation)操作,它通过追随当前搜索到的最优值来寻找全局最优。这种算法以其实现容易、精度高、收敛快等优点引起了学术界的重视,并且在解决实际问题中展示了其优越性。粒子群算法是一种并行算法。
D. 粒子群优化算法(PSO)的matlab运行程序~~谢谢大家啦!
%不知道你具体的问题是什么,下面是一个最基本的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('适应度');
E. 粒子群算法工具箱
您好,看到您的问题将要被新提的问题从问题列表中挤出,问题无人回答内过期后会被容扣分并且悬赏分也将被没收!所以我给你提几条建议: 一,您可以选择在正确的分类下去提问或者到与您问题相关专业网站论坛里去看看,这样知道你问题答案的人才会多一些,回答的人也会多些。 二,您可以多认识一些知识丰富的网友,和曾经为你解答过问题的网友经常保持联系,遇到问题时可以直接向这些好友询问,他们会更加真诚热心为你寻找答案的。 三,该自己做的事还是必须由自己来做的,有的事还是须由自己的聪明才智来解决的,别人不可能代劳!只有自己做了才是真正属于自己的,别人只能给你提供指导和建议,最终靠自己。 您可以不采纳我的答案,但请你一定采纳我的建议哦! 虽然我的答案很可能不能解决你的问题,但一定可以使你更好地使用问问哦~~~
采纳哦
F. 粒子群算法优化支持向量机参数的matlab算法,小弟毕设做这个课题,非常感谢!
参照书籍 工程优化设计与Matlab实现 李万祥主编 清华大学出版社2010.2月出版 有源程序 不过里面的M文件没有电子版 得自己输 精通MATLAB最优化计算 这本书里也有
G. 我利用粒子群算法工具箱求解最优值时陷入了局部最优该如何解决
粒子群陷入局部最优在所难免,建议可以采取加大权重因子的方法,或者一些改进的粒子群算法会提出对收敛的种群进行干扰,从而产生新的种群,另外可以采用量子粒子群算法,在局部最优问题上解决的还算可以
H. 粒子群算法工具箱怎么用
粒子群算法的程序搞不到,工具箱下到一个没有一点注释之类的,我看不大懂,不会用,能否说说工具箱怎么用,要粒子群标准算法的程序。改进算法的程序更好。很感激。邮箱[email protected]
I. 求一个C++的粒子群优化算法源码,可以实现输入和输出,还有粒子群的个数和维数有点迷惑,希望高手解答
鸟群演算法又称粒子群演算法。
粒子的个数:用多少粒子来跑粒子群聚演算法,就表示一次迭代中要找几组可行解。
粒子的维度:表示输入资料的特征,或称属性。
*假设我们用粒子群演算法解这个问题:
[定义问题]把一群人分成会买运动饮料的和会喝白开水的两个类型。
我们已经知道每个人的四种特质:「平常会不会运动、运动频繁吗、嗜甜吗、性别」,
想知道哪些人喝水、哪些人喝运动饮料;
并且知道四种特质分别影响我们作下判断的程度。
[资料输入]一个人就是一笔资料,这四种特质就称为「特征」或「属性」,把每笔资料的特征(此例中是四个值,分别为0或1)输入演算法,最后会得到我们要找的分类结果。
J. C++的粒子群优化算法运行结果是怎么样的
它是每进化一代就差找一次,能否找到结果是看你设置的最大迭代次数和终止条件是否满足。你可以看pso算法的两个公式。
算法运行和用什么语言没关系。
PSO的具体实现步骤如下:
Step1: 参数初始化。
在初始范围内,随机初始化一群粒子。即设置种群规模m,粒子的初始位置 x1,x2,...,xm,初始速度v1,,v2…,vm,并将各粒子的个体最优pi设置为初始位置,全局最优值pg设为pi中的最优值。
Step2: 根据速度和位置公式对粒子的速度和位置进行更新。
Step3: 计算每个粒子的适应值。
Step4: 判断每个粒子的个体最优值。
对每个粒子,将其当前的适应值和上一次的个体最优值pi进行比较,如果当前适应值优于pi,则令pi取当前适应值,否则,个体最优值仍为原来的pi(其中i=1,2,...,m)。
Step5:判断整个粒子群的全局最优值。
比较当前每个粒子的个体最优值,找出当前迭代中的全局最优值,与历史全局最优pg比较,如果优于pg,则令pg取当前迭代中的全局最优值,否则,全局最优pg还取原来的值。
Step6: 判断是否满足终止条件。如果满足则转入Step7;否则,转Step2,继续迭代。
Step7: 输出全局最优解,算法进行结束。