我正在做一个涉及动态规划和分支定界的背包优化问题。我注意到,当问题的容量和项目变大时,填充动态规划算法的二维表会呈指数级变慢。在某些时候,我会假设我应该根据问题的大小切换算法(因为讲座给出了两种类型的优化)?
我试图用谷歌搜索我应该在什么时候(什么大小)从动态编程切换到分支定界,但我无法得到我想要的结果。
或者,是否有另一种看待背包问题的方法,我可以将动态规划和分支定界结合为一种算法,而不是根据问题的大小切换算法?
谢谢。
最佳答案
通常,当您有多种算法来解决问题但它们的运行时间具有不同的特征时,您可以确定(根据经验,而不是理论上)一种算法何时变得比另一种更快。这高度依赖于实现和机器。所以同时测量DP算法和B&B算法,然后找出哪个更好。
几个提示:
关于optimization - 何时从动态规划(二维表)切换到分支定界算法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17205016/