? ? ? 動態(tài)規(guī)劃算法通常用于求解具有某種最優(yōu)性質的問題。在這類問題中,可能會有許多可行解怔鳖。每一個解都對應于一個值,我們希望找到具有最優(yōu)值的解黄锤。
? ? 動態(tài)規(guī)劃算法與分治法類似,其基本思想也是將待求解問題分解成若干個子問題食拜,先求解子問題鸵熟,然后從這些子問題的解得到原問題的解。與分治法不同的是负甸,適合于用動態(tài)規(guī)劃求解的問題流强,經(jīng)分解得到子問題往往不是互相獨立的。若用分治法來解這類問題呻待,則分解得到的子問題數(shù)目太多打月,有些子問題被重復計算了很多次。如果我們能夠保存已解決的子問題的答案带污,而在需要時再找出已求得的答案僵控,這樣就可以避免大量的重復計算香到,節(jié)省時間鱼冀。我們可以用一個表來記錄所有已解的子問題的答案。不管該子問題以后是否被用到悠就,只要它被計算過千绪,就將其結果填入表中。這就是動態(tài)規(guī)劃法的基本思路梗脾。具體的動態(tài)規(guī)劃算法多種多樣荸型,但它們具有相同的填表格式
? ? ? 動態(tài)規(guī)劃算是一個常用的算法,與分治法都是將問題分成若干個小問題炸茧,但不同的是瑞妇,分成的子問題之間相互聯(lián)系