计算具有最少量的切割废料的切割清单

时间:2008-08-22 11:58:57

标签: algorithm

我正在开展一个生产铝挤压切割清单的项目。

铝挤压件的长度为5米。

我有一个较小长度的列表,需要从5米长的铝挤压件中切割出来。

较小的长度需要按照从5米长的铝挤压产生最少量的切割废料的顺序进行切割。

目前我按照这样的方式订购切割清单,通常首先切割最长的较长长度,最后切割较短的较短长度。这条规则的例外是,如果较短的长度不适合5米长的铝挤压件的剩余长度,我会使用最长的较短长度。

这似乎产生了非常有效(非常少的切割废料)切割清单,并且不需要很长时间来计算。然而,我想,即使切割清单非常有效,它也不一定是效率。

有没有人知道如何计算最有效的切割清单,可以在合理的时间内计算出来?

编辑:感谢您的答案,我将继续使用“贪婪”的方法,因为它似乎做得非常好(完成任何人类尝试创建有效的切割清单)并且速度非常快。 / p>

6 个答案:

答案 0 :(得分:13)

这是一个有效解决的经典难题。您描述的算法听起来像Greedy Algorithm。请查看此Wikipedia文章以获取更多信息:The Cutting Stock Problem

答案 1 :(得分:5)

我担心这个问题没有具体的想法 - 但是你可以看一下'genetic algorithm'(这会像 那样)......

将长度按随机顺序放置,并根据与理想解决方案的匹配程度给出该分数(假设0%浪费)。

然后,迭代地对订单进行随机更改并重新评分。如果得分较高,则抛弃结果。如果分数较低,请保留并将其用作下次计算的基础。继续前进,直到你的分数在可接受的范围内。

答案 2 :(得分:3)

您所描述的内容确实归类为Cutting Stock问题,如Wheelie所述,而不是Bin Packing问题,因为您尝试尽量减少浪费(剩余时间的总和)而不是使用的挤压数量。

这两个问题都很难解决,但你提到的“最适合”的算法(使用适合当前挤压的最长“小长度”)可能会给你非常好的答案,复杂度非常低

答案 3 :(得分:2)

实际上,由于材料的大小是固定的,但请求不是,这是一个装箱问题。

再次,wikipedia to the rescue!

(也许我可能需要考虑工作,所以耶!)

答案 4 :(得分:1)

这是一个有趣的问题,因为我认为它取决于你生产的每个长度的数量。如果它们的数量相同,你可以将每个不同的长度放到一个5米的挤压上,那么你就有了最佳的解决方案。

然而,如果它们并非全部适合一个挤压,那么你就会遇到更大的问题。为了保持每个长度的切割量相同,您需要计算在一个挤出物上可以装入多少长度(不一定按顺序),然​​后按顺序进行每次挤出。

答案 5 :(得分:1)

我一直在努力解决这个问题(问题的长度是6米)问题。

我正在研究的解决方案有点难看,但我不满足于你的解决方案。让我解释一下:

库存量 5米

需要缩小尺寸(每个1个):

** 3,5

1

1,5 **

您的解决方案:

3,5 |浪费0,5 1

1,5 ,剩余3,5以上

看到问题?

我正在研究的解决方案 - >蛮力

1 - 测试每种可能的解决方案

2 - 按他们的浪费订购解决方案

3 - 选择最佳解决方案

4 - 从“Universe”中删除解决方案中的项目

5 - 转到1

我知道这很费时间(但我需要1小时30分才能吃午饭......所以...... :))

我真的需要最佳解决方案(我在excel中手工制作最佳解决方案(+ - ))不仅仅因为我很苛刻而且产品也不便宜。

如果有人有一个更好的解决方案我会喜欢它