近似最短距离之个人思考

3. 个人思考

       在论文中提到用局部地标标签来降低错误,且局部地标标签是在生成树中求得的,因此最短路径生成树决定了局部地标标签选择的“准确性”。如图3-1为原图的一部分,令其中每条边的权值为1,顶点a为全局地标标签。

woniu

图 3-1

        以a为根结点的最短路径生成树如图3-2中生成树1所示。由公式D(s, t) = min{D(s,li) + D(s, li) – 2D(lca, li)}以及生成树1可得D1(c, h) =5,且结点c和h的局部地标标签为a。从原图显然有将b作为局部地标标签更接近于真实值。当原图的生成树如图3-2生成树2所示时,D2(c, h) = 3。但在生成树2中,D2(e, g) =3,大于在生成树1中,D1(e, g) = 1。

woniu

图3-2 生成树

       我们设想构造一颗最短路径全生成树,来去除局部地标标签选择带来的误差。图3-1的完全生成树如图3-3所示,其中虚线表示该两个结点具有祖先后代关系,但位于高层的那个结点具有多个父结点,例图中结点b与g,结点b、e、f均为结点g的父亲。利用完全生成树D(c, h) = 3,D(e, g) = 1,完全消除了因局部地标标签选择带来的误差。

woniu

图 3-3 完全生成树

3.1RMQ求LCA

3.1.1一般生成树

      (1) 对于生成树2进行深度优先遍历得到序列T = abcbdbghgigbaeafjfkfa,并记录结点在生成树中的层数。

      (2) 给定查询(s, t),首先在序列T中找到第一个s和t所在的位置,他们中间位于层数最小的结点即为结点s和t的LCA。

      例1:求LCA(c, h),T = abcbdbghgigbaeafjfkfa中标红处分别为结点c和结点h出现的第一个位置,且两个位置之间层数最小的为结点b,则可得LCA(c, h) = b。

      例2:求LCA(i, k),T = abcbdbghgigbaeafjfkfa中标红处分别为结点i和结点k出现的第一个位置,且两个位置之间层数最小的为结点a,则LCA(i, k) = a。

3.1.2完全生成树

        (1) 类似于一般生成树深度优先遍历完全生成树(图3-3)得到遍历序列T = abcbdbgbaegeafghgigfjfkfa,易得红色部分为完全生成树遍历序列比生成树1多处的结点。注意到虚线引入的结点(虚结点g)我们不继续深度遍历,而是记录该节点为虚访问结点。

        (2) 给定查询(c, h),首先在序列T中找到第一个c与h的位置(T = abcbdbgbaegeafghgigfjfkfa),先c和h之间存在虚结点g,将它用实际结点替换掉可得第一个h的位置应该在第一个虚拟结点g的位置,因此有LCA(c, h) = b。求得的结果与生成树1求的结果相同。

        (3) 给定查询(i, k),首先在序列T中找到第一个i与k的位置(T = abcbdbgbaegeafghgigfjfkfa),两个位置之间不存在虚结点,因此直接可得LCA(i, k) = f。求得的结果优于生成树1。

 

 

论文:Approximate Shortest Distance Computing: A Query-Dependent LocalLandmark Scheme

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值