動態規劃方法是處理分段過程的最優化問題的一類及其有效的方法在實際生活中,有一類問題的活動過程可以劃分成若干個階段,而且在任意階段后的行為依賴于該階段的狀態,于該階段之前的過程如何到達這種狀態的方式無關。這類問題的解決是多階段的決策過程。
最優化化原理:多階段過程的最優決策系列應當具有性質:無論過程的初始狀態和初始決策是什么,其余的決策都必須相對于初始決策所產生的狀態構成一個最優決策序列。
問題的最優子結構性質和自問題的重疊性質是采用動態規劃算法的2個基本要素:
1:最有子結構性質:原問題的最優解白含了其子問題的最優解
2:子問題重疊性質:每次產生的子問題并不總是新的問題,有些子問題被反復計算多次。(與貪心算法的區別:貪心算法是不會計算子問題多次的。)
最優化原理與0 1背包問題:歸結為數學規劃問題 :
動態規劃一般步驟:
分析最優解的性質,找出最優子結構的特征,如果所求解的問題的最優性原理成立,則說明 動態規劃方法有可能解決該問題。而解決問題的關鍵在于獲取各個階段的遞推關系,該遞推關系遞歸地定義最優值,以自底向上的方式
cost(i,j) = min{c(i,j)+cost(i+1,l)} //牛B