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