当前位置:首页 » 《关注互联网》 » 正文

优化模型:MATLAB整数规划

20 人参与  2024年05月07日 17:13  分类 : 《关注互联网》  评论

点击全文阅读


一、整数规划介绍

1.1 整数规划的定义

若规划模型的所有决策变量只能取整数时,称为整数规划。若在线性规划模型中,变量限制为整数,则称为整数线性规划。

1.2 整数规划的分类

整数规划模型大致可分为两类:

(1)变量全限制为整数时,称纯(完全)整数规划。

(2)变量部分限制为整数时,称混合整数规划。

1.3 求解方法分类

分支定界法——可求纯或混合整数线性规划。割平面法——可求纯或混合整数线性规划。隐枚举法——求解0-1整数规划 过滤隐枚举法分枝隐枚举法 匈牙利法——解决指派问题蒙特卡洛法——求解各类规划问题

1.4 整数规划的数学模型

min ⁡ x f T x \underset{x}{\min}\boldsymbol{f}^T\boldsymbol{x} xmin​fTx

s . t . { x ( i n t c o n ) A ⋅ x ⩽ b A e q ⋅ x = b e q l b ⩽ x ⩽ u b s.t.\left\{ \begin{array}{c} \boldsymbol{x}\left( intcon \right)\\ \boldsymbol{A}\cdot \boldsymbol{x}\leqslant \boldsymbol{b}\\ Aeq\cdot \boldsymbol{x}=beq\\ lb\leqslant \boldsymbol{x}\leqslant ub\\ \end{array} \right. s.t.⎩ ⎨ ⎧​x(intcon)A⋅x⩽bAeq⋅x=beqlb⩽x⩽ub​
式中: f \boldsymbol{f} f, x \boldsymbol{x} x, b \boldsymbol{b} b,beq,lb,ub为列向量; A \boldsymbol{A} A,Aeq为矩阵。

二、案例分析

Matlab求解混合整数线性规划的命令为

[x,fval]=intlinprog(f,intcon,A,b,Aeq,beq,lb,ub)这里是引用

例1:利用matlab求解该整数线性规划模型。
max ⁡ z = 100 x 1 + 60 x 2 \max z=100x_1+60x_2 maxz=100x1​+60x2​
s . t . { 5 x 1 + 2 x 2 ⩽ 270 4 x 1 + 3 x 1 ⩽ 250 3 x 1 + 4 x 2 ⩽ 200 x 2 = 4 x 1 x 1 , x 2 为非负整数 s.t.\left\{ \begin{array}{c} 5x_1+2x_2\leqslant 270\\ 4x_1+3x_1\leqslant 250\\ 3x_1+4x_2\leqslant 200\\ x_2=4x_1\\ x_1,x_2\text{为非负整数}\\ \end{array} \right. s.t.⎩ ⎨ ⎧​5x1​+2x2​⩽2704x1​+3x1​⩽2503x1​+4x2​⩽200x2​=4x1​x1​,x2​为非负整数​
MATLAB代码:

clc,clearf=[-100;-60];intcon=[1,2];A=[5,2;4,3;3,4];b=[270;250;200];aeq=[-4,1];beq=0;lb=[0;0];ub=[inf;inf];[x,fval]=intlinprog(f,intcon,A,b,aeq,beq,lb,ub)disp("x1值:" + x(1))disp("x2值:" + x(2))disp("最大值:" + (-fval))

求解结果:

例2:利用matlab求解下列混合整数规划问题。
min ⁡ z = − 3 x 1 − 2 x 2 − x 3 \min z=-3x_1-2x_2-x_3 minz=−3x1​−2x2​−x3​
s . t . { x 1 + x 2 + x 3 ⩽ 7 4 x 1 + 2 x 2 + x 3 = 12 x 1 , x 2 ≫ 0 x 1 = 0 或 1 s.t.\left\{ \begin{array}{c} x_1+x_2+x_3\leqslant 7\\ 4x_1+2x_2+x_3=12\\ x_1,x_2\gg 0\\ x_1=0\text{或}1\\ \end{array} \right. s.t.⎩ ⎨ ⎧​x1​+x2​+x3​⩽74x1​+2x2​+x3​=12x1​,x2​≫0x1​=0或1​
MATLAB代码:

clc,clearf=[-3;-2;-1];intcon=3;%只有第3个变量为整数变量A=ones(1,3);b=7;aeq=[4,2,1];beq=12;lb=zeros(3,1);ub=[inf;inf;1];[x,fval]=intlinprog(f,intcon,A,b,aeq,beq,lb,ub)

求解结果:


点击全文阅读


本文链接:http://zhangshiyu.com/post/104771.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1