NOIP普及讲座3-动态规划1.pptxVIP

  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文档。上传文档
查看更多
NOIP普及讲座3-动态规划1.pptx

从搜索到动态规划 点击添加文本 点击添加文本 点击添加文本 点击添加文本 引例(数塔问题) 设有一个三角形的数塔,顶点为根结点,每个结点有一个整数值。从顶点出发,可以向左走或向右走,从根结点13出发向左、向右的路径长度可以是: 13-11-7-14-7,其和为52 13-11-12-14-13,其和为63 若要求从根结点开始, 请找出一条路径,使 路径之和最大,输出路 径的长度。 点击添加文本 点击添加文本 点击添加文本 点击添加文本 引例(数塔问题) 【问题分析】 (1)贪心法 点击添加文本 点击添加文本 点击添加文本 点击添加文本 引例(数塔问题) 【问题分析】 (2)搜索: 点击添加文本 点击添加文本 点击添加文本 点击添加文本 引例(数塔问题) 【问题分析】 (3)动态规划: 点击添加文本 点击添加文本 点击添加文本 点击添加文本 引例(数塔问题) 点击添加文本 点击添加文本 点击添加文本 点击添加文本 动态规划的基本概念 (1)阶段:把所给问题的过程,恰当地分为若干个相互联系的阶段,以便能按一定的次序去求解。 (2)状态:状态表示每个阶段开始所处的自然状况和客观条件,它描述了研究问题过程中的状况。 (3)决策:决策表示当过程处于某一阶段的某个状态时,可以作出不同的决定(或选择),从而确定下一阶段的状态,这种决定称为决策。 点击添加文本 点击添加文本 点击添加文本 点击添加文本 动态规划的基本概念 (4)策略和最优策略:由所有阶段的决策组成的决策序列称为全过程策略,简称策略。 在实际问题中,从决策允许集合中找出最优效果的策略称为最优策略。 (5)状态转移方程:状态转移方程是确定两个相邻阶段状态的演变过程。 点击添加文本 点击添加文本 点击添加文本 点击添加文本 运用动态规划的条件 (1)最优化 子问题的局部最优将导致整个问题的全局最优,即问题具有最优子结构的性质。也就是说问题的一个最优解中包含着子问题的一个最优解。 (2)无后效性 当前阶段中的状态只能由上一个阶段中的状态转移方程得来,与其他阶段的状态没有关系,特别是与未发生的阶段状态没有关系,这就是无后效性。 点击添加文本 点击添加文本 点击添加文本 点击添加文本 动态规划算法的一般模式 (1)划分阶段:按照问题的时间或空间特征,把问题分为若干个阶段; (2)确定状态和状态变量:将问题发展到各个阶段时所处的各种情况用不同状态表示出来; (3)确定决策并写出状态转移方程:一般是根据相邻两个阶段各状态之间的关系来确定决策; (4)寻找边界条件:给出的状态转移方程是一个递推式,必须有一个递推的边界条件; (5)编写程序。 点击添加文本 点击添加文本 点击添加文本 点击添加文本 经典例题讲解 【例题1】拦截导弹(noi openjudge 8780) 问题描述: 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统。但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度。某天,雷达捕捉到敌国的导弹来袭。由于该系统还在试用阶段,所以只有一套系统,因此有可能不能拦截所有的导弹。 输入导弹依次飞来的高度(雷达给出的高度数据是不大于30000的正整数),计算这套系统最多能拦截多少导弹。 点击添加文本 点击添加文本 点击添加文本 点击添加文本 经典例题讲解 输入 第一行是一个整数N(不超过15),表示导弹数。 第二行包含N个整数,为导弹依次飞来的高度(雷达给出的高度数据是不大于30000的正整数)。 输出 一个整数,表示最多能拦截的导弹数。 样例输入 8 389 207 155 300 299 170 158 65 样例输出 6 点击添加文本 点击添加文本 点击添加文本 点击添加文本 经典例题讲解 【问题分析】 状态: f[i]代表打下第i颗导弹最多能打多少颗导弹 方程: f[i]=max(f[j])+1(1=ji)且第i颗导弹的高度要高于第j颗导弹的高度 点击添加文本 点击添加文本 点击添加文本 点击添加文本 【程序实现】 点击添加文本 点击添加文本 点击添加文本 点击添加文本 经典例题讲解 【例题2】饥饿的牛 问题描述: 牛在饲料槽前排好了队。饲料槽依次用1到N(1=N=2000)编号。每天晚上,一头幸运的牛根据约翰的规则,吃其中一些槽里的饲料。 约翰提供B个区间的清单。一个区间是一对整数start-end,1=start=end=N,表示一些连续的饲料槽,比如1-3,7-8,3-4等等。牛可以任意选择区间,但是牛选择的区间不能有重叠。 当然,牛希望自己能够吃得越多越好。给出一些区间,帮助这只牛找一些区间,使它能吃到最多的

文档评论(0)

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

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

版权声明书
用户编号:5243141323000000

1亿VIP精品文档

相关文档