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

2020-03-03 14:51:22 浏览数 (1)

参考资料

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

问题

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

问题分析

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

image.png

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

模型建立

决策变量:用Xi表示第i种模式(i=1,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包求解

代码语言:javascript复制
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 人点赞