0
点赞
收藏
分享

微信扫一扫

数学建模学习笔记:钢管下料问题_1_线性规划模型

参考资料

  • 1、《数学模型》第四版 姜启源 P123
  • 2、R语言-最优化​整数规划​线性规划求Rsymphony_package
问题


某钢管零售商从钢管厂进货,将钢管按照顾客要求切割后售出,从钢管厂进货时得到的原料钢管都是19米。
(1)现有一客户需要50根4m、20根6m、和15根8m的钢管,应如何下料最节省?


问题分析


  • 1 确定切割模式,即一根19m钢管我可以选择切成4根4m,我也可以选择切成3根4m叫1根6m,我可以选择的有多少种切割方式。

    数学建模学习笔记:钢管下料问题_1_线性规划模型_问题分析 image.png

  • 2 确定最节省的标准,此题为两种:一 为切割后剩余的总余料最少;二为切割原料钢管的总根数最少

模型建立

决策变量:用Xi表示第i种模式(i1,2,...,7)切割的原料钢管的根数,Xi为非负整数

决策目标:切割后剩余的总余料最小

​min Z1 = 3X1 + X2 + 3X3 + 3X4 + X5 + X6 + 3X7​

约束条件:

​4X1 + 3X2 + 2X3 + X4 + X5 >= 50​

​X2 + 2X4 + X5 + 3X6 >= 20​

​X3 + X5 + 2X7 >= 15​

R语言Rsymphony包求解
obj<-c(3,1,3,3,1,1,3)
length(obj)
mat<-matrix(c(4,3,2,1,1,0,0,
0,1,0,2,1,3,0,
0,0,1,0,1,0,2),nrow=3,byrow=TRUE)
dir<-c(">=",">=",">=")
rhs<-c(50,20,15)
types<-c("I","I","I")
Rsymphony_solve_LP(obj,mat,dir,rhs,types=types,max=F)

#output
$solution
[1] 0 12 0 0 15 0 0

$objval
[1] 27

$status
TM_OPTIMAL_SOLUTION_FOUND
0

$status == 0表示找到解

$status== 1表示无解

最优解 X2==12;X5==15

此为剩余的总余料最少;原料钢管的总根数最少更换决策目标函数即可。

举报

相关推荐

0 条评论