线性规划—钢管下料问题及MATLAB求解

  • 问题

零售商进货钢管都是19m长,现有客户购买50根4m长、20根6m长、15根8m长的钢管,问钢管如何切割?切割后的余料最少,能否写出模型.

  • 问题分析

因为切割目标是切割后余料最少,通常假设一个合理的切割模式的余料不应该大于或等于客户需要的钢管的最小尺寸。在这种合理性假设下,一根19米长的钢管的合理切割模式如下表所示:
钢管合理切割模式
在这里插入图片描述
问题化为在满足客户需要的条件下,按照哪些种合理的模式,切割多少根原料钢管,切割后的余料最少。

  • 模型建立

用x_i表示按照第i种模式(i=1 2…7)切割的原料钢管的根数,显然它们应当是非负整数。 以切割后剩余的总余料量最小为目标,则由上表可得决策目标为:
min z_1=3x_1+x_2+〖3x〗_3+3x_4+x_5+x_6+3x_7

按照上表,约束条件如下:
x_i为非负整数4x_1+〖3x〗_2+〖2x〗_3+x_4+x_5≥50x_2+〖2x〗_4+x_5+〖3x〗_6≥20x_3+x_5+2x_7≥15

  • 模型求解

使用MATLAB求解,代码如下:

f =[3 1 3 3 1 1 3];								% 目标函数的系数矩阵
intcon = [1,2,3,4,5,6,7];							% 整数所在位置
A = [-4,-3,-2,-1,-1,0,0;0,-1,0,-2,-1,-3,0;0,0,-1,0,-1,0,-2]; % 不等式约束的变量系数矩阵
b =[-50;-20;-15];  								% 不等式约束的资源数
lb = zeros(7,1);									% 生成7×1的 0 矩阵
[x,fval]=intlinprog(f,intcon,A,b,[],[],lb,[])			% fval代表最优解处的函数值

运行结果如下:
在这里插入图片描述
所以,按照模式2切割12根钢管,按照模式5切割15根钢管切割后余料最少,共切割27根钢管,余料为27m。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值