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

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

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

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

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

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

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

-->重新计算适应度

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

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

速度的更新公式如下:

0d1145fc2bb06b6105e5ec14c33469d6.png

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

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

ac86c6b8e7fe3e695db0816ece97ff48.png

以上是对于多目标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 集中粒子的密度信息

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

f439e5aa373d088bf073776b8299dc18.png

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

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

5069579444e4f6a6de76e430bd395f6c.png

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

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

55aeb66527cd05a9753b53f7f22fab3f.png

93df6a0243bd6d5800888001cfd3bee0.png

其中,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缓存研究了一下,写下来总结一下,跟大家一起分享 一下.由于小弟水 ...

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/559614.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

软件工程结构化建模的方法和工具_软件工程导论知识点梳理之概念题

1. 软件的定义:软件是程序、数据及开发、使用和维护程序需要的所有文档的完整集合。例:在信息处理和计算机领域内,一般认为软件是程序、文档和数据。2.软件的分类:按照应用场景:系统/应用软件按照功能:服务…

xcode w情ndows版,xcode Windows版安装使用介绍

在Windows安装xcode进行开发iOS应用可以省去昂贵的苹果机、体验虽然没那么好,但也能用。现在也有很多APP跨平台开发工具,在Windows就能完成开发测试,但上架iOS APP还是得要Mac苹果电脑去申请iOS证书和上传IPA到App Store。苹果电脑价格昂贵&a…

esp mounter pro_对比 | 以大欺小?剑指宋Pro和哈弗H6,欧尚X7的黑马潜质从何而来?...

随着近几年国内SUV市场的火爆,各个品牌也都先后推出并持续更新着自家的紧凑型SUV产品,目前在该细分领域里,哈弗H6一直都是稳居榜首的存在,作为后起之秀的比亚迪宋Pro则紧随其后。但在长安发力战略布局后,长安欧尚X7便以…

randomized algorithms 有哪些_毛毯分类有哪些 毛毯的种类

毛毯分类有哪些 毛毯的种类毛毯分类有哪些 毛毯的种类 a)毛毯分为双人毛毯、单人毛毯、童毯等多种规格。 b)按用途还可以床毯、膝毯、沙滩毯等。 c)毛毯还可以进行特殊整理:阻燃毛毯、防菌整理、负离子整理等等。 d)下面我按织造方式进行介绍: 一.机织毛毯 1.按原料分 羊毛毛毯…

floodlight ovs 更改拓扑_淘宝更改类目降权多久?被降权了怎么办?_推广运营(淘宝天猫)...

现在淘宝 (淘宝论坛)店主在经营店铺的过程中,会考虑将自己特别店铺进行类目的更改,那么也有一点店主会担心到如果淘宝更改类目会被降权吗?如果被降权了怎么办呢?那就一起了解具体的内容吧!跟大家分享一些淘宝宝贝被降权的处理方式:1、虚假销…

android 事务管理软件,安卓 Android基于安卓移动终端的个人事务管理系统

摘 要随着移动平台的崛起,越来越多的传统PC软件被移植到移动平台,比如ipad,iphone,Android等智能终端设备,在这些平台中,Android占领着最大的市场份额,所以为Android用户开发满足日常使用的软件…

word无法打开请去应用商店_word软件是什么?word文档是什么?可以用来干什么?...

1、为什么需要Microsoft Word?仅在计算机上安装操作系统不足以提高生产力。无论是创建电子表格,演示文稿,电子邮件还是文档,您都需要软件来执行所需的任何活动。Microsoft Word用于创建文档或您需要存储文本的任何内容。如果您购买…

android四个按钮平分,android 水平平分两个按钮

项目中需要显示水平两个按钮,且都要有间距,如下图所示:首先我想到的是使用权重,然后利用水平布局,这样应该可以实现,但真实的情况是这样的,代码如下:android:layout_width"fill…

iPhone清理喇叭灰尘_iphone正确清理扬声器灰尘的方法

夏天来临各种各样的手机问题就都出现了,手机发热已经成为了热议话题,网上的妙招也是层出不穷甚至有销售水冷装置风扇手柄的,或者diy给手机加铜钹,又或者使用石墨烯等等的方法,但还是避免不了发热,除手机发热…

Android搭建web,Android手机搭建WEB环境

原文:http://yangshare.com/Y-BLOG/?p246#more-246准备1、下载Android处理器对应的jdk包,类似树莓派archandroidlocalhost:~$ archarmv7l下载地址:jdk-8u152-linux-arm32-vfp-hflt.tar.gz2、安装一个xftp或者宝塔面板这样的文件操作工具xftp…

qq浏览器网页版_QQ邮箱回应部分用户登录异常:系后台服务波动,问题已解决...

5月6日消息,针对用户反映QQ邮箱登录异常情况,腾讯QQ邮箱官方回应称,因后台服务波动,部分用户出现登录异常情况,目前问题已解决。5月6日上午,有网友反映QQ邮箱崩溃,换浏览器依然无法登录&#xf…

android nfc ndef mifareclassic,Android NFC开发-实践篇

Android NFC开发-实践篇https://blog..net/_GYG/article/details/72899417在Android NFC开发-理论篇中,我们了解了在Android中开发NFC的一些理论知识,这篇我们继续应用我们上一篇学到的知识,实现对NDEF格式标签和MifareClassic格式标签的读写…

苹果6换屏多钱_苹果手机屏幕碎了怎么办?维修更换要多少钱

手机在使用过程中最容易发生的意外就是手滑摔碎屏幕了,那么苹果手机屏幕碎了碎了,维修更换要多少钱?大家都知道,苹果手机摔坏,进水均属于人为损坏,人为损坏不属保修范围,接下来针对苹果手机屏幕…

harmonyos sdk,HarmonyOS SDK对应的API版本跃迁引发的历史工程适配问题解决方案

历史工程自动适配由于最新版本的HarmonyOS SDK对应的API Version发生了跃迁,原有的API Version 3变成了当前的API Version 4,原有的API Version 4变成了当前的API Version 5。因此,使用最新版本的DevEco Studio打开历史工程,需要对…

dataframe 拼接_拼接关系图在石材生产过程中的重要性

石材生产加工中应用许多图,石材纹理图、平面面置图、平面图、立面图、剖面图,这些图对石材生产加工都有很大的帮助,发挥着各自的作用,担负着各自的角色。除了这些图外,石材生产加工中还有一种图—拼接关系图&#xff0…

app名字变为android+api,一起来做个app吧 wanandroid开放API

由于早期开放的一些API页码为0开始,后期接口修改为从1开始,为了兼顾之前的开放API,故无法统一。对于POST接口建议使用postman模拟在编写过程中如果遇到一些问题,也有一些参考项目,这里针对Java和Kotlin各自选择了一款&…

php 武汉海关对接_“双11”临近 海口海关全力备战跨境电商监管高峰

中新网海南新闻11月6日电(李佳臣)海口海关6日发布消息称,面对“双11”这一中国电商行业的年度盛事,海口马村港海关已做好准备,确保“双11”期间跨境电商业务24小时即时通关,包裹通关、出区“零等待”。为迎接即将到来的“双11”网…

嵌入式全栈工程师_我花了半个月,整理出了这篇嵌入式开发学习指南(学习路线+知识点梳理)...

不好意思久等了这篇文章让小伙伴们久等了。一年多以来,关于嵌入式开发学习路线、规划、看什么书等问题,被问得没有一百,也有大几十次了。但是无奈自己对这方面了解有限,所以每次都没法交代,搞得实在不好意思。但是办法…

java面试题_1000道Java工程师面试题+答案PDF485页

说实话,作为一名 Java 程序员,不论你需不需要面试都应该好好看下这份资料。我大概撸了一遍,真的是堪称典范。就目前国内的面试模式来讲,在面试前积极的准备面试,复习整个 Java 知识体系将变得非常重要,可以…

html5小游戏是用js做的吗,谁说做H5动画和游戏一定要canvas?

2021.05.06-更新了底层,使用起来更加方便,还可以使用oop的继承,增加了一个新demo/----------------------------------------以下原文内容------------------------------------------/记得上上个礼拜,我在createjs的技术群里说了…