MOPSO 多目标粒子群python实现
参考:
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,好像是因为他有个变异算子(还没实现)。
算法流程
- 初始化群体粒子群的位置和速度,计算适应值
- 评价粒子的适应度和Pareto支配关系
- 将非劣解保存到Archive中去
- 计算Archive集中的拥挤度,为粒子选择gbest
- 更新粒子的速度、位置、适应度、pbest
- 更新Archive
- 满足结束条件,则结束;否则,转到第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实现相关推荐
- c语言实现多目标优化,MOPSO 多目标例子群优化算法
近年来,基于启发式的多目标优化技术得到了很大的发展,研究表明该技术比经典方法更实用和高效.有代表性的多目标优化算法主要有NSGA.NSGA-II.SPEA.SPEA2.PAES和PESA等.粒子群优化 ...
- matlab粒子群加约束条件_多目标粒子群(PSO)与MATLAB程序视频教程及动态优化问题约束条件...
[内容简介]<粒子群算法与应用和MATLAB程序详解视频>共15章186节视频,总学时1917分钟,合32小时.主要内容包括:粒子群算法(PSO)基本概念与算法流程,粒子群算法利用MATL ...
- MOPSO 多目标粒子群算法
MOPSO 多目标粒子群算法 1.算法简介 多目标粒子群(MOPSO)算法是由CarlosA. Coello Coello等人在2004年提出,目的是将原来只能用在单目标上的粒子群算法(PSO)应用于 ...
- python 粒子群_Python实现粒子群算法的示例
粒子群算法是一种基于鸟类觅食开发出来的优化算法,它是从随机解出发,通过迭代寻找最优解,通过适应度来评价解的品质. PSO算法的搜索性能取决于其全局探索和局部细化的平衡,这在很大程度上依赖于算法的控制参 ...
- 粒子群PSO算法 python实现(亲测)
受到生物学家Frank Heppner建立的鸟群运动模型影响,James Kennedy和Russell Eberhart于1995年提出了粒子群优化算法(Particle Swarm Optimiz ...
- 基于粒子群PSO优化灰色神经网络的鞋销量预测
目标 背影 灰色模型原理 神经网络原理 灰色神经网络原理 粒子群算法的原理 粒子群改进灰色神经网络原理 基于粒子群PSO优化灰色神经网络的鞋销量预测 效果图 结果分析 展望 参考 背影 提前预测销量, ...
- 粒子群(pso)算法详解matlab代码,粒子群(pso)算法详解matlab代码
粒子群(pso)算法详解matlab代码 (1)---- 一.粒子群算法的历史 粒子群算法源于复杂适应系统(Complex Adaptive System,CAS).CAS理论于1994年正式提出,C ...
- OpenCV+yolov3实现目标检测(C++,Python)
OpenCV+yolov3实现目标检测(C++,Python) 目标检测算法主要分为两类:一类是基于Region Proposal(候选区域)的算法,如R-CNN系算法(R-CNN,Fast R-CN ...
- 粒子群算法组卷_粒子群(PSO)算法概念及代码实现
粒子群算法的由来及思想 粒子群算法最早是由两名美国的科学家基于群鸟觅食,寻找最佳觅食区域的过程所提出来的,作为一种智能算法,PSO模拟的就是最佳决策的过程,鸟群觅食类似于人类的决策过程,想想在你做出选 ...
最新文章
- Android 3D开发,OpenGL ES 的使用(一)
- C#中break,continue,return,,goto,throw的区别(转)
- git上传分支的原理_GIT分支,创建分支与合并分支的工作原理与教程
- python汉诺塔运行程序_用python编写一个程序,得到汉诺塔的解决方案
- 数据科学 IPython 笔记本 8.12 文本和注解
- 使用tensorflow实现机器学习中的线性拟合
- Wi-Fi 6这么“6” 原来靠的是这些黑科技!
- IIS的状态代码(微软文档)
- BZOJ 1977/洛谷P4180 - 次小生成树 Tree(严格次小生成树)
- 基于javaweb+jsp的在线购书商城系统(java+jsp+mysql+servlert+ajax)
- 手把手带你玩转Spark机器学习-使用Spark进行文本处理
- 物联网智能硬件解析之万能空调遥控器实现 Ardunio_通过红外线发射灯遥控空调
- 汇编语言(十二)颜色搭配显示+BIOS功能调用表+INT 10H功能详细列表
- 模拟人生 java 安卓版,超级模拟人生官方下载_超级模拟人生安卓版预约下载v1.0_3DM手游...
- LeetCode简单题之三除数
- chrome浏览器无法访问此网站并且响应时间长的方法
- 运营商拆除2G基站,老家的老人机还有信号吗?
- 【Cocos Creator实战教程(3)】——TiledMap(瓦片地图)组件
- 台式计算机idc数据排名,2019年电脑销量排行_IDC:2019年中国PC市场预测销量持续走低...
- 计算机小键盘如何启用,教你电脑开机时小键盘自动启用方法