论文--浅谈贪心思想在动态规划中的应用

论文--浅谈贪心思想在动态规划中的应用

ID:39993055

大小:309.00 KB

页数:14页

时间:2019-07-16

论文--浅谈贪心思想在动态规划中的应用_第1页
论文--浅谈贪心思想在动态规划中的应用_第2页
论文--浅谈贪心思想在动态规划中的应用_第3页
论文--浅谈贪心思想在动态规划中的应用_第4页
论文--浅谈贪心思想在动态规划中的应用_第5页
资源描述:

《论文--浅谈贪心思想在动态规划中的应用》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、贪婪的动态规划——浅谈贪心思想在动态规划中的应用【关键字】贪心法,动态规划,状态,时间复杂度【摘要】贪心法和动态规划是信息学竞赛中的两种常用算法,本文着重讨论了贪心的思想是如何巧妙的运用到动态规划的解题中的。全文分三个部分,首先讨论了贪心思想运用到动态规划解题中的可行性和必要性,然后就贪心思想在动态规划中的两种基本应用分别做了举例说明,最后总结全文。【正文】引言贪心法和动态规划是信息学竞赛中的常用经典算法,而当某些问题的模型过于复杂的时候,由于状态过于庞大、转移困难等一系列的问题,常规的动态规划难于甚至无从下手。而在这个时候,巧妙的使用贪心思想,将其融入到

2、动态规划的解题中,动态规划便焕发出了新的光彩。1、贪心思想运用到动态规划中的必要性和可行性动态规划的原理是:在求解问题的过程中,通过处理位于当前位置和所达目标之间的中间点来找到整个问题的解。整个过程是递归的,每到一个新的中间点都是已访问过的点的一个函数。适合于动态规划法的标准问题必须具有下列特点:l1、整个问题的求解可以划分为若干个阶段的一系列决策过程。l2、每个阶段有若干可能状态。l3、一个决策将你从一个阶段的一种状态带到下一个阶段的某种状态。l4、在任一个阶段,最佳的决策序列和该阶段以后的决策无关。l5、各阶段状态之间的转换有明确定义的费用在实际的动态

3、规划的解题中,面临着两大困难:一是不知道题目是否可以用动态规划求解;二是即使能够想到用动态规划来求解,但是因为种种因素,算法的效率并不乐观。这个时候,使用贪心思想分析问题,可以让你在山穷水尽疑无路的时候,柳暗花明又一村。-14-在运用贪心思想的时候,主要是分析出问题的一些本质,或者分析出低效算法的一些冗余。当然,我们要根据题目的特殊信息,合理的运用好贪心思想,才能帮助动态规划发挥其强大的功效。下文就贪心思想如何解决动态规划面临着的这两大困难分别做了举例说明。2、贪心思想在动态规划中的应用一:确立状态动态规划当中,状态的确立是重点,而在实际的解题过程中,状态

4、的信息往往是隐含的,这个时候,合理的运用贪心思想,可以迅速的从繁芜丛杂的问题背景中巧妙地抽象出状态。我们通过下面的例子来看一看,贪心思想是如何帮助动态规划确立状态的。例题一青蛙的烦恼经典问题题目大意:池塘里有n片荷叶(1≤n≤1000),它们正好形成一个凸多边形。按照顺时针方向将这n片荷叶顺次编号为1,2,…,n。有一只小青蛙站在1号荷叶上,它想跳过每片荷叶一次且仅一次(它可以从所站的荷叶跳到任意一片荷叶上)。同时,它又希望跳过的总距离最短。请你编程帮小青蛙设计一条路线。算法分析:问题似乎是一个N个点的TSP问题经典的旅行商问题,NP问题,但却又是一个特殊

5、的TSP问题——题目中说明,N个点围成了一个凸多边形!如何合理的运用这个特殊的条件成为了解题的关键。原始的问题模型很容易使人放弃动态规划,因为状态难以抽象,状态转移也无从着手。但如果从问题特征出发,灵活运用贪心策略,却能巧妙的设计出一种高效的动态规划算法!先介绍一下TSP问题的一种局部搜索算法——2-最优算法。它从随机的一种可选路径出发(称为路径T),试图去改善它。我们在T中寻找出2条不相交的边,移动这两条边,如果新产生的路径比原来的路径优秀,那么就移动这两条边。这种移动称为2-交换。如图所示:可以根据这个TSP问题的局部最优算法容易想到,原问题的最短路线

6、中显然不存在相交的边,否则一定可以将这条路线“改进”成一条更优秀的路线。-14-根据上述结论可以知道:从1出发的第一步只能到2或者n,否则产生的路线一定不会是最优的。因此,原问题的模型变成了:寻找以1为起点,遍历凸多边形{1..N}中的顶点一次且一次的最短路线。根据上述结论可以知道,如果离开1到达2,接下来的任务是寻找以2为起点,遍历凸多边形{2..N}中的顶点一次且一次的最短路线;如果离开1到达N,接下来的任务是寻找以N为起点,遍历凸多边形{2..N}中的顶点一次且一次的最短路线。这是一个递归的过程!因此,状态可以这样表示:f[i,L,0]表示从i出发,

7、遍历{i..i+L-1}中的顶点一次且一次的最短距离;f[i,L,1]表示从i+L-1出发,遍历{i..i+L-1}中的顶点一次且一次的最短距离。状态转移方程是:f[i,L,0]=min{dist(i,i+1)+f[i+1,L-1,0],dist(i,i+L-1)+f[i+1,L-1,1]}f[i,L,1]=min{dist(i+L-1,i+L-2)+f[i,L-1,1],dist(i+L-1,i)+f[i,L-1,0]}f[i,1,0]=0,f[i,1,1]=0其中dist(a,b)表示第a个结点和第b个结点之间的欧几里德距离。问题的答案是f[1,n,0

8、]时间复杂度O(n2)。本题小结:本题中运用贪心思想合理的分析出了

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。