Optimization 棒料切割“;“在更高的维度中”;

Optimization 棒料切割“;“在更高的维度中”;,optimization,dynamic,dimension,Optimization,Dynamic,Dimension,我可能在这里或那里使用了错误的术语,但请容忍我 我知道,通过动态规划,最初的棒切割问题的运行时间为n^2,这是我目前正在学习的。我的问题不在课程范围之内 然而,如果问题是最大化从更高维度对象的截面获得的价值,会发生什么?甚至超过3个? 如果D是维度数,当用于解决更高维度的棒料切割问题时,时间复杂度是否变为n^(1+D)? 我曾经研究过一个问题,问题是最大化从给定维度、给定区域的无限切割中获得的价值。例如,从[5x5]区域进行[2x3]、[1x4]切割。这些切割具有指定给它们的不同值 寻找哪些切割

我可能在这里或那里使用了错误的术语,但请容忍我

我知道,通过动态规划,最初的棒切割问题的运行时间为n^2,这是我目前正在学习的。我的问题不在课程范围之内

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

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

我曾经研究过一个问题,问题是最大化从给定维度、给定区域的无限切割中获得的价值。例如,从[5x5]区域进行[2x3]、[1x4]切割。这些切割具有指定给它们的不同值

寻找哪些切割值得使用的问题,实际上是我费心寻找(我认为是)O(n)算法的问题,但不值得实现,因为即使是一维杆切割问题也有n^2的复杂性。此外,除非给定数量的削减以及削减和价值本身是愚蠢的(在某些情况下永远不值得使用),否则这是不必要的

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

通过使用给定区域的尺寸,可以生成给定切割的优化解决方案网格,该网格将随着距离网格原点(0,0)的距离的增加而增加,但仅当切割可以占据该区域到该点时

我再次被迫在整个网格上进行比较,但在前面的for循环中进行比较,因为它现在是网格上的迭代。但是,这些比较是在网格的高度和宽度上分别进行的,结果是n个运行时,对于循环,在2
之内。就运行时间而言,它确实看起来总共是n^3

这只是一个学术兴趣的小问题。

有一个理论计算机科学堆栈交换,研究这个问题的专家可以回答你的问题。