钢管下料问题模型求解

文章目录钢管下料问题模型求解【问题描述】【问题分析】【实验原理】【源代码】钢管下料问题模型求解关键词:钢管下料 Python、 Lingo【问题描述】某钢管零售商从钢管厂进货,将钢管按照顾客得要求切割后售出,从钢管厂进货时得到得原料钢管都是19m。现有一客户需要50根4m、20根6m和15根8m的钢管。问应如何下料最节省?零售商如果采用的不同切割模式太多,将会导致生产过程的复杂化,从而增加生产和管理成本,所以零售商规定采取的切割模式不超过3种。此外,该客户除需要(1)中的三种钢管外,
摘要由CSDN通过智能技术生成

钢管下料问题模型求解

关键词:钢管下料 PythonLingo

一、问题描述

某钢管零售商从钢管厂进货,将钢管按照顾客得要求切割后售出,从钢管厂进货时得到得原料钢管都是19m。

  1. 现有一客户需要504m、206m和158m的钢管。问应如何下料最节省?
  2. 零售商如果采用的不同切割模式太多,将会导致生产过程的复杂化,从而增加生产和管理成本,所以零售商规定采取的切割模式不超过3种。此外,该客户除需要(1)中的三种钢管外,还需要105m的钢管,问应如何下料最节省?

二、问题分析

问题一:

①要使下料最节省,根据实际需要,可选择总余量最小和所用原料钢管根数最少作为目标。在余料没有什么用途的情况下通常选择所用总根数最少为目标。

②对于每种切割模式必须合理,即每根钢管剩余原料必须小于4m。


问题二:

①本题的目标为利润扣除废料之后净利润最大。废料分为两种,一种是余料,一种是不能匹配的罐底瓶盖

②在该题中,易拉罐个数为整数,但是由于生产数目巨大,故可看作实数


三、实验原理

问题一: 钢管的切割模式

python枚举法列出所有合理切割模式

4m钢管数 6m钢管数 8m钢管数 余料/m
模式一 4 0 0 3
模式二 3 1 0 1
模式三 2 0 1 3
模式四 1 2 0 3
模式五 1 1 1 1
模式六 0 3 0 1
模式七 0 0 2 3

问题二: 钢管切割模式

python枚举法列出所有合理切割模式

四、运行结果

问题一:

  • python求解

fun: 25.0

message: ‘Optimization terminated successfully.’

nit: 4

slack: array([0., 0., 0.])

status: 0

success: True

x: array([ 5., 0., 5., 0., 0., 15., 0.])


问题二:

  • python求解
  • lingo求解

Local optimal solution found.

Objective value: 28.00000

Objective bound: 28.00000

Infeasibilities: 0.000000

Extended solver steps: 145

Total solver iterations: 9131


五、源代码

问题一:

  • python
# -*- coding: utf-8 -*-
from scipy import optimize as op
import numpy as np
b_list=[]
c_list=[]
for i in range(5):
    for j in range(4):
        for k in range(3):
            if 16<=4*i+6*j+8*k<=19:
                a_list = [] #存储一种情况
                a_dict = {
   } #存储一种情况的数据
                a_dict["x"]=i
                a_dict["y"]=j
                a_dict["z"]=
  • 10
    点赞
  • 50
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值