近年来,基于启发式的多目标优化技术得到了很大的发展,研究表明该技术比经典方法更实用和高效。有代表性的多目标优化算法主要有NSGA、NSGA-II、SPEA、SPEA2、PAES和PESA等。粒子群优化(PSO)算法是一种模拟社会行为的、基于群体智能的进化技术,以其独特的搜索机理、出色的收敛性能、方便的计算机实现,在工程优化领域得到了广泛的应用,多目标PSO(MOPSO)算法应用到了不同的优化领域[9~11],但存在计算复杂度高、通用性低、收敛性不好等缺点。

多目标粒子群(MOPSO)算法是由CarlosA. Coello Coello等在2004年提出来的,详细参考1。目的是将原来只能用在单目标上的粒子群算法(PSO)应用于多目标上。我们知道原来的单目标PSO流程很简单:

-->初始化粒子位置(一般都是随机生成均匀分布)

-->计算适应度值(一般是目标函数值-优化的对象)

-->初始化历史最优pbest为其本身和找出全局最优gbest

-->根据位置和速度公式进行位置和速度的更新

-->重新计算适应度

-->根据适应度更新历史最优pbest和全局最优gbest

-->收敛或者达到最大迭代次数则退出算法

速度的更新公式如下:

等式右边有三部分组成。第一部分是惯性量,是延续粒子上一次运动的矢量;第二部分是个体认知量,是向个体历史最优位置运动的量;第三部分是社会认知量,是粒子向全局最优位置运动的量。

有了速度,则位置更新自然出来了:

以上是对于多目标PSO算法的介绍。运用到多目标上去的话,出现的问题有以下几点:

如何选择pbest。我们知道对于单目标优化来说选择pbest,只需要对比一下就可以选择出哪个较优。但是对于多目标来说两个粒子的对比,并不能对比出哪个好一些。如果粒子的每个目标都要好的话,则该粒子更优。若有些更好,有些更差的话,就无法严格的说哪个好些,哪个差一些。

如何选择gbest。我们知道对于单目标在种群中只有一个最优的个体。而对于多目标来说,最优的个体有很多个。而对PSO来说,每个粒子只能选择一个作为最优的个体(领带者)。该如何选择呢?

MOPSO对于第一个问题的做法是在不能严格对比出哪个好一些时随机选择一个其中一个作为历史最优。对于第二个问题,MOPSO则在最优集里面(存档中)根据拥挤程度选择一个领导者。尽量选择不那么密集位置的粒子(在这里用到了网格法)。MOPSO在选择领导者和对存档(也可以说是pareto临时最优断面)进行更新的时候应用了自适应网格法,详细参考4。

下面是MOPSO算法的步骤:

(1)初始化群体和Archive 集

给参数赋初值,生成初始群体P1,并把P1 中的非劣解拷贝到Archive 集中得到A1。设当前进化代数为 t,在t 小于总进化代数时完成(2)~(4)的内容。

(2)进化产生下一代群体

设当前进化的粒子 j,在j 小于群体规模时完成1)~3)的内容。

1)计算Archive 集中粒子的密度信息

把目标空间用网格等分成小区域,以每个区域中包含的粒子数作为粒子的密度信息。粒子所在网格中包含的粒子数越多,其密度值越大,反之越小。以二维目标空间最小化优化问题为例,密度信息估计算法的具体实现过程如下:

其中,G = M ×M 为目标空间要划分的网格数, Int( ⋅)为取整函数, Fi 1 和Fi 2 为粒子i 的目标函数值。

2)为群体中的粒子Pj,t 在At 中选择其gBest 粒子gj,tgj,t 粒子的质量决定了MOPSO 算法的收敛性能和非劣解集的多样性,其选择依据是Archive 集中粒子的密度信息。具体地,对于Archive 中的粒子,其密度值越低,选择的概率就越大,反之越小;用Archive 集中的粒子优于群体中的粒子数来评价其搜索潜力,优于群体中的粒子数越多,其搜索潜力越强,反之越弱。算法的具体实现如下:

其中,|At|表示At 包含的粒子数;Aj 用来存放At 中优于粒子Pj,t 的成员,Aj 中密度最小的粒子存放在Gj 中;Density(Ak)计算粒子Ak 的密度估计值;Rand{Gj,t}表示从Gj,t 中随机选择一个成员。

3)更新群体中粒子的位置和速度群体中的粒子在gBest 和pBest 的引导下搜索最优解,算法的具体实现如下:

其中,Pk,t+1 表示Pt+1 中的第k 个粒子;符号≺MOPSO 多目标粒子群优化算法

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

带约束的粒子群优化算法C++实现

2018年1月份给师姐做的一个小项目,本来不打算写的,因为论文还没发表,涉及查重等乱七八糟的问题.... 感觉现在不写,以后应该来不及了,因为已经在实习岗位了.... 不做过多介绍,只做大概的描述,我 ...

Python实现的粒子群优化算法

01.from numpy import array 02.from random import random 03.from math import sin, sqrt 04. 05.iter_ma ...

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

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

【CI】CN.一种多尺度协同变异的微粒群优化算法

[论文标题]一种多尺度协同变异的微粒群优化算法 (2010) [论文作者]陶新民,刘福荣, 刘  玉 , 童智靖 [论文链接]Paper(14-pages // Single column) [摘要] ...

多目标优化算法(一)NSGA-Ⅱ(NSGA2)(转载)

多目标优化算法(一)NSGA-Ⅱ(NSGA2) 本文链接:https://blog.csdn.net/qq_40434430/article/details/82876572多目标优化算法(一)NSG ...

SMO优化算法(Sequential minimal optimization)

原文:http://www.cnblogs.com/jerrylead/archive/2011/03/18/1988419.html SMO算法由Microsoft Research的John C. ...

粒子群优化算法PSO及matlab实现

算法学习自:MATLAB与机器学习教学视频 1.粒子群优化算法概述 粒子群优化(PSO, particle swarm optimization)算法是计算智能领域,除了蚁群算法,鱼群算法之外的一种群 ...

【优化算法】遗传算法GA求解混合流水车间调度问题(附C++代码)

00 前言 各位读者大家好,好久没有介绍算法的推文了,感觉愧对了读者们热爱学习的心灵.于是,今天我们带来了一个神奇的优化算法--遗传算法! 它的优点包括但不限于: 遗传算法对所求解的优化问题没有太多的 ...

随机推荐

我也来写:数据库访问类DBHelper

一.前言 相信许多人都百度过:“.net 数据库访问类”.然后就出来一大堆SqlHelper.我也用过这些SqlHelper,也自己写过,一堆静态方法,开始使用起来感觉很不错,它们也确实在很多时候可以 ...

使用Uploadify(UploadiFive)多文件上传控件遇到的坑

最近项目中需要实现多文件上传功能,于是结合需求最终选择了Uploadify这一款控件来实现.相比其他控件,Uploadify具有简洁的界面,功能API基本可以解决大多数需求,又是基于jquery的,配 ...

IE8 margin: auto 无法居中

需要给body元素添加属性 body { text-align: center; width: 100%; } ok,可以正常居中.

python 维吉尼亚

加密key='COMPUTER' plaintext='BLOCKCIPHERDESIGNPRINCIPLE' ascii='abcdefghijklmnopqrstuvwxyz'.upper() k ...

C如何获取文件夹下所有文件

http://baike.baidu.com/view/1186290.htm?fr=aladdin 使用io.h中的_findfirst,_findnext,_findclose,_finddata ...

SQL SERVER 远程备份DB

--检查sqlserver所在服务的运行账号是否有权限访问共享文件夹,没有的话右键添加写权限 --开启权限sp_configure 'show advanced options', 1;gorecon ...

python设计模式之单例

""" 单例模式 1.第一种方法 修改__new__方法 2.第二种方法 python import 就是一个单例模式 把要单例的类封装到一个py文件中 "&q ...

hdu3377

题解: 简单的插头dp 加上一个代价即可 代码: #include #include #include #inclu ...

一步一步配置Spring

https://blog.csdn.net/tangtong1/article/details/51442757

Redis缓存服务搭建及实现数据读写 - Eric.Chen

发现博客园中好多大牛在介绍自己的开源项目是很少用到缓存,比如Memcached.Redis.mongodb等,今天得空抽时间把Redis缓存研究了一下,写下来总结一下,跟大家一起分享 一下.由于小弟水 ...

c语言实现多目标优化,MOPSO 多目标例子群优化算法相关推荐

  1. 深入理解Java 8 Lambda(语言篇——lambda,方法引用,目标类型和默认方法)

    作者:Lucida 微博:@peng_gong 豆瓣:@figure9 原文链接:http://zh.lucida.me/blog/java-8-lambdas-insideout-language- ...

  2. python多目标优化_多目标优化---帕累托(Pareto)

    多目标优化-帕累托(Pareto) 1 多目标优化简介: 在现实生活中有很多的问题都是由互相冲突和影响的多个目标组成,这些目标不可能同时达到最优的状态,我们通常会尽量让这些目标在一定的区域内达到最佳的 ...

  3. MOPSO 多目标粒子群算法

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

  4. 韩老师多目标优化:多目标粒子群算法

    一. 内容简介 韩老师多目标优化:多目标粒子群算法 视频: [2022.2.5韩老师十七课时(中)多目标优化:多目标粒子群算法] https://www.bilibili.com/video/BV1e ...

  5. 机器学习的优化目标、期望最大化(Expectation-Maximum, EM)算法、期望最大化(EM)和梯度下降对比

    机器学习的优化目标.期望最大化(Expectation-Maximum, EM)算法.期望最大化(EM)和梯度下降对比 目录

  6. 计算机视觉与深度学习 | 相机抖动下的目标提取(Faster R-CNN+粒子群优化+图像配准)

    ################################################ 博主github:https://github.com/MichaelBeechan 博主CSDN:h ...

  7. C语言在BST中找到最接近目标的值的算法(附完整源码)

    C语言在BST中找到最接近目标的值的算法 C语言在BST中找到最接近目标的值的算法完整源码(定义,实现,main函数测试) C语言在BST中找到最接近目标的值的算法完整源码(定义,实现,main函数测 ...

  8. 单目标优化、多目标优化

    1.优化问题三要素: 决策变量.目标函数.约束 2.单.多目标优化的关系: 多目标优化问题的各个子目标之间是矛盾的 ,一个子目标的改善有可能会引起另一个或者另几个子目标的性能降低 , 也就是要同时使多 ...

  9. 约束多目标优化 约束多目标进化/演化算法入门论文文献推荐 大部分论文代码已开源

      在实际生活中常常会碰到需要同时优化多个目标的应用问题,这些问题又往往包含许多个约束条件,这样的问题通常被称为约束多目标优化问题,它的数学表达式为: minimizeF(x)=(f1(x),f2(x ...

最新文章

  1. 成都地震了[原创]不断更新
  2. python wordcloud 错误 ModuleNotFoundError: No module named 'query_integral_image'
  3. Scala数组和Java集合List的互转
  4. 深入浅出之函数的参数传递方式
  5. java项目合同制没做完扣钱吗_程序员接私活,怎样防止做完不给钱?
  6. python安装第三方库时报错 SyntaxError: invalid syntax
  7. ASP.NET 2.0中将 GridView 导出到 Excel 文件中 (转)
  8. android 双系统 一加5,[一加2][双ROM]一加手机2安装双系统教程
  9. 2.ansible中常用模块
  10. 基于Flask框架实现Mock Server
  11. Ubuntu 重装显卡驱动(因内核升级导致失效后)
  12. 植物大战僵尸之修改阳光
  13. 计算机丢失msvcr100.dll解决办法,计算机丢失MSVCR100.dll
  14. 计算机视觉-实验四(相机模型与参数标定)
  15. ie8加载js太慢_ie8加载不了javascript怎么办?
  16. IE 11下载文件中文乱码解决(go/php)
  17. 软件从业者不可不读的一本书
  18. 网秦手机杀毒软件 v2.1 symbian uiq 是什么
  19. ogm 算法_如何在Windows Vista中播放.OGM视频文件
  20. JavaScript获取元素下标的几种方法

热门文章

  1. android hid 鼠标,使用BluetoothHidDevice将安卓手机同时模拟成鼠标和键盘
  2. 计算机图像抠图有什么作用,电脑图片抠图怎么弄,如何在电脑上把图片里的某一部分抠出来...
  3. T-SQL Recipes之Database Backups
  4. AD15批量修改引脚名字的方法
  5. 《Windows 8 权威指南》——2.2 Windows 8 Metro界面
  6. win10禁用USB恢复USB
  7. 《Dreamweaver CS6 完全自学教程》笔记 第十章:表单的使用
  8. pysot 中的异步多进程切图
  9. 淮南师范学院计算机组成原理试卷,淮南师范学院2008-2009学年度第一学期电机及拖动试卷(2份,有答案)...
  10. STN向城域云网演进浅析