请教各位一个材料算法的问题(68分)

  • 主题发起人 主题发起人 zmlv
  • 开始时间 开始时间
Z

zmlv

Unregistered / Unconfirmed
GUEST, unregistred user!
这是我的一个朋友在工作的过程中碰到的一个问题,先让我简单的描述一下这个问题,请
大家也帮忙给我想想办法:
-----------------------------------------------------------------------
其实我所说的工作称为排料,这个工作很简单,也很无聊,而且平时占据了我们的很多时间。我现在举例如下:
我现在要对材料规格为I14的杆件排料,购买回来的I14原材料长度均为9000(单位全为 mm),
下表为排完料的结果。(该表在数据库里)
下表中的各字段意义如下:
提料号:材料的编号(我们自己给购买回的原材料加的编号)
提料长度:原材料的长度。
提料数量:对应原材料编号的数量,一般情况下为1。
杆件号:杆件的编号(杆件一般指梁、柱子等)
规格:杆件的截面的大小。
数量:杆件的数量(我们一般人为的使数量为1)
长度:杆件的长度。图纸上给定的长度。
材质:材料的等级。
余料长度:比如提料号为YH-I14-1的材料上面可以割下长度为4380的两根杆件后,剩余240。
余料编号:如果剩余的余料长度>500,一般为其变一个余料编号,下次再用。
提料号 提料长度 提料数量 杆件号 规格 数量 长度 材质 余料长度 余料编号
YH-I14-1 9000 1 YCPH-1B-2 I14 1 4380 Q235-B 240
YH-I14-1 YCPH-1B-1 I14 1 4380 Q235-B 0
YH-I14-2 9000 1 YCPH-2B I14 1 4330 Q235-B 390
YH-I14-2 YCPH-11B I14 1 4280 Q235-B 0
YH-I14-3 9000 1 YCPG-15B I14 1 3326 Q235-B 88
YH-I14-3 YCPG-30B I14 1 3196 Q235-B 0
YH-I14-3 YCPH-6B I14 1 2390 Q235-B 0
YH-I14-4 9000 1 YCPG-14B I14 1 3183 Q235-B 157
YH-I14-4 YCPF-2B-6 I14 1 2830 Q235-B 0
YH-I14-4 YCPF-2B-9 I14 1 2830 Q235-B 0
YH-I14-5 9000 1 YCPG-4B-2 I14 1 2830 Q235-B 144
YH-I14-5 YCPG-4B-1 I14 1 2830 Q235-B 0
YH-I14-5 YCPG-29B I14 1 3196 Q235-B 0
YH-I14-6 9000 1 YCPF-27B I14 1 3029 Q235-B 311
YH-I14-6 YCPF-2B-8 I14 1 2830 Q235-B 0
YH-I14-6 YCPF-2B-5 I14 1 2830 Q235-B 0
YH-I14-7 9000 1 YCPF-26B I14 1 2940 Q235-B 400
YH-I14-7 YCPF-2B-7 I14 1 2830 Q235-B 0
YH-I14-7 YCPF-2B-4 I14 1 2830 Q235-B 0
YH-I14-8 9000 1 YCPF-2B-3 I14 1 2830 Q235-B 57
YH-I14-8 YCPF-2B-2 I14 1 2830 Q235-B 0
YH-I14-8 YCPE-10B-6 I14 1 1280 Q235-B 0
YH-I14-8 YCLB-10G-2 I14 1 2003 Q235-B 0
YH-I14-9 9000 1 YCPF-2B-15 I14 1 2830 Q235-B 57
YH-I14-9 YCPE-10B-7 I14 1 1280 Q235-B 0
YH-I14-9 YCPF-2B-14 I14 1 2830 Q235-B 0
YH-I14-9 YCLB-10G-3 I14 1 2003 Q235-B 0
YH-I14-10 9000 1 YCPD-1B-6 I14 1 2830 Q235-B 55
YH-I14-10 YCPD-1B-5 I14 1 2830 Q235-B 0
YH-I14-10 YCPE-10B-4 I14 1 1280 Q235-B 0
YH-I14-10 YCPB-4B-2 I14 1 2005 Q235-B 0
YH-I14-11 9000 1 YCPF-2B-13 I14 1 2830 Q235-B 107
YH-I14-11 YCPE-47B I14 1 1230 Q235-B 0
YH-I14-11 YCLC-138G-1 I14 1 2003 Q235-B 0
YH-I14-11 YCPF-2B-12 I14 1 2830 Q235-B 0
YH-I14-12 9000 1 YCPF-2B-11 I14 1 2830 Q235-B 57
YH-I14-12 YCPF-2B-10 I14 1 2830 Q235-B 0
YH-I14-12 YCLC-138G-2 I14 1 2003 Q235-B 0
YH-I14-12 YCPE-10B-1 I14 1 1280 Q235-B 0
YH-I14-13 9000 1 YCPF-2B-1 I14 1 2830 Q235-B 57
YH-I14-13 YCPE-10B-2 I14 1 1280 Q235-B 0
YH-I14-13 YCLC-138G-3 I14 1 2003 Q235-B 0
YH-I14-13 YCPD-1B-9 I14 1 2830 Q235-B 0
YH-I14-14 9000 1 YCPD-1B-8 I14 1 2830 Q235-B 55
YH-I14-14 YCPE-10B-3 I14 1 1280 Q235-B 0
YH-I14-14 YCPD-1B-7 I14 1 2830 Q235-B 0
YH-I14-14 YCPB-4B-1 I14 1 2005 Q235-B 0
以上的排料是一种比较理想化的情形。实际情况在一个项目的一个单元里数量比这大得多。
我们一般排的时候,先找最长的杆件,比如上表中的4380,然后用9000-4380= 4620,然
后在表中找与4620最接近一根杆件或两根杆件长度的和,也有可能是三根或四根的和。
我觉得如果是每根材料上排两根的话,问题就很简单。但通常情况下,每根材料上不
止排两根。
对于这,我想了两种方案,但是觉得实施起来难度很大。方案1:对表中所有的杆件进行
下列运算,单根杆件的长度、任意两根杆件的长度和、任意三根杆件的长度和、任意四根
杆件的长度和,然后在里面找与材料长度最接近的。这样也有缺陷,如果杆件长度有的很
长,有的很短,如果所有短的在一起,长的杆件就只剩下单根了,这样余料就会很多。方
案2:先在杆件中找最长的杆件,然后对其余的杆件作下列运算,单根杆件的长度、任意两
根杆件的长度和、任意三根杆件的长度和、任意四根杆件的长度和,然后在里面找与剩余
材料长度最接近的。
不过我觉得这两种方案实施起来难度很大,也不知道有没有更好的办法,另外请大家也帮
我考虑一下,看大家有没有好的建议或办法!
------------------------------------------------------------------------------
以上是我朋友的描述和他自己想的办法,不知道大家有谁有更好的方法,请帮忙想想,谢谢
大家,我的分不多了,全给大家吧!
 
看了半天总算明白了意思:
要从长度固定为9000mm的原材料和长度小于9000mm大于500mm的一堆余料
中加工截取长度不同的杆件,寻求一个最优方案。
规则为:
长度小于500mm的余料作为废料;
长度大于500mm的余料需要继续利用;
最优方案的目的:废料和余料尽量的少。

要实现最优算法很难(统筹学里研究的课题),实现较优解应该有一些办法,穷举法速度
应该也不算慢。

这个题目很有意思,我也翻点书出来好好想想,呵呵。。。。。
 
类似的软件我做过,真的比较麻烦
 
用二分法试试。
 
多人接受答案了。
 
后退
顶部