当前位置: 首页 > news >正文

NSGA-III(Non-dominated Sorting Genetic Algorithm III)简介

前言

提醒:
文章内容为方便作者自己后日复习与查阅而进行的书写与发布,其中引用内容都会使用链接表明出处(如有侵权问题,请及时联系)。
其中内容多为一次书写,缺少检查与订正,如有问题或其他拓展及意见建议,欢迎评论区讨论交流。

内容由AI辅助生成,仅经笔者审核整理,请甄别食用。

文章目录

  • 前言
    • 1. 算法核心思想
    • 2. 主要组成部分
      • 2.1 非支配排序
      • 2.2 参考点生成
      • 2.3 目标函数归一化
      • 2.4 关联操作
    • 3. 算法流程
      • 3.1 主要步骤
      • 3.2 参考点引导的选择
    • 4. 关键优势
    • 5. 数学复杂度
    • 6. 应用场景


NSGA-III(Non-dominated Sorting Genetic Algorithm III)是一种先进的多目标进化算法,由Deb和Jain在2014年提出。它是NSGA-II的改进版本,特别适用于处理多目标(通常是3个或更多目标)优化问题。

引用于论文:《Qualitative analysis in many-objective optimization with visualization methods》
在这里插入图片描述

1. 算法核心思想

NSGA-III的核心思想是使用预定义的参考点(reference points)来维持种群的多样性,而不是像NSGA-II那样依赖拥挤距离。

2. 主要组成部分

2.1 非支配排序

对于两个解xix_ixixjx_jxj,如果满足以下条件,则称xix_ixi支配xjx_jxj(记作xi≺xjx_i \prec x_jxixj):

∀k∈{1,2,...,m}:fk(xi)≤fk(xj)且 ∃k:fk(xi)<fk(xj)\forall k \in \{1,2,...,m\}: f_k(x_i) \leq f_k(x_j) \text{ 且 } \exists k: f_k(x_i) < f_k(x_j)k{1,2,...,m}:fk(xi)fk(xj)  k:fk(xi)<fk(xj)

其中mmm是目标函数的数量,fkf_kfk是第kkk个目标函数。

2.2 参考点生成

NSGA-III使用Das和Dennis方法生成均匀分布的参考点。对于mmm个目标和分割数ppp,参考点的总数为:

H=(m+p−1p)=(m+p−1m−1)H = \binom{m+p-1}{p} = \binom{m+p-1}{m-1}H=(pm+p1)=(m1m+p1)

每个参考点的坐标为:
zj=(λ1jp,λ2jp,...,λmjp)z^j = \left(\frac{\lambda_1^j}{p}, \frac{\lambda_2^j}{p}, ..., \frac{\lambda_m^j}{p}\right)zj=(pλ1j,pλ2j,...,pλmj)

其中λij≥0\lambda_i^j \geq 0λij0∑i=1mλij=p\sum_{i=1}^m \lambda_i^j = pi=1mλij=p

2.3 目标函数归一化

为了确保不同目标函数具有相同的重要性,需要进行归一化:

finorm(x)=fi(x)−ziminzimax−ziminf_i^{norm}(x) = \frac{f_i(x) - z_i^{min}}{z_i^{max} - z_i^{min}}finorm(x)=zimaxziminfi(x)zimin

其中:

  • ziminz_i^{min}zimin是第iii个目标的最小值
  • zimaxz_i^{max}zimax是第iii个目标的最大值

2.4 关联操作

每个解与最近的参考点关联。解xxx到参考点zjz^jzj的垂直距离计算如下:

d(x,zj)=∥fnorm(x)−(fnorm(x)⋅zj^)zj^∥d(x, z^j) = \|f^{norm}(x) - (f^{norm}(x) \cdot \hat{z^j})\hat{z^j}\|d(x,zj)=fnorm(x)(fnorm(x)zj^)zj^

其中zj^\hat{z^j}zj^是参考点zjz^jzj的单位向量:
zj^=zj∥zj∥\hat{z^j} = \frac{z^j}{\|z^j\|}zj^=zjzj

3. 算法流程

3.1 主要步骤

  1. 初始化:生成初始种群P0P_0P0,设置参考点集合ZZZ
  2. 评估:计算所有个体的目标函数值
  3. 非支配排序:将种群分为不同的前沿层F1,F2,...,FlF_1, F_2, ..., F_lF1,F2,...,Fl
  4. 选择操作
    • 将前l−1l-1l1层直接加入下一代
    • 对第lll层使用参考点引导的选择

3.2 参考点引导的选择

对于需要从第lll层选择的个体,算法执行以下步骤:

  1. 关联计数:计算每个参考点关联的个体数量ρj\rho_jρj
  2. 选择策略:优先选择关联到个体数量较少的参考点的个体

选择概率与参考点的关联个体数量成反比:
P(zj)∝1ρj+1P(z^j) \propto \frac{1}{\rho_j + 1}P(zj)ρj+11

4. 关键优势

  1. 处理高维目标:能够有效处理3个以上目标的优化问题
  2. 均匀分布:通过参考点机制确保解的均匀分布
  3. 参数较少:主要参数只有参考点的分割数
  4. 计算效率:相比其他多目标算法具有较好的计算效率

5. 数学复杂度

  • 时间复杂度O(MN2)O(MN^2)O(MN2),其中MMM是目标数量,NNN是种群大小
  • 空间复杂度O(N⋅M+H)O(N \cdot M + H)O(NM+H),其中HHH是参考点数量

6. 应用场景

NSGA-III特别适用于:

  • 工程设计优化
  • 资源分配问题
  • 多准则决策
  • 机器学习超参数优化

NSGA-III通过引入参考点机制,有效解决了传统多目标算法在处理高维目标空间时的局限性,是目前多目标优化领域的重要算法之一。

http://www.dtcms.com/a/307097.html

相关文章:

  • MySQL数据一致性与主从延迟深度解析:从内核机制到生产实践
  • 数据集相关类代码回顾理解 | DataLoader\datasets.xxx
  • 广东省省考备考(第六十一天7.30)——资料分析、数量(强化训练——重点复习回顾)
  • 数据库初阶笔记
  • JavaWeb笔记14
  • C语言15-构造数据类型、位运算符、内存管理
  • Ⅹ—6.计算机二级综合题15---18套
  • 魔塔社区上文生图大模型对比
  • 涉及实验(随机分组)的一些概念
  • 【UEFI系列】EFI Memory Map内存映射 and type
  • cpp-httplib 线程安全
  • Tableau 2019可视化数据分析软件安装包下载安装教程
  • Java基础面试总结(八股)
  • 【硬件-笔试面试题】硬件/电子工程师,笔试面试题-49,(知识点:OSI模型,物理层、数据链路层、网络层)
  • 复现CLIP(对比语言图像预训练)
  • windows通过WSL配置linux环境
  • 重生之我在10天内卷赢C++ - DAY 2
  • UNet改进(27):对抗注意力机制如何提升UNet的图像分割性能
  • Effective C++ 条款11:在operator=中处理“自我赋值”
  • 【通识】计算机网络
  • 游戏盾能够防御哪些类型攻击?从哪些方面防护?
  • 智能体产品化的关键突破:企业智能化转型的“最后一公里”如何迈过?
  • 【从0开始学习Java | 第8篇】抽象类和接口
  • 力扣热题100---------35.搜索插入为位置
  • NLU 语义解析评测实践:基于函数调用的 ACC、ROUGE 与 BLEU 综合指标
  • LangGraph底层API学习
  • 论文阅读|CVPR 2025|Mamba进一步研究|GroupMamba
  • RNN、LSTM、Transformer推荐博文
  • AI在软件测试中的应用:自动化测试框架、智能缺陷检测与A/B测试优化
  • 人工智能如何改变项目管理:应用、影响与趋势