【重疊子問題定義】-你真的懂重疊子問題嗎?!

如果你對其他算法知識感興趣的話,可以考慮閱讀我的專欄:

算法設計與分析【專欄】

重疊子問題

事情經過

  今天,我在做動態規劃算法相關實驗的時候,考慮到了動態規劃的兩大特性: 最優子結構和重疊子問題。

  最優子結構的話,沒什麼好說的,就是原問題的最優解包含子問題的最優解。如果大家不理解的話,我就粗略的介紹一下我的理解:一個國家中有一名最強力的士兵(也就是問題的最優解),那麼他必須是他所在軍營中最強力的士兵(也是子問題的最優解),這樣他纔可能是這個國家最強力的士兵。

  其中重疊子問題引起了我的注意,以前我對於這個概念就是一知半解的,經過我在網上粗略的查詢了一下,網上大部分人對這個概念的理解爲:子問題之間計算重複太多次,可以通過填表來解決這個問題。

  此時我就納悶了,這麼說的話,那麼動態規劃就還應該有一個特性啊,也就是子問題之間不獨立(這個是區分分治算法的關鍵,我認爲很重要)。

  於是我便去粗略的查找了書籍,發現書上並沒有對此的專門解釋(也有可能有,我沒找到),於是我便自己總結了一下:

重複子問題:子問題的計算出現重複,填表解決。
重疊子問題:子問題之間不獨立。

  然後就是沉醉在:我好厲害啊!我都會自己定義名詞了!以後就叫小王定理吧!

  抽完風之後,我便開始在網上認真尋找重疊子問題的概念了,皇天不負有心人,終於讓我在有道上找到了專門的解釋(也就是下圖)。
在這裏插入圖片描述
  那這麼說的話,動態規劃的特性就可以總結爲:最優子結構性質和重疊子問題。(小王定理沒了!)

  雖然結果和我當初想的不太一樣,但這次經歷還是讓我欣喜半天(尤其是我自己定義名詞的時候),我也對這個名詞有了更加深刻的印象,也希望大多數人也不要想我當初一樣,在理解的時候被誤導了。

  這時我又產生了新的疑問,導致重複計算的原因會不會是子問題之間的不獨立呢(我腦溢血想出來的)?希望大家可以發表一下自己的觀點,以上都是本人的粗略看法,希望大神勿噴。

後話

  1. 首先給大家說一下,博主經常在線,如果有什麼問題或者想法,可以在下方評論,我會積極反饋的。
  2. 其次還是要請大家能夠多多指出問題,我也會在評論區等候大家!
    在這裏插入圖片描述 .
    還有就是不夠2000字不能參加原力計劃,好煩!
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章