多目标粒子群(MOPSO)算法原理及其MATLAB实现

在这里插入图片描述

粒子群算法(PSO)是Eberhart和Kennedy于1995年提出的一种模拟鸟类觅食行为的算法[1],具有操作简单、速度快等特点。但在实际应用中,许多决策问题都是多目标优化问题,采用粒子群算法来处理多目标优化问题是一种有效方法,Coello 等人将粒子群优化算法扩展到多个目标,提出了基于外部存档思想和 Pareto支配基本原理的多目标粒子群算法(MOPSO)[2]

并且,在众多多目标优化算法中,多目标粒子群算法因其适用范围广、设置参数少、优化结构简单,目前在绝大多数领域都得到了应用,对其的研究也更多,也是种经典的多目标优化算法。因此本文将介绍该算法的原理及其代码实现。

00 文章目录

1 多目标粒子群优化算法原理

2 代码目录

3 算法性能

4 源码获取

01 多目标粒子群优化算法原理

1.1 算法基础-粒子群

MOPSO较之PSO,虽然多了外部存档和非支配解的概念,但MOPSO的粒子更新逻辑和PSO一致,因此了解PSO的位置更新方式是必要的。

PSO是一种基于粒子之间信息共享的启发式算法,种群中的每个粒子代表待优化问题的一个潜在解,算法通过粒子在解空间内追随最优粒子的行为迭代搜索最优解。在PSO中,粒子的位置和速度更新公式如下:

在这里插入图片描述

其中,pi(t)代表粒子i的最佳位置,视作粒子的“ 自知部分
”学习样本,而gi(t)是群体中的最佳粒子,视作粒子的“ 社会部分
”学习样本。w为惯性权重,协调全局/局部搜索能力,c1=r1* 𝜑1和c2=r2 * 𝜑2分别叫做局部和全局加速常数。

1.2 外部档案

外部档案是多目标粒子群的精英群体,算法利用网格技术对外部档案进行更新
在这里插入图片描述

网格技术即是对外部档案中的解集进行网格划分,当存档溢出,则要根据网格的密度删除一定数量的个体保持档案规模。

针对该策略在前面的MOGWO中作过详细讲解,这里不再赘述,感兴趣的朋友可以点下方链接。

MOGWO|多目标灰狼优化算法原理、改进、利用及代码实现(Matlab)

1.3 突变算子

虽然PSO具有高收敛速度,但其可能会导致PSO收敛到虚假的Pareto前沿(局部最优),因此原作者为提高粒子的探索能力,引入了突变算子。

1.4 算法流程

MOPSO流程和PSO相似,只是多了对于最佳粒子的轮盘赌选择以及网格机制,同样,MOPSO也有PSO算法的局限,如搜索精度不高、收敛慢等,针对这些问题可以对MOPSO进行改进

在这里插入图片描述

02 代码目录

MOPSO代码逻辑清晰简单,KAU已将代码进行详细注释,方便学习。

在这里插入图片描述

03 算法性能

以Viennet2问题为例,运行MOPSO,结果如下:

在这里插入图片描述

04 源码获取

公众号(KAU的云实验台)后台回复 MOPSO

参考文献

[1] Goldberg D E, Genetic algorithms for search, optimization, and machince learning[ M]. Reading; MA: Addison-Wesley,1989: 100-150

[2]Coello CA 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.

另:如果有伙伴有待解决的优化问题(各种领域都可),可以发我,我会选择性的更新利用优化算法解决这些问题的文章。

如果这篇文章对你有帮助或启发,可以点击右下角的赞/在看 (ง•̀_•́)ง(不点也行)

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

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

相关文章

URL输入到页面渲染过程详解

当我们在浏览器中输入一个URL并按下回车键时,浏览器会执行一系列步骤来解析URL、发送请求、接收响应,并最终渲染页面。这个过程涉及到多个阶段,包括DNS解析、TCP握手、发送HTTP请求、服务器处理请求、返回HTTP响应、浏览器解析和渲染等。下面…

Jmeter高效组织接口自动化用例

1、善用“逻辑控制器”中的“简单控制器”。可以把简单控制器像文件夹一样使用,通过它来对用例进行分类归档,方便后续用例的调试和执行。 2、同编写测试用例一样,这里的接口测试用例应该进行唯一性编号,这样在运行整个用例计划出现…

【语法】C++学习

注意 使用devc对vector初始化使用vector v1 {1, 2, 3, 4, 5}; 报错 解决 在编译器选项中加入以下代码 -static-libgcc -stdc11

wince+gprs拨号上网总结

一、硬件连接 本次调试的GPRS模块引脚定义 三星主板全功能扩展串口2引脚定义 因GPRS模块可以和pc机直连进行数据通讯,那么收发肯定内部交叉,故主板和GPRS的连接也采用直连方式。如果接线不对则出现没有回应现象,拨号时出现端口不可用&#xf…

反向代理多级多机

一 架构图 本次实验需要 5台机器 第一台 nginx 只做代理服务器 负责反向代理 加 负载均衡 后面的两台nginx 做真实服务器 处理静态资源 再后面的 tomcat 做真实服务器 处理动态资源 二 具体实验 (一) 具体实验环境 所有机器关闭防火墙 安装…

System.currentTimeMillis()用法以及计算方式

System.currentTimeMillis()的作用是返回当前的计算机时间,格式为当前计算机时间和GMT时间(格林威治时间)1970年1月1号0时0分0秒所差的毫秒数 比如在做项目时,需要统计下gc操作的执行的消耗时间 除此之外,还可以获取当前的系统时间 //直接把这个方法强制转换成dat…

python创建和上传自己的PyPI库

文章目录 创建和上传自己的PyPI库pypi准备文件制作PyPI包在上传前,先本地验证注册PyPI账户上传pypi判断python包质量之 SourceRankLibraries.io 参考 创建和上传自己的PyPI库 pypi 官方地址:https://pypi.org/ Python中我们经常会用到第三方的包&…

论文阅读:SDXL Improving Latent Diffusion Models for High-Resolution Image Synthesis

SDXL Improving Latent Diffusion Models for High-Resolution Image Synthesis 论文链接 代码链接 介绍 背景:Stable Diffusion在合成高分辨率图片方面表现出色,但是仍然需要提高本文提出了SD XL,使用了更大的UNet网络,以及增…

javaSwing飞机大战

概述 1.1 项目简介 本次Java课程设计是做一个飞机大战的游戏,应用Swing编程,完成一个界面简洁流畅、游戏方式简单,玩起来易于上手的桌面游戏。该飞机大战项目运用的主要技术即是Swing编程中的一些窗口类库、事件监听以及贴图技术。 1.2 实…

【个人账号体系设计】偏个人功能类账号功能模块设计

本文讨论了针对以个人功能为主的业务系统的账号能力设计,包括账号管理的总体需求、关键属性和设计要点。重点在于如何通过细致的设计实现账号的有效管理和安全性,确保系统既便于用户操作又能维持管理的严密性。 文章目录 需求能力模块设计 需求能力 在进…

计算机考研❗️这些院校(含985)性价比巨高

✅厦门大学 (985) 不歧视双非,全靠实力,校园环境还贼美 ✅重庆大学 (985) 信息公开透明,复试抽签 ✅北京师范大学 (985) 不歧视本科出身,面试抽签答题。 ✅东南大学 (985) 保护第一志愿,复试抽签 ✅吉林大学 (…

安捷伦DSA90254A示波器 AgilentDSA90254A

产品简介: •高性能实验室 •2.5 GHz 带宽 •4 个模拟通道,每个通道的采样率为 20 GSa/s •每个通道的数据速率为 20 Mpts 至 1 Gpts •很低的本底噪声:100 mV/格时为 3.01 mVrms •DSA90000A 系列示波器是以 Infiniium DSO90000A 系列…

ChatGPT:人工智能的革命与未来

引言 随着人工智能技术的飞速发展,ChatGPT作为OpenAI推出的一款语言模型,已经引起了广泛的关注和讨论。它不仅改变了我们与机器交流的方式,还为众多行业的发展带来了革命性的影响。本文将深入探讨ChatGPT的技术原理、应用场景以及它对未来的…

JavaEE进阶(14)Linux基本使用和程序部署(博客系统部署)

接上次博客:JavaEE进阶(13)案例综合练习——博客系统-CSDN博客 目录 程序配置文件修改和打包 构建项目并打包 分平台配置 数据准备 上传jar包到云服务器并运行 开放端口号 验证程序 如何查看日志得到报错信息 常见问题 关于Linux基…

串的匹配算法——KMP算法

目录 一.特点 二.算法思想 三.公式证明 四.next数组及其练习 五.找规律计算next[k] 六.代码实现 一.特点 BF算法的特点是i回退,KMP算法的最大特点是i不回退,由于i不回退,所以KMP算法的时间复杂度是O(nm)。 二.算法思想 在匹配主串和子…

浅谈社会工程学攻击

一、前言 1.1 社会工程学起源 社会工程学是黑客米特尼克在《欺骗的艺术》中所提出,其初始目的是让全球的网民们能够懂得网络安全,提高警惕,防止没必要的个人损失。但在我国黑客集体中还在不断使用其手段欺骗无知网民制造违法行为,…

String类,StringBuilder类,StringBuffer类

前言 String类,StringBuilder类,StringBuffer类都是java提供的定义字符串的类,下面是三种字符串类的异同介绍 String类:String类表示的字符串是是常量,一旦创建内容和长度都无法修改 StringBuilder类:St…

6个维度分析实时渲染和Webgl技术异同

在日常交流中,对Webgl技术熟悉的合作伙伴,在初次了解实时渲染技术时,都会问二者之间的异同。目前很多要求B/S架构的项目,很多在用webgl技术路线,而且这个方案在行业里比较普,业主方对这个也比较熟悉&#x…

JAVA实现图像取模

JAVA对图像取模 就是图片变成点阵 原图 取模效果图 代码如下: public static void main(String[] args) throws IOException {try {// 读取图像文件BufferedImage image ImageIO.read(new File("C:/Users/xiaol/Desktop/img/0.jpg"));// 定义阈值&am…