计硕3班 张亮 第三章作业

彳清风亍 2022-12-18 16:56:46

1. 概括第三章学习内容,总结第三章学习心得。

学习内容

动态规划算法:与分治法类似,动态规划算法的基本思想也是将代求解问题分解成若干子问题,但是经分解得到的子问题往往不是相互独立的。用分治法解决这类问题将重复计算公共子问题,效率很低,而动态规划法用表保存已解决子问题的答案,需要时再找出已求得的答案,就可以避免大量重复计算,从而提高计算效率。最优化问题是动态规划求解的一类典型问题。

最优化问题定义:有n个输入,问题解由n个输入的一个子集组成,这个子集必须满足某些事先给定的条件,这些条件称为约束条件;满足约束条件的解称为问题的可行解;满足约束条件的可行解可能不止一个,为了衡量可行解的优劣,事先给出一定的优劣判别标准,这些标准通常以函数的形式给出,称为目标函数;使目标函数取得极值的可行解称为最优解。这类问题就称为最优化问题。

学习心得:本章学习了动态规划算法,对于一个问题是否用动态规划法来求解,主要是看是不是解决最优化相关的问题,如果是一般就用动态规划法,典型的有0-1背包问题、最长公共子序列和矩阵连乘问题等。与分治法不同的是,适合用动态规划求解的问题,经分解得到的子问题往往不是互相独立的,若用分治法来解决这类问题,则分解得到的子问题数目太多,有些子问题被重复计算了很多次。如果我们能够保存已解决的子问题的答案,而在需要时再找出已求得的答案,这样就可以避免大量的重复计算,节省时间。

2.以{0-1}背包问题的动态规划算法设计为例,陈述对伪多项式时间复杂度概念的理解。

如果一个算法的传统时间复杂度是多项式时间的,而标准时间复杂度不是多项式时间的,也就是算法的复杂度与输入规模呈指数关系,与输入的数值大小呈多项式关系,则我们称这个算法是伪多项式时间的。0-1背包问题可以用动态规划算法Knapsack来进行解决,动态规划算法下的时间复杂度为O(物体个数*背包容积)=O(n*m),是伪多项式时间的。

3.最长公共子序列

 

4.矩阵连乘问题

 

 

 

...全文
60 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
CSDN-Ada助手 2023-01-13
  • 打赏
  • 举报
回复
您可以前往 CSDN问答-数据结构与算法 发布问题, 以便更快地解决您的疑问

144

社区成员

发帖
与我相关
我的任务
社区描述
高校教学社区
软件工程 高校
社区管理员
  • dainwnu
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧