算法分析与设计课程设计-举例1.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
算法分析与设计课程设计-举例1

算法分析与设计 课 程 设 计 报 告 课程名称 算 法 分 析 与 设 计 学 院 专业班级 学生姓名 学 号 成 绩 指导教师 《算法分析与设计》课程设计报告 设计题目 贪心算法解决活动安排问题 设计时间 年 月 日 设计性质 应用性 √设计性 √综合性 设计成绩 教师评阅: □ 设计目的明确; □ 操作步骤正确; □ 设计文稿(表格、程序、数据库、网页)符合要求; □ 设计结果正确; □ 设计分析总结全面; □ 设计报告规范; 课程设计答辩情况记录: □ 思路清晰;语言表达准确,概念清楚准备工作充分, 具备必要的报告资料;报告在规定的时间内完。回答问题有理论依据,基本概念清楚主要问题回答简明准确对前人工作有改进或突破,或有独特见解1课程实验概述 4 1.1 问题概述 4 1.2 目的与任务 4 1.3 开发环境 4 1.4 参考资料 4 1.5 任务完成的一般过程 4 1.6 软件配置 5 2 个人的构思与创意 5 2.1 构思 5 2.2 特色 5 3 用贪心算法解决活动安排的问题的实验及其结果分析 5 3.1 贪心算法简介 5 3.2 贪心算法思路 6 3.3 贪心算法实现 6 3.4 算法结果 7 3.4.1 实验结果 8 3.4.2 结果分析 8 3.5 算法分析 9 3.5.1 关键代码及解释 9 3.5.2 算法流程图 10 3.5.3 时间复杂度分析 11 4 实验个人小结 11 4.1总体实验分析总结 11 4.2 个人经验总结 11 4.2.1 收获 11 4.2.2 不足 12 1课程实验概述 1.1 问题概述 设有n个活动的集合E={1,2,……,n},其中每个活动都要求使用同一资源,如演讲会场等,而在同一时间内只有一个活动能使用这一资源。每个活动i都有一个要求使用该资源的起始时间si和一个结束时间fi,且sifi。如果选择了活动i,则它在时间区间[si,fi]内占用资源。若区间[si,fi]与区间[sj,fj]不相交,则称活动i与活动j是相容的。也就是说,当si=fj或者sj=fi时,活动i与活动j相容。活动安排问题就是要在所给的活动集合中选出最大的相容活动子集合。贪心算法并不总能求得问题的整体最优解。但对于活动安排问题,贪心算法A的规模最大。因此,这个方向非常明确,就是用贪心算法解决活动安排问题。 首先,贪心算法最大的难度在于选择贪心策略,只要选择正确的贪心策略就能通过贪心算法求得最优解,对于活动安排,以选择结束时间最早的活动为贪心策略是可以得到最优解的。 其次,既然是按照一定的顺序来选择活动,那么必将先要对活动按结束时间递增进行排序,因为排序后,编写贪心算法程序会变得十分简洁。 最后,在对所有活动进行选择完毕后,要程序中显示选择结果,以确实是否正确。 2.2 特色 本次编程,个人觉得最大的特色就是把贪心选择算法程序和结果显示程序分离开成单独的模块,这样会使得贪心选择算法变得更加简洁易懂,便于浏览阅读。 其次,在界面设计上,为了让前后衔接的更加美观,也设置的两个表格,以便显示输入是的活动表和排序后的活动表,这样可以很直观的看出此次设计的运行过程。 再者,我是通过设置全局变量,一次赋值或者排序后都可以在所有函数中调用,这也使得个模块的连接更加简单,没有复杂的地址调用,是代码更具易读性。 3 用贪心算法解决活动安排的问题的实验及其结果分析 3.1 贪心算法简介 贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的仅是在某种意义上的局部最优解。贪心算法不是对所有问题都能得到整体最优解,但对范围相当广泛的许多问题他能产生整体最优解或者是整体最优解的近似解。贪心算法并不总能求得问题的整体最优解。但对于活动安排问题,贪心算法A的规模最大。这个结论可以用数学归纳法证明。事实上,设E={1,2,...,n}为所给的活动集合。由于E中活动按结束时间的非减序列排列,故活动1具有最早的完成时间。首先证明活动安排问题有一个最优解以贪心选择开始,即该最优解中包含活动1。设是所给的活动安排问题的一个最优解,且A中活动也按结束时间非减序排序,A中的第一个活动是活动k。若k=1,则A就是以贪心选择开始的最优解;若k1,则设。由于f1fk,且A中活动是相容的。又由于B中活动个数与A中活动个数相同

文档评论(0)

yaocen + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档