动态规划 最优二叉搜索树

动态规划 最优二叉搜索树

ID:40622220

大小:398.00 KB

页数:11页

时间:2019-08-05

动态规划 最优二叉搜索树_第1页
动态规划 最优二叉搜索树_第2页
动态规划 最优二叉搜索树_第3页
动态规划 最优二叉搜索树_第4页
动态规划 最优二叉搜索树_第5页
资源描述:

《动态规划 最优二叉搜索树》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、课程设计说明书(论文)用纸摘要动态规划算法通常用于求解具有某种最优性质的问题。在这类问题中,可能会有许多可行解,每个解都对应一个值,要求找到具有最优值的解。其基本思想是将待求解问题分解成若干个子问题,先求解子问题,并把所有已解子问题的答案记录到一个表中,而不考虑这些子问题的答案以后是否被用到。用动态规划算法来求解最优二叉搜索树问题,可以描述为对于有序集S及S的存取概率分布(a0,b1,a1,…,bn,an),在所有表示有序集S的二叉搜索树中找出一棵开销最小的二叉搜索树。动态规划算法的有效性依赖于问题本身具有最优子结构性质和子问题重叠性质。最典型的就是路由器中的路由搜

2、索引擎查找一条指定的路由最坏情况下最多只用查找31次。该文给出了用动态规划算法构造最优二叉搜索树的详细步骤,并用C++语言具体实现了该算法,用一定的空间换取时间,提高了解决本问题的效率。关键词:动态规划,最优二叉搜索树,最优子结构II课程设计说明书(论文)用纸目录1问题描述12问题分析23算法设计34算法实现45测试分析6结论7参考文献8II课程设计说明书(论文)用纸1问题描述给定一个有序序列K={k1

3、的元素在树内时,表示搜索成功。当不在树内时,表示搜索失败,用一个“虚叶子节点”来标示搜索失败的情况,因此需要n+1个虚叶子节点{d0

4、问题具有最优子结构性质。证明:设Tij是有序集{xi,…,xj}关于存取概率分布(ai-1,bi,…,bj,aj)的一棵最优二叉搜索树,平均路长为pij。Tij的根结点存储元素xk。其左右子树Tl和Tr的平均路长分别为pl和pr。由于Tl是关于集合{xi,…,xk-1}的一个二叉搜索树,故pl≥pi,k-1。如果pl>pi,k-1,那么用Ti,k-1替换Tl可得到平均路长比Tij更小的二叉搜索树。这与Tij是最优二叉搜索树相矛盾。所以,左子树Tl是一棵最优二叉搜索树,同理可证右子树Tr也是一棵最优二叉搜索树,即最优二叉搜索树的子树也是最优二叉搜索树。建立递归关系式若

5、最优二叉搜索树Ti,j的根结点为k,最小平均路长为pi,j,m[i,j]表示Ti,j的开销,则有m[i,j]=wi,jpi,j,其中,可建立下列递归关系:M[i,j]=bk+(m[i,k-1]+wi,k-1)+(m[k+1,j]+wk+1,j) 而wi,j=bk+wi,k-1+wk+1,j 则m[i,j]=wi,j+m[i,k-1]+m[k+1,j](1)  将k=i+1,i+2,…,j分别代入<1>式,选取使m[i,j]达到最小的K,这样

6、递归关系式改为:  m[i,j]=wi,j+min{m[i,k-1]+m[k+1,j]}m[i,i-1]=0,1≤i≤n  解递归关系,m[1,n]就是所求的最优值。将对应于m[i,j]的断开位置k记录在s[i,j]中(也称为根表,记录子树的根),以便构造最优解。根据记录的最优断开位置s[i,j],可以容易地构造出最优解。第5页共8页课程设计说明书(论文)用纸3算法设计寻找最优子结构。一个最优二叉树的子树必定包含连续范围的关键字ki~kj,1<=i<=j<=n,同时也必须含有连续的虚叶子节点di-1~dj。如果一棵最优二叉查找树T有一棵含有关键字ki~kj的子树T'

7、,那么,T'也是一棵最优查找树,这通过剪贴思想可以证明。现在开始构造最优子结构:在ki~kj中,选定一个r,i<=r<=j,使以kr为根,ki~k(r-1)和k(r+1)~kj为左右孩子的最优二叉树。注意r=i或者r=j的情况,表示左子树或右子树只有虚叶子节点。定义e[i,j]为一棵包含关键字ki~kj的最优二叉树的期望代价。当j=i-1时没有真实的关键在,只有虚叶子节点d(i-1)。于是:当j=i-1时,e[i,i-1]=q(i-1)。当j>=i时,需要选择合适的kr作为根节点,然后其余节点ki~K(r-1)和k(r+1)~kj构造左右孩子。这时要考虑左右孩子

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

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

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