三個特徵:
(1) 最有子結構(optimal substructure)
如果問題的最優解所包含的子問題的解也是最優的,我們就稱該問題具有最優子結構性質;
(2) 無後效性
有兩層含義:
子問題的解一旦確定,就不再改變,不受在這之後、包含它的更大的問題的求解決策的影響;
某階段的狀態一旦確定,則後面各階段不再受該階段決策過程的影響,而只與該階段的結果有關。
指在用遞迴演算法自頂向下對問題進行求解時,每次產生的子問題並不總是新問題,有些子問題會被重複計算多次。需要對子問題的結果(subproblem solutions)作記憶化儲存(memoized)。
演算法之動態規劃
一 思想 首先要了解 動態規劃 必須先知道什麼叫做 多階段決策 百科裡面對這個問題解釋的很全,我就load一段出來,大家得要好好品味,好好分析。上面圖中最後一句話就定義了動態規劃是要幹什麼的問題。二 使用規則 現在我們知道動態規劃要解決啥問題了,那麼什麼情況下我們該使用動態規劃呢?最優化原理 最優子...
演算法之動態規劃
鋼條切割問題 鋼條切割問題出現在 演算法導論 一書第204頁,作為動態規劃的例題出現,該題內容如下 serling公司購買長鋼條,將其切割為短鋼條 切割工序本身沒有成本支出。公司管理層希望知道最佳的切割方案。假定我們知道serling公司 一段長為i英吋的鋼條的 為pi i 1,2,單位為美元 鋼條...
演算法實驗之動態規劃
設有n種不同面值的硬幣,各硬幣的面值存於陣列t 1 n 中。現要用這些面值的硬幣來找錢,可以實用的各種面值的硬幣個數不限。當只用硬幣面值t 1 t 2 t i 時,可找出錢數j的最少硬幣個數記為c i,j 若只用這些硬幣面值,找不出錢數j時,記c i,j 輸入結果儲存在1.txt中,輸出結果儲存在2...