1.什麼情況下用動態規劃
動態規劃是針對一類求最優解的問題的演算法, 其核心是將乙個問題分解成為若干個子問題(這裡對應下文的子問題使用條件), 部分類似於分治的思想(不懂得可以參考歸併排序), 通過求每一次的最優決策, 來得到乙個最優解。在這裡最重要的就是子問題的思想。
2.子問題解決法的適用條件
1.具有相同的子問題:我們必須保證我們分割成的子問題也能按照相同的方法分割成更小的自問題, 並這些自問題的最終分割情況是可以解決的。
2.滿足最優子結構:一道dp問題其實就是乙個遞推問題,假設當前決策結果是f[n],則最優子結構就是要讓f[n-k]最優,最優子結構性質就是能讓轉移到n的狀態是最優的,並且與後面的決策沒有關係,即讓後面的決策安心地使用前面的區域性最優解的一種性質。
3.無後效性:他要求每個子問題的決策不能對後面其他未解決的問題產影響, 如果產生就無法保證決策的最優性, 這就是無後效性。往往需要我們找到乙個合適的狀態。
3.解題步驟
1.確定子問題
2.推出狀態轉移方程
3.確定邊界條件(狀態初始化)
4.確定實現方法
5.(確定優化方法)
演算法 動態規劃
動態規劃 把多階段過程轉化為一系列單階段問題,利用各階段之間的關係,逐個求解 演算法例子 1.鋼條切割 serling 公司購買長鋼條,將其切割為短鋼條,切割工序假設沒有成本支出,公司管理層希望確定最佳的切割方案。假設serling公司 一段長度為i英吋的鋼條的 為pi。鋼條的長度為整英吋,下表給出...
演算法 動態規劃
1 問題具有最優子結構性質。如果問題的最優解所包含的子問題的解也是最優的,我們就稱該問題具有最優子結構性質。比如說在揹包問題中,最高總價值 max 選擇不放該物品時達到的總價值,決定放該物品時揹包剩餘容量能達到的最大價值 該物品價值 顯然,最高總價值的解一定包含 選擇不放該物品時達到的總價值 和 決...
演算法 動態規劃
動態規劃的定義 動態規劃是運籌學的乙個分支,是求解決策過程的最優化的數學方法。20世紀50年代初美國數學家r.e.bellman等人在研究多階段決策過程的優化問題時,提出了著名的最優化原理,把多階段過程轉化為一系列單階段問題,利用各階段之間的關係,逐個求解,創立了解決這類過程優化問題的新方法 動態規...