您的位置:首页 > 其它

基于局部landmark的近似最短距离计算

2013-11-28 19:13 211 查看

1. 研究动机

1.1 问题计算思想

对于求最短距离问题,准确的方法需要的信息量比较大,使得在传统的方法中进行在线查询比较不灵活,所以我们只需计算它们的近似最短距离。现有方法的计算思想:

(1) 选取一些顶点作为地标标签;

(2) 存储每个顶点到所有地标标签的实际最短距离;

(3) 任意一对顶点(s, t)之间的距离D(s, t) = min{D(s, li)+D(li, t)},其中li为第i个地标标签。

1.2 地标标签的选择

地标标签的选择存在的问题:

(1) 选取最优地标标签集合是NP-hard问题;

(2) 选取最小集合覆盖为NP-complete问题。

一下四种方法均可作为我们的地标标签的选择方案:

(1) Random selection

(2) Degree based selection

(3) Centrality based selection

(4) Coverage based selection

1.3 存在的问题

两个相距较近的顶点距所有的地标标签太远而造成误差过大。如下图所示,顶点l为地标标签,而当D(s, t) >>D(l, s) + D(l, t)时就会造成较大误差。



2. 改进方法

上述方法建立的标签成为全局地标标签,作者通过增加局部标签来降低错误率。计算思想:

(1) 选取若干顶点作为全局地标标签;

(2) 从每一个顶点出发建立最短路径生成树;

(3) 给定查询(s, t),在生成树中计算结点s与结点t的LCA(最小公共祖先);计算方法参考RMQ(RangeMinimum Query);

(4) 查询点(s, t)之间的近似最短距离D(s, t) = min{D(s, li) + D(s, li) – 2D(lca, li)},其中li为地标标签,lca为结点s与结点t的最小公共祖先。

优化1:压缩图

(1) 压缩Graph Incident Tree。GIT就是图中的树,如下图所示,红色区域内为一棵GIT树。对于该树只保留顶点a以及树中所有顶点到a的距离。



(2) 压缩Chain Nodes。如图所示,绿色部分为一个Chain Nodes。删除顶点i和j并存储顶点i和j到顶点h和k的距离。



优化2:local search

为了进一步减小错误率,将在查询点s和t到地标标签(包括全局和局部)上的所有顶点都向外扩展h步,若有交集且通过这些顶点使得s与t的距离变小,则最短距离更接近于真实值。



论文:Approximate Shortest Distance Computing: A Query-Dependent LocalLandmark Scheme
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: