一、前言
帕累托最优法则(Pareto Optimality),也称为帕累托效率、帕累托改善,是博弈论中的重要概念,并且在经济学, 工程学和社会科学中有着广泛的应用。
二、Pareto相关概念
最近在学习多目标优化等NSGA-II相关算法,在多目标优化中,需要找到Pareto前沿面,关于Pareto前沿面以及解的选取后面会提到,奈何Pareto相关概念以及名词解释太多,故写下这篇文章帮助理解。
2.1 Pareto解
Pareto解又称非支配解或不受支配解,有多个目标时,由于目标之间的冲突和无法比较的现象,一个解在某个目标上是最好的,在其他的目标上可能是最差的,这些在改进任何目标函数的同时,必然会削弱至少一个其他目标函数的解称为非支配解或Pareto解。
2.2 Pareto改进
Pareto改进是指一种变化,在没有使任何人境况变坏的前提下,使得至少一个人变得更好。一方面,帕累托最优是指没有进行Pareto改进的余地的状态;另一方面,Pareto改进是达到帕累托最优的路径和方法。
注意:此概念等价于弱Pareto最优
引用知乎某位大佬的理解:多目标规划问题的绝对最优解、有效解(帕累托最优解)和弱有效解(弱帕累托最优解)
- 如图所示:假设我们的优化目标最小化两个函数的值,决策变量为横坐标x
![](https://i-blog.csdnimg.cn/blog_migrate/2044e8993c0c2ec7356c975f38de47da.png)
注:图中所示有误,可以发现在x取[2,4]的时候,达到Pareto改进。
综上所述,引用一句话,Pareto改进可以理解为:“利己而不损人”,即保持某一个分量不变,其他分量可以持续减少”,在这个状态下总效益还可以不断增加,所以没有达到强最优解,直到“非损人而不能利己”之后,才算达到了帕累托最优状态。
2.3 Pareto最优
Pareto最优:从定义上讲,帕累托最优描述的是一种资源最优化配置的状态。在帕累托最优的条件下,是没有办法在不让某一参与资源分配的一方利益受损的情况下,令另一方获得更大利益的。
举例:拿打麻将的例子来阐述
比如一局四人麻将,什么情况下是Pareto最优态?答案是每场游戏结束都是Pareto最优?为什么这么说呢?回到我们的定义,在帕累托最优的条件下,是没有办法在不让某一参与资源分配的一方利益受损的情况下,令另一方获得更大利益的。我们假设每局麻将都是一人赢,其他人输,在这种情况下,有什么好方法让赢得人获得更大利益,输的人利益不受损失吗?答案显然是没有的,因为这就是游戏的规则,赢得人如果赢得更多,也以为着输的人输的多,就好比如果每个输家给赢家5元,这时候每个输家利益(-5元),赢家利益(+15)。无论怎么改变这个值,都达不到让赢家利益增加,输家利益不受损。所以无论谁赢谁输都是Pareto最优。
另外注意:Pareto最优解也可以有多个。比如上图例子中绿色线标出的一部分。无论决策变量取何值时,在这段区间上,都不可能使一个函数目标值更小,且使其他函数目标值不变或者更小。
2.4 Pareto最优集
Pareto最优集是一组目标函数最优解的集合,刚刚讲的区间就是一组Pareto最优集
2.5 Pareto前沿面
Pareto前沿面是指最优集在空间形成的曲面,一般而言优化目标是两个函数时,形成一条线,优化目标是多个函数时,则会形成一个曲面,关于此部分的更深一步理解,可以参考:
CSDN博客:帕累托最优解集
以上就是Pareto所了解的相关概念,后续会学习介绍多目标的相关算法。