背包問題是否本質上都是DP?


謝邀,題主的概念混淆了。動態規劃是解決決策類問題的一種思想方法,並不是一類問題。

猜測題主的意思是背包問題解法在本質上是否和 DP 相同。

背包問題是經典的 NP 完全問題,利用動態規劃的演算法只能作為其一種偽多項式解法,兩者在本質上不相同。


容量非整數的情況不都跪得妥妥的。只有背包容量為不太大的整數時才能用dp,沒有這條限制,數據量小可以DFS+分支定界(仍然指數時間複雜度),數據量大只能用各種啟發式演算法求近似解。


同意 丁戍,演算法競賽 的觀點

背包問題是一類問題(problem),而DP是一種解決問題的一類方法,DP只是在解決離散型背包問題時非常給力。但不能把不同類的東西放在一起說某東西是某東西的本質。

舉個不恰當的例子,我們不能說NP-難問題的本質是搜索。


Dp是有效解決其中一類背包問題的方法...


推薦閱讀:

用Python刷面試演算法題(如leetcode)是怎樣的體驗?
做 IT,如何從優秀變為卓越?
能幫助通俗解釋下NSGA3演算法嗎。?
學習機器學習深度學習之後,還需要掌握傳統演算法和數據結構嗎?

TAG:演算法 | 演算法與數據結構 | ACM競賽 | 動態規劃 |