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