- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验四动态规划算法设计与应用.doc
实验四 动态规划算法设计与应用
一. 实验目的和要求
1.加深对动态规划算法的基本原理的理解,掌握用动态规划方法求解最优化问题的方法步骤及应用;
2.用动态规划设计整数序列的最长递增子序列问题的算法,分析其复杂性,并实现;
3.用动态规划设计求凸多边形的三角剖分问题的算法,分析其复杂性,并实现。
4.选做题:用动态规划设计求解0/1背包问题的算法,分析其复杂性,并实现。
二.基本原理
动态规划是一种非常重要的程序设计方法,常用于求解最优化问题。最优化问题:给定若干个约束条件和一个目标函数,在某指定集合中求满足所有约束条件的且使得目标函数值达最大或最小的元素和相应的目标函数值,即:问题的最优值和最优解。
适用动态规划求解的问题的基本要素:
(1)满足最优性原理:即
一个最优化问题的最优解包含了其子问题的最优解。
(2)
无后向性:即某阶段状态一旦确定,就不受这个状态以后决策的影响。也即,某状态以后的过程不会影响以前的状态,只与当前状态有关,这种特性也被称为无后效性。
(2)具有重叠的子问题:即问题被分解成的子问题存在互相重叠。动态规划方法对于这些重叠的子问题只求解一次,以提高算法的效率。
该类算法设计与实现的要点
动态规划算法求解最优化问题的步骤:
(1) 找出问题的最优子结构。分析问题的最优解(最优值)的结构特征。
(2) 递归地定义最优值。 根据最优子结构,确定最优值所满足的递归公式。
(3) 计算最优值。根据最优值的递归公式,采用自底向上的迭代或自顶向下的递归,计算最优值。
(4) 构造最优解。在求解最优值的过程中要记录下得到最优值的相应最优解的信息,并根据该信息构造最优解。
注意:在计算最优值时应保存相应的信息:
(a) 已经求出的子问题的最优值(避免重复计算)。
(b) 最优解的有关信息。
动态规划算法求解其它问题的步骤:
(1) 根据最优化原理分析问题的解的结构。
(2) 递归地定义问题的解。
(3) 计算问题的解。 根据解的递归公式,自底向上或自顶向下地计算解,计算过程中注意保存已经求出的子问题的解。
其中,自底向上方法通??迭代来实现,适用于所有的子问题都需要解的情况,实现时要注意根据递归公式正确确定子问题的求解顺序。自顶向下方法通过递归来实现,适用于不必解所有的子问题的情况,实现时要注意标记子问题是否计算过,同一个子问题只在第一次递归调用时计算并存储结果。
四.实验内容
(一) 最长递增子序列问题
1.问题描述
求一个由n个整数组成的整数序列的最长递增子序列。一个整数序列的递增子序列可以是序列中非连续的数按照原序列顺序排列而成的。 最长递增子序列是其递增子序列中长度最长的。
2. 具体要求(若在ACM平台上提交程序,必须按此要求)――平台上1700题
输入:输入的第一行是一个正整数n,表示测试例个数。接下来几行是n个测试例的数据,每个测试例的数据由两行组成,其中第一行为一个正整数k (k=500),表示整数序列的长度,第二行给出整数序列,整数之间用一个空格隔开。(设给出的每个整数序列的最长递增子序列都是唯一的。)
输出:对于每个测试例输出两行,第一行为最长递增子序列的长度,第二行为最长递增子序列,整数之间用一个空格隔开。两个测试例的输出数据之间用一个空行隔开,最后一个测试例后无空行。
3. 测试数据
输入:2
5
3 1 4 2 3
6
1 3 9 5 2 6
20
1 2 7 13 3 5 10 24 12 4 9 16 53 6 83 8 23 11 31 47
输出:3
1 2 3
4
1 3 5 6
10
1 2 3 5 10 12 16 23 31 47
4. 设计与实现的提示
(1) 寻找最优子结构、写出递归方程是问题的关键。
(2) 以Ai为末元素的最长递增子序列(记为S(i)),等于所有对应于Aj=Ai的S(j), (j=1~i)中最长的那个最末再加上Ai;如果这样的S(j)不存在,那么Ai自身构成一个长度为1的以Ai为末元素的递增子序列。
(3) 最优解的信息在此是以Ai为末元素的最长递增子序列的前驱元素,应当记录下来。
5. 扩展内容
本题可以采用多种方法求解,可以尝试用不同思路求解。
(二) 凸多边形的三角剖分
1. 问题描述
设P是一个有n个顶点的凸多边形,P中的弦是P中连接两个非相邻顶点的线段。用P中的(n-3)条弦将P剖分成(n-2)个三角形(如下图所示)。使得(n-3)条弦的长度之和最小的三角形剖分称为最优三角剖分。
2. 具体要求(若在ACM平台上提交程序,必须按此要求)――平台上1701题
输入:输入的第一行是一个正整数m,表示测试例个数,接下来几行是m个测试例的数据,每个测试例的数据由两行组成,第一行
您可能关注的文档
- 基于LMI的模糊增益调参控制器的设计-电视技术.doc
- 基于pppoe技术的用户流控管理-网络服务.ppt
- 基于主动学习的图半监督分类算法的研究.doc
- 基于云计算的多路网络流媒体分布式最优存储与分配策略.doc
- 基于动态规划的凸多边形的最优三角剖分1、问题描述多边形是平面上.doc
- 基于复杂网络数据流密度的增量子空间数据挖掘方法.doc
- 基于极大独立集的协作竞价频谱分配算法-科学技术与工程.doc
- 基于混合优化算法的无功优化韩芳1,王成儒2(1.东北电力大学电气.doc
- 基于电子双板与PGP环境下的数学课堂教学[摘要]课堂教学中知识的.doc
- 基于肺部CT的肿瘤形态与纹理的三维变化检测熊婷,黄绍辉[],黄晓阳.doc
- 建筑施工方案——湛江恒大绿洲施工临时用水用电施工方案(23P).pdf
- 建筑施工方案——咸宁碧桂园施工管理工作报告(41P) .docx
- 建筑施工方案——中国建筑脚手架方案(正式)(18P) .docx
- 建筑施工方案——郑州恒大绿洲交楼施工组织设计-(1)(29P).docx
- 建筑施工方案——许昌碧桂园安全文明施工组织设计(32P) .docx
- 建筑施工方案——襄阳恒大翡翠华庭施工组织设计(34P) .docx
- 建筑施工方案——中建八局新建堤防挡土墙专项施工方案(78P) .docx
- 建筑施工方案——万科玉泉钢筋施工方案(35P) .docx
- 建筑施工方案——中建八局三亚喜来登主体施工组织设计鲁班奖(157P) .docx
- 建筑施工方案——镇江恒大绿洲2号楼施工任务书(21P).docx
文档评论(0)