Algorithm 计算窗框的有效使用率(修剪)

Algorithm 计算窗框的有效使用率(修剪),algorithm,math,Algorithm,Math,我正在开发一个应用程序,它将为我的业务估算建筑材料。我现在正在做的部分是专门处理窗户周围的装饰 最好的解释方法是给出一个例子: 购买的车窗饰件长度为14英尺168英寸。假设我有5个不同尺寸的矩形窗户,所有窗户都由4块装饰条组成,每个装饰条的顶部和底部,以及右侧和左侧。我正在尝试建立一种算法,以确定以最少的浪费来切割这些碎片的最佳方式 我已经研究过使用排列来计算每一个可能的结果,并跟踪浪费,但是当我通过5个窗口时,超过万亿次的排列数量是20个不同的装饰件 有人知道我该怎么做吗 谢谢。您看到的是一个

我正在开发一个应用程序,它将为我的业务估算建筑材料。我现在正在做的部分是专门处理窗户周围的装饰

最好的解释方法是给出一个例子:

购买的车窗饰件长度为14英尺168英寸。假设我有5个不同尺寸的矩形窗户,所有窗户都由4块装饰条组成,每个装饰条的顶部和底部,以及右侧和左侧。我正在尝试建立一种算法,以确定以最少的浪费来切割这些碎片的最佳方式

我已经研究过使用排列来计算每一个可能的结果,并跟踪浪费,但是当我通过5个窗口时,超过万亿次的排列数量是20个不同的装饰件

有人知道我该怎么做吗


谢谢。

您看到的是一个典型的

我发现这一点相当清楚。更倾向于实现,整个过程中都有一个示例,很少有需求——也许只是查找一些首字母缩略词。但是,如果你想了解更多细节并以合理缓慢的速度,这个话题上也存在一些问题

它依赖于多次求解,如果你不想经历第二个线性优化问题,你可以抓住它

简言之,您需要选择一些方法,即在您的情况下,每种长度有多少件需要切割车窗装饰件,以及每种方法使用多少次


你从一个简单的集合开始:对于你需要的每一个长度,做一种只需要这个尺寸的切割方法。然后迭代:背包问题给出了从当前配置中削减库存的最不利方法,然后单纯形法通过旋转从一组削减库存的方法中删除此组合。

为我工作的公司优化窗户和双折门的窗框,我使用了这个简单的矩阵——我只是简单地选择了最常见的开口,并决定了什么是最合理和最佳的切割长度

例如,一个3050的窗户可以用一个8英尺的切口和一个12英尺的切口来修剪


这个问题是一个算法问题;它与Java或Android.P.S没有任何关系。您可能还需要更清楚地了解什么样的切割只允许垂直、45度或任何其他角度?这只是经典的下料问题还是某种形式的变化?我相信这是NP完全的。最好是找到一个近似算法。我见过用遗传算法解决类似的问题,但也许你可以用一个简单的贪婪算法更容易地找到一个可行的解决方案。@DavidZ如果你能加入,那么除了最后一块,就不会有任何浪费,它变得微不足道了