贪心算法求解超市找钱问题(共7页).doc
《贪心算法求解超市找钱问题(共7页).doc》由会员分享,可在线阅读,更多相关《贪心算法求解超市找钱问题(共7页).doc(7页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上数学与计算机学院论文名称: 贪心算法求解超市找钱问题 专业班级: 软件工程(1)班 学生学号: 学生姓名: 设计时间: 2014-5-20 至 2014-6-20 分 数: 2013-2014学年第2学期贪心算法求解超市找钱问题1 引言随着科学的发展,人们生活中面临的大数据量越来越多。生活的快节奏要求人们对这些庞大的数据进行简单快速的处理,在这种实际需求的背景下,计算机算法设计得到了飞速发展,线性规划、动态规划、贪心策略等一系列运筹学模型越来越多被应用到计算机算法学中。当一个问题具有最优子结构性质和贪心选择性质时,可用动态规划法来解决。但是贪心算法通常会给出一个更简单
2、、直观和高效的解法。贪心算法通过一系列的选择来得到一个问题的解。尽管贪心算法对许多问题不能总是产生整体最优解,但对诸如最短路径问题、最小生成树问题,以及哈夫曼编码问题等具有最优子结构和贪心选择性质的问题却可以获得整体最优解,而且所给出的算法一般比动态规划算法更加简单、直观和高效。2 贪心算法2.1 贪心算法概述贪心算法又称贪婪算法,是指在求解问题时,总是做出在当前看来是最好的选择,也就是说,贪心算法并不要求从整体上最优考虑,它所作的仅是在某种意义上的局部最优选择。当然,希望贪心算法得到的最终结果也是整体最优的。贪心算法并不是对所有问题都能得到整体最优解,但对范围相当广泛的许多问题它能产生整体最
3、优解或者是整体最优解的近似解。贪心算法可以简单描述为:对一组数据进行排序,找出最小值,进行处理,再找出最小值,再处理。也就是说贪心算法是一种在每一步选择中都采取在当前状态下最好或最优的选择,从而希望得到结果是最好或最优的算法。贪婪算法是一种对某些求最优解问题的更简单、更迅速的设计技术。用贪婪法设计算法的特点是一步一步地进行,常以当前情况为基础根据某个优化测度作最优选择,而不考虑各种可能的整体情况,它省去了为找最优解要穷尽所有可能而必须耗费的大量时间,它采用自顶向下,以迭代的方法做出相继的贪心选择,每做一次贪心选择就将所求问题简化为一个规模更小的子问题, 通过每一步贪心选择,可得到问题的一个最优
4、解,虽然每一步上都要保证能获得局部最优解,但由此产生的全局解有时不一定是最优的。贪婪算法是一种改进了的分级处理方法。其核心是根据题意选取一种量度标准。然后将这多个输入排成这种量度标准所要求的顺序,按这种顺序一次输入一个量。如果这个输入和当前已构成在这种量度意义下的部分最佳解加在一起不能产生一个可行解,则不把此输入加到这部分解中。这种能够得到某种量度意义下最优解的分级处理方法称为贪婪算法。 对于一个给定的问题,往往可能有好几种量度标准。初看起来,这些量度标准似乎都是可取的,但实际上,用其中的大多数量度标准作贪婪处理所得到该量度意义下的最优解并不是问题的最优解,而是次优解。因此,选择能产生问题最优
5、解的最优量度标准是使用贪婪算法的核心。 一般情况下,要选出最优量度标准并不是一件容易的事,但对某问题能选择出最优量度标准后,用贪婪算法求解则特别有效。最优解可以通过一系列局部最优的选择即贪婪选择来达到,根据当前状态做出在当前看来是最好的选择,即局部最优解选择,然后再去解做出这个选择后产生的相应的子问题。每做一次贪婪选择就将所求问题简化为一个规模更小的子问题,最终可得到问题的一个整体最优解。2.2 贪心算法的基本要素贪心算法通过一系列的选择得到问题的解,它所做的每一个选择都是当前状态下局部最好选择,即贪心选择。但是对于一个问题,怎么知道是否可以用贪心算法解决此问题,以及能否得到问题的最优解呢?这
6、个问题难以给予肯定的回答。但是,我们从许多可以用贪心算法求解的问题中看到这类问题一般具有两个重要的性质:贪心选择性和最优子结构性质。贪心选择性是指所求问题的整体最优解可以通过一系列局部最优的选择得到。因此,对于一个具体问题,它是否具有贪心选择性质,必须证明每一步所作的贪心选择最终可以得到整体最优的结果,即通过贪心选择后,原问题被简化为规模更小的类似子问题。而最优子结构性质,主要是指原问题的最优解包含子问题的最优解。2.3 贪心算法的特性通过对比能够用贪心算法解决的诸多问题,我们不难总结出贪心算法能够解决的问题的一系列特性:(1) 存在一个最优的方法来解决的问题。为了构造问题的解决方案,有一个候
7、选的对象是一个集合:比如不同面值的硬币。 (2) 随着算法的进行,将产生两个集合:一个包含已经被考虑过并被选出的候选对象,另一个包含已经被考虑过但是被丢弃的候选对象。(3) 算法中将产生一个用来检查一个候选对象是否提供了问题的解答的函数。当然,该函数并不考虑此时的解决方法是否最优。(4) 算中法另一个函数检查是否一个候选对象的集合是可行的,也即是否可能往该集合上添加更多的候选对象以获得一个解。和上一个函数一样,此时不考虑解决方法的最优性。(5) 选择函数指出哪一个剩余的候选对象可能构成问题的解。(6) 最后返回解的值。为了解决原问题,需要寻找一个构成解的候选对象集合,它可以优化目标函数,使得贪
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 贪心 算法 求解 超市 找钱 问题
限制150内