参考:
https://blog.csdn.net/m0_38097087/article/details/79818348
http://yarpiz.com/59/ypea121-mopso
Coello C A C , Pulido G T , Lechuga M S . Handling multiple objectives with particle swarm optimization[J]. IEEE Transactions on Evolutionary Computation, 2004, 8(3):256-279.。

是按照上面的第三个的那篇论文实习实现的
论文里面的速度更新公式没有用到惯性c,好像是因为他有个变异算子(还没实现)。

算法流程

  1. 初始化群体粒子群的位置和速度,计算适应值
  2. 评价粒子的适应度和Pareto支配关系
  3. 将非劣解保存到Archive中去
  4. 计算Archive集中的拥挤度,为粒子选择gbest
  5. 更新粒子的速度、位置、适应度、pbest
  6. 更新Archive
  7. 满足结束条件,则结束;否则,转到第4步继续循环。
import numpy as np
class Partical:#每次都是对一个粒子进行操作def __init__(self,x_min,x_max,max_v,min_v,fitness):self.dim=len(x_min) #获得变量数self.max_v=max_vself.min_v=min_vself.x_min=x_minself.x_max=x_maxself.dominated=False #表示是否被支配self.pos=np.zeros(self.dim)self.pbest=np.zeros(self.dim)self.initPos(x_min,x_max)#初始化粒子坐标&pbestself._v=np.zeros(self.dim)self.fitness=fitnessself.cur_fitness=fitness(self.pos)#当前的适应度self.bestFitness=fitness(self.pos)#初始化pbestdef _updateFit(self):if isDominates(np.array(self.cur_fitness),np.array(self.bestFitness)):self.bestFitness=self.cur_fitnessself.pbest=self.poselif isDominates(np.array(self.bestFitness),np.array(self.cur_fitness)):passelse:#互不支配随机选择一个if np.random.random()<0.5:self.bestFitness=self.cur_fitnessself.pbest=self.posdef _updatePos(self):self.pos=self.pos+self._vfor i in range(self.dim):self.pos[i]=min(self.pos[i],self.x_max[i])self.pos[i]=max(self.pos[i],self.x_min[i])def _updateV(self,w,c1,c2,gbest):'''这里进行的都是数组的运算'''self._v=w*self._v+c1*np.random.random()*(self.pbest-self.pos)+c2*np.random.random()*(gbest-self.pos)for i in range(self.dim):self._v[i]=min(self._v[i],self.max_v[i])self._v[i]=max(self._v[i

MOPSO 多目标粒子群python实现相关推荐

  1. c语言实现多目标优化,MOPSO 多目标例子群优化算法

    近年来,基于启发式的多目标优化技术得到了很大的发展,研究表明该技术比经典方法更实用和高效.有代表性的多目标优化算法主要有NSGA.NSGA-II.SPEA.SPEA2.PAES和PESA等.粒子群优化 ...

  2. matlab粒子群加约束条件_多目标粒子群(PSO)与MATLAB程序视频教程及动态优化问题约束条件...

    [内容简介]<粒子群算法与应用和MATLAB程序详解视频>共15章186节视频,总学时1917分钟,合32小时.主要内容包括:粒子群算法(PSO)基本概念与算法流程,粒子群算法利用MATL ...

  3. MOPSO 多目标粒子群算法

    MOPSO 多目标粒子群算法 1.算法简介 多目标粒子群(MOPSO)算法是由CarlosA. Coello Coello等人在2004年提出,目的是将原来只能用在单目标上的粒子群算法(PSO)应用于 ...

  4. python 粒子群_Python实现粒子群算法的示例

    粒子群算法是一种基于鸟类觅食开发出来的优化算法,它是从随机解出发,通过迭代寻找最优解,通过适应度来评价解的品质. PSO算法的搜索性能取决于其全局探索和局部细化的平衡,这在很大程度上依赖于算法的控制参 ...

  5. 粒子群PSO算法 python实现(亲测)

    受到生物学家Frank Heppner建立的鸟群运动模型影响,James Kennedy和Russell Eberhart于1995年提出了粒子群优化算法(Particle Swarm Optimiz ...

  6. 基于粒子群PSO优化灰色神经网络的鞋销量预测

    目标 背影 灰色模型原理 神经网络原理 灰色神经网络原理 粒子群算法的原理 粒子群改进灰色神经网络原理 基于粒子群PSO优化灰色神经网络的鞋销量预测 效果图 结果分析 展望 参考 背影 提前预测销量, ...

  7. 粒子群(pso)算法详解matlab代码,粒子群(pso)算法详解matlab代码

    粒子群(pso)算法详解matlab代码 (1)---- 一.粒子群算法的历史 粒子群算法源于复杂适应系统(Complex Adaptive System,CAS).CAS理论于1994年正式提出,C ...

  8. OpenCV+yolov3实现目标检测(C++,Python)

    OpenCV+yolov3实现目标检测(C++,Python) 目标检测算法主要分为两类:一类是基于Region Proposal(候选区域)的算法,如R-CNN系算法(R-CNN,Fast R-CN ...

  9. 粒子群算法组卷_粒子群(PSO)算法概念及代码实现

    粒子群算法的由来及思想 粒子群算法最早是由两名美国的科学家基于群鸟觅食,寻找最佳觅食区域的过程所提出来的,作为一种智能算法,PSO模拟的就是最佳决策的过程,鸟群觅食类似于人类的决策过程,想想在你做出选 ...

最新文章

  1. Android 3D开发,OpenGL ES 的使用(一)
  2. C#中break,continue,return,,goto,throw的区别(转)
  3. git上传分支的原理_GIT分支,创建分支与合并分支的工作原理与教程
  4. python汉诺塔运行程序_用python编写一个程序,得到汉诺塔的解决方案
  5. 数据科学 IPython 笔记本 8.12 文本和注解
  6. 使用tensorflow实现机器学习中的线性拟合
  7. Wi-Fi 6这么“6” 原来靠的是这些黑科技!
  8. IIS的状态代码(微软文档)
  9. BZOJ 1977/洛谷P4180 - 次小生成树 Tree(严格次小生成树)
  10. 基于javaweb+jsp的在线购书商城系统(java+jsp+mysql+servlert+ajax)
  11. 手把手带你玩转Spark机器学习-使用Spark进行文本处理
  12. 物联网智能硬件解析之万能空调遥控器实现 Ardunio_通过红外线发射灯遥控空调
  13. 汇编语言(十二)颜色搭配显示+BIOS功能调用表+INT 10H功能详细列表
  14. 模拟人生 java 安卓版,超级模拟人生官方下载_超级模拟人生安卓版预约下载v1.0_3DM手游...
  15. LeetCode简单题之三除数
  16. chrome浏览器无法访问此网站并且响应时间长的方法
  17. 运营商拆除2G基站,老家的老人机还有信号吗?
  18. 【Cocos Creator实战教程(3)】——TiledMap(瓦片地图)组件
  19. 台式计算机idc数据排名,2019年电脑销量排行_IDC:2019年中国PC市场预测销量持续走低...
  20. 计算机小键盘如何启用,教你电脑开机时小键盘自动启用方法

热门文章

  1. 从零开始搭建web开发环境
  2. 最新谷歌账号申请教程
  3. 个人对微信的评价《微信的发展》
  4. tab选项卡简易代码
  5. 90后小伙发现支付宝漏洞,自己编程两天“赚”百万!
  6. MobPush的消息推送原理是什么?
  7. linux文件恢复工具下载_十大最佳Linux数据恢复工具,用于恢复已删除/损坏的文件
  8. 用dd命令 制作ISO镜像文件到U盘
  9. 继承第一课:减少重复代码
  10. CI/CD的流程与概念