動態規劃演算法.pptx

動態規劃演算法深謀遠慮以空間換取時間 動態規劃演算法基本概念動態規劃解題策略(1)動態規劃演算法(dynamic programming algorithm)使用動態規劃策略(dynamic programming strategy)解決問題。它將原問題分解成一系列子問題(subproblems),並依序解決子問題來解決原問題。為避免一再地解重複的子問 題,一旦解出子問題的解答(solution),即會將其存在表格(或陣列)中。當需要用到某一子問題的解答時,即直接從表格中取出其解答以節省計算時間,是一個「系統化」的、「節省不必要計算」的、「以空間換取時間」的演算法。一個動態規劃演算法一般先解出最簡單的子問題,並以一定的程序持續運行直至求出原問題解答為止。動態規劃解題策略(2)動態規劃演算法將一個問題P分解為一系列的子問題P1 , P2, …, Pn-1, Pn,並作出一系列的決策D1, D2, …, Dn-1, Dn來解決問題。若先完成i個到第j個(1?i?j?n)決策(也就是Di, …, Dj),則D1, …, Dj-1與Dj+1, …,Dn必須基於Di, …, Dj所產生的結果才可以得到問題的最佳解。這表示決策間必定有遞迴關係。動態規劃與貪婪演算法之比較比較:二者都是透過一系列的決策以解決問題,但是有以下的不同點:在貪婪演算法中,任何決策都是獨立(independent)的,都只要考慮區域最佳解(locally optimal)。這些區域最佳解最後會加成為全域最佳解(globally optimal solution)。在動態規劃演算法中,決策是相依的(dependent)。每個決策必須考慮其他決策所產生的結果才能求得全域最佳解(globally optimal solution)。使用動態規劃解題策略的演算法最長共同子序列演算法最大連續子序列和動態規劃演算法最小編輯成本演算法0/1 背包動態規劃演算法子集合加總動態規劃演算法矩陣鏈乘積演算法最佳二元搜尋樹動態規劃演算法多階圖最小成本路徑演算法Bellman-Ford最短路徑演算法Floyd-Warshall最短路徑演算法 最長共同子序列演算法最長共同子序列以下我們說明最長共同子序列(Longest common subsequence, LCS or LCSS)相關背景知識令X為一個由若干符號依序排列組成的序列(sequence),則X的子序列(subsequence)為從X刪除0個或多個符號(不必要為連續性的)的序列例: 令X = b a c a d,則ad, ac, bac, acad, bacad, bcd等與空序列都是A的子序列例: 序列X = b a c a d 與 Y = a c c b a d c b 的共同子序列(common subsequence)有: ad, ac, bac, acad等例: 序列X與Y的最長共同子序列(longest common subsequence)為: a c a d最長共同子序列應用:DNA序列比對DNA = {A|C|G|T}*(A: 腺嘌呤; C: 胞嘧啶; G: 鳥嘌呤; T: 胸腺嘧啶)S1=ACCGGTCGAGTGCGGCCGAAGCCGGCCGAAS2=GTCGTTCGGAATGCCGTTGCTGTAAAQ: S1與S2是否為相似的DNA序列?A: 這問題可以由找出S1與S2的最長共同子序列來解決。最長共同子序列應用:化身路徑群組化身路徑群組(Avatar Path Clustering):由於相似的個性,興趣或習慣,網路虛擬環境(Networked Virtual Environment, NVE)或巨量多人線上遊戲(Massively Multiplayer Online Game, MMOG)的用戶或化身(avatar)可能具有相似的行為模式,導致在虛擬世界中有著類似的化身路徑。我們希望將類似的化身歸類為一個群組,並為他們找到代表性路徑(representative path, RP)。參考論文: Jehn-Ruey Jiang, Ching-Chuan Huang, and Chung-Hsien Tsai, “.tw/~jrjiang/alg2010/AvatarPathClusteringP2PNVE.pdfAvatar .tw/~jrjiang/alg2010/AvatarPathClusteringP2PNVE.pdfPath Clustering in Networked Virtual Environments,?in?Proc. of?the?4th International Workshop on Peer-to-Peer Networked V

文档评论(0)

1亿VIP精品文档

相关文档