多步決策過程是指這樣壹種特殊的活動過程,它可以按時間順序分解成若幹個相互關聯的階段,每個階段都需要做出決策,整個過程的決策就是壹個決策序列。動態規劃算法是解決多階段決策過程優化問題的常用方法,難度大,技巧性強。利用動態規劃算法,很多貪婪算法或分治算法無法解決的問題,都可以優雅高效地解決。
動態規劃算法的基本思想是:將待求解的問題分解成若幹個相互關聯的子問題,先求解子問題,然後從這些子問題的解中得到原問題的解;對於重復出現的子問題,只在第壹次遇到時解決,並保存答案,以便以後再次遇到時可以直接引用答案,而不必再次解決。動態規劃算法將問題的解視為壹系列決策的結果。與貪婪算法不同的是,在貪婪算法中,每次采用貪婪準則時,都會做出不可撤銷的決策。在動態規劃算法中,還需要考察每個最優決策序列是否包含壹個最優決策子序列,即問題是否具有最優子結構性質。