当前位置:高等教育资讯网  >  中国高校课件下载中心  >  大学文库  >  浏览文档

清华大学出版社:《算法设计与分析》课程教学资源(PPT课件讲稿)第4章 贪心算法

资源类别:文库,文档格式:PPT,文档页数:58,文件大小:753.5KB,团购合买
4.1 活动安排问题 4.2 贪心算法的基本要素 4.3 最优装载 4.4 哈夫曼编码 4.5 单源最短路径 4.6 最小生成树 4.7 多机调度问题 4.8 贪心算法的理论基础
点击下载完整版文档(PPT)

清华大学出版社 TSINGHUA UNIVERSITY PRESS 第4章贪心算法

1 第4章 贪心算法

清华大学出版社 TSINGHUA UNIVERSITY PRESS 第4章贪心算法 顾名思义,贪心算法总是作出在当前看来最好的选择。 也就是说贪心算法并不从整体最优考虑,它所作出的 选择只是在某种意乂上的局部最伉选择。当然,希望 贪心算法得到的最终结果也是整体最优的。虽然贪心 算法不能对所有问题都得到整体最优解,但对许多问 题它能产生整体最优解。如单源最短路经问题,最小 生成树问题等。在一些情况下,即使贪心算法不能得 到整体最优解,其最终结果却是最优解的很好近似。 2

2 第4章 贪心算法 顾名思义,贪心算法总是作出在当前看来最好的选择。 也就是说贪心算法并不从整体最优考虑,它所作出的 选择只是在某种意义上的局部最优选择。当然,希望 贪心算法得到的最终结果也是整体最优的。虽然贪心 算法不能对所有问题都得到整体最优解,但对许多问 题它能产生整体最优解。如单源最短路经问题,最小 生成树问题等。在一些情况下,即使贪心算法不能得 到整体最优解,其最终结果却是最优解的很好近似

清华大学出版社 TSINGHUA UNIVERSITY PRESS 第4章贪心算法 本章主要知识点: 4.1活动安排问题 ·4.2贪心算法的基本要素 ·4.3最优装载 4.4哈夫曼编码 ·4.5单源最短路径 4.6最小生成树 ·4.7多机调度问题 ·4.8贪心算法的理论基础

3 第4章 贪心算法 本章主要知识点: • 4.1 活动安排问题 • 4.2 贪心算法的基本要素 • 4.3 最优装载 • 4.4 哈夫曼编码 • 4.5 单源最短路径 • 4.6 最小生成树 • 4.7 多机调度问题 • 4.8 贪心算法的理论基础

清华大学出版社 TSINGHUA UNIVERSITY PRESS 4.1活动安排问题 活动安排问题就是要在所给的活动集合中选出最 大的相容活动子集合,是可以用贪心算法有效求解的 很好例子。该问题要求高效地安排一系列争用某一公 共资源的活动。贪心算法提供了一个简单、漂亮的方 法使得尽可能多的活动能兼容地使用公共资源。 4

4 4.1 活动安排问题 活动安排问题就是要在所给的活动集合中选出最 大的相容活动子集合,是可以用贪心算法有效求解的 很好例子。该问题要求高效地安排一系列争用某一公 共资源的活动。贪心算法提供了一个简单、漂亮的方 法使得尽可能多的活动能兼容地使用公共资源

清华大学出版社 TSINGHUA UNIVERSITY PRESS 4.1活动安排问题 设有n个活动的集合E={1,2…,n,其中每个活动都要 求使用同一资源,如演讲会场等,而在同一时间内只有 个活动能使用这一资源。每个活动都有一个要求使用该资 源的起始时间si和一个结束时间f,且si<fi。如果选择了活 动,则它在半开时间区间[sf内占用资源。若区间[si,f) 与区间[Sj,f)不相交,则称活动与活动是相容的。也就是 说,当sif或jf时,活动与活动相容

5 4.1 活动安排问题 设有n个活动的集合E={1,2,…,n},其中每个活动都要 求使用同一资源,如演讲会场等,而在同一时间内只有一 个活动能使用这一资源。每个活动i都有一个要求使用该资 源的起始时间si和一个结束时间fi,且si <fi 。如果选择了活 动i,则它在半开时间区间[si, fi)内占用资源。若区间[si, fi) 与区间[sj, fj)不相交,则称活动i与活动j是相容的。也就是 说,当si≥fj或sj≥fi时,活动i与活动j相容

清华大学出版社 TSINGHUA UNIVERSITY PRESS 4.1活动安排问题 在下面所给出的解活动安排问题的贪心算法 greedySelector public static int greedySelector(int [s, int[ f, boolean aD) int n=s length-1 all-true for(int 1=2; K=fDi 束时间存储于数组s和f all-true 中且按结束时间的非减 序排列 count++ else ai]=false return count

6 4.1 活动安排问题 在下面所给出的解活动安排问题的贪心算法greedySelector : • public static int greedySelector(int [] s, int [] f, boolean a[]) • { • int n=s.length-1; • a[1]=true; • int j=1; • int count=1; • for (int i=2;i=f[j]) { • a[i]=true; • j=i; • count++; • } • else a[i]=false; • } • return count; • } 各活动的起始时间和结 束时间存储于数组s和f 中且按结束时间的非减 序排列

清华大学出版社 TSINGHUA UNIVERSITY PRESS 4.1活动安排问题 由于输入的活动以其完成时间的非减序排列,所 以算法 greedySelector每次总是选择具有最早完成 时间的和容活动加入集合A中。直观上,按这种方法 选择相容活动为未安排活动留下尽可能多的时间。也 就是说,该算法的贪心选择的意义是使剩余的可安排 时间段极大化,以便安排尽可能多的相容活动 算法 greedySelector的效率极高。当输入的活 动已按结束时间的非减序排列,算法只需O(n)的时间 安排n个活动,使最多的活动能相容地使用公共资源。 如果所给出的活动未按非减序排列,可以用 o(nlogn) 的时间重排

7 4.1 活动安排问题 由于输入的活动以其完成时间的非减序排列,所 以算法greedySelector每次总是选择具有最早完成 时间的相容活动加入集合A中。直观上,按这种方法 选择相容活动为未安排活动留下尽可能多的时间。也 就是说,该算法的贪心选择的意义是使剩余的可安排 时间段极大化,以便安排尽可能多的相容活动。 算法greedySelector的效率极高。当输入的活 动已按结束时间的非减序排列,算法只需O(n)的时间 安排n个活动,使最多的活动能相容地使用公共资源。 如果所给出的活动未按非减序排列,可以用O(nlogn) 的时间重排

清华大学出版社 TSINGHUA UNIVERSITY PRESS 4.1活动安排问题 例:设待安排的11个活动的开始时间和结束时间按结 束时间的非减序排列如下 i123|4 67891011 Si1305 538 5688212 f4567 91011121314

8 4.1 活动安排问题 例:设待安排的11个活动的开始时间和结束时间按结 束时间的非减序排列如下: i 1 2 3 4 5 6 7 8 9 10 11 S[i] 1 3 0 5 3 5 6 8 8 2 12 f[i] 4 5 6 7 8 9 10 11 12 13 14

清华大学出版社 TSINGHUA UNIVERSITY PRESS 4.1活动安排问题 算法 greedySelector的 计算过程如左图所示。 图中每行相应于算法的 次迭代。阴影长条表 示的活动是已选入集合A 的活动,而空白长条表 示的活动是当前正在检 查相容性的活动 01234567891011121314

9 4.1 活动安排问题 算法greedySelector 的 计算过程如左图所示。 图中每行相应于算法的 一次迭代。阴影长条表 示的活动是已选入集合A 的活动,而空白长条表 示的活动是当前正在检 查相容性的活动

清华大学出版社 TSINGHUA UNIVERSITY PRESS 4.1活动安排问题 若被检查的活动的开始时间Si小于最近选择的活动j 的结束时间f,则不选择活动i,否则选择活动i加入集 合A中。 贪心算法并不总能求得问题的整体最优解。但对 于活动安排问题,贪心算法 greedy Selecto却总能求 得的整体最优解,即它最终所确定的相容活动集合A的 规模最大。这个结论可以用数学归纳法证明

10 4.1 活动安排问题 若被检查的活动i的开始时间Si小于最近选择的活动j 的结束时间fi,则不选择活动i,否则选择活动i加入集 合A中。 贪心算法并不总能求得问题的整体最优解。但对 于活动安排问题,贪心算法greedySelector却总能求 得的整体最优解,即它最终所确定的相容活动集合A的 规模最大。这个结论可以用数学归纳法证明

点击下载完整版文档(PPT)VIP每日下载上限内不扣除下载券和下载次数;
按次数下载不扣除下载券;
24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
共58页,可试读20页,点击继续阅读 ↓↓
相关文档

关于我们|帮助中心|下载说明|相关软件|意见反馈|联系我们

Copyright © 2008-现在 cucdc.com 高等教育资讯网 版权所有