美赛数学建模之目标规划

一、应用场合:线性规划只能解决一组线性条件约束下,一个目标的最大值或最小值的问题。然而在实际决策中,衡量方案优劣需要考虑多个目标,这时就需要用到多目标规划。

二、基本概念
1.正、负偏差变量
 设 f i ( i = 1 , ⋯   , l ) f_i(i = 1,\cdots,l) fi(i=1,,l)为第 i 个目标函数,它的正偏差变量 d i + = m a x { f i − d i 0 , 0 } d_i^+ = max\{ f_i - d_i^0,0\} di+=max{fidi0,0} 表示决策值超过目标值的部分,负偏差变量 d i − = − m i n { f i − d i 0 , 0 } d_i^- = -min\{ f_i - d_i^0,0\} di=min{fidi0,0} 表示决策值未达到目标值的部分,这里 d i 0 d_i^0 di0 表示 f i f_i fi 的目标值。决策值不可能既超过目标值同时又未达到目标值,即恒有 d i + ∗ d i − = 0 d_i^+ * d_i^- = 0 di+di=0

2.刚性(绝对)约束和目标(柔性)约束
 刚性约束是指必须严格满足的等式约束与不等式约束,如线性规划问题的所有约束条件;而目标约束是目标规划特有的,在达到目标值时允许发生正或负偏差,因此在这些约束中加入正、负偏差变量,以表示和目标值的实际差距情况。

3.优先因子(优先等级)与权系数
 对于多目标的规划问题,目标之间往往存在主次或轻重缓急之分,因此引入优先因子(第一级)与权系数(第二级)来划分目标之间的优先级。凡要求第一位达到的目标赋予优先因子 P 1 P_1 P1 ,次位为 P 2 P_2 P2 ,以此类推。

4.目标函数
 按各目标约束的正、负偏差变量和赋予相应的优先因子而构造。当每一目标值确定后,应尽可能缩小偏离目标值,因此目标规划的目标函数只能是所有偏差变量的加权和。其基本形式有三种:
   (1)第 i 个目标要求刚好达到目标值,即正、负偏差变量都要尽可能地小,这时 min ⁡ w i − d i − + w i + d i + \min w_i^-d_i^- + w_i^+d_i^+ minwidi+wi+di+    (2)第 i 个目标要求不超过目标值,即允许达不到目标值,就是正偏差变量要尽可能地小,这时 min ⁡ w i + d i + \min w_i^+d_i^+ minwi+di+    (3)第 i 个目标要求超过目标值,即超过量不限,但必须是负偏差变量要尽可能小,这时 min ⁡ w i − d i − \min w_i^-d_i^- minwidi
三、一般数学模型
  设 x j ( j = 1 , 2 , ⋯   , n ) x_j(j = 1,2,\cdots,n) xj(j=1,2,,n) 是目标规划的决策变量,共有 m m m 个约束是刚性约束,可能是等式约束,也可能是不等式约束。设有 l l l 个柔性目标约束,其目标约束的偏差为 d i + , d i − = ( i = 1 , 2 , ⋯   , l ) d_i^+,d_i^- = (i = 1,2,\cdots,l) di+,di=(i=1,2,,l) 。设有 q q q 个优先级别,分别为 P 1 , P 2 , ⋯   , P q P_1,P_2,\cdots,P_q P1,P2,,Pq 。在同一个优先级 P k P_k Pk 中有不同的权重,分别记为 w k i + , w k i − ( i = 1 , 2 , ⋯   , l ) w_{ki}^+,w_{ki}^-(i = 1,2,\cdots,l) wki+,wki(i=1,2,,l) 。因此目标规划模型的一般数学表达式为: min ⁡ z = ∑ k = 1 q P k ( ∑ i = 1 l w k i − d i − + w k i + d i + ) \min z = \sum_{k = 1}^qP_k\left(\sum_{i = 1}^lw_{ki}^-d_i^-+w_{ki}^+d_i^+\right) minz=k=1qPk(i=1lwkidi+wki+di+) s . t . { ∑ j = 1 n a t j x j ≤ ( = , ≥ ) b t , t = 1, … ,m ∑ j = 1 n c i j x j + d i − − d i + = d i 0 , i = 1,2, … ,l x j ≥ 0 , j = 1,2, … ,n d i − , d i + ≥ 0 , i = 1,2, … ,l s.t. \begin{cases} \sum_{j = 1}^na_{tj}x_j \leq ( = ,\geq)b_t,&\text{t = 1,\ldots,m}\\ \sum_{j=1}^nc_{ij}x_j + d_i^- - d_i^+ = d_i^0,& \text{i = 1,2,\ldots,l}\\ x_j \geq 0,&\text{j = 1,2,\ldots,n}\\ d_i^-,d_i^+ \geq 0,&\text{i = 1,2,\ldots,l} \end{cases} s.t.j=1natjxj(=,)bt,j=1ncijxj+didi+=di0,xj0,di,di+0,t = 1,,mi = 1,2,,lj = 1,2,,ni = 1,2,,l
四、基于MATLAB R2014a的多目标规划解法
1.工具函数
  多目标规划可以归结为 min ⁡ x , γ γ , \min_{x,\gamma}\gamma, x,γminγ, s . t . { F ( x ) − w e i g h t ∗ γ ≤ g o a l , A ∗ x ≤ b , A e q ∗ x = b e q , c ( x ) ≤ 0 , c e q ( x ) = 0 , l b ≤ x ≤ u b 。 s.t.\begin{cases} F(x) - weight * \gamma \leq goal,\\ A * x \leq b,\\ Aeq * x = beq,\\ c(x) \leq 0,\\ ceq(x) = 0,\\ lb \leq x \leq ub。 \end{cases} s.t.F(x)weightγgoal,Axb,Aeqx=beq,c(x)0,ceq(x)=0,lbxub 式中: x 、 w e i g h t 、 g o a l 、 b 、 b e q 、 l b 和 u b x、weight、goal、b、beq、lb 和 ub xweightgoalbbeqlbub 为向量; A 和 A e q A和Aeq AAeq 为矩阵; c ( x ) , c e q ( x ) 和 F ( x ) c(x),ceq(x)和F(x) c(x),ceq(x)F(x) 为向量函数(可为非线性);F(x)为所考虑的目标函数;goal为与达到的目标。故多目标规划的Matlab函数fgoalattain用法为:

[x,fval] = fgoalattain('fun',x0,goal,weight)
[x,fval] = fgoalattain('fun',x0,goal,weight,A,b)
[x,fval] = fgoalattain('fun',x0,goal,weight,A,b,Aeq,beq)
[x,fval] = fgoalattain('fun',x0,goal,weight,A,b,Aeq,beq,lb,ub,nonlcon)

其中:fun 为用M文件定义的目标向量函数,x0 为初值,weight 为权重。A 、b定义不等式约束 A ∗ x ≤ b A * x \leq b Axb ,Aeq 、beq 定义等式约束 A e q ∗ x = b e q Aeq * x = beq Aeqx=beq ,nonclon 是用M文件定义的非线性约束 c ( x ) ≤ 0 , c e q ( x ) = 0 c(x) \leq 0,ceq(x) = 0 c(x)0ceq(x)=0 。返回值 fval 是目标向量函数的值。

2.实例
求解多目标线性规划问题
max ⁡ Z 1 = 100 x 1 + 90 x 2 + 80 x 3 + 70 x \max Z_1 = 100x_1 + 90x_2 + 80x_3 + 70x maxZ1=100x1+90x2+80x3+70x min ⁡ Z 2 = 3 x 2 + 2 x 4 \min Z_2 = 3x_2 + 2x_4 minZ2=3x2+2x4 s . t . { x 1 + x 2 ≥ 30 , x 3 + x 4 ≥ 30 , 3 x 1 + 2 x 3 ≤ 120 , 3 x 2 + 2 x 4 ≤ 48 , x i ≥ 0 , i = 1, … ,4 s.t.\begin{cases} x_1 + x_2 \geq 30,\\ x_3 + x_4 \geq 30,\\ 3x_1 + 2x_3 \leq 120,\\ 3x_2 + 2x_4 \leq 48,\\ x_i \geq 0,&\text{i = 1,\ldots,4} \end{cases} s.t.x1+x230,x3+x430,3x1+2x3120,3x2+2x448,xi0i = 1,,4 编写MATLAB程序如下:

clc,clear
% % 构造约束条件系数矩阵,默认不等式约束条件为<=,若为>=则不等式两边同时乘以-1
a = [-1 -1 0 0
    0 0 -1 -1
    3 0 2 0
    0 3 0 2];
% % 构造目标值矩阵
b = [-30 -30 120 48]';
% % 构造目标系数矩阵,默认目标为min,若为max则写为(-min)
c1 = [-100 -90 -80 -70];
c2 = [0 3 0 2];
fun = @(x)[c1;c2] * x;                      % 用匿名函数定义目标向量
[x1,g1] = linprog(c1,a,b,[],[],zeros(4,1))  % 求第一个目标函数的目标值
[x2,g2] = linprog(c2,a,b,[],[],zeros(4,1))  % 求第二个目标函数的目标值
g3 = [g1;g2];                               % 目标goal的值
[x,fval] = fgoalattain(fun,rand(4,1),g3,abs(g3),a,b,[],[],zeros(4,1))

运行结果如图。需要注意的是,因为在编程时 max 被指定为 -min ,因此计算出来的第一个结果还需要乘以 -1后才是实际目标值。
在这里插入图片描述在这里插入图片描述

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
2024美赛数学建模e题要求我们研究一种新的交通车辆管理系统,以减少城市交通拥堵和提高交通效率。我将用300字来回答这个问题。 首先,我们需要了解城市交通管理的挑战和问题。城市交通拥堵是一个常见的问题,它导致了交通效率低下、时间浪费和环境污染。解决这些问题的关键在于提供一个智能而高效的交通系统。 为了实现这一目标,我们提出了一种基于智能交通和互联网技术的新的交通车辆管理系统。该系统包括城市交通网络、车辆管理中心和交通参与者。 首先,城市交通网络将实时监控城市交通状况,包括道路状况、交通流量和车辆位置等信息。这些数据将传输到车辆管理中心,用于分析和优化交通系统。 车辆管理中心将利用这些数据来制定交通管理策略。根据交通状况,车辆管理中心可以动态调整交通信号灯时间,以最大程度地减少交通拥堵。此外,车辆管理中心还可以提供实时导航和交通信息,帮助驾驶员选择最佳路线和避开拥堵区域。 交通参与者可以通过智能设备接入该系统,获取实时交通信息和导航服务。他们可以通过APP或导航设备查看交通状况、预测拥堵区域,并根据推荐的最佳路线行驶。 我们还可以通过使用车辆间通信技术来进一步优化交通系统。车辆之间可以通过无线通信交换交通信息,如速度、位置和目的地。这样的交流可以帮助车辆避免碰撞,并更加智能地规划行驶路线和时间,从而提高整个交通系统的效率。 基于以上思路,我们相信该新的交通车辆管理系统可以有效减少交通拥堵和提高交通效率。同时,该系统还可以为交通参与者提供更便捷和安全的出行体验。我们将进一步研究和优化该系统,以期在未来实际应用中发挥积极的作用。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值