多目标优化之帕累托最优

转载:https://zhuanlan.zhihu.com/p/54691447

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

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

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

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

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

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,举个例子,还是上面的图,点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最优前沿通常是一个超曲面。

  • 57
    点赞
  • 233
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
在Matlab中,帕累托可以使用统计工具箱中的pareto函数进行绘制。通过该函数,可以按照数据的元素数值递减顺序绘制直方条,并以数据的索引号进行标记。调用格式如下:pareto(X)。其中,X是待绘制帕累托的数据矢量。此外,还可以使用H=pareto(…)语句来返回帕累托的句柄H。 举个例子来说明,假设有一组生产数据codelines=[200,120,555,609,1023,135,69,897],和对应的生产名codes={‘fesd’,’gyu’,’najd’,’max’,’min’,’wakk’,’hedi’,’pea’}。为了绘制帕累托,可以调用pareto(codelines, codes)函数,并通过title、xlabel和ylabel函数给像添加标题和坐标标签。这样就可以得到一个带有数据和效果的生产帕累托。 帕累托又被称为排列或主次,用于按照发生频率大小顺序绘制的直方条。它可以表示由已确认类型或范畴的原因所造成的结果数量。帕累托可以用来分析质量问题,确定产生质量问题的主要因素,并按照等级排序来指导纠正措施。根据帕累托法则,大部分问题或缺陷往往由少数原因所引起,这一法则也被称为二八原理,即80%的问题是由20%的原因所造成。在帕累托中,数据根据频率降序排列,并绘制累积百分比,体现了帕累托原则。帕累托可以区分“至关重要的极少数”和“微不足道的大多数”,从而帮助人们关注于重要的类别,是进行优化和改进的有效工具。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [帕累托及其在Matlab中的应用](https://blog.csdn.net/qq_41899937/article/details/81867858)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值