动态规划-概论.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
动态规划-概论

* 算法设计与分析 第1章 算法概论 * 二叉搜索树的期望耗费示例 * 算法设计与分析 第1章 算法概论 * 构造最优二叉搜索树 问题关键:已知二叉搜索树中每个结点的访问概率,问这棵树整体的搜索时间最短是多少(称为最优二叉搜索树)。 在二叉搜索树中,设一次搜索的时间等于待访问结点的深度,则整体的搜索时间为: * 算法设计与分析 第1章 算法概论 * 如果要整体搜索时间最短,则访问概率高的结点应该比较靠近根结点。有点类似于是哈夫曼编码,但不同的是,二叉搜索树所有结点的左右顺序不能变化。所以无法像哈夫曼编码那样一味地把概率高的结点往上移。 可以设计这样一个递推关系:一棵树如果是最优二叉搜索树,那么要么它是空树,要么它的左、右子树也是最优二叉搜索树。 最优子结构性质! * 算法设计与分析 第1章 算法概论 * 将由 a1, a2, …, an 构成的二叉搜索树记为T 1, n ,其中ak(1≤k≤n)是T 1, n 的根结点,则其左子树T 1, k-1 由 a1, …, ak-1 构成,其右子树T k+1, n 由 ak+1, …, an 构成。 证明最优二叉搜索树满足最优子结构特性 ak T 1, n 以ak为根的二叉搜索树 T k+1,n T 1,k-1 若T 1, n 是最优二叉搜索树,则其左子树T 1, k-1 和右子树T k+1, n 也是最优二叉查找树。如若不然,假设T’ 1, k-1 是比T 1, k-1 更优的二叉搜索树,则T’ 1, k-1 的平均比较次数小于T 1, k-1 的平均比较次数,从而由T’ 1, k-1 、ak和T k+1, n 构成的二叉搜索树T’ 1, n 的平均比较次数小于T 1, n 的平均比较次数,这与T 1, n 是最优二叉搜索树的假设相矛盾。 * 算法设计与分析 第1章 算法概论 * 分析 设T i,j 是由记录 ai,…,aj 1≤i≤j≤n 构成的二叉搜索树,C i,j 是这棵二叉搜索树的平均比较次数。虽然最后的结果是C 1,n ,但遵循动态规划法的求解方法,需要求出所有较小子问题C i,j 的值,考虑从 ai,…,aj 中选择一个记录ak作为二叉搜索树的根结点,可以得到如下关系: 此结论为只考虑元素查找成功的情况! * 算法设计与分析 第1章 算法概论 * 定义w i,j 如下: 则二叉搜索树的平均搜索代价cost T 为(左、右子树的平均搜索代价分别为cost L 和cost R ): 考虑到查找成功与不成功的期望耗费 * 算法设计与分析 第1章 算法概论 * 对于n个元素的集合 a1, a2, …, an ,设C 0,n 是构造这个集合最优二叉搜索树的代价: * 算法设计与分析 第1章 算法概论 * 因此,对于一般的C i,j 得到如下动态规划函数: C i, i-1 0 1≤i≤n+1 式1 C i, i pi 1≤i≤n 式2 C i, j min C i, k-1 +C k+1, j +w i,j 1≤i≤j≤n, i≤k≤j min C i, k-1 +C k+1, j +w i,j 1≤i≤j≤n, i≤k≤j 式3 C i, k-1 和C k+1, j 分别是左右子树的最优平均搜索代价。 设一个二维表C[n+1][n+1],其中C[i][j]表示二叉搜索树T i, j 的平均比较次数。注意到在式3中,当k 1时,求C[i][j]需要用到C[i][0],当k n时,求C[i][j]需要用到C[n+1][j],所以,二维表C[n+1][n+1]行下标的范围为1~n+1,列下标的范围为0~n。 为了在求出由 a1, a2, …, an 构成的二叉搜索树的平均比较次数的同时得到最优二叉搜索树,设一个二维表R[n+1][n+1],其下标范围与二维表C相同,R[i][j]表示二叉搜索树T i, j 的根结点的序号。 * 算法设计与分析 第1章 算法概论 * 例如,集合 A, B, C, D 的搜索概率是 0.1, 0.2, 0.4, 0.3 ,二维表C和R的初始情况如图所示。 ? 0 1 2 3 4 1 0 0.1 2 0 0.2 3 0 0.4 4 0 0.3 5 0 0 1 2 3 4 1 1 2 2 3 3 4 4 5 C i, i-1 0 1≤i≤n+1 式1 C i, i pi 1≤i≤n 式2 C i, j min C i, k-1 +C k+1, j +w i,j 1≤i≤j≤n, i≤k≤j min C i, k-1 +C k+1, j +w i,j 1≤i≤j≤n, i≤k≤j 式3 0.4 2 0.8 3 1.0 3 1.1 3 1.4 3 1.7 3 * 算法设计与分析

文档评论(0)

***** + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档