多目标优化怎么偏向某个目标?通过参考点的方式可以解决

2023-10-20 17:36

本文主要是介绍多目标优化怎么偏向某个目标?通过参考点的方式可以解决,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

通过参考点的方式可以使算法偏向某个目标,其中这些参考点的某些性质符合你所需要偏向的这个目标, 例如决策者偏好的分子是活性较好的分子,那么优化后的分子也会是这个偏好


一、基于参照点集合的方法概述

近年来出现了一类基于参照点集的超多目标演化算法。这类方法使用一个参照点集合来评价解的优劣。因此,搜索的过程由选中的参照点集合来指导方向。 这类方法有两个关键点:

  1. (a)如何构造参照点集合?
  2. (b)如何使用参照点集合来比较解的优劣?

如表2.10所示,这类方法包含三种:

  1. Two Archive Algorithms(TAAs)【从历史解和当前种群中选择解来构建参照点集合】
  2. Many Objective NSGA-II (NSGA-III)、【使用一组虚拟的理想解作为搜索目标】
  3. Taxi-Cab Surface Evolutionary Algorithm(TC-SEA)【使用一组虚拟的理想解作为搜索目标】

TAA 从历史解和当前种群中选择解来构建参照点集合,而  NSGA-II 和TC-SEA, 则使用一组虚拟的理想解作为搜索目标。对于虚拟解来说, 我们只知道其在目标空间的位置,但是并不知道其决策变量的取值。

1) 基于真实参照点集合的算法

在l2,128]中,作者提出了一种新颖的两档案算法 two archive algorithm(TAA) 以及它的改进版(Two Arch2)。 该算法将非支配解分为两个档案保存:收敛性档案(Convergence Archive,CA)和多样性档案(Diversity Archive, DA)。收敛性档案可以被看成是在线更新的参照点集合,只包含那些曾经支配过别的解的非支配解。当收敛性档案和多样性档案的解的个数超过限制时,多样性档案中的解根据它和收敛性文档距离进行筛选,距离最近的会被迭代式的删除,直到满足数量要求。实验结果显示,在相当的多样性指标的基础上, TAA[2]和其最新的变种 (Two Arch2)在收敛性能上显著优于其他当前最优的超多目标演化算法。算法也被应用到现实问题上,如软件工程30]和传感器网络协议优化。

2)基于虚拟参照点集合的方法

与TAA 不同, NSGA-III  TC-SEA 使用目标空间里的虚拟点来构造参照点集合。但是,两个算法的选择机制略有不同。

为了降低NSGA-  在超多目标优化问题上的性能退化, NSGA-III 将原来的基于拥塞距离 (crowding distance) 的多样性保持机制,替换成了基于参照点集合的小生境保持策略[52]。在确定了超平面上的参照点之后,种群个体进行归一化。然后,根据到参照点和圆点连线的投影距离每个个体指定给距离最近的那个参照点。进行选择时,优先从关联的种群个体最多的参照点的关联解中进行选择并删除。这种机制使得各个搜索方向的搜索能力得到了平衡。实验结果显示, NSGA-III在最多10目标的测试问题上得到优异的性能1521.此外,作者还研究了  算法的自适应版本,得到了更好的种群分布。

Taxi-Cab Surface Evolutionary Algorithm(TC-SEA)|129]与 NSGA-III 相比主要有以下不同:首先, TC-SEA 使用了在线构造的参照点集合而NSGA-Ⅲ 使用的是预定义好的参照点集合。其次, TC-SEA 关联解和参照点是距离是出租车距离,而NSGA-Ⅲ 使用的是垂线段长度。最后,TC-SEA 利用了出租车距离的排名和数值作为两个排序标准,而NSGA-II 主要根据小生境的拥挤程度来进行选择。 TC-SEA 在DTLZ 测试集合上进行了实验验证

二、可以使用的参考点的方式有哪些: 

参考点在多目标优化的进化算法中,特别是在NSGA-III和RVEA等算法中,起着关键的作用。它们被用作引导算法搜索的方向或帮助算法决策解的分配。

选择参考点的目的是为了捕获Pareto前沿的多样性,即覆盖整个Pareto优化解的范围。下面是参考点选择的常见方法:

  1. 均匀分布的参考点:这是最常用的方法,特别是在NSGA-III中。对于两个目标的情况,参考点可能是在单位超球上均匀分布的点。对于多于两个目标的情况,参考点的选择稍微复杂一些,但目的是相同的:确保参考点覆盖整个目标空间。

  2. 基于历史信息的参考点:在某些算法中,可以使用先前迭代中得到的信息来调整或选择新的参考点。【使用历史中性质优质的分子作为参考点

  3. 基于决策者偏好的参考点:如果决策者对优化结果有明确的偏好,可以使用这些信息来定义参考点。例如,决策者可能更关心某个特定目标或希望某个目标在一个特定范围内。【将一些性质好的分子(例如活性)提前抽取出来,然后作为参考点指导模型

  4. 动态调整参考点:在优化过程中,根据当前解的分布或性质,动态地调整参考点位置。例如,如果某个区域的解过于拥挤,可以调整参考点以引导搜索到其他区域。

当选择或生成参考点时,重要的是确保参考点能够覆盖整个Pareto前沿或决策者关心的区域,并且在不同的目标之间保持均匀分布,以确保解的多样性。

这篇关于多目标优化怎么偏向某个目标?通过参考点的方式可以解决的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Java NoClassDefFoundError运行时错误分析解决

《JavaNoClassDefFoundError运行时错误分析解决》在Java开发中,NoClassDefFoundError是一种常见的运行时错误,它通常表明Java虚拟机在尝试加载一个类时未能... 目录前言一、问题分析二、报错原因三、解决思路检查类路径配置检查依赖库检查类文件调试类加载器问题四、常见

gradle第三方Jar包依赖统一管理方式

《gradle第三方Jar包依赖统一管理方式》:本文主要介绍gradle第三方Jar包依赖统一管理方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录背景实现1.顶层模块build.gradle添加依赖管理插件2.顶层模块build.gradle添加所有管理依赖包

解决IDEA报错:编码GBK的不可映射字符问题

《解决IDEA报错:编码GBK的不可映射字符问题》:本文主要介绍解决IDEA报错:编码GBK的不可映射字符问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录IDEA报错:编码GBK的不可映射字符终端软件问题描述原因分析解决方案方法1:将命令改为方法2:右下jav

Linux之systemV共享内存方式

《Linux之systemV共享内存方式》:本文主要介绍Linux之systemV共享内存方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、工作原理二、系统调用接口1、申请共享内存(一)key的获取(二)共享内存的申请2、将共享内存段连接到进程地址空间3、将

Maven中引入 springboot 相关依赖的方式(最新推荐)

《Maven中引入springboot相关依赖的方式(最新推荐)》:本文主要介绍Maven中引入springboot相关依赖的方式(最新推荐),本文给大家介绍的非常详细,对大家的学习或工作具有... 目录Maven中引入 springboot 相关依赖的方式1. 不使用版本管理(不推荐)2、使用版本管理(推

MyBatis模糊查询报错:ParserException: not supported.pos 问题解决

《MyBatis模糊查询报错:ParserException:notsupported.pos问题解决》本文主要介绍了MyBatis模糊查询报错:ParserException:notsuppo... 目录问题描述问题根源错误SQL解析逻辑深层原因分析三种解决方案方案一:使用CONCAT函数(推荐)方案二:

C#使用StackExchange.Redis实现分布式锁的两种方式介绍

《C#使用StackExchange.Redis实现分布式锁的两种方式介绍》分布式锁在集群的架构中发挥着重要的作用,:本文主要介绍C#使用StackExchange.Redis实现分布式锁的... 目录自定义分布式锁获取锁释放锁自动续期StackExchange.Redis分布式锁获取锁释放锁自动续期分布式

IntelliJ IDEA 中配置 Spring MVC 环境的详细步骤及问题解决

《IntelliJIDEA中配置SpringMVC环境的详细步骤及问题解决》:本文主要介绍IntelliJIDEA中配置SpringMVC环境的详细步骤及问题解决,本文分步骤结合实例给大... 目录步骤 1:创建 Maven Web 项目步骤 2:添加 Spring MVC 依赖1、保存后执行2、将新的依赖

Spring 中的循环引用问题解决方法

《Spring中的循环引用问题解决方法》:本文主要介绍Spring中的循环引用问题解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录什么是循环引用?循环依赖三级缓存解决循环依赖二级缓存三级缓存本章来聊聊Spring 中的循环引用问题该如何解决。这里聊

Java对象转换的实现方式汇总

《Java对象转换的实现方式汇总》:本文主要介绍Java对象转换的多种实现方式,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录Java对象转换的多种实现方式1. 手动映射(Manual Mapping)2. Builder模式3. 工具类辅助映