- 1、本文档共77页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[教育]第3章 动态规划
* 算法设计与分析 * 将由{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)是最优二叉搜索树的假设相矛盾。 * 算法设计与分析 * 分析 设T(i,j)是由记录{ai,…,aj}(1≤i≤j≤n)构成的二叉搜索树,C(i,j)是这棵二叉搜索树的平均比较次数。虽然最后的结果是C(1,n),但遵循动态规划法的求解方法,需要求出所有较小子问题C(i,j)的值,考虑从{ai,…,aj}中选择一个记录ak作为二叉搜索树的根结点,可以得到如下关系: 此结论为只考虑元素查找成功的情况! * 算法设计与分析 * 定义w(i,j)如下: 则二叉搜索树的平均搜索代价cost(T)为(左、右子树的平均搜索代价分别为cost(L)和cost(R)): 考虑到查找成功与不成功的期望耗费 * 算法设计与分析 * 对于n个元素的集合{a1, a2, …, an} ,设C(0,n)是构造这个集合最优二叉搜索树的代价: * 算法设计与分析 * 因此,对于一般的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)的根结点的序号。 * 算法设计与分析 * 例如,集合{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 * 算法设计与分析 * 在二维表C和R中只需计算主对角线以上的元素。 首先计算C(1, 2): 在前两个记录构成的最优二叉搜索树的根结点的序号是2。
您可能关注的文档
最近下载
- 教科版小学科学四年级下册总复习试题(连线题).doc VIP
- 长虹LED42C2000黑屏故障通病维修方法分享.doc
- 教科版(2025秋)四年级科学下册总复习之连线题(含答案) .pdf VIP
- 2025年机修钳工(高级技师)职业技能鉴定理论考试题库资料(含答案).pdf
- 三字经全文带拼音完整版 打印版.pdf VIP
- 科教版小学科学四年级下册期末复习专项训练题04——连线题(含答案+详细解析).docx VIP
- 江苏省苏北四市(徐州、宿迁、淮安、连云港) 2025届高三第一次调研测试思想政治试题(含答案).pdf VIP
- 消防员心理培训课件.pptx VIP
- 2024年高考政治真题汇编《哲学与文化》.docx
- 风力发电场生态保护及恢复技术规范-DB21.PDF
文档评论(0)