数学建模算法总结——01线性规划

一、线性规划

(1)定义决策变量
(1)构造目标函数
(2)寻找限制条件
(4)按照步骤带入Matlab函数

假设题目:

m i n Z = c x min\quad Z=cx minZ=cx
s.t.
{ A x ≤ b A e q ⋅ x = b e q l b ≤ x ≤ u b \begin{cases} Ax≤b \\ Aeq·x=beq \\ lb≤x≤ub \end{cases} AxbAeqx=beqlbxub

其中,系数皆为列向量

c=-[5,3]';  
A=[2,1;1,2];  
b=[40,50]'; 
L=[0, 0];
[x,fmin]=linprog(c,A,b,[],[],lb);
Pmax=-fmin
x1=x(1)
x2=x(2)

其中,

[x,fval]=linprog(c,A,b)
[x,fval]=linprog(c,A,b,Aeq,beq)
[x,fval]=linprog(c,A,b,Aeq,beq,lb,ub)

可以增加输出:

[x,  fval,  exitflag,  output]  = linprog(c, A, b, …)

fval:最优值

exitflag:
>0:收敛
=0: 到最大迭代次数时都还未收敛
<0:infeasible或方法失败

output:迭代次数和算法类型

二、非线性规划

H=[1 -1; -1 2]; 
c=[-2 ;-6];
A=[1 1; -1 2];
b=[2;2];
Aeq=[];
beq=[];
VLB=[0;0];
VUB=[];
[x,z]=quadprog(H,c,A,b,Aeq,beq,VLB,VUB)

三、将多目标规划问题转化为线性规划模型:

例:两个目标函数的情况下

  1. 为其中一个目标函数A设定目标值,使其满足小于(大于)一定的目标值a即满足约束条件
    此时该目标函数A即转化为约束条件
    只有一个目标函数B,满足线性规划模型求解

方法1求解

例如当目标函数<a,a=0时开始,a每次增长0.001,满足a<0.05

matlab求解时,使用while函数

clc,clear
a=0;
hold on;
while a<0.05
  c=  A=  b=  Aeq=  beq=  ;
  [x,Q]=linprog(c,A,b,Aeq,beq,lb);
  Q=-Q;
  plot(a,Q,'*k');
  a=a+0.001;
end
xlabel('a'),ylabel('Q')

方法1分析

分析转折点处的值:在不同情况下,优先选取对应折线的拐点处的值

  1. 分别为目标函数A,B设立权重值s,将原目标函数转化为
    Z=sA±(1-s)B
    即可以用线性规划模型求解
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值