下料问题(含代码程序)
vba编程二维下料问题

vba编程二维下料问题VBA编程二维下料问题问题一:什么是二维下料问题?•二维下料问题是指在给定尺寸的材料上,如何最有效地裁剪出指定尺寸的零件,以减少材料的浪费。
•这个问题在许多制造领域中都有应用,如家具制造、纺织品、玩具等。
问题二:为什么需要编程解决二维下料问题?•二维下料问题通常涉及多个零件和多个材料,手工计算往往耗时且容易出错。
•通过编程解决二维下料问题,可以提高计算速度和准确性,同时还能优化布局,减少材料浪费。
问题三:VBA编程在二维下料问题中的应用•VBA(Visual Basic for Applications)是一种在Microsoft Office应用程序中嵌入的编程语言,可以用于自动化办公任务。
•在二维下料问题中,可以使用VBA编程来实现自动化的计算和布局。
问题四:VBA编程解决二维下料问题的步骤1.定义材料和零件的尺寸:在VBA代码中,可以定义材料和零件的长度、宽度等尺寸。
2.输入零件需求:用户可以输入需要裁剪的零件的尺寸和数量。
3.计算可行的布局:使用算法来计算各个零件在材料上的布局方案,以满足尺寸要求和减少材料浪费。
4.显示最优布局:将计算得到的最优布局显示在用户界面上,以便用户查看和确认。
5.输出裁剪方案:根据最优布局,输出裁剪方案,显示每个零件在材料上的具体位置和裁剪顺序。
问题五:VBA编程解决二维下料问题的优势•自动化:通过编程实现自动计算和布局,节省了手工计算的时间和精力。
•准确性:使用算法来计算最优布局,可以减少人为误差,提高准确性。
•可视化:将最优布局显示在用户界面上,方便用户查看和确认,减少沟通成本。
问题六:VBA编程解决二维下料问题的局限性•复杂性:二维下料问题涉及到多个变量和约束条件,编写复杂的算法可能需要一定的数学和编程知识。
•依赖性:VBA是在Microsoft Office应用程序中嵌入的编程语言,使用VBA编程解决二维下料问题通常需要依赖特定的软件环境。
公选课数学建模论文钢管下料问题

公选课-数学建模论文-钢管下料问题钢管下料问题摘要生产中常会遇到通过切割、剪裁、冲压等手段,将原材料加工成所需大小这种工艺过程,称为原料下料问题.按照进一步的工艺要求,确定下料方案,使用料最省,或利润最大是典型的优化问题.针对钢管下料问题,我们采用数学中的线性规划模型.对模型进行了合理的理论证明和推导,然后借助于解决线性规划的专业软件Lingo 11.0,对题目所提供的数据进行计算,从而得出最优解.关键词线性规划最优解钢管下料1、问题的提出某钢管零售商从钢管厂进货,将钢管按照顾客的要求切割出售.从钢管厂进货得到的原材料的钢管的长度都是1850mm ,现在一顾客需要15根290 mm ,28根315 mm ,21根350 mm 和30根455 mm 的钢管.为了简化生产过程,规定所使用的切割模式的种类不能超过4种,使用频率最高的一种切割模式按照一根原料钢管价值的1/10增加费用,使用频率次之的切割模式按照一根原料钢管价值的2/10增加费用,以此类推,且每种切割模式下的切割次数不能太多(一根原钢管最多生产5根产品),此外为了减少余料浪费,每种切割模式下的余料浪费不能超过100 mm ,为了使总费用最小,应该如何下料?2、问题的分析首先确定合理的切割模式,其次对于不同的分别进行计算得到加工费用,通过不同的切割模式进行比较,按照一定的排列组合,得最优的切割模式组,进而使工加工的总费用最少.3、基本假设假设每根钢管的长度相等且切割模式理想化.不考虑偶然因素导致的整个切割过程无法进行.4、定义符号说明(1)设每根钢管的价格为a ,为简化问题先不进行对a 的计算.(2)四种不同的切割模式:1x 、2x 、3x 、4x .(3)其对应的钢管数量分别为:i r 1、i r 2、i r 3、i r 4(非负整数).5、模型的建立由于不同的模式不能超过四种,可以用i x 表示i 按照第种模式(i =1,2,3,4)切割的原料钢管的根数,显然它们应当是非负整数.设所使用的第i 种切割模式下每根原料钢管生产290mm ,315mm,,350mm 和455mm 的钢管数量分别为i r 1,i r 2,i r 3,i r 4(非负整数). 决策目标 切割钢管总费用最小,目标为:Min=(1x ⨯1.1+2x ⨯1.2+3x ⨯1.3+4x ⨯1.4)⨯a (1)为简化问题先不带入a约束条件 为满足客户需求应有11r ⨯1x +12r ⨯2x +13r ⨯3x +14r ⨯4x ≧15 (2) 21r ⨯1x +22r ⨯2x +23r ⨯3x +24r ⨯4x ≧28 (3) 31r ⨯1x +32r ⨯2x +33r ⨯3x +34r ⨯4x ≧21 (4) 41r ⨯1x +42r ⨯2x +43r ⨯3x +44r ⨯4x ≧15 (5) 每一种切割模式必须可行、合理,所以每根钢管的成品量不能大于1850mm 也不能小于1750mm.于是:1750≦290⨯11r +315⨯21r +350⨯31r +455⨯41r ≦1850 (6) 1750≦290⨯12r +315⨯22r +350⨯32r +455⨯42r ≦1850 (7) 1750≦290⨯13r +315⨯23r +350⨯33r +455⨯43r ≦1850 (8) 1750≦290⨯14r +315⨯24r +350⨯34r +455⨯44r ≦1850 (9)由于排列顺序无关紧要因此有 1x ≧2x ≧3x ≧4x (10) 又由于总根数不能少于(15⨯290+28⨯315+21⨯350+30⨯455)/1850≧18.47 (11) 也不能大于(15⨯290+28⨯315+21⨯350+30⨯455)/1750≦19.525 (12) 由于一根原钢管最多生产5根产品,所以有i r 1+i r 2+i r 3+i r 4≦5 (13)7、模型的求解将(1)~(13)构建的模型输入Lingo11.0即取1x 切割模式14根及2x 切割模式5根,即可得到最优解:Min=(14⨯11/10+5⨯12/10)⨯a=21.4a6、结果分析、模型的评价与改进下料问题的建模主要有两部分组成,一是确定下料模式,二是构造优化模型.对于下料规格不太多时,可以采用枚举出下料模式,对规格太多的,则适用于本模型.而从本模型中可以看出尽管切割模式x3、x4的余料最少,但是其成本比较高因而舍弃.7、参考文献【1】姜启源,谢金星,叶俊,数学模型(第三版),清华大学出版社,第121页.8、附录模型求解的算法程序:model:min=x1*1.1+x2*1.2+x3*1.3+x4*1.4;r11*x1+r12*x2+r13*x3+r14*x4>=15;r21*x1+r22*x2+r23*x3+r24*x4>=28;r31*x1+r32*x2+r33*x3+r34*x4>=21;r41*x1+r42*x2+r43*x3+r44*x4>=15;290*r11+315*r21+350*r31+455*r41<=1850; 290*r12+315*r22+350*r32+455*r42<=1850; 290*r13+315*r23+350*r33+455*r43<=1850; 290*r14+315*r24+350*r34+455*r44<=1850;290*r11+315*r21+350*r31+455*r41>=1750; 290*r12+315*r22+350*r32+455*r42>=1750; 290*r13+315*r23+350*r33+455*r43>=1750; 290*r14+315*r24+350*r34+455*r44>=1750;x1+x2+x3+x4>=19;x1+x2+x3+x4<=20;x1>=x2;x2>=x3;x3>=x4;r11+r21+r31+r41<=5;r12+r22+r32+r42<=5;r13+r23+r33+r43<=5;r14+r24+r34+r44<=5;@gin(x1);@gin(x2);@gin(x2);@gin(x4);@gin(r11);@gin(r12);@gin(r13);@gin(r14); @gin(r21);@gin(r22);@gin(r23);@gin(r24); @gin(r31);@gin(r32);@gin(r33);@gin(r34); @gin(r41);@gin(r42);@gin(r43);@gin(r44); end经运行得到输出如下:Global optimal solution found.Objective value: 21.40000Objective bound: 21.40000Infeasibilities: 0.000000Extended solver steps: 1Total solver iterations: 34507Variable Value Reduced Cost X1 14.00000 -0.1000000 X2 5.000000 0.000000 X3 0.000000 0.1000000 X4 0.000000 0.2000000 R11 0.000000 0.000000 R12 3.000000 0.000000 R13 0.000000 0.000000 R14 0.000000 0.000000 R21 2.000000 0.000000 R22 0.000000 0.000000 R23 1.000000 0.000000 R24 0.000000 0.000000 R31 2.000000 0.000000 R32 0.000000 0.000000 R33 3.000000 0.000000 R34 0.000000 0.000000 R41 1.000000 0.000000 R42 2.000000 0.000000 R43 1.000000 0.000000 R44 4.000000 0.000000。
基于python的钢筋下料优化算法

基于python的钢筋下料优化算法关于基于Python的钢筋下料优化算法摘要:本文将介绍一种基于Python的钢筋下料优化算法。
钢筋下料是指根据建筑施工图纸中的钢筋需求,将钢筋材料按照一定规则进行切割和制造加工,以适应具体施工需要。
传统的钢筋下料通常是根据经验和人工计算来进行,效率较低且容易出错。
而基于Python的优化算法可以通过数学模型和计算机技术,快速准确地计算出最优方案,实现钢筋材料的有效利用。
本文将分为三个部分来详细介绍基于Python的钢筋下料优化算法。
首先,我们将介绍算法的原理和基本思想,包括数学模型的构建和优化目标的设定。
其次,我们将详细介绍算法的实现过程,包括算法流程图和具体的代码实现。
最后,我们将通过一个具体的案例来验证算法的有效性,并对算法的优缺点进行分析和讨论。
通过本文的介绍,读者将能够了解和掌握基于Python的钢筋下料优化算法的原理和实现方法,从而提高钢筋下料的效率和准确性。
关键词:Python;钢筋下料;优化算法;数学模型;效率;准确性一、算法的原理和基本思想1.1 数学模型的构建钢筋下料问题可以看作一种组合优化问题。
首先,我们需要将建筑施工图纸中的钢筋需求转化为数学模型。
通常,钢筋的规格和长度是已知的,我们需要根据建筑施工图纸中的需求,将规格和长度进行匹配,以确定需要使用的钢筋数量和长度。
同时,我们还需要考虑到钢筋的切割和制造加工的限制条件,如最大切割长度、加工时间等。
基于以上考虑,我们可以构建如下的数学模型:- 变量:- Xi:第i根钢筋的数量;- Lij:第i根钢筋经过某一切割方案后得到的第j段长度;- Yij:第i根钢筋经过某一切割方案后得到的第j段长度是否需要加工;- Xij:第i根钢筋经过某一切割方案后得到的第j段长度的数量;- 目标函数:- min ∑(∑Xij),i=1...n,j=1...m;- 约束条件:- ∑Lij=XiLi,i=1...n;- ∑Xij≤Xijmax,i=1...n,j=1...m;- ∑Yij=Yijmax,i=1...n,j=1...m;- Xij≤∑Lij,i=1...n,j=1...m;- Yij≤Xij,i=1...n,j=1...m;其中,n表示钢筋的种类数量,m表示切割得到的钢筋段数,Li表示钢筋i的长度,Xijmax表示第i根钢筋切割后得到的第j段长度的最大数量,Yijmax表示第i根钢筋切割后得到的第j段长度需要经过加工的最大数量。
下料问题-2

实用下料问题一.问题的重述“下料问题(cutting stock problem)”是把相同形状的一些原材料分割加工成若干个不同规格大小的零件的问题,此类问题在工程技术和工业生产中有着重要和广泛的应用. 这里的“实用下料问题”则是在某企业的实际条件限制下的单一材料的下料问题。
现考虑单一原材料下料问题. 设这种原材料呈长方形,长度为L ,宽度为W ,现在需要将一批这种长方形原料分割成m 种规格的零件, 所有零件的厚度均与原材料一致,但长度和宽度分别为),(,),,(11m m w l w l ,其中w i <m i W w L l i i ,,1,, . m 种零件的需求量分别为m n n ,,1 .下料时,零件的边必须分别和原材料的边平行。
这类问题在工程上通常简称为二维下料问题。
特别当所有零件的宽度均与原材料相等,即m i W w i ,,1, ,则问题称为一维下料问题。
一个好的下料方案首先应该使原材料的利用率最大,从而减少损失,降低成本,提高经济效益。
其次要求所采用的不同的下料方式尽可能少,即希望用最少的下料方式来完成任务。
因为在生产中转换下料方式需要费用和时间,既提高成本,又降低效率。
此外,每种零件有各自的交货时间,每天下料的数量受到企业生产能力的限制。
因此实用下料问题的目标是在生产能力容许的条件下,以最少数量的原材料,尽可能按时完成需求任务, 同时下料方式数也尽量地小。
现在我们要为某企业考虑下面两个问题。
1.建立一维单一原材料实用下料问题的数学模型, 并用此模型求解下列问题,制定出在生产能力容许的条件下满足需求的下料方案, 同时求出等额完成任务所需的原材料数,所采用的下料方式数和废料总长度. 单一原材料的长度为 3000mm, 需要完成一项有53种不同长度零件的下料任务. 具体数据见表一(略),其中 i l 为需求零件的长度,i n 为需求零件的数量. 此外,在每个切割点处由于锯缝所产生的损耗为5mm. 据估计,该企业每天最大下料能力是100块 ,要求在4天内完成的零件标号(i )为: 5,7,9,12,15,18,20,25, 28,36,48;要求不迟于6天完成的零件标号(i )为:4,11,24,29,32,38,40,46,50。
下料问题数学建模(钢管)

防盗窗下料问题摘要本文针对寻找经济效果最优的钢管下料方案,建立了优化模型。
问题中的圆形管下料设定目标为切割原料圆形管数量尽可能少且在使用一定数量圆形管的过程中使被切割利用过的原料总进价尽可能低。
问题中的方形管原料不足以提供所需截得的所用钢管,故设目标为使截得后剩余方形管总余量最小。
模型的建立过程中,首先运用了C语言程序,利用逐层分析方法,罗列出针对一根钢材的截取模式;然后根据条件得出约束关系,写出函数关系并对圆形管下料建立了线性模型,对方形管下料建立了非线性模型;接着,在对模型按实际情况进行简化后,借助lingo程序对模型求解,得出了模型的最优解,并给出了最符合经济效果最优原则的截取方案。
关键词:钢管下料;最优化;lingo;问题提出某不锈钢装饰公司承接了一住宅小区的防盗窗安装工程,为此购进了一批型号为304的不锈钢管,分为方形管和圆形管两种,方管规格为25×25×1.2(mm),圆管规格Φ19×1.2(mm)。
每种管管长有4米和6米两种,其中4米圆形管5000根,6米圆形管9000根,4米方形管2000根,6米方形管2000根。
根据小区的实际情况,需要截取1.2m圆管8000根, 1.5m圆管16500根,1.8m圆管12000根,1.4m方形管6000根,1.7m方形管4200根,3m方形管2800根。
请根据上述的实际情况建立数学模型,寻找经济效果最优的下料方案。
基本假设和符号说明1、假设钢管切割过程中无原料损耗或损坏;2、假设余料不可焊接;3、假设同种钢材可采用的切割模式数量不限;4、假设不同长度钢管运费、存储资源价值没有区别;5、假设该304型号不锈钢管未经切割则价值不变,可在其它地方使用。
为便于描述问题,文中引入一些符号来代替基本变量,如表一所示:问题分析与模型建立问题中的圆形管原料足够,寻找经济效果最优的下料方案,即目标为切割原料圆形管数量尽可能少。
考虑到6米圆形管与4米圆形管的采购价格应该是不同的,所以我们寻求的是在使用一定数量6米圆形管与4米圆形管的过程中使被切割利用过的原料总进价尽可能低。
下料问题

关于一维下料问题的研究摘要:“下料问题”是把相同形状的一些原材料分割加工成若干个不同规格大小的零件的问题.此类问题在工程技术和工业生产中有着重要和广泛的应用.在生产实践中通常要求解决用料最省、浪费最少等问题.下料问题即是其一。
属最优化研究范畴.一维下料问题是生产实践中常见的问题,优化下料要求最大限度地节约原材料,提高原材料的利用率。
本文介绍了两种方法,其一提出分支定界算法优化一维下料问题,并用MATLAB编写程序,通过计算机来完成这一复杂的过程。
另一种方法-lingo,针对单一原材料的一维下料问题, 建立了整数规划模型, 然后将模型转化为求解最优下料方式问题; 利用lingo进行编程, 实现循环调用得到一维下料问题的局部最优解。
实际上本文就是给出了解决适当规模下料问题的求解方法.该方法既可手工演算又可通过计算机求解。
在实践中可以借鉴使用.Abstract: The “℃utting Stock Problem”is a problem of dividing raw materials in the same shape into several parts in different shapes. This kind of problem has important and wide appliance in engineering and industry production.Being living to give birth to in the practice requires use to anticipate to save most usually and Squanders at least and so on ,First of all Immediate future the cutting stock problem is ,The category optimization is researched the category 。
规划问题 3 下料问题

3.下料问题某钢管零售商从钢管厂进货,将钢管按照顾客的要求切割后售出.从钢管厂进货时得到的原料钢管长度都是1850mm.现有一客户需要15根290mm、28根315mm、21根350mm和30根455mm的钢管.为了简化生产过程,规定所使用的切割模式的种类不能超过4种,使用频率最高的一种切割模式按照一根原料钢管价值的1/10增加费用,使用频率次之的切割模式按照一根原料钢管价值的2/10增加费用,依此类推,且每种切割模式下的切割次数不能太多(一根原料钢管最多生产5根产品)。
此外,为了减少余料浪费,每种切割模式下的余料浪费不能超过100mm.为了使总费用最小,应如何下料?。
板材玻璃下料问题

板材玻璃下料问题摘要本文针对板材下料问题的特点,尽可能的提高板材的利用率,减少资源浪费,建立了模型,其合理性和实用性都比较好。
针对问题一:我们根据一原二维下料问题建立了3个模型模型一:穷举法计算所有可能的Xij,将剩下所有可能的下料方法全部列出,然后参考背包问题列出优化模型,利用matlab的函数linprog()进行求解。
但由于题目所给的板材样式过多,计算机容量和速度决定此方法不可行。
模型二:用动态规划的方法进行求解,从成品料的面积大的开始遍历尽可能多的重复使用最优的一种方法进行下料,利用matlab求解,其中只考虑面积大的开始遍历,而没有过多考虑利用率问题。
模型三:但是在遍历时是从成品料1开始,根据成品料的利用率选择能使原材料的利用率最大的成品料,这种方案是利用率提高,效果很好。
针对问题二:此问题是多原二维下料问题,我们在第一问基础上,用动态规划和“一刀切”思想,将原来那些能在新的成品料实现的方案,在新的成品料下实现,来实现张数最小,其提高利用率,由matlab求的结果基本符合实际。
最后,总结了问题的意义,并考虑问题的拓展。
关键字:下料问题,MATLAB求解,背包问题,动态规划问题重述情况分析:建筑工程中,需要大量使用玻璃材料,如门窗。
再作材料预算时,需要求原材料的张数。
已知板材玻璃原材料和下料后的成品料均为矩形。
由于玻璃材料的特点,切割玻璃时,刀具只能走直线,且中间不能拐弯或停顿,即每切一刀将玻璃一分为二。
切割次序和方法不同,各种规格搭配(即下料决策)不同,材料的消耗不同。
相关信息:附件1:成品料规格及所需快数解决的问题:(1)在原材料只有一种规格的情况下(例如长为2100cm,宽为1650cm),给出最优情况下的决策,时所需要材料的张数最少。
(2)在原材料为两种规格的情况下(例如2100cm*1650cm和2000cm*1500cm),给出最优下料决策,使所需要材料张数最少,且利用率(实际使用总面积与原材料总面积只比)尽量高。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实用下料问题优化模型摘要关键字:整数规划模型多目标决策优化NP问题下料方案分支定界法1.问题的重述“下料问题(cutting stock problem)”是把相同形状的一些原材料分割加工成若干个不同规格大小的零件的问题,此类问题在工程技术和工业生产中有着重要和广泛的应用. 这里的“实用下料问题”则是在某企业的实际条件限制下的单一材料的下料问题。
现考虑单一原材料下料问题. 设这种原材料呈长方形,长度为L ,宽度为W ,现在需要将一批这种长方形原料分割成m 种规格的零件, 所有零件的厚度均与原材料一致,但长度和宽度分别为),(,),,(11m m w l w l ,其中w i <m i W w L l i i ,,1,, =<<.m 种零件的需求量分别为m n n ,,1 .下料时,零件的边必须分别和原材料的边平行。
这类问题在工程上通常简称为二维下料问题。
特别当所有零件的宽度均与原材料相等,即m i W w i ,,1, ==,则问题称为一维下料问题。
一个好的下料方案首先应该使原材料的利用率最大,从而减少损失,降低成本,提高经济效益。
其次要求所采用的不同的下料方式尽可能少,即希望用最少的下料方式来完成任务。
因为在生产中转换下料方式需要费用和时间,既提高成本,又降低效率。
此外,每种零件有各自的交货时间,每天下料的数量受到企业生产能力的限制。
因此实用下料问题的目标是在生产能力容许的条件下,以最少数量的原材料,尽可能按时完成需求任务, 同时下料方式数也尽量地小.就某企业考虑下面两个问题:1. 建立一维单一原材料实用下料问题的数学模型, 并用此模型求解下列问题,制定出在生产能力容许的条件下满足需求的下料方案, 同时求出等额完成任务所需的原材料数,所采用的下料方式数和废料总长度. 单一原材料的长度为 3000mm, 需要完成一项有53种不同长度零件的下料任务. 具体数据见表一,其中 i l 为需求零件的长度,i n 为需求零件的数量. 此外,在每个切割点处由于锯缝所产生的损耗为5mm. 据估计,该企业每天最大下料能力是100块 ,要求在4天内完成的零件标号(i )为: 5,7,9,12,15,18,20,25, 28,36,48;要求不迟于6天完成的零件标号(i )为:4,11,24, 29,32,38,40,46,50. (提示:可分层建模。
(1).先考虑用材料既少,下料方式又少的模型, 或先仅考虑所用材料最少的模型及增加一种下料方式大致相当于使原材料总损耗增加0.08%情况下的最佳方案。
(2).在解决具体问题时,先制定4天的下料方案,再制定6天的下料方案,最后制定53种零件的下料方案. 这一提示对第2题也部分适用.)表1 需求材料的数据 单位:mm2. 建立二维单一原材料实用下料问题的数学模型, 并用此模型求解下列问题.制定出在企业生产能力容许的条件下满足需求的下料方案, 同时求出等额完成任务所需的原材料块数和所需下料方式数.这个问题的单一原材料的长度为 3000mm,宽度为100mm, 需要完成一项有43种不同长度和宽度零件的下料任务. 具体数据见表二,其中 i i i n w l ,,分别为需求零件的长度、宽度和数量. 切割时的锯缝可以是直的也可以是弯的,切割所引起的锯缝损耗忽略不计.据估计,该企业每天最大下料能力是20块 要求在4天内完成的零件标号(i )为: 3,7,9,12,15, 18, 20, 25, 28, 36.表2 需求材料的数据 单位:mm2.问题的分析本文要解决的是一个典型的多目标决策优化问题。
一个好的下料方案首先应该使原材料的利用率最大,从而减少损失,降低成本,提高经济效益。
其次要求所采用的不同的下料方式尽可能少,即希望用最少的下料方式来完成任务。
因为在生产中转换下料方式需要费用和时间,既提高成本,又降低效率,故企业都希望尽可能地减少下料方式的数目。
此外,每种零件有各自的交货时间,每天下料的数量受到企业生产能力的限制。
因此实用下料问题的目标是在生产能力容许的条件下,在规定的时间需求内,以最少数量的原材料,尽可能按时完成需求任务,同时下料方式数也尽量地小。
为顺利解决这一问题,我们先从最基本的单目标决策问题人手,以材料损耗最少为目标,由于个别零件的生产有时间的要求,因此,在下料时就应该优先生产那些有时间限制要求的零件,并且通过不同的数学原理建立多个单目标决策的最优化模型,得出最初的结果,并加以比较分析,然后逐步增加其约束条件,并根据这些约束条件进一步完善我们的最优化模型,求出在需求的时间段内下料方式和损耗都最少的最优结果,紧接着再求出剩余板材下料方式和损耗的最优结果,从而最终得出既满足时间条件限制又满足损耗少、下料方式数小的最优结果。
具体流程图如下:图1 总体流程图3.模型的假设[1]. 假设每次切割都准确无误。
[2]. 每天下料的数量受到企业生产能力的限制,在未完成需求任务前,每天下料的数量等于最大下料能力。
[3]. 模型一中每切得一个规格的零件需要()5i l mm +的原材料。
[4]. 除最后一天外,其余每天均达到最大下料能力。
[5]. 除了要求在规定时间内完成所需零件外,不要求其余零件加工排列顺序。
[6]. 模型二中,切割所引起的锯缝损耗忽略不计。
4.符号说明5.一维下料问题对于一维优化下料问题,属于整数规划问题,从计算复杂性理论分析,该问题属于NP难题,即无法在多项式时间(在计算复杂度理论中,指的是一个问题的计算时间m(n)不大于问题大小n的多项式倍数)内求解。
虽然整数规划问题是NP难题,但是线性问题却是有有效算法的。
所以要想求出下料方案的最优解,可以考虑不先求解整数规划问题而先来求解其相应的线性问题,然后用计算机程序进行求解。
首先考虑在满足时间需求的情况下,材料总损失最少的情况,然后尽量使得总的下料方式数目最少,故这里要寻找到所有下料方式中利用率最高的方式,同时在满足生产力要求的情况下进行适当调整,采用尽可能少的下料方式,这样便可以得到一维下料问题的优化结果。
5.1模型一的建立根据题意,现有数量充足的长度为3000mm的原材料,需要完成一项有53种不同长度零件的下料任务。
要求在生产能力许可的条件下,既省材料又容易操作(即下料方式尽可能少),由于本文问题的特殊性,还需要考虑个别标号的零件在4天内及6天内完成。
故先对数据进行预处理,将4天和6天内完成的任务筛选出来,优先处理后再进行其他标号零件的加工。
按照前面的分析,我们现假设有m 种不同的下料方式,再根据每种零件的需求量,可求得每种零件应用的次数,这样采用第一种下料方式生产的第一种零件的个数为11a 个,同理可知,ji a 表示第i 种下料方式可生产第j 种零件的数量,则采用第m 种下料方式所能得到的第j 种零件的数量表示为jm a ,为更好地表示这个对应关系,建立如下对应关系矩阵:111212122211m m j j jm a a a a a a A a a a ⋅⋅⋅⎡⎤⎢⎥⋅⋅⋅⎢⎥=⎢⎥⎢⎥⋅⋅⋅⎢⎥⎣⎦则使用m 种不同的下料方式所使用的原材料的数目为i x ,同样用矩阵的方式来表示,则有所需原材料数目为:()123,,,,Tm X x x x x =5.1.1建立目标函数由于我们以原材料总损耗最少为目标,所以首先计算每种下料方式产生的余料长度,由于在每个切割点处由于锯缝所产生的损耗为5mm. 故每种下料方式应用于每个原材料上所剩的余料表达式为:()()()11225555i m m jm j c L a l a l a l ⎡⎤=-+++++++⎣⎦则建立原材料总损耗最少的目标函数为:1min ()mi i i c x =∑ (1,2,,i m =)其中i x 表示第i 种下料方式所消耗的原材料数目,i c 表示第i 种下料方式所得余料。
又为方便企业加工生产,减少不必要的更换下料方式所产生的麻烦,企业希望所采用的下料方式尽可能少,因此建立第二个目标函数:min m m Z +∈5.1.2建立约束条件1)由于所要生产的每种型号的零件数量题中已经给定,故有限制条件:1mji ij i ax n ==∑ (,ji i a x Z +∈)其中,ji a 表示第i 种下料方式可生产第j 种零件的数量,i x 表示第i 种下料方式所消耗的原材料数目,j n 表示第j 种零件所需要生产的数量,1,2,,53j =。
2)由于题目中所给出的各个编号的零件都有给定的长度,且原材料长度已定,故在考虑了锯缝后,还要考虑原材料长度3000L mm =对下料方式的限制,即对于任意一种下料方式,所得到的零件总长度与锯缝总长度之和要小于等于每根原材料的总长度3000L mm =,同时还要考虑对于每一种下料方式的废料长度要小于零件的最小长度,由题中所给数据可知,需要生产的零件长度最小为155mm ,故此约束表达式为:()5312845553000ji j j a l =≤+-≤∑其中j l 为每个编号对应的零件长度。
3)因为所需零件的生产有时间的限制,相应编号的零件必须在规定的时间内生产完成,要求4天完成的零件编号为:5,7,9,12,15,18,20,25, 28,36,48,共有11种零件;要求6天内完成的零件编号为:41124,29,32,38,40,46,50,,,共有9种型号的零件。
为了在最短时间内完成所有零件生产的任务,在满足该企业每天最大下料能力100块的生产能力条件下,我们在6天内完成的任务中增加4天内需要完成的任务,即6天内需要生产20种型号的零件,为方便下文叙述,我们将4天内需要完成的零件编号建立集合1M ,即{}15,7,9,12,15,18,20,25, 28,36,48M =,同理将6天内需要完成的零件编号建立集合2M ,即{}25,7,9,12,15,18,20,25, 28,36,48,41124,29,32,38,40,46,50M =,,,对此建立约束条件表达式为:1111111004ji ij ijij a x a ==⎛⎫⎪⎪≤⨯ ⎪ ⎪⎝⎭∑∑∑2020111006ji ij ijij a x a ==⎛⎫⎪⎪≤⨯ ⎪ ⎪⎝⎭∑∑∑其中111ji iijij a x a=∑∑表示第i 种下料方式中所切割的第j 种零件数占这种下料方式中所切割的零件4天内需要完成零件数的权数,因此111111ji ij ijij a x a ==⎛⎫⎪⎪ ⎪ ⎪⎝⎭∑∑∑表示4天内完成零件制定零件所用的原材料数,根据该企业的生产能力要求,上述表达式所计算出采用的原材料总数要小于等于4100⨯,另外若1110ji j a ==∑,则表示第i 种下料方式中没有切割到集合1M 中的零件;同理,201ji iijij a x a=∑∑表示第i 种下料方式中所切割的第j 种零件数占这种下料方式中所切割的零件6天内需要完成零件数的权数,因此202011ji ij ijij a x a ==⎛⎫⎪⎪ ⎪ ⎪⎝⎭∑∑∑表示6天内完成零件制定零件所用的原材料数,根据该企业的生产能力要求,上述表达式所计算出采用的原材料总数要小于等于6100⨯,另外若2010jij a==∑,则表示第i 种下料方式中没有切割到集合2M 中的零件。