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

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

相关文章

如何突破底层思维方式的牢笼

我始终认为,牛人和普通人的根本区别在于思维方式的不同,而非知识多少、阅历多少。 在这个世界上总有一帮神一样的人物存在。就像读到的那句话:“人类就像是一条历史长河中的鱼,只有某几条鱼跳出河面,看到世界的法则,但是却无法改变,当那几条鱼中有跳上岸,进化了,改变河道流向,那样才能改变法则。”  最近一段时间一直在不断寻在内心的东西,同时也在不断的去反省和否定自己的一些思维模式,尝试重

[职场] 护理专业简历怎么写 #经验分享#微信

护理专业简历怎么写   很多想成为一名护理方面的从业者,但是又不知道应该怎么制作一份简历,现在这里分享了一份护理方面的简历模板供大家参考。   蓝山山   年龄:24   号码:12345678910   地址:上海市 邮箱:jianli@jianli.com   教育背景   时间:2011-09到2015-06   学校:蓝山大学   专业:护理学   学历:本科

uniapp接入微信小程序原生代码配置方案(优化版)

uniapp项目需要把微信小程序原生语法的功能代码嵌套过来,无需把原生代码转换为uniapp,可以配置拷贝的方式集成过来 1、拷贝代码包到src目录 2、vue.config.js中配置原生代码包直接拷贝到编译目录中 3、pages.json中配置分包目录,原生入口组件的路径 4、manifest.json中配置分包,使用原生组件 5、需要把原生代码包里的页面修改成组件的方

2024.6.24 IDEA中文乱码问题(服务器 控制台 TOMcat)实测已解决

1.问题产生原因: 1.文件编码不一致:如果文件的编码方式与IDEA设置的编码方式不一致,就会产生乱码。确保文件和IDEA使用相同的编码,通常是UTF-8。2.IDEA设置问题:检查IDEA的全局编码设置和项目编码设置是否正确。3.终端或控制台编码问题:如果你在终端或控制台看到乱码,可能是终端的编码设置问题。确保终端使用的是支持你的文件的编码方式。 2.解决方案: 1.File -> S

Java面试八股之怎么通过Java程序判断JVM是32位还是64位

怎么通过Java程序判断JVM是32位还是64位 可以通过Java程序内部检查系统属性来判断当前运行的JVM是32位还是64位。以下是一个简单的方法: public class JvmBitCheck {public static void main(String[] args) {String arch = System.getProperty("os.arch");String dataM

电脑不小心删除的文件怎么恢复?4个必备恢复方法!

“刚刚在对电脑里的某些垃圾文件进行清理时,我一不小心误删了比较重要的数据。这些误删的数据还有机会恢复吗?希望大家帮帮我,非常感谢!” 在这个数字化飞速发展的时代,电脑早已成为我们日常生活和工作中不可或缺的一部分。然而,就像生活中的小插曲一样,有时我们可能会在不经意间犯下一些小错误,比如不小心删除了重要的文件。 当那份文件消失在眼前,仿佛被时间吞噬,我们不禁会心生焦虑。但别担心,就像每个问题

idea lanyu方式激活

访问http://idea.lanyus.com/这个地址。根据提示将0.0.0.0 account.jetbrains.com添加到hosts文件中,hosts文件在C:\Windows\System32\drivers\etc目录下。点击获得注册码即可。

ABAP怎么把传入的参数刷新到内表里面呢?

1.在执行相关的功能操作之前,优先执行这一段代码,把输入的数据更新入内表里面 DATA: lo_guid TYPE REF TO cl_gui_alv_grid.CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'IMPORTINGe_grid = lo_guid.CALL METHOD lo_guid->check_changed_data.CALL M

以canvas方式绘制粒子背景效果,感觉还可以

这个是看到项目中别人写好的,感觉这种写法效果还可以,就存留记录下 就是这种的背景效果。如果想改背景颜色可以通过canvas.js文件中的fillStyle值改。 附上demo下载地址。 https://download.csdn.net/download/u012138137/11249872

vue同页面多路由懒加载-及可能存在问题的解决方式

先上图,再解释 图一是多路由页面,图二是路由文件。从图一可以看出每个router-view对应的name都不一样。从图二可以看出层路由对应的组件加载方式要跟图一中的name相对应,并且图二的路由层在跟图一对应的页面中要加上components层,多一个s结尾,里面的的方法名就是图一路由的name值,里面还可以照样用懒加载的方式。 页面上其他的路由在路由文件中也跟图二是一样的写法。 附送可能存在