KnEA(Knee-point-driven Evolutionary Algorithm)简介

前言

提醒:

文章内容为方便作者自己后日复习与查阅而进行的书写与发布,其中引用内容都会使用链接表明出处(如有侵权问题,请及时联系)。

其中内容多为一次书写,缺少检查与订正,如有问题或其他拓展及意见建议,欢迎评论区讨论交流。
内容由AI辅助生成,仅经笔者审核整理,请甄别食用。

文章目录


KnEA(Knee-point-driven Evolutionary Algorithm)是一种针对超多目标优化问题(4个及以上目标)的高效算法,其核心在于通过识别拐点解(Knee Points)引导选择压力,平衡收敛性与多样性。以下从数学原理、关键公式到算法流程进行详细解析。

一、拐点解的数学定义与识别

1. 拐点的几何特征

拐点解是Pareto前沿上的"最凹点",其特点是:改进任一目标会导致其他多个目标显著恶化 。数学上,拐点解可通过目标空间中的梯度变化到超平面的距离来识别。

2. 自适应邻域搜索策略

KnEA采用自适应邻域策略动态调整搜索范围,避免手动设置参数。邻域大小由以下公式确定:
R g j = ( f max , g j − f min , g j ) ⋅ r g R_g^j = \left(f_{\text{max},g}^j - f_{\text{min},g}^j\right) \cdot r_g Rgj=(fmax,gj−fmin,gj)⋅rg

其中:

  • R g j R_g^j Rgj为第 g g g代第 j j j个目标的邻域半径;
  • f max , g j f_{\text{max},g}^j fmax,gj和 f min , g j f_{\text{min},g}^j fmin,gj为当前代第 j j j个目标的极值;
  • r g r_g rg为自适应缩放因子,随迭代更新:
    r g = r g − 1 ⋅ e − 1 − t g − 1 / T M r_g = r_{g-1} \cdot e^{-\frac{1 - t_{g-1}/T}{M}} rg=rg−1⋅e−M1−tg−1/T
    这里, T T T为预设参数(控制拐点比例), M M M为目标数, t g − 1 t_{g-1} tg−1为前一代拐点解占非支配解的比例。该公式确保当拐点比例不足时,邻域半径急剧缩小以聚焦搜索。
3. 拐点识别的核心公式

对于当前非支配解 x i x_i xi,计算其到极端直线 (由两个极值解确定的超平面)的距离:
d i = ∣ A ⋅ f ( x i ) + B ∣ ∥ A ∥ d_i = \frac{\left|A \cdot f(x_i) + B\right|}{\|A\|} di=∥A∥∣A⋅f(xi)+B∣

其中:

  • A A A和 B B B由极值解确定的超平面方程系数;
  • f ( x i ) f(x_i) f(xi)为解 x i x_i xi的目标向量。
    距离最大的解被视为当前邻域的拐点。

二、选择策略的三级比较机制

KnEA通过三级锦标赛选择实现高效筛选,公式化比较逻辑如下:

1. 第一级:支配关系

若解 a a a支配解 b b b(即 a a a的所有目标不劣于 b b b且至少一个目标更优),则选择 a a a;否则进入下一级。

2. 第二级:拐点优先级

若 a a a是拐点而 b b b不是,则选择 a a a;反之选择 b b b。若两者同为拐点或非拐点,则进入第三级。

3. 第三级:加权距离比较

计算解 a a a和 b b b的加权距离:
D ( p ) = ∑ j = 1 k 1 rank ( d p , j ) D(p) = \sum_{j=1}^k \frac{1}{\text{rank}(d_{p,j})} D(p)=j=1∑krank(dp,j)1

其中:

  • d p , j d_{p,j} dp,j为解 p p p到第 j j j近邻的欧氏距离;
  • rank ( d p , j ) \text{rank}(d_{p,j}) rank(dp,j)为距离的排序(距离越小,排名越高)。
    选择加权距离较大的解,以确保多样性。

三、算法流程与公式化步骤

1. 初始化

随机生成初始种群 P 0 P_0 P0,计算每个个体的目标值 f ( x i ) f(x_i) f(xi)。

2. 选择与遗传操作
  • 二进制锦标赛选择 :每次随机选2个个体,按三级比较规则生成 N N N个子代。
  • 交叉与变异:采用模拟二进制交叉(SBX)和多项式变异,公式与NSGA-II类似。
3. 非支配排序与拐点识别
  • 合并父代与子代,进行非支配排序,得到多个前沿 F 1 , F 2 , ... F_1, F_2, \dots F1,F2,...。
  • 对每个前沿,使用自适应邻域公式识别拐点解。
4. 环境选择
  • 优先保留拐点解,若数量不足 N N N,则从非拐点解中选择加权距离较大的补充:
    Selected = arg ⁡ max ⁡ x ∈ F last D ( x ) \text{Selected} = \arg\max_{x \in F_{\text{last}}} D(x) Selected=argx∈FlastmaxD(x)
    其中 F last F_{\text{last}} Flast为最后一个未被完全选中的前沿。

四、关键公式总结与应用场景

公式类型 核心公式 作用
邻域半径自适应调整 R g j = ( f max , g j − f min , g j ) ⋅ r g R_g^j = \left(f_{\text{max},g}^j - f_{\text{min},g}^j\right) \cdot r_g Rgj=(fmax,gj−fmin,gj)⋅rg 动态缩小搜索范围,聚焦拐点
拐点距离计算 d i = ∣ A ⋅ f ( x i ) + B ∣ ∣ A ∣ d_i = \frac{|A \cdot f(x_i) + B|}{|A|} di=∣A∣∣A⋅f(xi)+B∣ 量化解的拐点程度,识别局部拐点
加权距离比较 D ( p ) = ∑ j = 1 k 1 rank ( d p , j ) D(p) = \sum_{j=1}^k \frac{1}{\text{rank}(d_{p,j})} D(p)=∑j=1krank(dp,j)1 评估解的多样性,作为非拐点解的选择依据
环境选择策略 Selected = arg ⁡ max ⁡ x ∈ F last D ( x ) \text{Selected} = \arg\max_{x \in F_{\text{last}}} D(x) Selected=argmaxx∈FlastD(x) 补充非拐点解以维持种群多样性

五、算法优势与数学解释

  1. 选择压力增强:通过拐点优先级打破非支配解的平局,避免传统算法因非支配解过多导致的选择失效。
  2. 多样性隐式维护:加权距离基于邻域密度,天然倾向于选择分布稀疏的解,无需额外拥挤距离计算。
  3. 计算复杂度降低 :自适应邻域策略减少了对全局信息的依赖,时间复杂度为 O ( M N 2 ) O(MN^2) O(MN2)( M M M为目标数, N N N为种群规模),显著低于NSGA-III的 O ( M N 3 ) O(MN^3) O(MN3)。

六、参数设置与实践建议

  • 参数 T T T :通常设为0.1~0.3,控制拐点解占非支配解的比例。若目标数多(如 M ≥ 8 M \geq 8 M≥8),可适当增大 T T T以增加拐点数量。
  • 邻域半径初始值 r 0 r_0 r0:建议设为0.5,随迭代逐步缩小。
  • 加权距离的近邻数 k k k :一般取 k = 3 k=3 k=3,平衡局部与全局信息。
相关推荐
天涯海风2 小时前
检索增强生成(RAG) 缓存增强生成(CAG) 生成中检索(RICHES) 知识库增强语言模型(KBLAM)
人工智能·缓存·语言模型
快去睡觉~2 小时前
力扣73:矩阵置零
算法·leetcode·矩阵
小欣加油3 小时前
leetcode 3 无重复字符的最长子串
c++·算法·leetcode
lxmyzzs3 小时前
基于深度学习CenterPoint的3D目标检测部署实战
人工智能·深度学习·目标检测·自动驾驶·ros·激光雷达·3d目标检测
跟着珅聪学java4 小时前
Apache OpenNLP简介
人工智能·知识图谱
AwhiteV4 小时前
利用图数据库高效解决 Text2sql 任务中表结构复杂时占用过多大模型上下文的问题
数据库·人工智能·自然语言处理·oracle·大模型·text2sql
Black_Rock_br5 小时前
AI on Mac, Your Way!全本地化智能代理,隐私与性能兼得
人工智能·macos
☺����5 小时前
实现自己的AI视频监控系统-第一章-视频拉流与解码2
开发语言·人工智能·python·音视频
fsnine5 小时前
机器学习——数据清洗
人工智能·机器学习
猿究院--王升6 小时前
jvm三色标记
java·jvm·算法