多目标函数优化

python多目标优化算法 python多目标优化函数_算法


1.定义

所谓优化就是在某种确定规定下,使得个体的性能最优。多目标优化,多于一个的数值目标在给定区域上的最优化问题称为多目标优化。

2.解及解的形式

求解多目标优化问题的过程就是寻找Pareto最优解(非劣解、有效解)的过程。即在多目标优化中对某些子目标的优化不能影响到其它子目标的优化而容许的整个多目标的最优解。所谓多目标优化问题的最优解就是指Pareto最优解,且不再包含其他最优解。

3. 求解方法

3.1 产生式方法

如果没有先验知识,只能采用产生式方法来检验所有的非支配可选解。需要作者从整个Pareto解中做选择来进行必要的价值判断。

3.2基于偏好的方法

基于偏好的方法试图得到妥协解或偏好解。基于偏好的方法能够用正式和有结构的方式来清晰表达其偏好。

(1)权重和方法:权重可以理解为目标之间相对重要性或价值,或者对目标的偏好。

(2)效用函数法:效用函数是偏好结果的一种数学表示方法,它将目标空间的点影射为实数,数越大表明对该点偏好程度越高

(3)妥协函数法:寻找与理想点最接近的解

3.3约束法

4.适应度分配方法

4.1 权重和方法:

权重可以理解为目标之间相对重要性或价值,或者对目标的偏好。

(优点:通过算中和求得的全局最优解对应Pareto前端的一个解;局部最优解对应局部Pareto最优解;通过改变权值可以搜索到所有凸Pareto解)

(缺点:不能处理非凸的Pareto;很难找到均匀分布的Pareto解)

4.2矢量评价法(VEGA)

循环过程中根据多个目标选出若干下一代中的优秀个体(即子种群),然后将整个种群打乱并执行交叉变异,目的在于不同种群之间进行信息交流,它保护了单个目标上的最优个体的生存,同时为那些多于一个目标上好于平均值的个体提供合理被选择概率。

优点:简单,适合寻找Pareto front 的端点),

(缺点:很难处理非凸问题)

4.3 Pareto等级法:

根据占优划分等级,对个体适应度的分配策略。

(优点:可以快速找到Pareto前端,有效保护种群多样性)

(缺点:非支配排序的时间复杂度很大;不支持精英策略;需要自己指定共享参数)

4.4贪婪保护法(SPEA)

在外部群体中对占优解进行排序;个体适应度与外部群体比它性能优的个体数目相关,使用Pareto支配关系保持种群多样性,使用聚类方法减少非支配集。

(优点:可处理任意的目标函数,可产生解的分布,确定了一种无需参数的共享方法)

(缺点:因为确定了一个外部解集,故计算量大)

5.解的评价指标

5.1多目标优化算法的评级指标通常有以下几项:逼近性GD(Generational Distance)、均匀性SP(Spacing)、宽广性EX、最优解数目ER(Error Ratio)、收敛性度量值γγ和多样性度量值ΔΔ。

(1) 逼近性GD用来描述算法所获得的非劣最优解与Pareto前端的距离

- 希望算法找到的Pareto 前端与实际的Pareto 前端的距离应尽可能的接近;

(2)均匀性SP用来描述非劣解在Pareto前端上的分布范围。

- 希望找到的Pareto 最优解具有较好的分布(如均匀分布、正态分布);

(3)宽广性EX用来描述非劣最优解的分布范围。

- 希望所找到的Pareto 前端的分布范围尽可能的宽广,即尽可能的覆盖每个子目标函数的可能取值范围

(4)收敛性度量值γγ用来衡量一组已知的Pareto最优解集的收敛范围。

(5)多样性度量值ΔΔ用来衡量Pareto前端的分布。

5.2 性能的比较

(1)- 直接比较法:

它比较了两个非支配集AA 和BB 直接使用标量测度R(A,B)R(A,B),其中描述了A 比B 好多少。如:AA, BB。计算R(A,B)R(A,B)。

优点:与独立比较相比,计算量低,不需要知道任何帕累托集;

缺点:如果两套不同的基数和/或集合的分布是不均匀的,那么C 的度量提供了不可靠的结果。

(2) - 间接比较法:

它选择一个参考集,比较两个非支配集与这个参考集,然后比较结果。如:AA, BB。中间变量为Pareto,分别和他进行对比。

优点:易于理解、计算量低;

缺点:需要知道Pareto 前端,:度量只适用于有限数量的帕累托最优解。

(3)- 独立比较法:

它是衡量某些独立的属性的每个设置,并比较了这两种测量结果。如:S(A)S(A),和S(B)S(B),再比较它们。

优点:没有必要知道帕累托或其他参考点使用、它是独立的、意义直观;

缺点:需要非常大的计算量,这使得它完全适合于目标或大非大量支配集。