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_ixi和xjx_jxj,如果满足以下条件,则称xix_ixi支配xjx_jxj(记作xi≺xjx_i \prec x_jxi≺xj):
∀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+p−1)=(m−1m+p−1)
每个参考点的坐标为:
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λij≥0且∑i=1mλij=p\sum_{i=1}^m \lambda_i^j = p∑i=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)=zimax−ziminfi(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^=∥zj∥zj
3. 算法流程
3.1 主要步骤
- 初始化:生成初始种群P0P_0P0,设置参考点集合ZZZ
- 评估:计算所有个体的目标函数值
- 非支配排序:将种群分为不同的前沿层F1,F2,...,FlF_1, F_2, ..., F_lF1,F2,...,Fl
- 选择操作:
- 将前l−1l-1l−1层直接加入下一代
- 对第lll层使用参考点引导的选择
3.2 参考点引导的选择
对于需要从第lll层选择的个体,算法执行以下步骤:
- 关联计数:计算每个参考点关联的个体数量ρj\rho_jρj
- 选择策略:优先选择关联到个体数量较少的参考点的个体
选择概率与参考点的关联个体数量成反比:
P(zj)∝1ρj+1P(z^j) \propto \frac{1}{\rho_j + 1}P(zj)∝ρj+11
4. 关键优势
- 处理高维目标:能够有效处理3个以上目标的优化问题
- 均匀分布:通过参考点机制确保解的均匀分布
- 参数较少:主要参数只有参考点的分割数
- 计算效率:相比其他多目标算法具有较好的计算效率
5. 数学复杂度
- 时间复杂度:O(MN2)O(MN^2)O(MN2),其中MMM是目标数量,NNN是种群大小
- 空间复杂度:O(N⋅M+H)O(N \cdot M + H)O(N⋅M+H),其中HHH是参考点数量
6. 应用场景
NSGA-III特别适用于:
- 工程设计优化
- 资源分配问题
- 多准则决策
- 机器学习超参数优化
NSGA-III通过引入参考点机制,有效解决了传统多目标算法在处理高维目标空间时的局限性,是目前多目标优化领域的重要算法之一。