详细需求与分析

 
我们公司的求最优化问题可能与其它求最优化问题有些差别,因为它无论是输入数据还是输出数据,都是在Excel电子表格上进行的,表格如下:
序号        长度        合计        切割数     实用长     源料长     用料数     余料        处理
1             1058      57                                      
2             1028      1311                                         
3             989        684                                    
4             1040      513                                    
5             1180      57                                      
6             1233.5   57                                      
7             1311      57                                      
8             875        114                                    
9             837        57                                      
10            978       57                                      
11            866      57                                      
12            50         4212
“长度”与“合计数量”例的数据是已有的,“源料长度”是用户输入的,其它4个例要用程序来计算。每一例与每一例之间都有一一的对应关系,也有优先级。当用户输入源料长度后,程序先计算"切割数",求切割数的公式是:切割数=INT(源材料长度/(长度+切割锯缝))(切割锯缝等于5),假设当用户输入源材料长度为5350,那么序号1的切割数是 {INT(5350/(1058+5))=5}(取整,忽略小数位),切割数求出来后,就接着求"实用长"。{实用长=((长度+5)*切割数)};实用长后是"用料数"。{用料数=合计数量/开料数};求出用料数后是求“余料”。{余料=源料长度-实用长}。所以它们的求解顺序是:切割数->实用长->用料数->余料。人工求解很简单,但如果是在程序里来计算,那就难了。因为在人工的运算过程中,开料人员不断判断、不断优化,以求最优的开法,但程序却无法像人那样,所以开发这样的程序有很大的难度。上面的求解关系很简单,但却有种种的限制:(1),要求余料是浪费得最少的,一般是在50或100之间;(2),对于“用料数”不足一支的情况下,可以忽略余料,比如下表的长度为1200的那一行,用5950的源料长度来开,但因为用料数为0.50小于1,所以那怕余料为1110也可以忽略不计。(3),“合计”例数量最多的要优先求解,因为这是一个关于最优化的问题,当需求的数量很大的时候,它所用到的材料就需求很多,如果不把余料控制好,将会造成很大的浪费。(所以公司的要求是:把合计数量最多的(比如100支以上的)优先计算,剩下的数量需求不多的用“多级套料法”。注:多级套料法在下文解释)(4),对源材料长度的种类限制,一般是限制4种(种类限制的意思是:比如6000为一种,5000为一种,4500为一种,4000为一种,总共是4种)。(5),程序根据用户限制的种类优先计算合计数量最多的长度,然后把数量少的用多级套料法,所谓的多级套料法只是我们在开发过程中的一个代名词,它真正的原理是组合。在多级套料中用户规定一种源料长度,用它来开所有“合计数量”少的长度,它原理是这样的:上表有长度1233.5,如果用5000来开它,余料是46,所以它是最优的,但此时却不能用5000来开它,因为用户已经规定了只能用6000来开它,用6000开了以后它的余料是1046。为了不造成浪费,把余料1046拿来开上面与它最接近或少于它的长度,比如1040。用式子表示的话可以如下表:
(1233.5+5)*4+(1040+5)*1=5999(余料是6000-5999=1)
(1127+5)*4+(539+5)*1+(839+5)*1=5916 (6000-5916=84)
(924+5)*6+(343+5)*1=5922          (6000-5922=78)
(1192+5)*5=5985            (6000-5988=12)      
(539+5)*11=5984            (6000-5984=16)
(6),当所有的长度都得到最优解后,还要一一对应的输到Excel表格中去。至于采用多级套料法的,把组合的那些都写到“处理”例去。如下表
长度        合计        切割数     实用长     源料长度        用料数     余料        处理
1450        2             4             5840       5950              0.50       110 
1085        12           4             4380       5950              1.50       1570       1450=1
1085        8             4             4380       5950              2.00       1570       1500=2
1200        2             4             4840       5950              0.50       1110
1630        18           2             3280       5950              9.00       2670       650=36
1630        12           2             3280       5950              6.00       2670       650=24
1630        4             2              3280       5950              2.00       2670       650=8
 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值