论文学习——基于枢轴点预测和多样性策略混合的动态多目标优化

本文主要是介绍论文学习——基于枢轴点预测和多样性策略混合的动态多目标优化,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

论文题目:A dynamic multi-objective optimization based on a hybrid of pivot points prediction and diversity strategies

基于枢轴点预测和多样性策略混合的动态多目标优化(Jinhua Zheng a,b,d, Fei Zhou a,b,∗, Juan Zou a,b, Shengxiang Yang a,e, Yaru Hu a,c)Swarm and Evolutionary Computation 78 (2023) 101284

刚开始学习多目标优化算法,不作商业用途,如果有不正确的地方请指正!

个人总结:

挺简单明了又高效的算法

三个部分双重预测+多种群:

预测一:在目标空间根据找到每个目标轴的极值点作为参考点然后找到枢轴线不断扩充点,在环境变化时,根据前时刻的情况对下一个时刻的枢轴点进行预测

预测二:根据种群前两个时刻的中心点进行预测,在监测到环境变化不相似时,中心点的移动长度乘一个随机数L.(好像文章中没有讲到怎么判断环境变化是否相似)

多种群:根据前面时刻的种群确定每个决策变量的最大值最小值在进行随机产生解,相比直接产生随机解增加了一点点收敛性(如果ps值的的变化趋势时变大的情况这个策略可靠吗?).

随机选取了种群中5 %的个体作为检测器来检测环境变化。如果目标值之间存在不匹配,则将其视为环境改变了

Ppiv(枢轴点)和Prand(多种群产生的解的数量)的大小分别设置为0.3 N和0.7 N。

引言

目前存在的问题

基于多样性方法的劣势:        

        在处理复杂的环境变化时,这些策略并不能提供良好的性能,尤其是不规则变化的PF或PS

基于内存方法的劣势:

        对于非周期性问题,基于内存的策略可能会显示出较差的结果。

基于预测方法的劣势:

        在基于预测的策略中设置不合适的预测方法或者模型会影响总体的收敛和分布,此外在处理快速变化的环境,其性能可能会随着优化的进行而迅速下降。

基于多种群方法:

        前些日子复现的PBDMO就是多种群方法

本文提出的想法

提出了一种基于双重预测多样性策略混合的动态多目标优化策略.

  • 通过动态选择机制选择的一些个体(枢轴点)用于模拟PF或PS。然后,自回归模型预测环境变化后的枢轴点,以达到跟踪变化的PF或PS的目的
  • 将环境变化分为相似和不同的变化。当变化相似时,非支配个体结合非支配个体集合中心点的运动趋势,预测环境变化后的非支配个体。否则,在利用非支配个体集合中心点的运动趋势对非支配个体进行预测的同时,对预测结果进行前后推导,推导新的最优解。
  • 在相对准确的可行区域内随机生成搜索个体,在一定程度上提升了随机搜索个体的质量,可以保持种群的多样性

背景及相关工作

这里介绍了基础和DMOEA框架,在静态时使用RM-MEDA算法进行优化

提出框架与实施

提出了一种新的基于枢轴点预测的预测策略。在该预测策略中,如果检测到一个环境变化,那么对其做出响应的种群将由三个子种群组成。

A.Pivot point and predicting the pivot point set(枢轴点和预测合集)

首先初始化一个大小为N的种群,并建立一个存储池Q用于存储历史信息.然后在目标空间中通过动态选择机制迭代地选择枢轴点,并将枢轴点放入存储池Q中。下图展示了在一开始的三个时刻选择枢轴点的过程:

  • (找到极值点)设第j个坐标轴上的极值点为xj,令xj为以Y = ( Y1 , Y2 , ... , Yn)T为坐标轴方向,最小化聚集函数g ( x | Y )的解。这里,n表示决策空间的维数。极值点的数学表达式如式( 3 )所示:式中:x∈Ω;Y为坐标轴的权向量;J为第j维坐标轴。为了搜索第j个轴上的极值点,需要固定第j个维度上的方向,则第j个维度方向上的权重向量为wj = 1,其他方向上的权重向量为wn = 10e-6 。如图2所示,x1和x2是(标记为绿色的点)的极值点,x1和x2被放入Q中.此时,Q中有两个个体x1和x2 .

  • (建立枢纽)建立枢轴的前提是找到种群中与存储池Q中所有个体距离之和最大的个体,并以原点建立枢轴,用公式表达种群中个体xd与存储池Q中所有个体的距离之和.如图2所示,在第一次选择枢轴点的过程中,x3是种群中距离存储池Q中个体最远的个体。将x3与原点连接起来,形成一条称为支点的参考线。 

  • (找到枢轴点)计算目标空间中的个体与枢轴L的距离,为保证所选枢轴个体的收敛性,距离枢轴最近的个体即为本次选择过程中的枢轴点。设个体P的坐标为( xk , yk)。个体P到支点L的距离的数学表达式如式( 6 )所示:
  • 重复上述过程直到找到足够多的支点.

自回归预测模型对环境变化后的枢轴点进行预测,将枢轴点作为代表个体对PF或PS进行有效跟踪。支点的选取过程如算法1所示:

B.Predicting the non-dominant individual set(预测非支配个体集合)

环境变化时相似时

所有非支配点都会利用集合中心点的演化趋势进行演化。此时,t + 1时刻预测非支配个体的数学表达式如式( 7 )所示: 

Dcnonk t表示非支配个体集合中心点在时间步t的移动趋势

环境变化不相似时

利用非支配个体的当前位置和非支配个体集合中心点的移动趋势来预测非支配个体的下一个时间步。同时,推导出预测的非支配个体。推导操作是基于预测结果进行的;预测结果随机向前和向后移动λ次Dcnonk t。推导预测结果的操作如图3所示。针对这种不相似变化的预测策略的数学表达式如下:

 

伪代码如下:

 C.Generation mechanism of random search solutions to maintain population diversity(维持种群多样性的随机搜索生成机制)

假设随机搜索个体在决策空间中随机产生。在这种情况下,一些随机搜索个体可能会远离真实的PF,这种随机搜索个体的性能可能会影响种群的收敛性。如果能够明确随机搜索个体的生成区域,则可以在一定程度上降低该问题发生的概率。在前期工作的基础上,我们决定在通过预测得到的前两个子种群中选择最大值和最小值点来确定随机搜索个体的生成区域并运行.

在前两个子种群中,最大点( max )和最小点( min )分别是指决策空间中所有维度目标值最大和最小的个体

个体由随机生成 

伪代码如图所示

D.算法整体

伪代码

 

这篇关于论文学习——基于枢轴点预测和多样性策略混合的动态多目标优化的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/805225

相关文章

Python的Darts库实现时间序列预测

《Python的Darts库实现时间序列预测》Darts一个集统计、机器学习与深度学习模型于一体的Python时间序列预测库,本文主要介绍了Python的Darts库实现时间序列预测,感兴趣的可以了解... 目录目录一、什么是 Darts?二、安装与基本配置安装 Darts导入基础模块三、时间序列数据结构与

Java使用Javassist动态生成HelloWorld类

《Java使用Javassist动态生成HelloWorld类》Javassist是一个非常强大的字节码操作和定义库,它允许开发者在运行时创建新的类或者修改现有的类,本文将简单介绍如何使用Javass... 目录1. Javassist简介2. 环境准备3. 动态生成HelloWorld类3.1 创建CtC

从原理到实战解析Java Stream 的并行流性能优化

《从原理到实战解析JavaStream的并行流性能优化》本文给大家介绍JavaStream的并行流性能优化:从原理到实战的全攻略,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的... 目录一、并行流的核心原理与适用场景二、性能优化的核心策略1. 合理设置并行度:打破默认阈值2. 避免装箱

Python实战之SEO优化自动化工具开发指南

《Python实战之SEO优化自动化工具开发指南》在数字化营销时代,搜索引擎优化(SEO)已成为网站获取流量的重要手段,本文将带您使用Python开发一套完整的SEO自动化工具,需要的可以了解下... 目录前言项目概述技术栈选择核心模块实现1. 关键词研究模块2. 网站技术seo检测模块3. 内容优化分析模

Java实现复杂查询优化的7个技巧小结

《Java实现复杂查询优化的7个技巧小结》在Java项目中,复杂查询是开发者面临的“硬骨头”,本文将通过7个实战技巧,结合代码示例和性能对比,手把手教你如何让复杂查询变得优雅,大家可以根据需求进行选择... 目录一、复杂查询的痛点:为何你的代码“又臭又长”1.1冗余变量与中间状态1.2重复查询与性能陷阱1.

Python内存优化的实战技巧分享

《Python内存优化的实战技巧分享》Python作为一门解释型语言,虽然在开发效率上有着显著优势,但在执行效率方面往往被诟病,然而,通过合理的内存优化策略,我们可以让Python程序的运行速度提升3... 目录前言python内存管理机制引用计数机制垃圾回收机制内存泄漏的常见原因1. 循环引用2. 全局变

Unity新手入门学习殿堂级知识详细讲解(图文)

《Unity新手入门学习殿堂级知识详细讲解(图文)》Unity是一款跨平台游戏引擎,支持2D/3D及VR/AR开发,核心功能模块包括图形、音频、物理等,通过可视化编辑器与脚本扩展实现开发,项目结构含A... 目录入门概述什么是 UnityUnity引擎基础认知编辑器核心操作Unity 编辑器项目模式分类工程

Python多线程应用中的卡死问题优化方案指南

《Python多线程应用中的卡死问题优化方案指南》在利用Python语言开发某查询软件时,遇到了点击搜索按钮后软件卡死的问题,本文将简单分析一下出现的原因以及对应的优化方案,希望对大家有所帮助... 目录问题描述优化方案1. 网络请求优化2. 多线程架构优化3. 全局异常处理4. 配置管理优化优化效果1.

MySQL设置密码复杂度策略的完整步骤(附代码示例)

《MySQL设置密码复杂度策略的完整步骤(附代码示例)》MySQL密码策略还可能包括密码复杂度的检查,如是否要求密码包含大写字母、小写字母、数字和特殊字符等,:本文主要介绍MySQL设置密码复杂度... 目录前言1. 使用 validate_password 插件1.1 启用 validate_passwo

MySQL中优化CPU使用的详细指南

《MySQL中优化CPU使用的详细指南》优化MySQL的CPU使用可以显著提高数据库的性能和响应时间,本文为大家整理了一些优化CPU使用的方法,大家可以根据需要进行选择... 目录一、优化查询和索引1.1 优化查询语句1.2 创建和优化索引1.3 避免全表扫描二、调整mysql配置参数2.1 调整线程数2.