数学建模笔记—— 多目标规划

news2024/11/26 13:46:54

数学建模笔记—— 多目标规划

  • 多目标规划
    • 1. 模型原理
      • 1.1 多目标规划的一般形式
      • 1.2 多目标规划的解
      • 1.3 多目标规划的求解
    • 2. 典型例题
    • 3. matlab代码实现

多目标规划

多目标规划是数学规划的一个分支。研究多于一个的目标函数在给定区域上的最优化。又称多目标最优化。通常记为 MOP(multi-objective programming)。

多目标规划的概念是 1961年由美国数学家查尔斯和库柏首先提出的。多目标最优化思想,最早是在1896年由法国经济学家V.帕雷托提出来的。他从政治经济学的角度考虑把本质上是不可比较的许多目标化成单个目标的最优化问题,从而涉及了多目标规划问题和多目标的概念。

1. 模型原理

1.1 多目标规划的一般形式

多目标规划是多目标决策的重要内容之一,在进行多目标决策时,当希望每个目标都尽可能的大(或尽可能够小)时,就形成了一个多目标规划问题,其一般形式为:
min ⁡ f ( x ) = [ f 1 ( x ) ,   f 2 ( x ) , ⋯   , f m ( x ) ] T , s . t . { g i ( x ) ≤ 0 , i = 1 , 2 , ⋯   , p , h j ( x ) = 0 , j = 1 , 2 , ⋯   , q , \begin{array}{rl}\min&\mathrm{f(x)=[f_1(x),~f_2(x),\cdots,f_m(x)]^T,}\\\mathrm{s.t.}&\begin{cases}\mathrm{g_i(x)\leq0,}&\mathrm{i=1,2,\cdots,p,}\\\mathrm{h_j(x)=0,}&\mathrm{j=1,2,\cdots,q,}\end{cases}\end{array} mins.t.f(x)=[f1(x), f2(x),,fm(x)]T,{gi(x)0,hj(x)=0,i=1,2,,p,j=1,2,,q,

  • 其中 x x x为决策向量, f 1 ( x ) , f 2 ( x ) , ⋯   , f m ( x ) f_1(x),f_2(x),\cdots,f_m(x) f1(x),f2(x),,fm(x)为目标函数s. t . t. t.式为约束条件
  • 记 Ω = { x ∣ g i ( x ) ≤ 0 , i = 1 , 2 , ⋯   , p ; h j ( x ) = 0 , j = 1 , 2 , ⋯   , q } \begin{aligned}&\text{记}\Omega=\{x|g_{i}(x)\leq0, i=1,2,\cdots,p; h_{j}(x)=0, j=1,2,\cdots,q\}\end{aligned} Ω={xgi(x)0,i=1,2,,p;hj(x)=0,j=1,2,,q}
  • Ω \Omega Ω为多目标规划的可行域(决策空间), f ( Ω ) = f(\Omega)= f(Ω)= { f ( x ) ∣ x ∈ Ω } \{f(x)|x\in\Omega\} {f(x)xΩ}为多目标规划问题的像集(目标空间),多目标规划问题以下简称问题(MP)。

1.2 多目标规划的解

  • 最优解定义

    x ˉ ∈ Ω \bar{x}\in\Omega xˉΩ, 若对于任意 i = 1 , 2 , ⋅ ⋅ ⋅ , m i=1,2,\cdotp\cdotp\cdotp,m i=1,2,⋅⋅⋅,m及任意 x ∈ Ω x\in\Omega xΩ,均有
    f i ( x ˉ ) ≤ f i ( x ) f_i(\bar{x})\leq f_i(x) fi(xˉ)fi(x)
    则称 x ˉ \bar{x} xˉ为问题(MP)的绝对最优解,记问题(MP)的绝对最优解集为 Ω a b ∗ \Omega_\mathrm{ab}^* Ωab

    一般来说,多目标规划问题的绝对最优解是不常见的,当绝对最优解不存在时,需要引入新的“解”的概念。多目标规划中最常用的解为非劣解或有效解,也称为Pareto最优解。

  • 有效解定义

    考虑多目标规划问题(MP),设 x ˉ ∈ Ω ^ \bar{x}\in\widehat{\Omega} xˉΩ ,若不存在 x ∈ Ω ^ x\in\widehat{\Omega} xΩ ,使得
    f i ( x ) ≤ f i ( x ˉ ) , i = 1 , 2 , ⋯   , m , f_{i}(x)\leq f_{i}(\bar{x}),\quad i=1,2,\cdots,m, fi(x)fi(xˉ),i=1,2,,m,
    且至少有一个
    f j ( x ) < f j ( x ˉ ) , f_j(x)<f_j(\bar{x}), fj(x)<fj(xˉ),
    则称 x ˉ \bar{x} xˉ为问题(MP)的有效解(或Pareto有效解), f ( x ˉ ) f(\bar{x}) f(xˉ)为有效点。

  • 满意解定义

    主要是从决策过程角度,根据决策者的偏好与要求而提出的。设可行域为 Ω \Omega Ω,要求 m m m个目标函数 f i ( i = 1 , 2 , ⋯   , m ) f_i(i=1,2,\cdots,m) fi(i=1,2,,m)越小越好。有时决策者的期望较低,给出了 m m m个阈值 α i \alpha_i αi, 当 x ˉ ∈ Ω \bar{x}\in\Omega xˉΩ满足 f i ( x ˉ ) ≤ α i ( i = 1 , 2 , ⋯   , m ) f_i(\bar{x})\leq\alpha_i(i=1,2,\cdots,m) fi(xˉ)αi(i=1,2,,m)时,就认为 x ˉ \bar{x} xˉ是可以接受的、是满意的。这样的 x ˉ \bar{x} xˉ就称为一个满意解。

1.3 多目标规划的求解

由于对绝大多数多目标决策实际问题,决策者最偏好的方案都是有效解,下面介绍几种常用的求解问题(MP)的有效解的常用方法

值得注意的是,在多目标规划中,除去目标函数一般是彼此冲突外,还有另一个特点:目标函数的不可公度性。所以通常在求解前,先对目标函数进行预处理。预处理的内容包括:无量纲化处理,归一化处理等

MP问题求解有效解的常用方法

  • 线性加权法

    该方法的基本思想是根据目标的重要性确定一个权重,以目标函数的加权平均值为评价函数,使其达到最优。权重的确定一般由决策者给出,因而具有较大的主观性,不同的决策者给的权重可能不同,从而会使计算的结果不同。

  • ε \varepsilon ε约束法

    根据决策者的偏好,选择一个主要关注的参考目标,而将其他目标函数放到约束条件中。约束法也称主要目标法或参考目标法,参数E是决策者对变为约束条件的目标函数的容许接受阈值。

  • 理想点法

    该方法的基本思想是:以每个单目标最优值为该目标的理想值,使每个目标函数值与理想值的差的加权平方和最小。

  • 优先级法

    该方法的基本思想是根据目标重要性分成不同优先级,先求优先级高的目标函数的最优值,在确保优先级高的目标获得不低于最优值的条件下,再求优先级低的目标函数

线性加权法详解:

若一个规划问题中有多个目标,我们可以对多目标函数进行加权组合使问题变为单目标规划,然后再利用之前学习的解法进行求解

线性加权法具体步骤如下:

  1. 确定每个目标的权系数。

0 ≤ w j ≤ 1 , j = 1 , 2 , ⋯   , m ; ∑ j = 1 m w j = 1 0\leq w_j\leq 1, j= 1, 2, \cdots , m;\quad\sum _{j= 1}^mw_j= 1 0wj1,j=1,2,,m;j=1mwj=1

  1. 写出评价函数
    ∑ j = 1 m w j f j \sum_{j=1}^{m}w_{j}f_{j} j=1mwjfj

  2. 求评价函数最优值
    m i n ∑ i = 1 m w i f i ( x ) , s . t . x ∈ Ω . \begin{array}{ll}min&\sum_{i=1}^{m}w_{i}f_{i}(x),\\\mathrm{s.t.}&\mathbf{x}\in\mathbf{\Omega}.\end{array} mins.t.i=1mwifi(x),xΩ.

注意:

  1. 要将多个目标函数统一为最大化和最小化问题(不同的加“-” 号)才可以进行加权组合
  2. 如果目标函数量纲不同,则需要对其进行标准化再进行加权,标准化的方法一般是目标函数除以某一个常量,该常量是这个目标函数的某个取值,具体取何值可根据经验确定
  3. 对多目标函数进行加权求和是,权重一般由该领域专家给定,实际比赛中,若无特殊说明,我们可令权重相同

2. 典型例题

某化工厂今年拟生产两种新产品A和B,其生产费用分别为2万元/吨和5万元/吨。这两种产品均将造成环境污染,每生产一吨A产品会产生0.4吨的污染,每生产一吨B产品会产生0.3吨的污染。由于条件限制,工厂生产产品A和B的最大生产能力各为每月5吨和6吨,而市场需要这两种产品的总量每月不少于7吨。该工厂决策认为,这两个目标中环境污染应该优先考虑,且根据经验生产费用的参考值为30万元,污染量参考值为2吨。试问工厂如何安排生产计划,在满足市场需要的前提下,使设备的花费和产生的污染均达到最小。

设工厂每月产品A生产 x 1 x_1 x1吨,B生产 x 2 x_2 x2吨,那么产生的污染分别为0.4 x 1 x_1 x1吨和0.3 x 2 x_2 x2

建立多目标规划模型:
{ min ⁡   f 1 = 2 x 1 + 5 x 2 min ⁡   f 2 = 0.4 x 1 + 0.3 x 2 s t . { x 1 + x 2 ≥ 7 0 ≤ x 1 ≤ 5 0 ≤ x 2 ≤ 6 \begin{cases}\min\:f_1=2x_1+5x_2\\\min\:f_2=0.4x_1+0.3x_2\\st.\begin{cases}x_1+x_2\geq7\\0\leq x_1\leq5\\0\leq x_2\leq6\end{cases}\end{cases} minf1=2x1+5x2minf2=0.4x1+0.3x2st. x1+x270x150x26
下面我们将其转换为一个单目标规划问题,即对上面的两个目标函数进行加权,由于该工厂决策认为环境污染应优先考虑,因此我们可以选取 f 1 f_1 f1 f 2 f_2 f2的权重分别为0.4和0.6。注意到两个目标函数的单位不同,一个为“万元”,一个为“吨”,因此我们需要首先对目标函数进行标准化来消除量纲的影响,然后再进行加权,由于题目中已经给了产品费用和污染量的参考值,因此我们将这两个目标函数分别除以其参考值来消除量纲。

加权后的目标函数:
f = 0.4 × f 1 30 + 0.6 × f 2 2 = 0.4 30 × ( 2 x 1 + 5 x 2 ) + 0.6 2 × ( 0.4 x 1 + 0.3 x 2 ) f=0.4\times\frac{f_{1}}{30}+0.6\times\frac{f_{2}}{2}=\frac{0.4}{30}\times(2x_{1}+5x_{2})+\frac{0.6}{2}\times(0.4x_{1}+0.3x_{2}) f=0.4×30f1+0.6×2f2=300.4×(2x1+5x2)+20.6×(0.4x1+0.3x2)
敏感性分析:

下面我们对结果进行敏感性分析,敏感性分析是指从定量分析的角度研究有关因素发生某种变化对某一个或一组关键指标影响程度的一种不确定分析技术。其实质是通过逐一改变相关变量数值的方法来解释关键指标受这些因素变动影响大小的规律。

我们改变 f 1 f_1 f1 f 2 f_2 f2的权重,来观察对结果的影响。(由于两个权重和为1,因此我们只需要改变 f 1 f_1 f1的权重即可),下面是图形:

Image 1 Image 2

可以看出, f 1 f_1 f1的权重的转折点在0.333-0.334之间,当 f 1 f_1 f1的权重小于这个转折点时, x 1 = 1 , x 2 = x_1=1,x_2= x1=1,x2= 6,大于转折点时, x 1 = 5 , x 2 = 2 x_1=5,x_2=2 x1=5,x2=2。其主要原因是:当 f 1 f_1 f1的权重越小时,厂家对环境污染的权重就越大,那么厂家就更加倾向于生产污染较少的产品B,尽管B的生产费用要远高于产品A。

3. matlab代码实现

多目标规划模型的求解

%% 多目标规划问题
clc
clear
% 两个目标权重
w1=0.4;
w2=0.6;
c=[w1/30*2+w2/2*0.4;w1/30*5+w2/2*0.3];
% 不等式约束
A=[-1,-1];
b=-7;
% 上下界
lb=[0 0]';
ub=[5 6]';
% 求解
[x,fval]=linprog(c,A,b,[],[],lb,ub)
f1=2*x(1)+5*x(2)
f2=0.4*x(1)+0.3*x(2)

输出:

找到最优解。


x =

     5
     2


fval =

    1.0467


f1 =

    20


f2 =

    2.6000

敏感性分析:

%% 敏感性分析
clear
clc
W1=0.1:0.001:0.5;
W2=1-W1;
n=length(W1);
F1=zeros(n,1);
F2=zeros(n,1);
X1=zeros(n,1);
X2=zeros(n,1);
FVAL=zeros(n,1);
A=[-1,-1];
b=-7;
lb=[0 0];
ub=[5 6];
for i=1:n
    w1=W1(i);
    w2=W2(i);
    c=[w1/30*2+w2/2*0.4;w1/30*5+w2/2*0.3];
    [x,fval]=linprog(c,A,b,[],[],lb,ub);
    F1(i)=2*x(1)+5*x(2);
    F2(i)=0.4*x(1)+0.3*x(2);
    X1(i)=x(1);
    X2(i)=x(2);
    FVAL(i)=fval;
end
figure(1)
plot(W1,F1,W1,F2)
xlabel('f_{1}的权重')
ylabel('f_{1}和f_{2}的取值')
legend('f_{1}','f_{2}')

figure(2)
plot(W1,X1,W1,X2)
xlabel('f_{1}的权重')
ylabel('x_{1}和x_{2}的取值')
legend('x_{1}','x_{2}')

figure(3)
plot(W1,FVAL)% 看起来是两个直线组合起来的下半部分
xlabel('f_{1}的权重')
ylabel('综合指标的值')

输出:

figure1:

image-20240902141146892

figure2:

image-20240902141221026

figure3:

image-20240902141246186

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2124657.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

VCS(Video Cloud Storage)解决方案研究报告

1.背景 控视频是重要的数据资产和证据链&#xff0c;在银行、交通、司法等行业对视频数据有很高的安全等级。随着监控的重要性不断提升&#xff0c;在能源、电力、校园、厂矿、高星酒店等多场景中对监控存储也有更高要求&#xff0c;体现为海量存储、超长时间和数据安全。为了充…

得物APP助力释放首发经济新活力,解锁年轻潮流密码

在消费升级与高质量发展的时代背景下&#xff0c;我国首发经济正以前所未有的活力蓬勃发展&#xff0c;成为推动市场繁荣、满足个性化消费需求的重要力量。首发&#xff0c;即产品首次在市场亮相&#xff0c;往往代表着最新的设计理念、最尖端的科技应用以及最前沿的潮流趋势。…

C++入门知识(1)

一、namespace 1、用处 可以解决程序里面定义重名变量的问题 namespace是一个命名空间。 定义变量可以在4个域下面定义&#xff0c;全局域&#xff0c;局部域&#xff0c;命名空间域&#xff0c;类域。各个域之间是相互不影响的。命名空间里面的变量可以和外面的变量重名 2…

Stable Diffusion4.9一键安装教程SD(AI绘画软件)

**无套路&#xff01;**文末提供下载方式 Stable Diffusion 是一款革命性的 AI 绘画生成工具&#xff0c;它通过潜在空间扩散模型&#xff0c;将图像生成过程转化为一个逐步去噪的“扩散”过程。 与传统的高维图像空间操作不同&#xff0c;Stable Diffusion 首先将图像压缩到…

样品管理的重要性与实操解决方案,外贸软件一键搞定

在外贸过程中&#xff0c;样品管理是一个重要的环节&#xff0c;它不仅涉及到产品的质量和细节确认&#xff0c;还是与客户沟通的重要桥梁。在选择客户时&#xff0c;通常会优先考虑那些目的明确、意向较强的客户&#xff0c;因为这些客户成交的可能性较大。无论是纺织品、服装…

基于SpringBoot+Vue的学生成绩管理系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、SSM项目源码 系统展示 【2025最新】基于JavaSpringBootVueMySQL的学生成绩…

Python语法,从入门到精通,一步到位!

Python语法及入门涵盖了多个方面&#xff0c;包括基本语法、数据类型、控制流、函数、模块等。以下是一个超全超详细的介绍&#xff1a; 一、Python基本语法 注释&#xff1a;Python中使用井号&#xff08;#&#xff09;表示注释&#xff0c;从井号开始到行尾的内容都会被Pytho…

一节课教你学会【预处理详解】

谢谢观看&#xff01;希望以下内容帮助到了你&#xff0c;对你起到作用的话&#xff0c;可以一键三连加关注&#xff01;你们的支持是我更新地动力。 因作者水平有限&#xff0c;有错误还请指出&#xff0c;多多包涵&#xff0c;谢谢&#xff01; 预处理详解 一、预定义符号二、…

红米K60U/K50/Note11TPro澎湃OS无法绑定账号解锁BL-不能激活小米账号

小米澎湃OS对于解锁BL&#xff0c;新增了各种限制&#xff0c;早前我们还能使用bypass脚本来实现澎湃OS上绑 定账号成功&#xff0c;但随着澎湃OS七月系统上的推送&#xff0c;旧版的bypass已经彻底失效&#xff0c;并且无法安装 旧版的设置APK来解决问题。此次涉及的机型有红米…

SpringSecurity剖析

1、SpringSecurity 入门 1.1、简介 Spring Security是一个功能强大且高度可定制的身份验证和访问控制框架。它是用于保护基于Spring的应用程序的实际标准。Spring Security是一个框架&#xff0c;致力于为Java应用程序提供身份验证和授权。与所有Spring项目一样&#xff0c;Sp…

【PX4-AutoPilot教程-TIPS】PX4中MAVLink话题频率修改

PX4中MAVLink话题频率修改 方法一&#xff1a;使用QGC地面站通过命令行解释器MAVLink Shell修改话题频率方法二&#xff1a;使用SD卡中的命令脚本文件修改话题频率方法三&#xff1a;通过修改PX4飞控固件源码修改话题频率 环境&#xff1a; PX4 &#xff1a;1.13.0 方法一&am…

SOP流程制定:vioovi ECRS工时分析软件的智慧引领

在现代制造业中&#xff0c;标准化操作流程&#xff08;SOP&#xff09;已成为提升生产效率、确保产品质量、降低运营成本的关键要素。SOP不仅为生产活动提供了明确的指导&#xff0c;还促进了企业管理的规范化和精细化。然而&#xff0c;如何科学、高效地制定SOP流程&#xff…

CISC 和 RISC 架构的对比

研究 RISC 架构优缺点的最简单方法是将其与其前身进行对比&#xff1a; CISC&#xff08;复杂指令集计算机&#xff09;架构。 内存中的两个数字相乘 右图表示一台普通计算机的存储方案。 主存储器被划分为编号从&#xff08;行&#xff09;1&#xff1a;&#xff08;列&…

RAG系统的7个检索指标:信息检索任务准确性评估指南

大型语言模型&#xff08;LLMs&#xff09;作为一种生成式AI技术&#xff0c;在近两年内获得了显著的关注和应用。但是在实际部署中&#xff0c;LLMs的知识局限性和幻觉问题仍然是一个挑战。检索增强生成&#xff08;Retrieval Augmented Generation&#xff0c;RAG&#xff09…

好网站包含哪些方面

好网站通常在多个方面都表现出色&#xff0c;包括但不限于设计、内容、导航、性能和互动性。下面将详细介绍这些方面。 首先&#xff0c;设计是一个网站吸引用户的第一印象。一个好的网站设计应该是清晰、直观、美观&#xff0c;并且符合用户体验原则。页面布局应该合理&#x…

Spire.PDF for .NET【文档操作】演示:创比较 PDF 文档

PDF 已成为跨不同平台共享和保存文档的标准格式&#xff0c;在专业和个人环境中都发挥着无处不在的作用。但是&#xff0c;创建高质量的 PDF 文档需要多次检查和修订。在这种情况下&#xff0c;了解如何有效地比较 PDF 文件并找出它们的差异变得至关重要&#xff0c;这使文档编…

【Go】Go语言基本语法--注释、变量、常量

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…

Memfire Cloud使用技巧:让开发更简单,更高效

在软件开发的世界里&#xff0c;Memfire Cloud就像是一位隐形的助手&#xff0c;它悄无声息地帮助开发者们解决了一个又一个难题。如果你还在为搭建服务、开发API接口而头疼&#xff0c;那么Memfire Cloud无疑是你的救星。今天&#xff0c;我们就来聊聊如何使用Memfire Cloud&a…

面试官:v-if和v-for的优先级是什么?

一、作用 v-if 指令用于条件性地渲染一块内容。这块内容只会在指令的表达式返回 true值的时候被渲染 v-for 指令基于一个数组来渲染一个列表。v-for 指令需要使用 item in items 形式的特殊语法&#xff0c;其中 items 是源数据数组或者对象&#xff0c;而 item 则是被迭代的…

【人工智能学习笔记】4_4 深度学习基础之生成对抗网络

生成对抗网络&#xff08;Generative Adversarial Network, GAN&#xff09; 一种深度学习模型&#xff0c;通过判别模型&#xff08;Discriminative Model&#xff09;和生成模型&#xff08;Generative Model&#xff09;的相互博弈学习&#xff0c;生成接近真实数据的数据分…