多目标优化NSGA-II(非支配排序常见于遗传算法)[1]

目录

1 兴趣引入

2 多目标优化算法发展历史

3 非支配排序常见于遗传算法

3.1 解决的问题及三大特点

3.2 数学模型

3.3 Pareto 最优解


1 兴趣引入

(1)在生活中,你想买一辆车,又想汽车的性能好,外观不错,价格还比较低,对于这同时满足这三个条件,我们应该如何进行考虑呢?
(2)在投资的时候,我们想投入的资金最少,所付出的风险最小,同时收益是最大的,如何同时进行实现呢?在数学学习中,求求函数 f1(x1,x2,…,xn)=x1^2 +x2^2 +…+xn^2 及函数 f2(x1,x2,…,xn)=(x1-1)^2+ (x2-1)^2 +…+(xn-1)^2 同时达到最小的 (x1,x2,…,xn) 的取值,不存在一组 (x1,x2,…,xn) 的取值,使 f1 和 f2 同时达到最小值,这时候怎么办呢?
    帕累托最优
    帕雷托最优是指资源分配的一种理想状态。帕雷托最优的状态就是不可能再有更多的帕雷托改善的状态;换句话说,不可能再改善某些人的境况,而不使任何其他人受损。(这里先简单了解一下)

对于单目标优化问题,一般的遗传算法可以较为简单的得到较好的结果。但是,当问题扩展到多目标时,原先的遗传算法便不再适用了。因为目标之间通常有着较深的相互关系,一个目标的优化通常会影响到其余的目标,很难能够得到所有目标都达到最优的解。这时候,如何寻找合适的适应度函数便成解决多目标遗传算法的关键。如今,相关的算法已经有很多种了。包括妥协算法(compromise approach),GWASF-GA,SPEA2,NSGA-Ⅱ。其中NSGA-Ⅱ的使用非常广泛。

2 多目标优化算法发展历史

(1)古典多目标时期
    传统的多目标优化方法是将各个子目标聚合成一个带正系数的单目标函数,系数由决策者决定,或者由优化方法自适应调整。
    为了获取近似Pareto最优集,一些优化方法使用不同的系数来实施动态优化。常见的古典方法有加权法(利用斜率来判断最优解)、约束法、目标规划法以及极大极小法等

(2)进化多目标时期

    最早提到可以利用EA来解决多目标优化问题的是Richard S. Rosenburg 于1967年在他的博士论文 “Simulation of genetic populations with biochemical properties”中,David Goldberg 于1989年首次提出了Pareto Ranking的概念:MOEA中个体必须经由Pareto支配关系来选出,同时他也指出了MOEA中分布性保持的重要性,主要采取Fitness Share的策略Carlos M. Fonseca 和 Peter J. Fleming 于1993年提出了Multiobjective Optimization Genetic Algorithm (MOGA)。MOGA采用基于排序数的适应度赋值机制以及自适应的适应度共享的策略,风靡一时。

    Kalyanmoy Deb于1994年提出了Non-dominated Sorting Genetic Algorithm (NSGA),采用分层的非支配排序机制以及适应度共享机制。然而算法缺陷是计算复杂度为O(MN3),随后,Deb跟他的学生在2000年提出了NSGA的改进版本NSGA2,文章于2002年发表TEVC。NSGA2采用快速非支配排序以及拥挤距离的策略,时间复杂度在O(MN2)。由于其速度及效果上的优势,许多年来NSGA2都被作为对比算法。

    Eckart Zitzler 在1998年一个会议上提出Strength Pareto Evolutionary Algorithm (SPEA),第二年文章被TEVC收录。SPEA在算法中使用了一个外部Archive来保留搜索到的好解,称之为Elitism。Elitism的使用随后也开始流行,随后不久Zitzler等人又对SPEA进行了改进SPEA2,主要引入了较细的适应度赋值方式以及密度估计方式(Truncation Method)。

    2006年,张青富跟李辉首次提出了基于分解的多目标优化算法,MOEAD,是将MOP问题分解成SOP问题并同时对这些子问题进行优化。MOEAD不仅在速度上有优势,而且搜到的结果很规律。在MOEA领域开辟了一条新的通道。

    2014年,Deb的NSGA3分成上下两个部分发表在TEVC上。主要是用来处理高维多目标问题。采用了基于参考点以及分解的策略。是NSGA2 + MOEAD 的结合

    其中目前最经典的算法还是NSGA-II 和MOEAD

3 非支配排序常见于遗传算法

3.1 解决的问题及三大特点

非支配排序常见于遗传多目标寻优,如果从相关性角度,多目标规划函数可以划分为可以设置权重将其合并、不可合并的独立函数,非支配排序则是解决后者问题。

其主要原理通过比较胜出次数进行排序,假设要求第i个函数f(i)的最小值,若f(i)k

与传统遗传不同的是传统遗传会将最劣的比如90%的个体替换为子代;而由非支配排序-Ⅱ改进后,将父代和子代合并,通过分级、排序步骤按优到劣选择比如前50的个体。

非支配排序-Ⅱ改进后的优化算法有如下三个特点:

快速非支配排序算法,一方面降低了计算的复杂度,另一方面它将父代种群跟子代种群进行合并,使得下一代的种群从双倍的空间中进行选取,从而保留了最为优秀的所有个体;

引进精英策略,保证某些优良的种群个体在进化过程中不会被丢弃,从而提高了优化结果的精度;

采用拥挤度和拥挤度比较算子,不但克服了优化算法中需要人为指定共享参数的缺陷,而且将其作为种群中个体间的比较标准,使得准Pareto域中的个体能均匀地扩展到整个Pareto域,保证了种群的多样性。

多目标优化NSGA-II(非支配排序常见于遗传算法)[1]_第1张图片

NSGA-Ⅱ的优点

(1)NSGA-Ⅱ提出了快速的非支配(non-dominated)排序,很好的降低了算法的复杂度。一般的多目标算法复杂度为O(MN^{3}) ,而NSGA-Ⅱ可以做到O(MN^{2})
(2)NSGA-Ⅱ改进了原先NSGA算法为保留解多样性而采用的共享函数。提出了拥挤比较算子(crowded-comparison operator),从而避免了人为输入参数的不确定性。 

3.2 数学模型

多目标优化问题的一般数学描述:

多目标优化NSGA-II(非支配排序常见于遗传算法)[1]_第2张图片

(1)对于两个个体 X1 和 X2 以及目标函数 F(X),若 X1 的每一个目标函数值 fi(X1) 都比 X2 对应的目标函数值 fi(X2) 要小,则认为 X1 要比 X2 更好,称 X1 支配(dominate) X2 ,记作 X1 ≺ X2 (它具有传递性)
(2)若存在 i 和 j 使得 fi(X1) < fi(X2) 且 fj(X1) > fj(X2), 则认为 X1 和 X2 无法比较,视为一样好,称 X1 与 X2 是非支配 (non-dominated)的,记作 X1 ⊀ X2 且 X2 ⊀ X1。即针对个体X1,X2。在目标函数1中,个体X1表现较好,在目标函数2中,个体X2表现较好。
对于一组个体,若 Xa 不被其它任何一个个体支配,则 Xa 也称为是非支配的;Xa 也叫做Pareto 最优解 。

3.3 Pareto 最优解

对于一个多目标优化问题,目的是求出一组 Pareto 最优解 Xi ,i=1,2,…,并使得目标函数的值尽可能地小。 

Pareto为解集自变量空间点图,坐标轴为目标函数,两个目标函数即是二维Pareto分布图,三个目标函数即为三维Pareto分布图,可以理解为Pareto凹槽中心即为最优解。

Pareto二维分布图:                                            Pareto三维分布图:

多目标优化NSGA-II(非支配排序常见于遗传算法)[1]_第3张图片   多目标优化NSGA-II(非支配排序常见于遗传算法)[1]_第4张图片

根据左图中目标变量可知 ,帕累托最优解往往在左下角,值相对偏小。

在右图中,可以看出,B支配C,D两点,在A点,B是被支配的,其余空间则是非支配
    (1)想要求得多目标问题的最优解,我们利用计算机强大的计算能力,在决策空间中随机产生大量个体,并找出其中最好的(不被支配的)个体。也就是不断地“试”,来找到越来越好的个体。随机寻找个体的过程称为 搜索
    (2)但无法做到遍历决策空间中每一个个体,我们需要在更短的时间里利用随机的方法找到更好的个体
    (3)利用进化算法的策略,可以朝着越来越好的方向随机产生个体,而不是在决策空间中完全盲目地产生个体。

 多目标优化NSGA-II(非支配排序常见于遗传算法)[1]_第5张图片

 

你可能感兴趣的:(#,智能优化算法,算法)