NSGA-II基本原理

NSGA-II基本原理思想

多目标优化算法基本流程

  1. 初始化n个解

    如何初始化,什么样的初始化对求解有帮助

  2. 计算函数值(或者适应度)

    适应度指的是适合求解目标的高低,而函数值指的是目标函数求解的值

  3. 利用旧解产生新解

    各种策略:GA、PSO、灰狼优化等(本质是一样的)

    ​ 对策略改进,GA:交叉变异,PSO:速度,系数,算法融合

    通过比大小选择得到新一轮的解

    ​ 非支配排序,确定Rank

    ​ 对于同一个Rank,拥挤距离越大越好

拥挤度距离

拥挤度距离指的是一个个体x1左右相邻的两个x2和x3为对角线形成的四边形的周长一半,如图所示

1

图中虚线部分为红点的拥挤度距离,拥挤度距离可以保持帕累托解集的分布均匀性,拥挤度越大越好,位于边界两点(上边界和下边界)的拥挤度距离应当设置为无穷大。

2

快速非支配排序

3

支配:是指在多目标优化问题中用来比较两个解的优劣的关系。一个解支配另一个解,意味着在所有目标函数上至少有一个目标比另一个解好,且在其他目标上至少有一个目标与另一个解相同或更好。支配关系有助于确定解的优劣顺序,进而指导遗传算法在搜索空间中寻找更好的解。

假设有两个解 ( A ) 和 ( B ),分别由它们的目标函数向量表示为 ( f{f}(A) = (f_1(A), f_2(A), ..., f_m(A)) ) 和 ( f{f}(B) = (f_1(B), f_2(B), ..., f_m(B)) )。

  1. ( A ) 支配 ( B ) (记作 ( A $\prec$ B )),当且仅当:
    • 对于所有的 ( i = 1, 2, ..., m ),都有 ( fi(A)$ \leq$ fi(B) );
    • 至少存在一个 ( j ) 使得 ( fj(A) < fj(B) )。
  2. ( A ) 和 ( B ) 互不支配(即没有支配关系),当且仅当:
    • 不满足 ( A $\prec $B ) 且不满足 ( B$ \prec$ A )。
  3. ( A ) 与 ( B ) 具有支配关系(即部分支配关系),当且仅当:
    • 存在一些目标函数 ( i ) 和 ( j ),使得 ( fi(A) $\leq$ fi(B) ) 且 ( fj(A) < fj(B) )。

通过这样的定义,遗传算法可以利用支配关系来评估和比较不同解的优劣,从而指导种群的进化和选择过程。

4

np为在种群中支配个体i的解个体的数量。(别的解支配个体i的数量)
S(p)为被个体i所支配的解个体的集合。(个体i支配别的解的集合)

1.首先,找到种群中所有n(i)=0的个体(种群中所有不被其他个体至配的个体i),将它们存入当前集合F(1);(找到种群中所有未被其他解支配的个体)
2然后对于当前集合F(1)中的每个个体j,考察它所支配的个体集S(),将集合Si)中的每个个体k的 n(k)减去1,即支配个体k的解个体数减1(因为支配个体k的个体j已经存入当前集F(1));(对其他解除去被第一层支配的数量,即减一)
3.如n(k)-1=0则将个体k存入另一个集H。最后,将F(1)作为第一级非支配个体集合,并赋予该集合内个体一个相同的非支配序i(rank),然后继续对H作上述分级操作并赋予相应的非支配序,直到所有的个体都被分级。其计算复杂度为img, m为目标函数个数,N为种群大小。(按照1)、2)的方法完成所有分级)

NSGA-II基本流程

5

以下是遗传算法的基本流程图:

  1. 初始化
    • 随机生成初始种群。
  2. 适应度评估
    • 计算种群中每个个体的适应度值。
  3. 选择
    • 根据适应度值选择个体,通常采用轮盘赌选择、锦标赛选择等方式。
  4. 交叉
    • 选取父代个体进行交叉操作,生成子代个体。
  5. 变异
    • 对子代个体进行变异操作,引入新的基因组变化。
  6. 更新种群
    • 根据选择、交叉和变异生成的子代个体更新当前种群。
  7. 重复进化
    • 重复进行选择、交叉、变异等操作,直到满足停止条件(如达到最大迭代次数或找到满意解)。
  8. 终止
    • 返回最终优化结果,即近似最优解。

这是遗传算法的一般流程图,具体实现时可能会根据问题的特点和需求进行适当调整和优化。

posted @ 2024-03-17 12:54  手摘星星  阅读(1330)  评论(0)    收藏  举报