- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
贪婪演算法GreedyAlgorithm
* * * * 演算法導論,探矽工作室 霍夫曼貪婪演算法的步驟範例(1/2) 演算法導論,探矽工作室 霍夫曼貪婪演算法的步驟範例(2/2) 演算法導論,探矽工作室 結論 瞭解機械排程、0/1背包問題、拓樸排序、霍夫曼碼等問題,及相對應的貪婪演算法 貪婪演算法並不保證永遠可以得到最佳解,但是它仍是一個有效率的演算法,而且在很多時候也可以得到最佳解,或者得到跟最佳解相去不遠的解。 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 演算法導論,探矽工作室 第12章貪婪演算法 講師:郭育倫 d95037@csie.ntu.edu.tw 演算法導論,探矽工作室 本章學習重點 機器排程 0/1背包問題 拓樸排序 霍夫曼碼 演算法導論,探矽工作室 最佳化問題(optimization problem) 定義 很多問題常常存在許多的解答,而每個解答相對地也可以有一個數值,不過,我們希望能找出一個有最佳數值(最大值或最小值)的解答,稱為最佳解(之一) 範例 每天可在最少時間做最多的事 網路的速度越快越好 …. 演算法導論,探矽工作室 貪婪演算法概述 在解決最佳化問題的過程中,通常是經過一個序列的步驟,而且在每個步驟中會有一群選擇 在所有解決最佳化問題的演算法中,貪婪演算法是最直覺的一種方法 方法 設定一個特定的選擇規範,稱為貪婪準則,以便在每一個步驟中做出目前看起來最好選擇,即局部最佳解 一旦做出了選擇,就不再更改,並希望這樣的選擇可以得到全域的最佳解 在一般情況下,其結果大多是非常接近最佳解。 是有效率的方法,但是並不保證永遠可得到(全域)最佳解 演算法導論,探矽工作室 機器排程 問題描述 有n件工作和無限多台機器,每件工作可在任一機器上得到處理。 假設每件工作的開始時間為si,完成時間為fi,而sifi,[si,fi]便為處理工作i時所經歷的時間區間。 兩件工作i和j重疊是指兩個工作的時間區間有重疊,例如區間[1,5]和區間[2,4]重疊,但是和區間[5,7]就不算重疊。 一個可行的工作分配是指,沒有任何兩件或兩件以上重疊的工作分配給同一台機器。因此,在可行的工作分配中,每台機器在任何時刻最多只處理一個工作 最佳的分配是指使用最少機器的可行方案,即為最佳解。 演算法導論,探矽工作室 貪婪準則 每次分配一件工作,而且按照每件工作的開始時間為次序來進行工作分配 選擇機器的準則 根據欲分配工作的開始時間,若此時有舊的機器可用,則將工作分配給舊的機器,否則就將任務分配給一台新的機器 演算法導論,探矽工作室 貪婪演算法 先依照工作的開始時間對每個工作做排序,開始時間較早的為優先 依次取出每一件工作 若有舊機器登記的執行時間在此工作的開始時間之前,則將工作分配給舊的機器,並更新該機器的執行時間為此工作的結束時間 否則就將任務分配給一台新的機器,並更新該機器的執行時間 時間複雜度:Ο(n2) 步驟1的排序需要Ο(nlogn) 步驟2需要Ο(n2) 演算法導論,探矽工作室 機器排程之範例 演算法導論,探矽工作室 機器排程範例之長條圖 演算法導論,探矽工作室 0/1背包問題(0/1 knapsack problem) 問題描述 有個小偷帶一個背包到某家商店偷東西,他找到n個商品,第i個商品價值Vi元,重Wi公斤,而他帶的背包最多只能裝C公斤的物品,其中Vi、Wi、C都是整數 他的背包應該怎麼裝才能帶走最有價值的商品? Why 0/1 ? 每個商品不是被拿走就是被留著這兩種狀況,而且每個商品不能被切割(如拿1/3個),也不能被拿超過一次 演算法導論,探矽工作室 數學表示式 取得 在以下的限制條件之下 的最大值 演算法導論,探矽工作室 第一種貪婪準則 從剩餘的商品中,選出可以裝入背包其價值最大之商品 也就是 在有足夠容量的條件下,價值最高的商品首先被裝入背包,然後是下一個價值最高的商品,以此類推 不能保證永遠得到最佳解!! 範例 考慮n=3,W={100,10,10},V={20,15,15},C=105 採用這個貪婪準則時,我們得到的解為X={1,0,0},而總價值為20。 而此範例的最佳解卻是X={0,1,1},總價值為30 演算法導論,探矽工作室 第二種貪婪準則 從剩下的商品中,選擇可裝入背包其重量最小的商品 不保證在任何情況下都可以得到最佳解!! 範例 考慮n=2,W={10,20},V={5,100},C=25 以此準則得到的解為X={1,0},但是其最佳解應該為X={0,1} 演算法導論,探矽工作室 貪婪演算法 依貪婪準則的不同,分別對商品的價值或重量作排序,價值較高或重量較輕的商品為優先。 依次考慮每件商品 若加上該商品的重量不超過背包最多可裝的重量C,則將
您可能关注的文档
最近下载
- 数码摄像机-松下-AJ-D965MC说明书.pdf VIP
- 2024年巡察整改专题民主生活会个人“聚焦四个方面”对照检查材料范文2篇.docx VIP
- 人工智能对文化产业的推动.pptx VIP
- 人教版(2024)七年级上册英语教学计划(含教学进度表).docx
- 软件的项目可行性的研究的报告编写.ppt VIP
- 一种用于处理高硫高砷金矿的提金剂及其制备方法.pdf VIP
- 中国甲状腺疾病诊治指南ppt.pptx VIP
- 《中国抗癌协会甲状腺癌整合诊治指南(2022精简版)》解读PPT课件.pptx VIP
- 一种澳洲坚果种质热敏感等级的精准诊断及其缓解新梢叶片热伤害的方法.pdf VIP
- 全球常见传染病防控概述.pptx VIP
文档评论(0)