棒材切割"更高的尺寸"

时间:2016-10-16 03:27:46

标签: optimization dynamic dimension

我可能会在这里和那里使用错误的术语,但请耐心等待......

我知道原始的杆切割问题通过动态编程具有n ^ 2的运行时间,这正是我目前正在学习的。我的问题不在课程中。

然而,如果问题是最大化从更高维度的对象的部分获得的值,会发生什么?甚至超过3?

如果D是维数,当用于解决更高维度的棒切割问题时,时间复杂度是否变为n ^(1 + D)?

我已经解决了一个问题,即问题是从给定的区域中无限制地削减给定维度所获得的值。例如。 [2x3],[1x4]从[5x5]区域切入。这些剪辑分配了不同的值。

找到哪些削减是值得使用的问题,我实际上很难找到(我认为是)O(n)算法,但是不值得实现,因为即使是1维杆切割问题具有n ^ 2的复杂性。此外,除非给定数量的削减和削减和价值本身是愚蠢的(有些人从不值得使用),否则就没有必要了。

就我自己而言,我发现没有办法获得比n ^ 3更低的运行时限,因为我被迫检查二维中可能的部分。切割可以翻转(只要它们不超出给定区域,它们就会被考虑在内)。

通过使用给定区域的尺寸,可以为给定切割生成优化解决方案的网格,随着从网格的原点(0,0)进一步移动,该网格将增加,但仅当切口可以占据该区域时。

我再次被迫通过整个网格的比较来检查,但是在之前的for循环中,因为它现在是在网格上的迭代。但是,这些比较是在网格单独的高度和宽度上完成的,从而在2 for个循环内产生n运行时间。就运行时而言,它确实看起来总共n ^ 3。

只是一小部分学术兴趣。

0 个答案:

没有答案