基本概念
所謂貪心演算法是指,在對問題求解時,總是做出在當前看來是最好的選擇。也就是說,不從整體最優上加以考慮,他所做出的僅是在某種意義上的區域性最優解。貪心演算法沒有固定的演算法框架,演算法設計的關鍵是貪心策略的選擇。必須注意的是,貪心演算法不是對所有問題都能得到整體最優解,選擇的貪心策略必須具備無後效性,即某個狀態以後的過程不會影響以前的狀態,只與當前狀態有關。所以對所採用的貪心策略一定要仔細分析其是否滿足無後效性。
貪心演算法的基本思路
1. 建立數學模型來描述問題。
2. 把求解的問題分成若干個子問題。
3. 對每一子問題求解,得到子問題的區域性最優解。
4. 把子問題的解區域性最優解合成原來解問題的乙個解。
貪心演算法適用的問題
貪心策略適用的前提是:區域性最優策略能導致產生全域性最優解。實際上,貪心演算法適用的情況很少。一般,對乙個問題分析是否適用於貪心演算法,可以先選擇該問題下的幾個實際資料進行分析,就可做出判斷。
貪心演算法的實現框架
從問題的某一初始解出發;
while (能朝給定總目標前進一步)
由所有解元素組合成問題的乙個可行解;
貪心策略的選擇
因為用貪心演算法只能通過解區域性最優解的策略來達到全域性最優解,因此,一定要注意判斷問題是否適合採用貪心演算法策略,找到的解是否一定是問題的最優解。
例題分析
待續。。。
演算法學習 貪心演算法
所謂貪心演算法,是在對問題求解時,總是做出在當前看來最好的選擇。即,不從整體最優上加以考慮,它所做出的僅僅是在某種意義上的區域性最優解。貪心演算法不是對所有問題都能得到整體最優解,關鍵是貪心策略的選擇,選擇的貪心策略必須具備無後效性,就是某個狀態以前的過程不會影響以後的狀態,只與當前的狀態有關。貪心...
演算法學習 貪心演算法
想通過這篇部落格來分享一下學習貪心演算法和動態規劃的過程 首先什麼是貪心演算法?翻譯 話就是用簡單粗暴的方式,以最少的代價 占用的時間和空間 得出結果。比如某麵包店有a b c三種大小的麵包,其中a麵包可以提供10點能量售價5元,b麵包可以提供8點能量售價3元,c麵包可以提供2點能量售價1元。現在有...
貪心演算法學習感悟
經過這幾天的學習,貪心演算法的習題也新鮮出爐了,就我這兩天看到的練習題和訓練題來說一下我的心得吧,這兩天也比較頹,沒有做太多的題,只是在複習講過的例題,在努力地看懂。大體上貪心演算法我所遇到的的題也就是揹包問題的拓展和延伸,貪心演算法畢竟只是一種演算法,只是一種解題的公式,我們所要做的就是將問題讀懂...