贪婪算法2.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
贪婪算法2

貪婪策略 貪婪策略(Greedy Method )常用來解決最佳化問題(Optimization Problem )。貪婪法是最直接的解法,每次的決策都是朝向目前 “最好 ” 的方向前進,而且不回頭。舉例來說,某一個銀行出納櫃檯要服務 n 個 顧客,銀行的目標是希望顧客在櫃檯等待的平均時間要最少。解決之道 是每次都從尚未服務的顧客中,選擇需要服務時間最短的顧客來服務, 如此就可達到預期目標。像這樣每次都選擇最小服務時間的策略就是一 種貪婪策略。 現在以實例說明此演算法。假設有 5 個顧客 A ,B ,C ,D ,E 幾乎同時到 達銀行櫃檯,其所需服務時間如下表: 顧客 服務時 間 A 5 B 1 C 4 D 2 E 3 根據貪婪演算法,銀行櫃檯將依序服務 B ,D ,E ,C ,A 。顧客在櫃檯等 待的平均時間為[1 + (1 + 2) + (1 + 2 + 3) + (1 + 2 + 3 + 4) + (1 + 2 + 3 + 4 + 5) ] / 5 = 7 。 再介紹一個可用貪婪策略解決的背包問題 (Knapsack Problem )。假設 有多個可分解的物件和一只限重 W 的背包,每件物件有其重量及其被選 取放入背包內的利益。請問要如何將物件放進背包內而使得獲得的利益 最大?解決的方法是每次在限重的情形下,選取尚未放入的物件中擁有 最大的利益與重量的比值之物件放入背包內。 設背包限重 100 ,有A ,B ,C ,D ,E 共五個物件,其資料如下表: 物件 重量 利益 利益/重量 A 10 20 2.0 B 20 30 1.5 C 30 66 2.2 D 40 40 1.0 E 50 60 1.2 因為物件 C 的利益/重量最高,所以將物件 C 放入背包內,此時背包的 重量為 30 。接著從物件A ,B ,D ,E 中挑出其利益/重量最高的物件 A 放入背包內,這時背包的重量為 30+10=40 。接下來,從物件B ,D ,E 中挑出其利益/重量最高的物件 B裝入背包內,之後背包的重量為 40+20=60 。再從剩下的物件D 和 E 中選出其利益/重量最高的物件 E 。由 於物件 E 整個放入背包內會超過重量 100﹐所以物件E 只能放入0.8 個。 放入以後得總重量為 60+50∗ 0.8=100 。最後得到的利益為66+20+30+60∗ 0.8=164 。物件裝入背包的情形整理於下表﹕ 物件 個數 累計利益 累計重量 C 1 66 30 A 1 86 40 B 1 116 60 E 0.8 164 100 接著介紹最小擴展樹(Minimum Spanning Tree)問題。圖 22.5是由頂 點(Vertex

文档评论(0)

ldj215322 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档