解題思路:
1.針對一組資料,定義了限制值和期望值,在滿足限制值的情況下,期望值最大
2.每次選擇當前情況下,最對限制值同等貢獻的情況下,對期望值貢獻最大的資料
3.舉幾個例子驗證一下貪心演算法的正確性
在很多情況下貪心演算法並不能給出問題的最優解,因為貪心演算法總是選擇當前情況下最優的解,比如在有權圖中尋找最短路徑,可能因為選擇了當前的最優解,而放棄了其他路徑之後的最優解。
貪心演算法的經典實戰:揹包問題,分糖果問題,錢幣找零,區間覆蓋,哈夫曼編碼
核心就是:分而治之,將原問題劃分成 n 個規模較小,並且結構與原問題相似的子問題,遞迴的解決這些子問題,然後再合併結果,就得到原問題的解。
分支演算法是一種處理問題的思想,遞迴是編碼的一種技巧。一般需要用分支演算法解決的問題都用遞迴來解決。
分支演算法在大資料中應用的比較明顯
分支演算法的經典實戰:求陣列的逆序對個數
回溯的處理思想有點類似於列舉,列舉出所有的解,找到符合期望值的解。把問題求解的過程分為幾個階段,每個階段,我們都會做出選擇,就像走路一樣,當發現這條路走不通,我們就回到上乙個岔路口,重新選擇,知道找到期望值。
回溯演算法的經典實戰:八皇后問題,零一揹包問題
什麼樣的問題適合用動態規劃? 「乙個模型,三個特徵」:
多階段決策最優解模型:
1.最優子結構:問題的最優解,包含子問題的最優解
2.無後效性:某階段的狀態,不受之後的狀態的影響,同時只用知道前面狀態值,不用管前面的狀 態是怎麼來的
3.重複子問題:不同的決策序列,到達某個相同的階段時,可能會產生重複的狀態
一般用貪心演算法解決的問題,都能夠用動態規劃來解決
動態規劃的經典實戰:0-1 揹包問題,最小路徑和
四大經典同步問題
一組生產者程序和一組消費者程序共享乙個初始為空,大小為n的緩衝區,只有緩衝區沒滿時,生產者才能把訊息放入緩衝區,否則必須等待,只有緩衝區不空時,消費者才能從中取出訊息,否則必須等待。由於緩衝區是臨界資源,它只允許乙個生產者放入訊息或乙個消費者從中取出訊息。關係分析 生產者和消費者對緩衝區訪問都是互斥...
深度學習四大經典書籍
我們都知道現在機器學習 深度學習的資料太多了,面對海量資源,往往陷入到 無從下手 的困惑出境。而且並非所有的書籍都是優質資源,浪費大量的時間是得不償失的。今天,給大家推薦這四本好書。推薦指數 本書自出版以來收到眾多好評,因為是 keras 作者寫的書,所以全書基本圍繞著 keras 講深度學習的各種...
資料探勘18大經典演算法
本文所有涉及到的資料探勘 的都放在了我的github上了。大概花了將近2個月的時間,自己把18大資料探勘的經典演算法進行了學習並且進行了 實現,涉及到了決策分類,聚類,鏈結挖掘,關聯挖掘,模式挖掘等等方面。也算是對資料探勘領域的小小入門了吧。下面就做個小小的總結,後面都是我自己相應演算法的博文鏈結,...