演算法動態規劃演算法
1. 簡述動態規劃演算法的基本範式
動態規劃演算法通常用於求解具有某種最優性質的問題.在這類問題中,可能會有許多可行解.每一個解都對應於一個值,我們希望找到具有最優值的解.動態規劃演算法與分治法類似,其基本思想也是將待求解問題分解成若干個子問題,先求解子問題,然後從這些子問題的解得到原問題的解.與分治法不同的是,適合於用動態規劃求解的問題,經分解得到子問題往往不是互相獨立的.若用分治法來解這類問題,則分解得到的子問題數目太多,有些子問題被重復計算了很多次.如果我們能夠保存已解決的子問題的答案,而在需要時再找出已求得的答案,這樣就可以避免大量的重復計算,節省時間.我們可以用一個表來記錄所有已解的子問題的答案.不管該子問題以後是否被用到,只要它被計算過,就將其結果填入表中.這就是動態規劃法的基本思路.具體的動態規劃演算法多種多樣,但它們具有相同的填表格式.
2. 動態規劃演算法的基本思想
動態規劃演算法與分治法類似,其基本思想也是將待求解問題分解成若干個子問題。
拓展資料:
動態規劃的實質是分治思想和解決冗餘,因此動態規劃是一種將問題實例分析為更小的、相似的子問題,並存儲子問題的解而避免計算重復的子問題,以解決最優化問題的演算法策略
動態規劃所針對的問題有一個顯著的特徵,即它對應的子問題樹中的子問題呈現大量的重復。動態規劃的關鍵在於,對於重復的子問題,只在第一次遇到時求解,並把答案保存起來,讓以後再遇到時直接引用,不必要重新求解。
3. 動態規劃演算法的基本思想
動態規劃與其它演算法相比,大大減少了計算量,豐富了計算結果,不僅求出了當前狀態到目標狀態的最優值,而且同時求出了到中間狀態的最優值,這對於很多實際問題來說是很有用的。動態規劃相比一般演算法也存在一定缺點:空間占據過多,但對於空間需求量不大的題目來說,動態規劃無疑是最佳方法!
動態規劃與其它演算法相比,大大減少了計算量,豐富了計算結果,不僅求出了當前狀態到目標狀態的最優值,而且同時求出了到中間狀態的最優值,這對於很多實際問題來說是很有用的。動態規劃相比一般演算法也存在一定缺點:空間占據過多,但對於空間需求量不大的題目來說,動態規劃無疑是最佳方法!
動態規劃演算法和貪婪演算法都是構造最優解的常有方法。動態規劃演算法沒有一個固定的解題模式,技巧性很強。
動態規劃是運籌學的一個分支,是求解決策過程最優化的過程。20世紀50年代初,美國數學家貝爾曼等人在研究多階段決策過程的優化問題時,提出了著名的最優化原理,從而創立了動態規劃。