计算窗套(装饰)的有效使用

时间:2014-12-23 19:54:20

标签: algorithm math

我正在开发一款能够估算我的业务建筑材料的应用。我现在正在处理的部分专门处理窗户周围的装饰。

解释这个的最好方法是举个例子:

购买窗户装饰的长度为14英尺(168英寸)。假设我有5个不同大小的矩形窗户,每个窗户都由4个装饰件组成(顶部和底部,左右两侧)。我正在尝试构建一种算法,以确定以最少的浪费来削减这些碎片的最佳方法。

我已经研究过使用排列来计算每一个可能的结果并跟踪浪费,但是一旦我超过了数万个窗口(20个不同的修剪),超过数万亿的排列数量。

有没有人对我如何做到这一点有任何见解。

感谢。

2 个答案:

答案 0 :(得分:1)

您正在查看cutting stock problem的典型案例。

我发现this lecture from the University of North Carolina (pdf)相当清楚。更倾向于实施,通过一个示例贯穿始终,并且几乎没有要求 - 可能只是查找一些缩写词。但是如果你想要更多细节并且速度相当慢,那么这个主题也有2 hours of video lectures from the university of Madras

它依赖于多次解决the knapsack problem,如果您不想经历第二次线性优化问题,可以抓取directly from Rosetta Code

简而言之,您想要选择一些方法(每种长度的多少件)来切割库存(在您的情况下是窗饰),以及每种方式使用多少次。

你从一个简单的集合开始:对于你需要的每个长度,使用这个尺寸进行切割。然后迭代:背包问题提供了从当前配置中减少库存的最不利方法,然后单纯形法通过旋转从您的一组切割库存中“移除”这种组合。

答案 1 :(得分:-2)

为了为我所工作的公司优化窗户和双折门的窗框,我使用了这个简单的矩阵 - 我只是采用了最常见的开口并确定了最合理和最佳的切割长度。

例如,3050窗口可以通过使用一个8'切割和一个12'切割来修剪浪费。

enter image description here