貪心演算法理論概述

2021-08-21 17:45:44 字數 802 閱讀 9646

基本概念

貪心策略是指從問題的初始狀態出發,通過若干次貪心選擇得出最優值(或較優解)的一種解法

其實,從「貪心策略」一詞可以看出,貪心策略總是做出在當前看來最優的選擇。也就是說,貪心策略並不是從整體上

考慮問題,他所作的選擇只是在某種意義上的區域性最優解,而許多問題自身的特性決定了該題運用貪心策略可以得到最優解或

較優解。

例如:在n行m列的矩陣中找乙個最大的數可以用貪心。選n次,找出其最大值即可。

再如:設有n臺處理機p1,p2,....pn,和m個作業j1,j2,j3,....jm,處理機可並行工作,作業未完成不能中斷,作業ji在處理機上的時間是ti,求最佳解決方案,使得完成時間最短。

本題就不能用貪心策略。理由是:若n=3,m=6,則6個作業的時間分別是11,7,5,5,4,7,

用貪心策略(每次將作業加到空閒的機器上)時間為15,而搜尋策略最優解為14,但是貪心策略提供了乙個線索,那就是

每台處理時間不超過15,為搜尋提供了方便。

總之,貪心演算法不能保證求得的解是最佳的解,一般用來求某些最大最小解的問題,能確定某些問題的可行解的範圍,特別是給

搜尋演算法提供了依據。

貪心演算法的特點如下:

1)貪心選擇的性質:所謂貪心選擇的性質是指應用同一規劃,將原問題變為乙個相似的但規模更小的子問題,而後做出的

每一步選擇都是當前看似最佳的選擇。這種選擇依賴於已做出的選擇,但不依賴於未做出 的選擇。從全域性來看,運用貪心解決的問題在程式執行過程中無回溯過程。

2)區域性最優解:區域性最優解是貪心的數學描述。

例題可看我的貪心分類

推薦  田忌賽馬:

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

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

貪心演算法基礎理論

greedy演算法基本思想 貪心演算法是一種在每一步選擇中都採取在當前狀態下最好或最優的選擇,從而希望結果是最好或最優的結果。希望通過做出區域性優化選擇達到全域性優化選擇。演算法不一定總產生優 化解。greedy演算法產生優化解的條件 具有優化子結構 具有貪心選擇性 優化子結構 若乙個優化問題的優化...

FPGrowth演算法理論

背景 頻繁項集挖掘演算法用於挖掘 經常一起出現的item集合 稱為頻繁項集 通過挖掘出這些頻繁項集,當在乙個事務中出現頻繁項集的其中乙個item,則可以把該頻繁項集的其他item作為推薦 比如經典的購物籃分析中啤酒 尿布故事,啤酒和尿布經常在使用者的購物籃中一起出現,通過挖掘出啤酒 尿布這個啤酒項集...