A Modified Particle Swarm Optimizer

一种改进的粒子群优化算法
 
Yuhui Shi and Russell Eberhart
1998
 

摘要:

  本文在原有的粒子群算法中引入了一个新的参数--惯性权重。仿真结果表明,该新参数对粒子群优化算法具有显著而有效的影响。

1. INTRODUCTION

2. A MODIFIED PARTICLE SWARM OPTIMIZER (一种改进的粒子群优化算法)

  速度本身是无记忆的。假设在开始时,粒子i具有最好的全局位置,那么粒子z将在速度为0的情况下保持不动,直到另一个粒子接管全局最好位置。同时,每个其他粒子将向其自身最佳位置和全局最佳种群位置的加权质心“飞行”。如文献[6]所述,常数c1和c2的推荐选择是整数2,因为它平均使“社会”和“社会”部分的权重为1。在这一条件下,粒子从统计上收缩到当前全局最优位置,直到另一个粒子接管,从那时起所有粒子从统计上收缩到新的全局最优位置。因此,可以想象,没有第一部分的粒子群算法的搜索过程是一个搜索空间经过几代统计收缩的过程。它类似于本地搜索算法。通过在屏幕上显示“飞行”过程,可以更清楚地说明这一点。从屏幕上可以很容易地看出,如果没有方程式(La)的第一部分,所有的粒子都会倾向于向同一位置移动,即搜索区域在世代之间都在收缩。只有当全局最优解在初始搜索空间内时,PSO才有机会找到解。最终的解决方案在很大程度上依赖于初始种子(种群)。因此,在没有第一部分的情况下,它更有可能表现出局部搜索能力。另一方面,通过增加第一部分,部分有扩大搜索空间的趋势,即他们有能力探索新的领域。因此,通过添加第一部分,THQ更有可能具有全局搜索能力。局部搜索和全局搜索都有利于解决某些类型的问题。对于不同的问题,全局搜索和局部搜索是有权衡的,在局部搜索能力和全局搜索能力之间应该有不同的平衡。考虑到这一点,如公式(2)所示,在公式(1)中引入惯性权重w。这个w起到平衡全局搜索和局部搜索的作用,它可以是正常数,甚至是时间的正线性或非线性函数。

3. EXPERIMENTS AND DISCUSSION

4. CONCLUSION

  本文在原有的粒子Swann优化算法中引入了一个参数惯性权重。已经进行了仿真,以说明该参数的hpct对粒子群优化算法性能的影响。结果表明,惯性权重平均在[0.9,1.2]范围内的粒子群算法具有更好的性能,即在合理的迭代次数内有更大的机会找到全局最优解。此外,引入了随时间递减的惯性权重,使粒子群算法的性能有了很大的改善。已经做了仿真来支持它。
  虽然引入时变惯量已取得了较好的效果,但仍需做更多的研究。为了寻求更好的时间函数,需要测试不同的时间递减函数。例如,从图1可以很容易地看出,惯性权重不需要从1.4减小到0。从1.4降到0.5;也许效果会更好。时间的非线性递减函数也需要检验。本文只测试了一个Snoall基准问题:要充分证明惯性权重的好处,还需要检验更多的问题。在积累经验之后,可以期望更好地了解惯性权重对PSO性能的影响,可以建立一个模糊控制系统[101]来在线调整惯性权重。我们现在正在做这些事情。

其他:

进化规划
遗传算法
进化策略
遗传规划

A Modified Particle Swarm Optimizer的更多相关文章

  1. 【智能算法】粒子群算法(Particle Swarm Optimization)超详细解析+入门代码实例讲解

    喜欢的话可以扫码关注我们的公众号哦,更多精彩尽在微信公众号[程序猿声] 01 算法起源 粒子群优化算法(PSO)是一种进化计算技术(evolutionary computation),1995 年由E ...

  2. 粒子群优化算法(Particle Swarm Optimization)

    粒子群算法的思想源于对鸟/鱼群捕食行为的研究,模拟鸟集群飞行觅食的行为,鸟之间通过集体的协作使群体达到最优目的,是一种基于Swarm Intelligence的优化方法.它没有遗传算法的"交 ...

  3. A novel multi-swarm particle swarm optimization with dynamic learning strategy(一种新颖的具有动态学习策略的多种群粒子群优化算法)

    1.核心 在每个子种群的粒子被划分为普通粒子(ordinary particles)和交流粒子(communication particles),在每次迭代过程中,不同的粒子执行不同的进化操作.普通粒 ...

  4. 粒子群算法 Particle Swarm Optimization, PSO(转贴收藏)

    粒子群算法(1)----粒子群算法简介 http://blog.csdn.net/niuyongjie/article/details/1569671 粒子群算法(2)----标准的粒子群算法 htt ...

  5. A New Discrete Particle Swarm Optimization Algorithm

    题目:一种新的离散粒子群优化算法 中文摘要 粒子群优化算法在许多优化问题上表现得非常好.粒子群优化算法的缺点之一是假设算法中的变量为连续变量.本文提出一个新的粒子群优化算法,能够优化离散变量.这个新算 ...

  6. 算法(三)粒子群算法PSO的介绍

    一.引言 在讲算法之前,先看两个例子: 例子一:背包问题,一个书包,一堆物品,每个物品都有自己的价值和体积,装满书包,使得装的物品价值最大. 例子二:投资问题,n个项目,第i个项目投资为ci 收益为p ...

  7. 粒子群优化算法及其java实现

    憋了两周终于把开题报告憋出来了,再一次证明自己不适合搞学术,哎--,花了点时间把报告中提到的粒子群算法看了看,看了些资料,用java跑起来. 算法简介 粒子群算法最先由Barnhart博士和Kenne ...

  8. [Algorithm] 群体智能优化算法之粒子群优化算法

    同进化算法(见博客<[Evolutionary Algorithm] 进化算法简介>,进化算法是受生物进化机制启发而产生的一系列算法)和人工神经网络算法(Neural Networks,简 ...

  9. GO语言的开源库

    Indexes and search engines These sites provide indexes and search engines for Go packages: godoc.org ...

随机推荐

  1. 踩坑系列《八》解决Win10没有找到Hyper-v的错误

    最近要安装docker,所以得开启Hyper属性面板,找了下,发现电脑上没有看到该属性. 在这之前,得先判断,你电脑是不是支持Hyper,打开cmd窗口,输入systeminfo 看看最下面Hyper ...

  2. 10.10 Rewrite 实战

    将baidu.com跳转到www.baidu.com server { listen 80; server_name baidu.com; rewrite ^/ http://www.baidu.co ...

  3. 前段--->js

    一,java script的引入方式 1,直接在script里书写你的代码 <script> alert("hbflfb")</script> 2,引入额外 ...

  4. 洛谷4895 独钓寒江雪 (树哈希+dp+组合)

    qwq 首先,如果是没有要求本质不同的话,那么还是比较简单的一个树形dp 我们令\(dp[i][0/1]\)表示是否\(i\)的子树,是否选\(i\)这个点的方案数. 一个比较显然的想法. \(dp[ ...

  5. 创建线程的4种方法 and 线程的生命周期

    线程的启动和运行 方法一:使用start()方法:用来启动一个线程,当调用start方法后,JVM会开启一个新线程执行用户定义的线程代码逻辑. 方法二:使用run()方法:作为线程代码逻辑的入口方法. ...

  6. pycharm上的python虚拟环境移到离线机器上

    Pycharm的Terminal 中执行: 查看现有的包到requirements.txt中 pip freeze > requirements.txt 生成依赖包 D:\machangwei\ ...

  7. FastAPI 学习之路(九)请求体有多个参数如何处理?

    系列文章: FastAPI 学习之路(一)fastapi--高性能web开发框架 FastAPI 学习之路(二) FastAPI 学习之路(三) FastAPI 学习之路(四) FastAPI 学习之 ...

  8. Noip模拟12 2021.7.12

    T1 interval 亏得昨天晚上改掉了T3并且理解了单调栈,今天一扫这题目就知道要用啥了. 先预处理出以a[i]为最大值的最大左右区间.然后再将a[i]取%!!!是的,要不然会影响单调栈的使用.. ...

  9. 计算机网络之传输层(传输层提供的服务及功能概述、端口、套接字--Socket、无连接UDP和面向连接TCP服务)

    文章转自:https://blog.csdn.net/weixin_43914604/article/details/105451022 学习课程:<2019王道考研计算机网络> 学习目的 ...

  10. 【Azure 应用服务】App Service For Linux 部署Java Spring Boot应用后,查看日志文件时的疑惑

    编写Java Spring Boot应用,通过配置logging.path路径把日志输出在指定的文件夹中. 第一步:通过VS Code创建一个空的Spring Boot项目 第二步:在applicat ...