多目标优化之帕累托最优
2024-02-28
[摘要] 2020,10.7找完工作更一下,这文章都写了快两年了,评论有些刚入门的同学还是会问一些基础问题,很久之前看到一篇论文,他用具体例子给出了多目标优化,更形象,然后自己也plot了一下,对于理解多目标优化应该更有好处。example:有个求最小化的优化问题,2个变量,两个目标函数,目标1的空间曲线如下图所示目标1空间曲线目标2的空间曲线:目标2空间曲线现在在设计空间均匀的取点阵,

2020,10.7 找完工作更一下,这文章都写了快两年了,评论有些刚入门的同学还是会问一些基础问题,很久之前看到一篇论文,他用具体例子给出了多目标优化,更形象,然后自己也plot了一下,对于理解多目标优化应该更有好处。

example:有个求最小化的优化问题,2个变量,两个目标函数,目标1的空间曲线如下图所示

目标1空间曲线

目标2的空间曲线:

目标2空间曲线

现在在设计空间均匀的取点阵,然后计算所有点的真实目标值,便可以得到解空间和目标空间的分布情况了,如下图所示:

左图是解空间的均匀点阵,右图是对应的目标空间两个目标的值

可以很清晰的看到,右图红色点不被任意其他点支配,所以是Pareto 前沿点(如果解空间点阵足够密集,就是一条线了),左图的设计空间的红色点,就是其对应的Pareto最优解集,所以现在的一些多目标优化算法主要就是求解问题的Pareto前沿或者近似前沿。从目标空间来看,就是他的边界了。

这波更新对于刚入门的同学应该比较友好了,后续应该也不会再更新了,评论有疑问有空会解答一下,毕竟以后不搞这一块了,还得抓紧学其他的。


下面是原回答:

发现一个奇怪的现象,平时看东西看得挺多的,但是过了不久就又忘记了,而且也说不出个所以然来,可能就是没有好好的消化,总结吧。因此想到了把平时学的一些东西,用知乎记下来,一来作为自己的一个总结,方便后续的复习,二来假如有人能够看到的话对其有帮助也不错,能够提一些意见就再好不过了。

注:一些东西公式之类的,很多都是参考别人的论文,书籍等,自己也没有敲,这里只是自己的一个笔记本,侵删

步入正题:听了好几次师兄讲解帕累托最优,多目标优化的内容,奈何组会时间太短,短时间根本无法理解(智商原因),所以昨晚突发奇想查了一些资料,发现配合例子讲解很容易明白

多目标优化问题生活中很常见,比如汽车车身零部件设计中,要求设计的零件刚度要很大,同时质量很轻,这就是一个两目标问题,同时他还有一些条件约束,比如模态约束,尺寸约束等。再者金融领域中,我们希望投入的资金少,风险小,并且获得的利益最大,这就是一个三目标问题,但是掰着脚趾头都知道同时达到这三个目标是不可能的,多目标优化就是给出他的一些列可能的选择,然后用户自己去评判想选谁,哈哈,是不是很鸡肋。

多目标优化问题的数学模型一般可以写成如下形式

f_{1}(x),f_{2}(x),.......f_{n}(x)表示n个目标函数,目标是都使之达到最小, X\\subseteq R^{m} 是其变量的约束集合,可以理解为变量的取值范围,下麦介绍具体的解之间的支配,占优关系,不用公式,通俗易懂。

1:解A优于解B(解A强帕累托支配解B)

假设现在有两个目标函数,解A对应的目标函数值都比解B对应的目标函数值好,则称解A比解B优越,也可以叫做解A强帕累托支配解B,举个例子,就很容易懂了

下图中代表的是两个目标的的解的情况,横纵坐标表示两个目标函数值,E点表示的解所对应的两个目标函数值都小于C,D两个点表示的解所对应的两个目标函数值,所以解E优于解C,D.

2:解A无差别于解B(解A能帕累托支配解B)(修改:此处的“能”应该是与前文的“强”对应,时间比较久了,A,B两点严格意义上是非支配关系)

同样假设两个目标函数,解A对应的一个目标函数值优于解B对应的一个目标函数值,但是解A对应的另一个目标函数值要差于解B对应的一个目标函数值,则称解A无差别于解B,也叫作解A能帕累托支配解B,举个例子,还是上面的图,点C和点D就是这种情况,C点在第一个目标函数的值比D小,在第二个函数的值比D大。

3:最优解

假设在设计空间中,解A对应的目标函数值优越其他任何解,则称解A为最优解,举个例子,下图的 x_{1} 就是两个目标函数的最优解,使两个目标函数同时达到最小,但是前面也说过,实际生活中这种解是不可能存在的。真要存在就好了,由此提出了帕累托最优解

4:帕累托最优解

同样假设两个目标函数,对于解A而言,在 变量空间 中找不到其他的解能够优于解A(注意这里的优于一定要两个目标函数值都优于A对应的函数值),那么解A就是帕累托最优解,举个例子,下图中应该找不到比 x_{1} 对应的目标函数都小的解了吧,即找不到一个解优于 x_{1} 了,同理也找不到比 x_{2} 更优的解了,所以这两个解都是帕累托最优解,实际上, x_{1},x_{2} 这个范围的解都是帕累托最优解,不信自己慢慢想。因此对于多目标优化问题而言,帕累托最优解只是问题的一个可接受解,一般都存在多个帕累托最优解,这个时候就需要人们自己决策了。

5:帕累托最优前沿

还是看 刚才 那张图 ,如下图所示,更好的理解一下帕累托最优解,实心点表示的解都是帕累托最优解,所有的帕累托最优解构成帕累托最优解集,这些解经目标函数映射构成了该问题的Pareto最优前沿或Pareto前沿面,说人话,即帕累托最优解对应的目标函数值就是帕累托最优前沿。

对于两个目标的问题,其Pareto最优前沿通常是条线。而对于多个目标,其Pareto最优前沿通常是一个超曲面。


平台注册入口