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

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

论文题目: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

相关文章

MySQL索引的优化之LIKE模糊查询功能实现

《MySQL索引的优化之LIKE模糊查询功能实现》:本文主要介绍MySQL索引的优化之LIKE模糊查询功能实现,本文通过示例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧... 目录一、前缀匹配优化二、后缀匹配优化三、中间匹配优化四、覆盖索引优化五、减少查询范围六、避免通配符开头七、使用外部搜索引擎八、分

SpringRetry重试机制之@Retryable注解与重试策略详解

《SpringRetry重试机制之@Retryable注解与重试策略详解》本文将详细介绍SpringRetry的重试机制,特别是@Retryable注解的使用及各种重试策略的配置,帮助开发者构建更加健... 目录引言一、SpringRetry基础知识二、启用SpringRetry三、@Retryable注解

MySQL 分区与分库分表策略应用小结

《MySQL分区与分库分表策略应用小结》在大数据量、复杂查询和高并发的应用场景下,单一数据库往往难以满足性能和扩展性的要求,本文将详细介绍这两种策略的基本概念、实现方法及优缺点,并通过实际案例展示如... 目录mysql 分区与分库分表策略1. 数据库水平拆分的背景2. MySQL 分区策略2.1 分区概念

MySQL中动态生成SQL语句去掉所有字段的空格的操作方法

《MySQL中动态生成SQL语句去掉所有字段的空格的操作方法》在数据库管理过程中,我们常常会遇到需要对表中字段进行清洗和整理的情况,本文将详细介绍如何在MySQL中动态生成SQL语句来去掉所有字段的空... 目录在mysql中动态生成SQL语句去掉所有字段的空格准备工作原理分析动态生成SQL语句在MySQL

Python通过模块化开发优化代码的技巧分享

《Python通过模块化开发优化代码的技巧分享》模块化开发就是把代码拆成一个个“零件”,该封装封装,该拆分拆分,下面小编就来和大家简单聊聊python如何用模块化开发进行代码优化吧... 目录什么是模块化开发如何拆分代码改进版:拆分成模块让模块更强大:使用 __init__.py你一定会遇到的问题模www.

Java调用C++动态库超详细步骤讲解(附源码)

《Java调用C++动态库超详细步骤讲解(附源码)》C语言因其高效和接近硬件的特性,时常会被用在性能要求较高或者需要直接操作硬件的场合,:本文主要介绍Java调用C++动态库的相关资料,文中通过代... 目录一、直接调用C++库第一步:动态库生成(vs2017+qt5.12.10)第二步:Java调用C++

SpringBoot首笔交易慢问题排查与优化方案

《SpringBoot首笔交易慢问题排查与优化方案》在我们的微服务项目中,遇到这样的问题:应用启动后,第一笔交易响应耗时高达4、5秒,而后续请求均能在毫秒级完成,这不仅触发监控告警,也极大影响了用户体... 目录问题背景排查步骤1. 日志分析2. 性能工具定位优化方案:提前预热各种资源1. Flowable

SpringBoot3实现Gzip压缩优化的技术指南

《SpringBoot3实现Gzip压缩优化的技术指南》随着Web应用的用户量和数据量增加,网络带宽和页面加载速度逐渐成为瓶颈,为了减少数据传输量,提高用户体验,我们可以使用Gzip压缩HTTP响应,... 目录1、简述2、配置2.1 添加依赖2.2 配置 Gzip 压缩3、服务端应用4、前端应用4.1 N

C#如何动态创建Label,及动态label事件

《C#如何动态创建Label,及动态label事件》:本文主要介绍C#如何动态创建Label,及动态label事件,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录C#如何动态创建Label,及动态label事件第一点:switch中的生成我们的label事件接着,

Spring Boot + MyBatis Plus 高效开发实战从入门到进阶优化(推荐)

《SpringBoot+MyBatisPlus高效开发实战从入门到进阶优化(推荐)》本文将详细介绍SpringBoot+MyBatisPlus的完整开发流程,并深入剖析分页查询、批量操作、动... 目录Spring Boot + MyBATis Plus 高效开发实战:从入门到进阶优化1. MyBatis