粒子群优化算法(Particle Swarm Optimization)的 Matlab(R2018b)代码实现

这里以 2D Michalewicz function 为对象来演示粒子群算法。

1、Michalewicz function

2、代码详解

2.1 画Michalewicz函数的网格图形

f=@(x,y)(-sin(x).*(sin(x.^2/3.1415926)).^(2*m)...-sin(y).*(sin(2*y.^2/3.1415926)).^(2*m));range=[0 4 0 4];
Ngrid=100;
dx=(range(2)-range(1))/Ngrid;
dy=(range(4)-range(3))/Ngrid;
xgrid=range(1):dx:range(2);
ygrid=range(3):dy:range(4);
[x,y]=meshgrid(xgrid,ygrid);
z=f(x,y);
figure(1);
%subplot(1,2,1);
surfc(x,y,z);
hold on;

2.2 粒子群优化算法的子函数

粒子群初始化

function [xn,yn]=init_pso(n,range)
xrange=range(2)-range(1);
yrange=range(4)-range(3);
xn=rand(1,n)*xrange+range(1);
yn=rand(1,n)*yrange+range(3);
end

粒子群的移动

function [xn,yn]=pso_move(xn,yn,xo,yo,a,b,range)
nn=size(yn,2);
xn=xn.*(1-b)+xo.*b+a.*(rand(1,nn)-0.5);
yn=yn.*(1-b)+yo.*b+a.*(rand(1,nn)-0.5);
[xn,yn]=findrange(xn,yn,range);
end

确保粒子群不会出界

function [xn,yn]=findrange(xn,yn,range)
nn=length(yn);
for i=1:nnif xn(i)<=range(1)xn(i)=range(1);endif xn(i)>=range(2)xn(i)=range(2);endif xn(i)<=range(3)xn(i)=range(3);endif xn(i)>=range(4)xn(i)=range(4);end
end
end   

2.3 粒子群算法的主体函数

%n = number of particles
% Num_iterations = number of iterations
n=10;
Num_iterations =50;
best=zeros(Num_iterations,3);
[xn, yn]=init_pso(n,range);
figure(2);
for i = 1:Num_iterationscontour(x,y,z,15); %show the contour of the objectvie functionhold on;%find the current best location(xo,yo)zn=f(xn,yn);zn_min=min(zn);xo=min(xn(zn==zn_min));yo=min(yn(zn==zn_min));zo=min(zn(zn==zn_min));plot(xn,yn,'.',xo,yo,'*');axis(range);beta=0.5;gamma=0.7;alpha=gamma.^i;[xn,yn]=pso_move(xn,yn,xo,yo,alpha,beta,range);drawnow;hold off;best(i,1)=xo;best(i,2)=yo;best(i,3)=zo;
end

3 图形展示,粒子数设为10,迭代次数设为50

Michalewicz function的网格图

粒子群初始化图,‘点’表示粒子,‘星’表示群中最小的粒子

 粒子群运动结束图,最后粒子都运动到了 '星' 点处

4 粒子群优化算法的优缺点

粒子群优化算法应用范围广,不要求目标函数可导。如果粒子群不够大(比如把粒子数设为2),迭代次数不够多(迭代次数设为5),最后可能无法得到最优解。由于算法初始化时随机生成粒子群,多次运行,粒子群不一样,最终的结果也可能会不一样(进入不同的局部最优解)。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/492226.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

中金人工智能报告:AI时代,10 年之后我们还能干什么?|71页完整报告

来源&#xff1a;黑科技智汇中金公司&#xff08;CICC&#xff09;发布了一份长达 71 页的人工智能的证券研究报告《人工智能时代&#xff0c;10 年之后我们还能干什么&#xff1f;》。对全球特别是中国企业当下的人工智能态势作了全面的介绍&#xff1a;包括 BAT、华为、科大讯…

UC伯克利新机器人成果:灵活自由地使用工具

来源&#xff1a;AI 科技评论摘要&#xff1a;前几天我们刚刚介绍了加州大学伯克利分校 Pieter Abbeel 教授领导伯克利机器人学习实验室&#xff08;UC Berkeleys Robot Learning Lab&#xff09;开发的会叠衣服的家务向机器人 BLUE&#xff0c;今天伯克利人工智能实验室&#…

bzoj 1934 最小割

收获&#xff1a; 1、流量为0的边可以不加入。 2、最小割方案要与决策方案对应。 1 #include <cstdio>2 #include <cmath>3 #include <cstring>4 #include <vector>5 #define min(a,b) ((a)<(b)?(a):(b))6 #define oo 0x3f3f3f3f7 #define N 6108 …

工业4.0:数字化供应链的三个方向

来源&#xff1a;资本实验室席卷全球的工业4.0革命几乎影响着每一个行业&#xff0c;包括各行业的供应链管理。在过去&#xff0c;供应链管理是令各行业都非常头疼的环节&#xff0c;因为传统供应链涉及大量模糊且无法访问的数据&#xff0c;就像”黑洞“一样吞噬着成本、时间与…

有效学习

怎样算有效学习&#xff1f; 记得有位大咖说过&#xff0c;‘当你把受过的教育都忘记了&#xff0c;剩下的就是教育’&#xff08;度娘说是爱因斯坦说的&#xff0c;此处未经考证&#xff09;。 学习可以看成是一个把知识放入潜意识的过程。所谓进入潜意识&#xff0c;是指当…

如果机器能帮我们学习,那么有多少东西能够被遗忘?

来源&#xff1a;原理在我还是个学生时的遥远年代&#xff0c;大多数计算机都还是体型巨大的机器。当时我有一个朋友&#xff0c;他的博士导师坚持让他对一个冗长又困难的原子理论进行手写计算。他用掉了一页又一页的草稿纸&#xff0c;上面充满了错误。于是最终他屈服于自己的…

如何通俗理解计算机视觉、计算机图形、图像处理之间的区别与联系

这三者之间联系和区别可以通过下图表示&#xff0c; 左边的图片表示实际景物&#xff0c;右边图片表示实际景物对应的图片。 1、计算机图形 计算机图形技术常用于计算机生成图形。该技术常用的领域有&#xff1a; a.动漫 b.游戏 c.计算机辅助设计&#xff08;CAD&#xff09;…

日本电信企业5G部署计划 限制了华为中兴设备的使用

来源&#xff1a;OFweek电子工程据外媒报道&#xff0c;日本监管机构日前正式向日本电信企业分配5G频谱&#xff0c;而这也正是日本在来年春季推出高速无线服务(5G)的一个重要里程碑。日本三大运营商NTT Docomo、KDDI和软银&#xff0c;以及新进入者Rakuten Inc&#xff0c;都获…

Python安装工具包踩过的坑

1、背景介绍 重装win10系统&#xff0c;重装Python。在坑出现之前&#xff0c;已经完成了Python的安装&#xff08;D盘&#xff09;&#xff0c;并且在系统中添加了环境变量。由于平时需要用到Python2.7和Python3.6&#xff0c;这里将对应的解释器分别改名为Python2和Python3。…

物联网面临的7大网络安全威胁

来源&#xff1a;51CTO译稿摘要&#xff1a;曾经在物联网世界&#xff0c;一切都变得更加庞大。不仅是设备本身——有些小到只容纳几个芯片&#xff0c;他们通常隐藏其中&#xff0c;眼不见心不烦。但物联网中庞大的数据和设备规模令任何网络安全专业人士都感到头疼。据广泛统计…

从技术分工的角度来看996.ICU

最近&#xff0c;Github上996.ICU话题自诞生以来异常火爆&#xff0c; 很多人在网上吐槽程序员工作时间长&#xff0c;Python之父也为此伸张正义。 有人在网上抱怨资本家黑心&#xff0c;无情的压榨剥削员工。 各国都存在加班的现象&#xff0c;但似乎加班现象在中国最为严重。…

谷歌自动驾驶专利大曝光!

来源&#xff1a;智车科技摘要&#xff1a;本文仅针对其中自动驾驶汽车部分&#xff0c;说明自动驾驶的分级&#xff0c;再以Google为例&#xff0c;说明其发展的自动驾驶汽车和相关技术&#xff0c;分析及说明Google与自动驾驶汽车相关的发明专利及设计专利的布局&#xff0c;…

(Python代码)通过视差图获取图片中不同物体的高度比

1、原理 可以推出不同物体的高度比可以通过如下公式得到&#xff1a; 是左边指定物体的高度&#xff08;图片中尺寸&#xff09; 是右边指定物体的高度&#xff08;图片中尺寸&#xff09; 是左边指定物体的平均视差值 是右边指定物体的平均视差值 2、代码逻辑框图 3、代码详解…

一文读懂生物医学领域的传感器

来源&#xff1a;传感器技术摘要&#xff1a;生物医学传感器是生物医学科学和技术的尖兵&#xff0c;生物医学研究的正确结论有赖于生物医学传感器的正确测量。而传感器是一门十分综合的科学和技术。现代传感器的物理模型如图所示&#xff1a;对于传统被测量而言&#xff0c;敏…

训练数据的分布对F-measure, recall 和 precision的影响

1、 Precision, recall and F-measure&#xff08;f1-score&#xff09; 2、思路 数据集&#xff1a;手写数字集 从训练集中抽取数据&#xff0c;保证每种label的数量一致&#xff0c;使用SVM 或ANN模型训练新数据集。按照高斯分布抽取新数据&#xff0c; 再次使用SVM 或ANN模…

稀疏矩阵的压缩存储--十字链表(转载)

稀疏矩阵的压缩存储--十字链表&#xff08;转载&#xff09;<?xml version"1.0" encoding"UTF-8"?> 来自为知笔记(Wiz)转载于:https://www.cnblogs.com/ZhangJinkun/p/4531626.html

不可思议的数字:互联网每天到底能产生多少数据?

来源&#xff1a;资本实验室随着互联网、传感器&#xff0c;以及各种数字化终端设备的普及&#xff0c;一个万物互联的世界正在成型。同时&#xff0c;随着数据呈现出爆炸式的指数级增长&#xff0c;数字化已经成为构建现代社会的基础力量&#xff0c;并推动着我们走向一个深度…

任正非:华为5G芯片用在iPhone上?我持开放态度

来源&#xff1a;机器之心摘要&#xff1a;外媒最近频传的「华为同意卖5G基带给苹果」&#xff0c;让科技界的人们浮想联翩。刚刚&#xff0c;华为终于有了较为官方的回应&#xff1a;华为总裁任正非在接受CNBC的时候表示&#xff0c;华为对于出售5G芯片给苹果用于iPhone「持开…

阿里120页PPT诠释国家“智能+”战略

未来智能实验室是人工智能学家与科学院相关机构联合成立的人工智能&#xff0c;互联网和脑科学交叉研究机构。未来智能实验室的主要工作包括&#xff1a;建立AI智能系统智商评测体系&#xff0c;开展世界人工智能智商评测&#xff1b;开展互联网&#xff08;城市&#xff09;云…

边缘检测

1、边缘的特征 先看一张实物图和边缘图 边缘是图片中灰度变化最快的地方。下图清楚地显示了最简单的一种情况。既然找变化最快的地方&#xff0c;可以通过导数来求解边缘 2、图片的导数 一张数字图片F[x,y], 其x方向导数可定义为&#xff1a; 3、图片的梯度 3.1 图片的梯度相…