文献翻译 (3):非支配排序遗传算法 (Non-dominated Sorting Genetic Algorithm, NSGA-II)

1 引入

本文主要介绍多目标优化的基本概念以及NSGA-II。

2 多目标优化

多目标优化的优化目标之间存在一定的冲突,例如一个目标增长,导致另一个减少。因此这里的解是一组解决方案而非唯一的全局解。

通常,我们有以下数学问题:
min ⁡ / max ⁡ : f m ( x ) , m = 1 , 2 , … , M s . t . : g j ( x ) ≥ 0 , j = 1 , 2 , … , J h k ( x ) = 0 , k = 1 , 2 , … , K x i ( L ) ≤ x i ≤ x i ( U ) , i = 1 , 2 , … , n \begin{aligned} \min/\max:&f_m(\mathbf{x}),&m&=1,2,\dots,M\\ s.t.:&g_{j}(\mathbf{x})\geq0,&j&=1,2,\dots,J\\ &h_k(\mathbf{x})=0,&k&=1,2,\dots,K\\ &x_i^{(L)}\leq x_i\leq x_i^{(U)},&i&=1,2,\dots,n \end{aligned} min/max:s.t.:fm(x),gj(x)0,hk(x)=0,xi(L)xixi(U),mjki=1,2,,M=1,2,,J=1,2,,K=1,2,,n一个解是包含 n n n个变量的向量:
x = ( x 1 , x 2 , … , x n ) T \mathbf{x}=(x_1,x_2,\dots,x_n)^T x=(x1,x2,,xn)T此外,问题屈服于 J J J个不等式约束和 K K K个等式约束,每一个变量都有一个相应的上界和下界。

满足所有约束且在上下界之间的解被称为可行解。所有可行解的集合被称为可行域 (搜索空间) S S S目标空间由所有可行解对应的的 M M M个目标函数的值构成。

3 更多的定义

3.1 支配

如果条件1和2均满足,则解 x ( 1 ) \mathbf{x}^{(1)} x(1)支配解 x ( 2 ) \mathbf{x}^{(2)} x(2)

  • 条件1:对于所有的目标函数均有 x ( 1 ) \mathbf{x}^{(1)} x(1)不差于 x ( 2 ) \mathbf{x}^{(2)} x(2)
  • 条件2:在至少一个目标函数上 x ( 1 ) \mathbf{x}^{(1)} x(1)严格优于 x ( 2 ) \mathbf{x}^{(2)} x(2)

x ( 1 ) \mathbf{x}^{(1)} x(1)支配 x ( 2 ) \mathbf{x}^{(2)} x(2)的数学表达为:
x ( 1 ) ⪯ x ( 2 ) \mathbf{x}^{(1)}\preceq\mathbf{x}^{(2)} x(1)x(2)

3.2 非支配集

对于解集 P P P,其非支配集是所有不被其他解所支配的解的集合。

3.3 全局Pareto最优集

S S S的非支配集即为全局Pareto最优集。

一个例子是土木工程中的悬臂梁设计:通过改变悬臂梁长度和直径,来最小化挠度和重量。图1展示了相应的目标空间:不同长度和直径下的挠度与重量变化。

图1:挠度与重量


该曲线可以很直观地反应全局Pareto最优集中挠度和重量的权衡。

图2:左图为可行的决策变量空间,右图为可行的目标空间


图2中靠近原点的目标空间中,形成的一条曲线即为Pareto最优前沿。非可行解也能生成靠近原点的目标值。Pareto前沿表示可能的最佳权衡

4 NSGA-II

NSGA-II是一种进化算法。进化算法被开发的原因为:直接或基于梯度的技术在处理非线性和复杂交互时存在以下问题:

  • 最优解的收敛依赖于初始解的选择;
  • 大多数算法易陷入局部最优。

NSGA-II的理解需要一些前驱知识,可以参照:

  1. 遗传算法简介
  2. Matlab与遗传算法
  3. Pymoo与遗传算法

NSGA-II的特征如下:

  1. 精英准则:种群的精英将更可能传递到下一代;
  2. 拥挤距离:一种显示的多样性保持机制;
  3. 着重非支配解

算法的步骤如下:

  1. 对父代和后代种群的组合进行非支配排序,并按前沿对它们进行分类,即它们根据非支配级别的升序排序:
图3:最小化f1、f2。三种前沿级别
  1. 根据前面的排序来填充新种群;
  2. 如果一个前沿像F3一样部分采取,则执行拥挤排序,密度较小的是首选;
  3. 使用拥挤锦标赛选择 (通过前排比较,如果相等则通过拥挤距离比较)、交叉,以及变异算子从这个新种群创建后代种群。

图4:NSGA-II的语义表示

猜你喜欢

转载自blog.csdn.net/weixin_44575152/article/details/128483228