Algorithm 回溯的替代方案

Algorithm 回溯的替代方案,algorithm,Algorithm,我正在开发一个空间优化软件。它应该能够以优化的方式在更大的空间中安排小卷。有一些限制,例如一个卷不能移动,或者应该“位于”另一个卷的内表面,或者它不能被另一个卷覆盖,等等 每个体积都表示为一个三维轴对齐的边界框,或一组较小的三维AABB(它们组合成一个更复杂的体积) 我一直在考虑使用回溯来解决这个问题(特别是分支定界技术),但它在速度和内存方面都太贪婪了(即使是过于简单的使用) 有人知道适合这个问题的替代技术吗 我不知道。。。但我确信这种软件是存在的,所以有一种方法(我不知道) 感谢您的帮助。如

我正在开发一个空间优化软件。它应该能够以优化的方式在更大的空间中安排小卷。有一些限制,例如一个卷不能移动,或者应该“位于”另一个卷的内表面,或者它不能被另一个卷覆盖,等等

每个体积都表示为一个三维轴对齐的边界框,或一组较小的三维AABB(它们组合成一个更复杂的体积)

我一直在考虑使用回溯来解决这个问题(特别是分支定界技术),但它在速度和内存方面都太贪婪了(即使是过于简单的使用)

有人知道适合这个问题的替代技术吗

我不知道。。。但我确信这种软件是存在的,所以有一种方法(我不知道)


感谢您的帮助。

如果您还没有看过动态规划方法,我建议您看看。您的问题听起来类似于“切布”问题,这是一个典型的动态规划问题。下面是裁剪布的问题:

裁布。给你一块长方形的布,上面有 维度xy,其中X和Y是正整数,以及 n可使用布料制造的产品。对于每种产品i 2[1; n] 你知道需要一块尺寸为ai bi的长方形布料 产品的最终售价为ci。假设 ai、bi和ci都是正整数。你有一台可以 将任何一块长方形布水平切成两块 或者垂直。设计一种算法,确定最佳的投资回报 一块X-Y的布料,也就是说,一种裁剪布料的策略 由此产生的碎片所产生的产物的总和最大 销售价格。您可以自由复制给定的文件 产品如您所愿,如果需要,则不提供

以下是我如何将裁剪布问题划分为子问题:

V( i,j) = max { V(i - ai, j- bi ) + ci,
                V(i - bi, j - ai ) + ci
              }
是的,这个问题有“解决方案”,它们是大生意。很好地解决这个问题可以为你赚很多钱,因为它是NP难的,而且非常有用。

我的第一个想法是以离散线性规划的方式重新表述这个问题,这已经完成了,如果您有访问权限,请参阅下面的参考资料


MH和Hifi,Imed Kacem,Stephane Negre,Lei Wu(2010)“三维装箱问题的线性规划方法”离散数学电子笔记,36993–1000

在一个完美的可鹦鹉学舌的世界中,所有问题都可能是骆驼。但是别着急,事情可能会变得可疑…我没有真正理解你所说的…让剪布问题更容易一点的是,它总是把布一路剪断,所以你总是留下漂亮、规则的矩形。如果这台机器能够进行任意长度的切割,那么问题就更难了——而且可以找到更大价值的解决方案。