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

这篇具有很好参考价值的文章主要介绍了多目标最优化模型及算法应用(NSGA-II)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

一.大纲
  1. 多目标最优化模型概论
  2. 传统最优化解决方法
  3. 现代最优化算法
  4. 样例示范
二.多目标最优化模型概论

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

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

​ 该模型通常可总述为:
多目标最优化模型及算法应用(NSGA-II)


​ 其中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 前沿)

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

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

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

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

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

①主要目标法

从m个目标中,确定一个为主要目标,其余目标作为次要目标,根据实际情况确定适当的界限值,把次要目标转化为约束条件来处理。可总述为下列模型多目标最优化模型及算法应用(NSGA-II)

②分层序列法

把m个目标,按照重要程度排一个次序。不妨重要程度次序为f1(x),f2(x)…fn(x),多目标最优化模型及算法应用(NSGA-II)

先求问题1:

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

再求问题2:

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

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

再求问题3:

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

以此类推直至求出问题m,所得到的解[x1,x2…]记为最优解
多目标最优化模型及算法应用(NSGA-II)

③加权法

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

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

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

④理想点法

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

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

即可转化为单目标问题

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

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

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

1.算法框图

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

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

拥挤度:

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

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

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

1).irank<jrank

2).irank=jrank,且di>dj

即可称个体i优于个体j

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

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

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

建立模型

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

程序求解

所得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 图

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

源代码:

%[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,文章来源地址https://www.toymoban.com/news/detail-437035.html

到了这里,关于多目标最优化模型及算法应用(NSGA-II)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 最优化:建模、算法与理论(典型优化问题

    4.1.1 基本形式和应用背景 再次说明一下,其实这本书很多的内容之前肯定大家都学过,但是我觉得这本书和我们之前学的东西的出发角度不一样,他更偏向数学,也多一个角度让我们去理解 线性规划问题的一般形式如下: min ⁡ x ∈ R n c T x s . t . A x = b G x ≤ e (4.1.1) min_{x{

    2024年02月09日
    浏览(271)
  • 【人工智能的数学基础】多目标优化的帕累托最优(Pareto Optimality)

    寻找多目标优化问题的帕累托最优解. paper:

    2024年02月07日
    浏览(39)
  • 基于均值方差最优化资产配置的模型特性

    摘要及声明 1:本文主要利用实际数据进行检验,从定量角度分析均值方差最优化的特性;  2:本文主要为理念的讲解,模型也是笔者自建,文中假设与观点是基于笔者对模型及数据的一孔之见,若有不同见解欢迎随时留言交流; 3:笔者希望搭建出一套交易体系,原则是只

    2024年02月08日
    浏览(40)
  • 【最优化算法】基于【MATLAB】的最速下降仿真

    无约束问题的求解过程一般都是通过一系列的一维搜索来实现,搜索方向的不同,形成了不同的最优化方法。这篇文章从最速下降法入手,来进行搜索。 最速下降法又叫梯度法,通过梯度下降法来一步步的迭代求解,得到最小化的损失函数和模型参数值。如果我们需要求解损

    2024年02月05日
    浏览(43)
  • 一文速学数模-最优化算法(二)梯度下降算法一文详解+Python代码

    目录 前言 一、梯度下降法简述 二、梯度下降算法原理理解 1.梯度 2.梯度定义

    2023年04月24日
    浏览(46)
  • dijkstra算法:堆优化 + 输出所有最短路径(得到所有最优解)

    对于权值非负的图求解单源最短路径,第一想法是使用dijkstra算法。最短路径问题是满足最优子结构的:父问题一定会使用子问题的最优解。问题在于子问题的计算次序。dijkstra算法思想建立在我们为无负权图定义的子问题计算顺序基础上:即离源点最近点不会变成其他问题的

    2023年04月08日
    浏览(43)
  • Python中scipy.optimize求解有无约束的最优化算法举例(附代码)

    目录 算法需要输入的参数 算法输出的优化结果 优化算法应用举例 优化算法举例代码  优化算法输出结果  其他优化问题举例 最优化求解问题标准格式如下:  Python中scipy库有很多包,其中一个就是scipy.optimize.minimize求解有无约束的最小化问题。 原文请参考: scipy.optimize.m

    2024年02月09日
    浏览(49)
  • 风光柴储微电网最优化经济调度模型(Matlab+Yalmip+Cplex)——附代码

    目录 摘要: 1.微电网模型 2.微电网经济调度的目标函数 3.微电网经济调度的约束条件 3.1设备自身约束: 3.2功率平衡约束: 4.Yalmip+Cplex 4.1 Yalmip 4.2 Cplex 5.运行图片: 6.本文Matlab代码实现 微电网优化调度作为智能电网优化的重要组成部分,对降低能耗、环境污染具有重要 意义

    2024年02月02日
    浏览(65)
  • 【最优化算法】基于【MATLAB】的共轭梯度法【Conjugate Gradient】分析与推导

    🚀个人主页:欢迎访问Ali.S主页 📆 最近更新:2022年7月19日 ⛽ Java框架学习系列:Mybatis框架 ⛳ Java基础学习系列:面向对象飞机大战 🏆 通信仿真学习系列:【硬件】【通信】【MATLAB】【最优化】 🍄 个人简介:通信工程本硕🌈、Java程序员🚴。目前只会CURD😂 💌 点赞 👍

    2023年04月19日
    浏览(43)
  • 图论第一次作业(教材:图论与网络最优化算法龚劬编著)

    5.证明K维超立方体 的顶点是 ,边数是 ,且是二部图,其中, 的顶点集 ,且两顶点相邻当且仅当着两个k维序列正好有一对应项不相同。 8.任何两个以上的人组成的人群中,至少有两个人,他们的朋友数一样多。 11.设 是平面上的点集,其中任意两点间的距离至少是1,证明:

    2024年02月08日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包