多目标最优化模型及算法应用(NSGA 您所在的位置:网站首页 函数的最优解是什么 多目标最优化模型及算法应用(NSGA

多目标最优化模型及算法应用(NSGA

2024-07-16 21:23| 来源: 网络整理| 查看: 265

多目标最优化模型及其算法应用 一.大纲 多目标最优化模型概论传统最优化解决方法现代最优化算法样例示范 二.多目标最优化模型概论

1.对于多余一个的目标函数在给定区域内的最优化问题称为多目标优化问题。

​ 例如:在给定条件下,设计一款汽车,既要满足安全(重量大),又要满足经济(耗油量小)即为多目标最优化问题。

​ 该模型通常可总述为: 在这里插入图片描述

​ ​ 其中x=(x1,x2,x3…xn)所在的空间Ω称为决策空间(可行解空间),向量F(x)所在的空间为目标空间

​ 不同于单目标优化,在多目标优化中,各目标函数之间是相互冲突的。导致不一定存在在所有目标函数上都是最优解,某个解可能在一个目标函数中是最优的,但在另一个目标函数中是最差(判断多目标优化问题的关键)

​ 因此,多目标最优化问题得到的通常是一个解集,他们之间不能简单地比较优劣,这样的被称为非支配解(有效解),Pareto最优解。

2.多目标优化相关概念:

定义一

向量支配对于最小化问题,一个向量u=(u1,u2…un)支配另一个向量v=(v1,v2…vn),当且仅当

ui≤vi

定义二

如果Ω中没有支配(优于)x的解,则称x是该问题的一个Pareto最优解(非劣解,有效解,非支配解)

Pareto最优解的全体组成的集合称为Pareto最优解集,Pareto最优解集在目标函数空间的像集称为Pareto Front(Pareto 前沿)

在这里插入图片描述

​ 如上图所示,A,B两点中是一个最优解,他们相应的自变量向量没有被其他任何的自变量向量所支配,也就意味着在任何一个目标上他们都不能被其他个体所支配。这样的解就是Pareto最优解。

​ 由定义一和定义二可知C点优于D点,C点优于F点,C点优于E点

三.传统最优化解决方法(点到点优化) 1.传统的处理多目标优化问题方法主要分为 主要目标法 分层序列法 加权法 约束法 极小极大法 理想点法

其共同特点都是通过各种方式将多目标优化问题转化为单目标优化问题,然后应用单目标优化方法进行求解

①主要目标法

从m个目标中,确定一个为主要目标,其余目标作为次要目标,根据实际情况确定适当的界限值,把次要目标转化为约束条件来处理。可总述为下列模型在这里插入图片描述

②分层序列法

把m个目标,按照重要程度排一个次序。不妨重要程度次序为f1(x),f2(x)…fn(x),在这里插入图片描述

先求问题1:

得到最优解为x(1),以及最优值为f1*

再求问题2:

在这里插入图片描述

得到最优解为x(2),以及最优值为f2*

再求问题3:

得到最优解为x(3),以及最优值为f3*

以此类推直至求出问题m,所得到的解[x1,x2…]记为最优解 在这里插入图片描述

③加权法

对m个目标,按照重要程度给予适当的权系数ωi≥0,且满足∑ωi=1,即可将多优化问题转化为单一目标优化问题

在这里插入图片描述

所得到的解[x1,x2…]记为最优解

④理想点法

分别先求解m个单目标问题,令

在这里插入图片描述

即可转化为单目标问题

在这里插入图片描述

其中权系数ωi≥0,且满足∑ωi=1,所得到的解[x1,x2…]记为最优解

四.现代最优化算法(基于精英策略的快速非支配排序遗传算法) 1.算法框图

img

Pareto等级:在一组解中,非支配解Pareto等级定义为1,将非支配解从解的集合中删除,剩下解的Pareto等级定义为2,依次类推,可以得到该解集合中所有解的Pareto等级。示意图如图1所示。

在这里插入图片描述

对同一等级的点,通过拥挤度进行划分

拥挤度:

在这里插入图片描述

拥挤度示意图

精英保留策略(根据拥挤选择算子)选择出较优的新的N个点 拥挤选择算子:

在NSGA-II中,定义拥挤比较算子,假设i,j分别表示种群P的两个个体。满足下列条件之一

1).irankdj

即可称个体i优于个体j

在这里插入图片描述

确定算法选项 % 最优个体系数paretoFraction % 种群大小populationsize % 最大进化代数generations % 停止代数stallGenLimit % 适应度函数偏差TolFun 调用matlab库函数gamultiobj即可求解。 五.样例示范

在这里插入图片描述

建立模型

在这里插入图片描述

程序求解

所得Pareto最优解为

10932.6429473119 14.6295387130128 14605.3404613523 18.2262297321479 12068.3433707838 15.1109915229892 12429.0573504143 15.4986606722887 14532.6593388757 18.1842935253039 11131.9589772932 14.7011627210495

12231.6101793012 15.3304399641518 14601.9178238651 18.2252135575028 12925.9261417602 15.9920094703867

对应x为

267.971023073048 51.3565915834627 455.633097995301 125.585979212038 252.525614499897 239.427658309710 457.418751888526 128.750437678343 254.389944994419 171.851099214132 358.767031591140 127.301254104520 254.132868382987 186.732012546206 363.703424720114 127.760522787065 262.449535283310 233.128879659259 454.068085989463 128.340668641702 265.164827238227 73.5469917676312 436.961892621559 126.130582721401 255.486999974281 230.161706396739 363.122909473250 128.882635799297 256.416538867289 200.269620434745 381.067408667307 128.202939645206 261.153624157576 113.996154755591 403.634395120644 126.983182335415

252.260342156546 239.240158309710 457.928750235712 128.526159519777 253.531045975866 212.059789018681 363.552109061208 127.628185206671

pateto front 图

在这里插入图片描述

源代码:

%[x,fval]=gamultiobj(fitnessfcn,nvars,A,b,Aeq,beq,lb,ub,options) clear;clc; fitnessfcn=@fun; nvars=4; A=[0.015 0.02 0.018 0.011 13 13.5 14 11.5 -13 -13.5 -14 -11.5]; b=[20;14400;-12000]; Aeq=[]; beq=[]; lb=[0 0 150 0]; ub=[270 240 460 130]; options=gaoptimset('paretoFraction',0.3,'populationsize',200,'generations',300,'stallGenLimit',200,'TolFun',1e-10,'PlotFcns',@gaplotpareto); [x,fval]=gamultiobj(fitnessfcn,nvars,A,b,Aeq,beq,lb,ub,options); function y=fun(x) y(1)=-10.*x(1)+-20.*x(2)+-12.*x(3)+-14.*x(4); y(2)=0.015.*x(1)+0.02.*x(2)+0.018.*x(3)+0.011.*x(4); end

参考文献:

1.数学建模算法及其应用(第二版)

2.博客https://blog.csdn.net/weixin_47102975/article/details/108253584,



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有