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. mac上通过git推送时忽略node_modules文件夹

    node_modules出现改动一般不需要通过git推送,如果不忽略node_modules每次安装新的包会出现几千条新变动,并没有必要推送 1.通过终端进入项目根目录 创建 .gitignore 文 ...

  2. 题解 P6454 麻将 加强版

    题目传送门 题目大意 不想写了,直接看题面吧. 思路 被这个题搞自闭了,因为读错题目想一个非常恶心的东西想了一场考试,然后就删代码,然后就被骂了.哎. 需要注意的是:我们只能选一次雀头 于是,不难看出 ...

  3. ls命令剖析

    目录 ls命令剖析 资料翻译 SYNOPSIS 使用方式 DESCRIPTION 说明 参数的说明 -l 参数字符的解释 文件权限的解释 FILES 文件夹 实战演练 ls 命令 ls -l 命令 l ...

  4. DRF的action装饰器

    1.action装饰器 Django默认的路由分发规则决定了视图函数只能以get.post等请求方式命名,如果想要使用自定义的方式命名,我们可以使用action去映射请求方法名与自定义方法 view. ...

  5. SudokuSolver 2.0:用C++实现的数独解题程序 【一】

    SudokuSolver 2.0 实现效果 H:\Read\num\Release>sudoku.exe Order please: Sudoku Solver 2.0 2021/10/2 by ...

  6. PAT (Basic Level) Practice (中文)1014 福尔摩斯的约会 (20分)

    1014 福尔摩斯的约会 (20分) 带侦探福尔摩斯接到一张奇怪的字条:我们约会吧! 3485djDkxh4hhGE 2984akDfkkkkggEdsb s&hgsfdk d&Hys ...

  7. javascriptRemke之类的继承

    前言:es6之前在js中要实现继承,就必须要我们程序员在原型链上手动继承多对象的操作,但是结果往往存在漏洞,为解决这些问题,社区中出现了盗用构造函数.组合继承.原型式继承.寄生式继承等一系列继承方式, ...

  8. 解决Mybatis 报错Invalid bound statement (not found)

    解决Mybatis 报错Invalid bound statement (not found) 出现此错误的原因 1.xml文件不存在 2.xml文件和mapper没有映射上 namespace指定映 ...

  9. Mybatis 动态批量修改

    封面:学校夜景 xdm,祝大家节日快乐!! 今天听<路过人间>演唱会Live限定版,爱上了一句歌词. 说来惭愧,人对爱只学会,视死如归. 1.业务需求 如下: 前台传给我一个 docume ...

  10. Vue项目搭建常用的配置文件,request.js和vue.config.js

    request.js用来请求数据,封装的代码如下: import axios from 'axios' const request = axios.create({ timeout: 5000 }) ...