粒子群算法简介

粒子群优化Particle Swarm OptimizationPSO),又称微粒群算法,是由J. Kennedy和R. C. Eberhart等于1995年开发的一种演化计算技术,来源于对一个简化社会模型的模拟。其中“群”来源于微粒群匹配M. M. Millonas在开发应用于人工生命的模型时所提出的群体智能的5个基本原则。“粒子(particle)”是一个折衷的选择,因为既需要将群体中的成员描述为没有质量、没有体积的,同时也需要描述它的速度和加速状态。

粒子群算法参数:

1.群体规模   2.惯性权重  3.加速常数c1和c2 4. 最大速度Vmax 5.最大代数Gmax

粒子群算法原理:

粒子群算法是基于群体的,根据粒子所处的环境将粒子移动到好的区域。假设现有一个规模大小为的粒子群,粒子群的个体位置分布记为X={x1,x2……xn},对应速度记为V={v1,v2……vn};粒子群个体在运动过程中所经过的最优位置(即粒子适应度最大时对应的位置)记为P={p1,p2……pn},在编程中常将此设为pbest数组;粒子群的全局最优位置用gbest表示。

核心的运动思想代码:

速度变化

vi=w*vi+c1*rand()*(pi-xi)+c2*rand()*(gbest-xi)

位置变化

xi=xi+vi

其中rand()表示区间[0,1]随机生成的小数。

在速度变化方程中 w*vi 表示微粒此前的惯性,c1*rand()*(pi-xi) 表示微粒本身基于自我历史适应度的思考,c2*rand()*(gbest-xi)表示微粒群之间的社会信息共享。

算法流程图:

例子

求解f(x)=x+5sin(5x)+2cos(4x)在区间上的函数最值。

在编程前首先观察一下函数的图像:

编程实现:

import numpy as np
import matplotlib.pyplot as plt
import math
import random#群体规模
m=30#惯性权重
w=1# 加速常数
c1=2
c2=5# 最大速度
Vmax=3# 最大代数
Gmax=10#目标函数,也就是适应度
def aimFunction(x):y=x+5*math.sin(5*x)+2*math.cos(4*x)return y#左右边界
left=0
right=10
#随机初始化粒子群位置和速度
x=np.random.uniform(left,right,m)
y=x+5*np.sin(5*x)+2*np.cos(4*x)
v=np.random.uniform(0,Vmax,m)pbset=x.copy()
y_best=y.copy()
gbset=x[y.argmax()]i=0while i<Gmax:for k in range(m):v[k] = w * v[k] + c1 * random.random() * (pbset[k] - x[k]) + c2 * random.random() * (gbset - x[k])# 速度限制if v[k]>Vmax:v[k]=Vmaxif v[k]<0:v[k] = 0.01x[k]=x[k]+v[k]if x[k]<left:x[k]=leftif x[k]>right:x[k]=righty=x+5*np.sin(5*x)+2*np.cos(4*x)for k in range(m):if y_best[k]<y[k]:y_best[k]=y[k]pbset[k]=x[k]gbset=pbset[y_best.argmax()]i+=1print(gbset,aimFunction(gbset))

粒子群优化算法实现寻找函数最值相关推荐

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

    这里以 2D Michalewicz function 为对象来演示粒子群算法. 1.Michalewicz function 2.代码详解 2.1 画Michalewicz函数的网格图形 f=@(x ...

  2. 【MATLAB教程案例11】基于PSO粒子群优化算法的函数极值计算matlab仿真及其他应用

    FPGA教程目录 MATLAB教程目录 -------------------------------------------------------------------------------- ...

  3. 2021-01-28 粒子群优化算法-Python版本和Matlab函数 particleswarm 调用

    粒子群优化算法-Python版本和Matlab函数 particleswarm 调用 前两天分享了粒子群优化算法的原理和Matlab原理实现,本文分享一下Python代码下的PSO实现以及Matlab ...

  4. 粒子群优化算法的寻优算法——非线性函数极值寻优Matlab

    粒子群算法的起源 1995年,受到鸟群觅食行为的规律性启发,James Kennedy和Russell Eberhart建立了一个简化算法模型,经过多年改进最终形成了粒子群优化算法(Particle ...

  5. 2021-01-26 粒子群优化算法(PSO)以及Matlab实现

    粒子群优化算法(PSO)以及Matlab实现 1.粒子群算法 粒子群算法是一种智能优化算法.关于智能,个人理解,不过是在枚举法的基础上加上了一定的寻优机制.试想一下枚举法,假设问题的解空间很小,比如一 ...

  6. 粒子群优化算法(1)

    背景: 粒子群优化算法起源于对鸟群觅食活动的分析.鸟群在觅食的时候通常会毫无征兆的聚拢,分散,以及改变飞行的轨迹,但是在不同个体之间会十分默契的保持距离.所以粒子群优化算法模拟鸟类觅食的过程,将待求解 ...

  7. 智能算法系列之粒子群优化算法

      本博客封面由ChatGPT + DALL·E 2共同创作而成. 文章目录 前言 1. 算法思想 2. 细节梳理 2.1 超参数的选择 2.2 一些trick 3. 算法实现 3.1 问题场景 3. ...

  8. 采用粒子群优化算法实现投资组合优化【Matlab实现】

    目录 一. 粒子群算法  1.1 概念 1.1.1 粒子群优化算法思想 1.1.2 更新规则  1.1.3 惩罚项 1.2 程序框图 二.投资组合优化  三.Matlab实现  3.1 结果及可视化 ...

  9. 自适应变异粒子群matlab,一种自适应变异粒子群优化算法的制作方法

    本算法属于数据挖掘领域,涉及到SVM分类器和参数寻优,特别涉及到其变异操作,使得能够最大限度的搜索到全局最优解. 背景技术: 网格划分法是SVM分类器中常用的一种参数寻优方法,原因如下:一是网格划分法 ...

最新文章

  1. php 缓存模块,PHP缓存之模块缓存(APC)_PHP教程
  2. 写给程序员的 18 幅对联,你能看懂几个?
  3. CV:利用cv2+dlib库自带frontal_face_detector(人脸征检测器)实现人脸检测与人脸标记之《极限男人帮》和《NBA全明星球员》
  4. prometheus rfc3339 php date 转换
  5. 在Tomcat7.0中设置默认服务器和不加端口名访问
  6. java如何加载lambda_Java 8 lambda表达式引入及简单使用
  7. 06 事件处理函数绑定与事件对象
  8. Web Reference和Service Reference的区别
  9. javascript “||”、“”的运用
  10. 【干货】《深度学习:Deep Learning》课程PPT下载
  11. android subclipse subversive
  12. 操作高通QXDM5,点击重置按钮出现报错
  13. 【比较】2022 程式语言排名与分析,该学习哪一种程式语言?
  14. 登录Unity官方商店时提示Sorry, this link is no longer valid.(此链接已失效)
  15. pc模式 华为mate30_很实用!华为Mate 30全系支持PC模式,无线充+投屏更方便!
  16. Spring Security完成安全认证
  17. 路由器与无线网如何连接到服务器,两个路由器无线连接怎么设置_如何将两个路由器无线连接-192路由网...
  18. PHP 数组基本概念
  19. google chrome F11全屏快捷键
  20. python文件ab,Python文件

热门文章

  1. springboot使用FileAlterationMonitor完成对指定文件夹下面指定文件的动态监控
  2. java数据结构与算法之顺序表与链表深入分析
  3. 南京大学2020计算机考研分数线,2020年南京大学考研分数线公布
  4. 创建虚拟机步骤以及开启电脑虚拟设置方法
  5. 文字添加横线的h5实现
  6. Mybatis一发入魂
  7. 将Planet卫星影像数据添加到QGIS, ArcGIS Pro 或 ArcGIS 10.X方法,以ArcGIS Pro为例。
  8. 呼叫系统的技术实现原理和运作流程
  9. 论文阅读 (四):MILIS: Multiple Instance Learning with Instance Selection.
  10. 计算机的新兴技术在测绘工程领域的应用,测绘新技术在测绘工程测量中应用探讨.doc...