网站大量收购闲置独家精品文档,联系QQ:2885784924

动态树问题及其应用.ppt

  1. 1、本文档共73页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
1’ Rake节点的划分 令r表示i的根. 将路径j?r作为新的Compress节点. 将j和j的子孙作为新的Rake节点. r j 1’ Rake节点的划分 令r表示i的根. 将路径j?r作为新的Compress节点. 将j和j的子孙作为新的Rake节点. i中路径j?r的左手方向和右手方向各为一个新的Rake节点. r j 2’ Compress节点的划分 令s,e分别表示i中路径的头和尾. s e j 2’ Compress节点的划分 令s,e分别表示i中路径的头和尾. s?j,j?e分别成为新的Compress节点 s e j 2’ Compress节点的划分 令s,e分别表示i中路径的头和尾. s?j,j?e分别成为新的Compress节点 j的其他子孙被划分成两部分, 分别作为新的Rake节点. s e j RC Trees 约定, 一个有根树对应RC Trees就是整个树的Rake Node. 这样的分解方式本身就保证度的限制(一个节点最多被剖分出4个子节点) 我们以右图为例,展示一棵原树如何被映射到像树。 Level 1 ? 选取I作为第1层剖分点,原Rake节点被剖分成4个部分,4个部分分别剖分。 Level 2 选取B,C,D,L作为第2层剖分点。 ? Level 3 选取F,E,G,H,K,J作为第3层剖分点。 ? Final 这样,我们就构建出了整个树的RC Trees。 ? Randomized 决定RC Trees深度的关键因素在于选择Next(i)中元素的方法. 一个比较好的方法是, 随机选择! 如果等概率的选择Next(i)中的元素, 可以证明这样的深度下界是Ω(ln2N). 问题并没有完全解决. 必须采取更为合理的随机策略. Randomized 对于Rake节点, 仍然采取等概率的方法选择. 对于Compress节点i, j表示Next(i)中的元素, 令Weight(j)表示j剩余的子孙个数(包括j). 现在以Weight(j)作为加权, 令S表示所有Weight(k)的和, 则j有Weight(j)/S的概率被选择. Randomized : Master Theorem 可以证明, 通过这样合理的改造, 一个N的点的树可以被映射到一个期望深度为O(lnN)的RC Trees. 基于这种思想, RP-Trees被提出. 事实上, 这就是Treap[7]通过RC思想在任意树的拓展. 通过这种思想, 我们可以得到均摊, 甚至是严格深度O(lnN)的算法. 小结 相比较于Path Decomposing和Divide Conquer, Rake Compress具有思想简单, 常数小, 实现复杂度低等特点. RC思想最大的特点是, 利用这种思想可以很方便地将各种平衡二叉树技巧拓展到任意树形态上去. 为Dynamic Trees Problem 注入了新的血液. Part III. Applications Applications … 网络优化 最大流[4] √ 最小费用流 … 动态算法 动态连通性[3,8] 动态最小生成森林[3] … … 最大流问题 最大流问题是非常经典的图论问题. 经典的解决算法有最短增广路, 预流推进. 通过改造最短增广路算法并应用动态树, 可以得到O(NMlnN)的算法. N为点数, M为边数. 经典的最短增广路算法是通过BFS, 每次在残余网络中找到一条最短S-T增广路并进行增广. Residual network Residual network 找到最短增广路 S?C ? E ? T 增广量为3 Residual network Residual network 找到最短增广路 S?A ? E ? T 增广量为8 Residual network 最大流问题 引理: 只需要O(NM)次增广. 证明: 考察当前最短路的必要边集A 所有S?T的最短路全部由A中元素组成 |A|≤M 每次都找到最短增广路, 增广后A中元素必有一条边被删除(残余量为0). 最大流问题 在S?T最短路长度被提高之前不可能有边从A外加入到A内. O(M)次增广后S?T增广路长度必被提高. 因此最多执行O(NM)次增广. 综上所述, 引理得证. 最大流问题 原始算法的时间复杂度为O(NM2). 令D(x)表示x到T的最短增广路下界. 对于所有残余量0的边u?v, 满足D(u)≤D(v)+1. 如果D(u)=D(v)+1, 则称u?v为有效边. 引理: 全部由有效边组成的到T的路径一定是最短路径! 最大流问题 每次在残余网络中沿着让D(x)递减的有效边前进. 并不断修正(抬高)D(x). 可以证明, 该优化方法将寻找最短增广路的时间降为均摊O(N), 所以需要的总时间降为O(N2M).

文档评论(0)

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

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

1亿VIP精品文档

相关文档