計算機程序設計

動態規劃,基本原則

為了選擇最佳的解決方案時,執行編程任務有時需要大量加載個人計算機的存儲器中的數據組合的排序。 這樣的方法包括,例如,“分而治之”的編程方法。 在這種情況下,算法提供分離問題成單獨的更小的子任務。 這種方法只適用於那些小的子任務是相互獨立的情況下。 為了避免執行,如果相互依賴的子任務不必要的工作,利用在50年代提出的美國R.Bellmanom動態規劃方法。

該方法

動態規劃是確定最優解n維問題,分享她的N個獨立的階段。 他們每個人都是一個子任務對於一個變量。

這種方法的主要優點可以被認為參與了一維的優化問題,開發商的子任務,而不是一個n維問題,我們的首要目標是要“自下而上”。

明智的做法是在該子任務是相互關聯的情況下,即以應用動態規劃 有著共同的模塊。 該算法提供每一個子的決定一次,節省反應在一個特殊的表執行。 這使得有可能不是當他們用相同的子任務又見面了計算一個答案。

動態編程任務 解決問題 的優化。 這種方法的作者由R.貝爾曼最優原則配製:無論是每個步驟在該步驟中所定義的溶液的初始狀態下,所有的下列選擇最佳相對於狀態,其接收在步驟結束時的系統。

該方法提高了由變體,或遞歸的手段解決的任務的性能。

建設任務算法

動態規劃算法涉及的,這麼被分裂成兩個或兩個以上的子任務,以解決其任務是由所有的子任務的最優解決方案等任務的建設,它包括。 此外,有必要寫一個遞推關係,以及用於該任務作為一個整體計算最佳參數值。

有時,在第三步是要記住每個任務的進度一些額外的背景信息。 這就是所謂的回擊。

申請方法

當有兩個特徵,動態規劃應用:

  • 最佳的子任務;
  • 存在下,在重疊子問題的問題。

解決動態規劃的優化問題,首先需要說明的解決方案的結構。 任務有,如果解決方案是由它的子任務的最好的決定是最佳的。 在這種情況下,最好是使用動態規劃。

這個問題的第二個屬性,在這種方法中必不可少的 - 少數子任務。 使用相同的重疊子問題的問題的遞歸解決方案,它的數量取決於初始信息的大小。 答案是存儲在一個特殊的表,該程序利用這些數據可以節省時間。

特別有效的是使用時基本需要的任務分階段進行決策動態規劃。 例如,請考慮更換和修理設備的問題的一個簡單的例子。 比方說,在鑄造機械廠是生產輪胎的同時使輪胎有兩種不同的形式。 在這種形式之一出現故障,就必須拆卸機器。 可以理解的是,有時更有利可圖更換和為了拆卸機器的情況下的第二形式,該形式將在下一階段不可行的。 特別是因為它更容易,他們開始失效之前更換兩個工作形狀。 動態規劃方法確定在更換這些形式問題的最佳策略,並考慮到所有的因素:開採的持續形態,機器停工,廢舊輪胎和更多的成本損失的好處。

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 zhtw.delachieve.com. Theme powered by WordPress.