python學習動態規劃

動態規劃是什麼,意義在哪裏:

今天花了幾個小時,重新理解了一下dp。。。

首先我們要知道爲什麼要使用dp,我們在選擇dp算法的時候,往往是在決策問題上,而且是在如果不使用dp,直接暴力效率會很低的情況下選擇使用dp.

那麼問題來了,什麼時候會選擇使用dp呢,一般情況下,我們能將問題抽象出來,並且問題滿足無後效性,滿足最優子結構,並且能明確的找出狀態轉移方程的話,

dp無疑是很好的選擇。

無後效性是什麼呢,無後效性通俗的說就是隻要我們得出了當前狀態,而不用管這個狀態怎麼來的,也就是說之前的狀態已經用不着了,如果我們抽象出的狀態有後效性,很簡單,我們只用把這個值加入到狀態的表示中。

最優子結構:在決策問題中,如果,當前問題可以拆分爲多個子問題,並且依賴於這些子問題,那麼我們稱爲此問題符合子結構,而若當前狀態可以由某個階段的某個或某些

狀態直接得到,那麼就符合最優子結構

狀態轉移:這個概念比較簡單,在抽象出上述兩點的的狀態表示後,每種狀態之間轉移時值或者參數的變化。

接下來就是大量的訓練來達到熟練使用了
 

關於python的動態規劃詳細解釋和案例https://blog.csdn.net/cloudxli/article/details/81272861

面試動態規劃:https://blog.csdn.net/tongxinzhazha/article/details/77407648

回溯法:https://blog.csdn.net/tongxinzhazha/article/details/77628450

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章