貪心演算法原理

2021-08-18 18:58:23 字數 536 閱讀 3911

使用貪心演算法需要具備兩個性質:貪心選擇性和最優子結構。

貪心選擇性是指所求問題的整體最優解可以通過一系列可以通過一系列區域性最優的選擇來達到。他總是作出當前最好的選擇,該選擇可以依賴於之前的選擇,但絕不依賴於將來的選擇和子問題的選擇,這是他與動態規劃的重要區別。

最優子結構是指乙個問題的最優解包含其子結構的最優解。

在證明這兩個性質的時候,比較好證的是證明最優子結構。

最優子結構一般通過反證法證明,即,如果該問題的最優解不是子問題的最優解,那麼假設子問題有乙個最優解,然後由該最優解構造出原問題的乙個最優解,產生了矛盾。需要注意的是,子問題是指作出貪心選擇之後的子問題。

貪心選擇性的證明一般先假設乙個問題的最優解,據此構造另乙個最優解,使其第一步是貪心選擇。

下面給出活動安排問題的這兩個性質的證明

貪心演算法原理

設計貪心演算法的三個步驟 將最優化問題轉化為這樣的形式 對其做出一次選擇後,只剩下乙個子問題需要求解 比較重要的一步 證明作出貪心選擇後,原問題總是存在最優解,即貪心選擇總是安全的 證明作出貪心選擇後,剩餘的子問題滿足性質 其最優解與貪心選擇組合即可得到原問題的最優解,這樣就得到了最優子結構 兩個關...

經典貪心演算法 貪心演算法概述

貪心演算法具有最優子問題結構,它的特點是 短視 每次選擇對當前局面最有利的決策,來一步步獲得最優解。我個人認為,貪心不是乙個具體的方法,而是一類方法,貪心演算法的關鍵不在於想到,而在於正確性的證明。要證明乙個貪心演算法是正確的,需要證明我們可以把乙個最優解逐步轉化為我們用貪心演算法所得到的解,而解不...

演算法 貪心演算法

把乙個複雜問題分解為一系列較為簡單的區域性最優選擇,每乙個選擇都是對當前解的乙個擴充套件,知道獲得問題的完整解。在解決問題的策略上目光短淺,只根據當前已有的資訊做出選擇,而且一旦做出了選擇,不管將來有什麼結果這個選擇都不會改變。換言之,貪心法並不是從整體最優考慮,它所做出的選擇只是在某種意義上的區域...