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

铝挤压件的长度为5米。

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

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

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

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

有谁知道一种计算最有效切割清单的方法,可以在合理的时间内计算出来?

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

===============>>#1 票数:14 已采纳

这是一个有效解决的经典难题。 您描述的算法听起来像贪婪算法 请查看此Wikipedia文章以获取更多信息: 切割库存问题

===============>>#2 票数:5

我担心这个问题没有具体的想法 - 但你可以研究一下' 遗传算法 '(这会这样的)......

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

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

===============>>#3 票数:3

你所描述的确实被归类为Cutting Stock问题,正如Wheelie所提到的,而不是Bin Packing问题,因为你试图尽量减少浪费(剩余的总和)而不是使用的挤压数量。

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

===============>>#4 票数:2

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

再次, 维基百科来救援!

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

===============>>#5 票数:1

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

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

库存大小5米

需要切割尺寸(每个1个):

** 3,5

1

1,5 **

你的解决方案

3,5 | 1浪费0.5

1,5左右超过3,5

看到问题?

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

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

2 - 通过废物订购解决方案

3 - 选择最佳解决方案

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

5 - 转到1

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

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

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

===============>>#6 票数:1

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

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

  ask by Stacey Richards translate from so

未解决问题?本站智能推荐:

1回复

杆切割结果计算

我正在从CLRS书中学习杆切割算法。 我相信我了解逻辑,并且本 OJ接受了以下解决方案。 上面,我已经实现了本书所解释的逻辑,只是对本文进行了一些修改。 从书中 p是包含从1到n的杆长度的利润的输入数组,而r是用于存储结果的数组。 为什么在第6行上,当r [i]
2回复

为k人切割n个蛋糕,浪费最少

给定一个具有n个蛋糕半径的数组,以及一个整数(k)代表您需要多少人(或多个切片),那么从蛋糕中切出的面积最小,浪费最少的面积是多少? 数学不是我的强项,因此我很难准确确定每次导出正确区域所需要使用的算法。 我尝试对半径进行排序,然后将最大区域除以2,直到小于下一个区域,但这并不能给出一致
2回复

使用最少的边缘算法切割Minimu

如何为此编写多项式时间算法? 任何的想法?
1回复

树木边缘切割

通过移除其中一个边,树可以分成两个不同的树。 给定一个树,其中N节点由[0, N-1]范围内的整数唯一标识,我需要编写一个函数来查找需要从树中删除的边,这样所有的总和之间的差异结果树中的节点ID被最小化。 该函数应该打印它找到的标准输出(stdout)的最小差异。 该函数将收到以下
3回复

棒切割的变种

您将获得一根长度为X的木棍,在任意位置(整体)上有m个标记,并且标记表示相应地进行切割的位置。 为了将L长度的棍子切成两块,木匠收取L美元(无论这两个长度是否相等都无关紧要,即斩波成本与斩波点的位置无关)。 设计动态编程算法,计算最小总成本。 无法弄清楚复发。 在最近的一次编程采访中
2回复

切割库存问题

我试图用最少的水滴或浪费来筑巢材料。 我一直在寻找贪心算法,Bin装箱,背包,1D-CSP,分支机构,蛮力等等。 我很确定这是一个切割库存问题。 我只是需要帮助来提供运行它的功能。 我不只是有一个库存长度而是多个,并且用户可以输入他自己的不常见长度的库存。 任何帮助计算在PHP中
3回复

切割优化算法

我和我在大学的一些朋友被分配了一个实际的任务,即开发一个网络应用程序,用于优化从某种材料切割矩形部件。 像这个列表中的应用程序,但更简单。 基本上,如果互联网上有这种优化算法的源代码,我很感兴趣。 我打算使用Adobe Flex框架开发应用程序。 编程部分将在Actionscript 3
1回复

最小切割,每次切割都经过圆上的2个点

共有N个人,我们希望每个人只能吃一块蛋糕。 鲍勃(Bob)有他自己的最大化乐曲数量的方式。 对于每次切割,他都会尝试在切割之后制作尽可能多的较小碎片。 蛋糕是圆形的,每次切割都沿着一条直线,该直线穿过该圆两次。 不会有半截或半截。 为了让每个人都至少得到一小块蛋糕,他应该削减的最小
1回复

切割多边形算法

我正在尝试解决一个问题,其中必须将穿过最小/最大Y点的多边形对象拆分为多个部分,从而将创建新的矩形/多边形对象 这里红色标记的范围是我的x1,y1和x2,y2点,并且它里面的所有东西都必须删除,绿色标记的字段是删除红色标记的字段后必须创建的新对象,问题是我无法跟踪在哪里“关闭”新创建的矩
2回复

管道切割优化算法

我遇到了一个难题,即寻找一种算法来优化将一段管道切割成更短,不同长度的算法。 例如,您有一个10米的标准管道,您需要切割以下部分:4个0.7米的管道3个2.1米的管道7个5米的管道,等等。目标是保持找到最佳切割顺序,以进行切割为了尽量减少浪费 我有一个解决方案,但是我不确定这是最好的。