RVEA多目标优化

news2024/11/25 7:17:19

A Reference Vector Guided Evolutionary Algorithm for Many-objective Optimization

    • 目标函数
    • 预备知识
    • 参考向量引导选择
    • 更新参考向量
    • 流程
      • 整体框架
      • 参考向量引导选择
      • 参考向量自适应

for Many-objective Optimization)

目标函数

min ⁡ X f ( X ) = ( f 1 ( X ) , f 2 ( X ) , . . . , f M ( X ) ) \min_{\small{X}} \pmb{f(\small{X})} = (f_1(\small{X}), f_2(\small{X}), ..., f_M(\small{X})) Xminf(X)=(f1(X),f2(X),...,fM(X))

预备知识

参考向量个数 N = C H + M − 1 M − 1 N = C_{H+M-1}^{M-1} N=CH+M1M1 H H H 为边长分成的份数, M M M是目标的个数

在这里插入图片描述

from pymoo.algorithms.moo.rvea import RVEA
from pymoo.optimize import minimize
from pymoo.problems import get_problem
from pymoo.util.ref_dirs import get_reference_directions
from pymoo.visualization.scatter import Scatter

problem = get_problem("dtlz1", n_obj=3)

ref_dirs = get_reference_directions("das-dennis", 3, n_partitions=12)

algorithm = RVEA(ref_dirs)

res = minimize(problem,
               algorithm,
               termination=('n_gen', 400),
               seed=1,
               verbose=False)

plot = Scatter()
plot.add(problem.pareto_front(ref_dirs), plot_type="surface", color="black", alpha=0.7)
plot.add(res.F, color="red")
plot.show(block=True)

此代码中 H = n _ p a r t i t i o n s = 12          M = n _ o b j = 3 H =n\_partitions = 12 \;\;\;\; M = n\_obj = 3 H=n_partitions=12M=n_obj=3

故最终的参考向量个数 N = C 12 + 3 − 1 3 − 1 = C 14 2 = 91 N = C_{12+3-1}^{3-1} = C_{14}^2 = 91 N=C12+3131=C142=91

每个参考向量需要单位化: v i = u i ∣ ∣ u i ∣ ∣ v_i=\frac{u_i}{ ||u_i||} vi=∣∣ui∣∣ui

参考向量的相似度 c o s θ = v 1 ∙ v 2 ∣ ∣ v 1 ∣ ∣ ∣ ∣ v 2 ∣ ∣ cos \theta = \frac{\pmb{v_1} \bullet\pmb{ v_2}}{||\pmb{v_1} ||||\pmb{v_2}||} cosθ=∣∣v1∣∣∣∣v2∣∣v1v2

参考向量引导选择

  • 理想向量: Z t m i n = ( Z t , 1 m i n , Z t , 2 m i n , . . . , Z t , m m i n ) \small{Z_t^{min}} = (\small{Z_{t, 1}^{min}}, \small{Z_{t, 2}^{min}}, ..., \small{Z_{t, m}^{min}}) Ztmin=(Zt,1min,Zt,2min,...,Zt,mmin)代表每个目标函数的最小值组成的向量

  • 目标向量平移:因为参考向量是以坐标系原点为中心的,因此需要将目标函数都平移到坐标系原点: f t , i ′ = f t , i − Z t m i n \text{f}_{t, i}^{\prime} = \text{f}_{t, i} - \small{Z_t^{min}} ft,i=ft,iZtmin f t , i \text{f}_{t, i} ft,i表示第 t t t次迭代中第 i i i个个体的目标函数向量

  • 种群划分:种群里面的每个个体按照到参考向量的最小夹角,与离得最近的目标向量归为一个集合体【与目标向量的余弦值最大】
    c o s θ t , i , j = f t , i ′ ∙ v t , j ∣ ∣ f t , i ′ ∣ ∣ P ˉ t , k = { I t , i ∣ k = argmax i ∈ { 1 , 2 , . . . , N } c o s θ t , i , j } \begin{align} cos \theta_{t, i, j} &= \frac{\text{f}_{t, i}^{\prime} \bullet \pmb{v}_{t, j}}{||\text{f}_{t, i}^{\prime}||} \\ \bar{P}_{t, k} &= \{I_{t, i}|k = \underset{i \in \{1, 2, ..., N\}}{\text{argmax}} cos \theta_{t, i, j}\} \end{align} cosθt,i,jPˉt,k=∣∣ft,i∣∣ft,ivt,j={It,ik=i{1,2,...,N}argmaxcosθt,i,j}

  • 角度惩罚距离
    d t , i , j = ( 1 + P ( θ t , i , j ) ) ∙ ∣ ∣ f t , i ′ ∣ ∣ P ( θ t , i , j ) = M . ( t t m a x ) α . θ t , i , j γ v t , j γ v t , j = min ⁡ i ∈ { 1 , 2 , . . . , N } , i ≠ j < v t , i , v t , j >          最小角 \begin{align} d_{t, i, j} &= (1 + P(\theta_{t, i, j})) \bullet ||\text f_{t, i}^{\prime}|| \\ P(\theta_{t, i, j}) &= M . (\frac{t}{t_{max}}) ^\alpha . \frac{\theta_{t, i, j}}{\gamma_{\pmb v_{t, j}}} \\ \gamma_{\pmb v_{t, j}} &= \min_{i \in \{1, 2, ..., N\}, i \neq j} <\pmb v_{t, i}, \pmb v_{t, j}> \;\;\;\; \text{最小角} \end{align} dt,i,jP(θt,i,j)γvt,j=(1+P(θt,i,j))∣∣ft,i∣∣=M.(tmaxt)α.γvt,jθt,i,j=i{1,2,...,N},i=jmin<vt,i,vt,j>最小角

更新参考向量

v t + 1 , i = v 0 , i ∘ ( Z t + 1 m a x − Z t + 1 m i n ) ∣ ∣ v 0 , i ∘ ( Z t + 1 m a x − Z t + 1 m i n ) ∣ ∣ \pmb v_{t+1, i} = \frac{\pmb v_{0, i} \circ (\small Z_{t+1}^{max} - Z_{t+1}^{min})}{||\pmb v_{0, i} \circ (\small Z_{t+1}^{max} - Z_{t+1}^{min})||} vt+1,i=∣∣v0,i(Zt+1maxZt+1min)∣∣v0,i(Zt+1maxZt+1min)

流程

整体框架

在这里插入图片描述

参考向量引导选择

在这里插入图片描述

参考向量自适应

在这里插入图片描述

fr通常设置为 0.2 0.2 0.2

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

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

相关文章

游泳耳机买什么牌子好一点?推荐四款出色的游泳耳机

游泳和跑步类似&#xff0c;短距离冲刺时&#xff0c;大脑没什么想法&#xff0c;而中长距离的有氧运动时&#xff0c;肉体是疲惫的&#xff0c;大脑是异常清晰的&#xff0c;时间却是格外难熬的。如何打发时间&#xff0c;让游泳锻炼变得不无聊&#xff0c;这是我从孩子时期就…

从零开始 Spring Boot 41:事件

从零开始 Spring Boot 41&#xff1a;事件 图源&#xff1a;简书 (jianshu.com) Spring 实现了一个简单、实用的事件框架&#xff0c;利用它我们可以在多个组件之间进行松耦合式的通信。 简单示例 让我们从一个简单的示例开始&#xff1a; public record Email(String addr…

sqli-labs靶场通关(21-30)

Less-21 还是adminadmin登录 可以看出uname是base64加密过的&#xff0c;解码得到&#xff1a;admin。 那么本关和less-20相似&#xff0c;只是cookie的uname值经过base64编码了。 抓包看一下也是如此 那么我们只需要上传paylaod的时候base64加密一下就可以了 base64加密工…

多线程-线程的创建的方式3、4:实现Callable与线程池

JDK5.0新增线程创建方式 简要概况&#xff1a; 1. 创建多线程的方式三&#xff1a;实现Callable&#xff08;jdk5.0新增的&#xff09;与之前的方式的对比&#xff1a;与Runnable方式的对比的好处 > call()可以有返回值&#xff0c;更灵活 > call()可以使用throws的方式…

模板模式(十六)

相信自己&#xff0c;请一定要相信自己 上一章简单介绍了代理模式(十五), 如果没有看过, 请观看上一章 一. 模板模式 引用 菜鸟教程里面的 模板模式介绍: https://www.runoob.com/design-pattern/template-pattern.html 在模板模式&#xff08;Template Pattern&#xff09;…

简要介绍 | 三维点云配准:理论、方法与挑战

三维点云配准&#xff1a;理论、方法与挑战 注&#xff1a;”简要介绍“系列仅从概念上对某一领域进行非常简要的介绍&#xff0c;不适合用于深入和详细的了解 三维点云配准 是计算机视觉和机器人领域的重要课题&#xff0c;涉及从不同视角或时间点采集的三维点云数据之间寻找最…

面试半年,总结了 1000 道 2023 年 Java 架构师岗面试题

半年前还在迷茫该学什么&#xff0c;怎样才能走出现在的困境&#xff0c;半年后已经成功上岸阿里&#xff0c;感谢在这期间帮助我的每一个人。 面试中总结了 1000 道经典的 Java 面试题&#xff0c;里面包含面试要回答的知识重点&#xff0c;并且我根据知识类型进行了分类&…

Linux5.5 Mysql索引、事务与存储引擎

文章目录 计算机系统5G云计算第四章 LINUX Mysql索引、事务与存储引擎一、Mysql索引1. 索引的概念2.索引的作用3.索引的副作用4.创建索引的原则依据5.索引的分类和创建1&#xff09;普通索引2&#xff09;唯一索引3&#xff09;主键索引4&#xff09;组合索引5&#xff09;全文…

验证attention是否在图像分类问题上起决定性作用

来源&#xff1a;投稿 作者&#xff1a;摩卡 编辑&#xff1a;学姐 Motivation 现阶段出现了大量的Transformer-style图像分类模型&#xff0c;并且这些模型在ImageNet上取得了不俗的成绩&#xff0c;这些Transformer-style模型将取得高性能的功劳归功于Multi-head attention注…

【软件设计】模块设计耦合的其中类型

一.什么是高内聚、低耦合&#xff1f; 在结构化分析与模块设计方法中&#xff0c;模块化是一个很重要的概念&#xff0c;它是将一个待开发的软件分解成为若干个小的模块&#xff0c;每个模块可以独立地开发、测试。使得复杂问题的“分而治之”&#xff0c;令程序的结构清晰、易…

vue3+router4的基本使用

一、安装router npm i vue-router二、路由跳转 2.1 创建路由实例 在src目录下创建router文件夹&#xff0c;在其中创建一个index.js文件&#xff0c;创建路由实例。 通过vue-router的createRouter方法创建一个router对象。其中有history和routes 1.history&#xff1a; histo…

微机保护的数据采集系统(2)

&#xff08;二&#xff09;采样保持电路&#xff08;S&#xff0f;H&#xff09;和模拟低通滤波器&#xff08;ALF&#xff09; 1&#xff0e;采样保持电路&#xff08;S&#xff0f;H&#xff09; &#xff08;1&#xff09;采样保持原理。 S&#xff0f;H电路的作用是在一个…

Linux进程间通信 - 共享内存

之前的文章中我们讲述了匿名管道与命名管道相关的知识点&#xff0c;在本文中我们将继续讲述一种进程间通信的方式&#xff1a;共享内存。 systemV共享内存 共享内存区是最快的IPC形式。一旦这样的内存映射到共享它的进程的地址空间&#xff0c;这些进程间数据传递不再涉及到…

Downie 4 4.6.18 MAC上最新最好用的一款视频下载工具

Downie for Mac 简介 Downie是Mac下一个简单的下载管理器&#xff0c;可以让您快速将不同的视频网站上的视频下载并保存到电脑磁盘里然后使用您的默认媒体播放器观看它们。 Downie 4 下载 Downie 4 for Mac Downie 4 for Mac软件特点 支持许多站点 -当前支持1000多个不同的…

间接采购管理中常见的五大挑战

间接采购&#xff0c;有时也被称为间接费用或尾部支出&#xff0c;这些商品或服务不是制造产品直接必需的&#xff0c;而是日常运营所需的。 ● 办公室和行政用品 ● 商店地点的消耗品&#xff08;例如&#xff0c;清洁用品&#xff09; ● 设施管理费用 ● 专业服务 ● 旅行…

Linux 服务器重启之后执行指定脚本文件

有些时候&#xff0c;我们部署服务、中间件、数据库等应用的机器可能会因为机房停电、断电而宕机&#xff0c;这样大部分服务就随之关闭了&#xff0c;可能会需要手动去进行重启&#xff0c;我们可以通过 Linux 的开机启动来实现服务自动重启。 一、配置 /etc/rc.d/rc.local 文…

VOSviewer软件的基础与应用

VOSviewer是一款免费且专业的文献计量分析软件&#xff0c;也是一个知识图谱可视化工具&#xff0c;由荷兰莱顿大学开发&#xff0c;主要用于构建和查看文献计量知识图谱&#xff0c;基于文献的共引和共被引原理&#xff0c;具有可视化能力强、适合于大规模样本数据的特点&…

抖音矩阵系统源代码开发部署--源码搭建

抖音矩阵系统是一个具有强大功能的开放性平台&#xff0c;通过数据挖掘技术能够实现精准的用户画像和个性化推荐&#xff0c;这也是抖音成为国内最受欢迎的短视频平台之一的原因之一。矩阵系统的开发需要大量的技术支持和数据分析&#xff0c;同时也需要综合运用大数据、机器学…

Mysql主从复制及读写分离

&#x1f353; 简介&#xff1a;java系列技术分享(&#x1f449;持续更新中…&#x1f525;) &#x1f353; 初衷:一起学习、一起进步、坚持不懈 &#x1f353; 如果文章内容有误与您的想法不一致,欢迎大家在评论区指正&#x1f64f; &#x1f353; 希望这篇文章对你有所帮助,欢…

华为OD机试 JavaScript 实现【密码验证合格程序】【牛客练习题 HJ20】,附详细解题思路

一、题目描述 密码要求: 长度超过8位包括大小写字母.数字.其它符号,以上四种至少三种不能有长度大于2的包含公共元素的子串重复 &#xff08;注&#xff1a;其他符号不含空格或换行&#xff09; 二、输入描述 一组字符串。 三、输出描述 如果符合要求输出&#xff1a;OK&…