日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

算法图解第九章笔记与习题(动态规划)

發布時間:2023/12/10 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 算法图解第九章笔记与习题(动态规划) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

算法圖解第九章筆記與習題(動態規劃)

文章目錄

  • 算法圖解第九章筆記與習題(動態規劃)
    • 9.1 動態規劃
    • 9.2 背包問題FAQ
    • 9.3 最長公共子串
        • 9.3.1 最長公共子序列
        • 9.3.2 動態規劃的應用
    • 9.4 小結
    • 練習
        • 習題9.1:
        • 習題9.2:
        • 習題9.3:

算法圖解pdf百度云鏈接,提取碼:jttg


9.1 動態規劃

十分詳細的動態規劃漫畫圖解。

動態規劃對每個單元格計算其最大價值的公式為:


9.2 背包問題FAQ

  • 可以偷商品的一部分嗎?

答案是不可以,因為在動態規劃中,沒有一部分這種狀態。如果需要考慮一部分這種情況,那么可以使用貪婪算法。

  • 動態規劃可以處理相互依賴的子問題嗎?

答案是不可以,動態規劃的強大之處在于它可以解決子問題并用這些子問題的答案來解決大問題。但只有在這些子問題不依賴其他子問題時,才能夠單獨求解,用來解決大問題。


9.3 最長公共子串

  • 動態規劃可幫助你在給定約束條件下找到最優解。在背包問題中,你必須在背包容量給定的情況下,偷到價值最高的商品。
  • 在問題可分解為彼此獨立且離散的子問題時,就可使用動態規劃來解決。

要設計出動態規劃解決方案可能很難,下面是一些通用的小貼士:

  • 每種動態規劃解決方案都涉及網格。
  • 單元格中的值通常就是你要優化的值。在前面的背包問題中,單元格的值為商品的價值。
  • 每個單元格都是一個子問題,因此你應考慮如何將問題分成子問題,這有助于你找出網格的坐標軸。

對于最長公共子串問題而言,需要找到兩個字符串中最長的公共子串。舉例兩個字符串為:hish和vista。

因此可將兩個字符串的字母作為坐標,而其最長子串長度為單元格內的值。

由于目標為最長子串,因此必須是連續的。偽代碼如下:

if word_a[i] == word_b[j]: # 兩個字母相同cell[i][j] = cell[i-1][j-1] + 1 else: # 兩個字母不同,則子串結束,單元格置零cell[i][j] = 0

9.3.1 最長公共子序列

最長公共子序列相比于最長公共子串可能更能夠得到字符串間的相似度。其所比較的內容為:兩個單詞中都有的序列包含的字母數。這個問題的解答更類似于背包問題。

由于不再要求連續,僅需要相同的字符序列越多越好。偽代碼如下:

if word_a[i] == word_b[j]: # 兩個字母相同cell[i][j] = cell[i-1][j-1] + 1 else: # 兩個字母不同,子序列仍繼續,單元格取左或上方向的最大值cell[i][j] = max(cell[i-1][j], cell[i][j-1])

9.3.2 動態規劃的應用

  • 生物學家根據最長公共序列來確定DNA鏈的相似性,進而判斷度兩種動物或疾病有多相似。最長公共序列還被用來尋找多發性硬化癥治療方案。
  • 你使用過諸如git diff等命令嗎?它們指出兩個文件的差異,也是使用動態規劃實現的。
  • 前面討論了字符串的相似程度。編輯距離(levenshtein distance)指出了兩個字符串的相似程度,也是使用動態規劃計算得到的。編輯距離算法的用途很多,從拼寫檢查到判斷用戶上傳的資料是否是盜版,都在其中。
  • 你使用過諸如Microsoft Word等具有斷字功能的應用程序嗎?它們如何確定在什么地方斷字以確保行長一致呢?使用動態規劃!

9.4 小結

  • 需要在給定約束條件下優化某種指標時,動態規劃很有用。
  • 問題可分解為離散子問題時,可使用動態規劃來解決。
  • 每種動態規劃解決方案都涉及網格。
  • 單元格中的值通常就是你要優化的值。
  • 每個單元格都是一個子問題,因此你需要考慮如何將問題分解為子問題。
  • 沒有放之四海皆準的計算動態規劃解決方案的公式。

練習

習題9.1:

  • 假設你還可偷另外一件商品——MP3播放器,它重1磅,價值1000美元。你要偷嗎?

偷。


習題9.2:

  • 假設你要去野營。你有一個容量為6磅的背包,需要決定該攜帶下面的哪些東西。其中每樣東西都有相應的價值,價值越大意味著越重要。
  • 水(重3磅,價值10);書(重1磅,價值3);食物(重2磅,價值9);夾克(重2磅,價值5);相機(重1磅,價值6)。 請問攜帶哪些東西時價值最高?

水,食物,相機。


習題9.3:

  • 請繪制并填充用來計算blue和clues最長公共子串的網格。
BLUE
C0000
L0100
U0020
E0003
S0000

總結

以上是生活随笔為你收集整理的算法图解第九章笔记与习题(动态规划)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。