实验六 粒子群算法

一、实验目的与要求:

目的:通过本次实验,学生可以掌握粒子群算法基本原理、基本粒子群算法流程和关键参数的设置。

要求:上机仿真,调试通过。

二、 实验设备:

计算机、Matlab软件、Python、VC++或C语言软件

三、实验内容:

1.求函数的最小值,其中x的取值范围为[-4,4],这是一个有多个局部极值的函数。

2.用离散粒子群算法求函数的最小值,其中x的取值范围为[0,9],这是一个有多个局部极值的函数。

四、实验原理:

(1)粒子群算法原理

粒子群算法,也称粒子群优化算法或鸟群觅食算法,该算法最初是受到飞鸟集群活动的规律性启发,进而利用群体智能建立的一个简化模型,缩写为 PSO。粒子群算法在对动物集群活动行为观察基础上,利用群体中的个体对信息的共享使整个群体的运动在问题求解空间中产生从无序到有序的演化过程,从而获得最优解。属于进化算法的一种,是一种并行算法。

假设在一个D维的目标搜索空间中,有N个粒子组成一个群落,其中第i粒子表示为一个D维的向量:

第i个粒子的 “飞行”速度也是一个D维的向量,记为

第i个粒子迄今为止搜索到的最优位置称为个体极值,记为

整个粒子群迄今为止搜索到的最优位置为全局极值,记为

在找到这两个最优值时,更新自己的速度和位置:

其中:c1和c2为学习因子,也称加速常数;r1和r2为[0,1]范围内的均匀随机数,i=1,2,D:vij是粒子的速度,

是常数,由用户设定来限制粒子的速度。r1和r2是介于0和1之间的随机数,增加了粒子飞行的随机性。

右边由三部分组成:第一部分为“惯性”或“动量”部分,反映粒子的运动“习惯”,代表粒子有维持自己先前速度的趋势;第二部分为“认知部分,反映了粒子对自身历史经验的记忆或回忆,代表粒子有向自身历史最佳位置逼近的趋势:第三部分为“社会”部分,反映了粒子间协同合作与知识共导印群体历史经验, 代表粒子有向群体或邻域历史最佳位置逼近的趋势。

(2)粒子群算法流程或步骤

1.参数初始化。

2.计算每个粒子的适应度值fit[i]。

3.对每个粒子,用它的适应度值fit[i]和个体极值

比较。如果fit[i]<

,则用fit[i]替换掉

4.对每个粒子,用它的适应度值fit[i]和全局极值

比较。如果fit[i]<

,则用fit[i]替换掉

5.迭代更新粒子的速度vi和位置xi。

6.进行边界条件处理。

7.判断算法终止条件是否满足:若是,则结束算法并输出优化结果;否则,返回步骤2。

图1.粒子群算法运算流程

五、实验结果

(1)最小值取到-6.4068

图2.题6.2参数设置

图3.题6.2实验结果

(2)结果为:当x=4.3717时,函数f(x)取得最小值-10.4199。

图4.题6.3参数设置

图5.题6.3实验结果

六、思考粒子群算法关键参数设置对算法结果的影响

(1)粒子群种群规模N

粒子种群大小的选择视具体问题而定,粒子数目越大,算法搜索空间范围就越大,也就更容易发现全局最优解,同时算法运行的时间也越长。在本实验中,粒子种群稍大的算法搜索找到的适应度值越小。

(2)惯性权重w

惯性权重w是标准粒子群算法中非常重要的控制参数,可以用来控制算法的开发和探索能力。 惯性权重的大小表示了对粒子当前速度继承的多少。当惯性权重值较大时,全局寻优能力较强,局部寻优能力较弱; 当惯性权重值较小时,全局寻优能力较弱,局部寻优能力较强。 惯性权重的选择通常有固定权重和时变权重。 固定权重就是选择常数作为惯性权重值,在进化过程中其值保持不变,一般取值为[0.8,1.2];时变权重则是设定某一变化区间,在进化过程中按照某种方式逐步减小惯性权重。 时变权重的选择包括变化范围和递减率。 固定的惯性权重可以使粒子保持相同的探索和开发能力,而时变权重可以使粒子在进化的不同阶段拥有不同的探索和开发能力。

(3)加速常数c1和c2

加速常数c1和c2分别调节向pbest和gbest方向飞行的最大步长,它们分别决定粒子个体经验和群体经验对粒子运行轨迹的影响,反映粒子群之间的信息交流。如果c1=c2=0,则粒子将以当前的飞行速度飞到边界。 此时,粒子仅能搜索有限的区域,所以难以找到最优解。如果c=0,则为“社会”模型,粒子缺乏认知能力,而只有群体经验,它的收敛速度较快,但容易陷入局部最优;如果c2=0,则为“认知”模型,没有社会的共享信息,个体之间没有信息的交互, 所以找到最优解的概率较小。 一个规模为D的群体等价于运行了N个各行其是的粒子,因此一般设置c1=c2。 这样,个体经验和群体经验就有了同样重要的影响力, 使得最后的最优解更精确。

(4)粒子群算法的终止进化代数G

终止进化代数G是遗传算法运行结束条件的一个参数,它表示遗传算法运行到指定的进化代数之后就停止运行,并将当前群体中的最佳个体作为所求问题的最优解输出。下面比较终止迭代次数为200和500,终止迭代次数为500的优化最短距离要比终止迭代次数为的小得多。

图6.迭代次数为200的适应度进化曲线

图7.迭代次数为500的适应度进化曲线

标签:粒子,权重,fit,惯性,智能,算法,最优

来源: https://blog.csdn.net/qq_40587547/article/details/96026126

c语言计算极值范围用粒子最优算法,智能优化算法——粒子群算法小实践相关推荐

  1. 【学习笔记】【算法】【智能优化】粒子群优化(PSO)

    [学习笔记][算法][智能优化]粒子群优化(PSO) 文章目录 [学习笔记][算法][智能优化]粒子群优化(PSO) 1 算法背景 1.1 背景 1.2 基础知识 2 算法原理 2.1 基本原理 2. ...

  2. 数学建模——智能优化之粒子群模型详解Python代码

    数学建模--智能优化之粒子群模型详解Python代码 import numpy as np import matplotlib.pyplot as plt from mpl_toolkits.mplo ...

  3. Matlab基于动态粒子群算法的动态环境寻优算法 基本粒子群算法首先是在解空间中随机初始化所有粒子

    Matlab基于动态粒子群算法的动态环境寻优算法 基本粒子群算法首先是在解空间中随机初始化所有粒子,每个粒子位置即代表问题的一个潜在解,在搜索过程中,采用适应度函数对每个粒子位置进行评价,适应度值好的 ...

  4. 优化计算机组策略,在win7系统中优化组策略的多种小技巧

    win7系统组策略功能非常强大,对大家操作电脑有一定的帮助,通过使用组策略可以设置各种软件.计算机和用户策略,组策略是系统非常核心的地方,,可以帮助大家解决一些电脑故障问题.一些用户说win7怎么优化 ...

  5. 【TWVRP】基于matlab粒子群算法求解带时间窗的车辆路径规划问题(总成本最低)【含Matlab源码 2590期】

    ⛄一.VRP简介 1 VRP基本原理 车辆路径规划问题(Vehicle Routing Problem,VRP)是运筹学里重要的研究问题之一.VRP关注有一个供货商与K个销售点的路径规划的情况,可以简 ...

  6. 【PSO TSP】基于matlab GUI粒子群算法求解旅行商问题【含Matlab源码 1334期】

    ⛄一.TSP简介 旅行商问题,即TSP问题(Traveling Salesman Problem)又译为旅行推销员问题.货郎担问题,是数学领域中著名问题之一.假设有一个旅行商人要拜访n个城市,他必须选 ...

  7. 【优化预测】粒子群算法优化BP神经网络预测温度matlab源码

    一.粒子群算法及RBF简介 1 粒子群算法简介 1.1 引言 自然界中的鸟群和鱼群的群体行为一直是科学家的研究兴趣所在.生物学家Craig Reynolds在1987年提出了一个非常有影响的鸟群聚集模 ...

  8. 【PSO三维路径规划】基于matlab粒子群算法无人机三维路径规划【含Matlab源码 015期】

    一.无人机简介 0 引言 随着现代技术的发展,飞行器种类不断变多,应用也日趋专一化.完善化,如专门用作植保的大疆PS-X625无人机,用作街景拍摄与监控巡察的宝鸡行翼航空科技的X8无人机,以及用作水下 ...

  9. 【PSO三维路径规划】基于matlab粒子群算法无人机三维路径规划【含Matlab源码 1260期】

    一.无人机简介 0 引言 随着现代技术的发展,飞行器种类不断变多,应用也日趋专一化.完善化,如专门用作植保的大疆PS-X625无人机,用作街景拍摄与监控巡察的宝鸡行翼航空科技的X8无人机,以及用作水下 ...

最新文章

  1. Django链接数据库步骤
  2. 算法笔记-经典链表操作案例
  3. Scanner方法中nextLine()和next()区别
  4. 树莓派的linux系统安装,树莓派安装Linux操作系统
  5. c#爬虫-使用ChromeDriver 所见即所得
  6. java11创建项目_2019-04-11 使用IDEA创建SpringBoot项目
  7. 【福利】计算机公开课合集(视频教程)
  8. 常用算法以及加密工具
  9. webvie使用--官方api
  10. html下移,jQuery实现元素的上移下移删除
  11. python程序设计基础第三版_Python程序设计(第三版)PPT及源码
  12. 0917 词法分析程序(java版)
  13. python的遍历循环语句for、不能遍历的数据类型是_14、python循环遍历 for 语法
  14. transcad安装教程_北京道亨线路软件SLCAD3.0
  15. 常用的台式计算机,台式电脑常见简单故障排除
  16. Netbean8.2初次运行Mavn的初始配置
  17. VTK笔记-组建vtkPolyData-四面体/五面体/六面体
  18. 学生晚上回宿舍时其在实验室的计算机主机,学生晚上回宿舍时,其在实验室的计算机主机应关闭,显示器一般不用关闭。...
  19. PIoU Loss: Towards Accurate Oriented Object Detection in Complex Environments
  20. redis常用命令收集

热门文章

  1. Android版本特性
  2. Q Inventory System unity背包物品插件 使用笔记
  3. 响应式网站 布局 response
  4. 信息度量(一):自信息、互信息与信息散度
  5. TP4056/4057/4054充电不转灯闪FAE技术
  6. 编译ORB-SLAM2 symbol lookup error问题
  7. 课程所用软件下载地址
  8. [转]REBOL脚本快速入门
  9. 《God of War 2 / 战神2》图文攻略 (Update:2007.7.18)
  10. SOM-TL437x基于TI Sitara系列ARM Cortex-A9核心板硬件资源