FANN问题综述

Flexible Aggregate Nearest Neighbor Queries in Road Networks 论文综述

本文的讨论基于论文
Flexible Aggregate Nearest Neighbor Queries in Road Networks
Published in: 2018 IEEE 34th International Conference on Data Engineering (ICDE)
论文链接:https://ieeexplore.ieee.org/document/8509295

论文概述部分请参照:
https://blog.csdn.net/weixin_43821874/article/details/94740033

问题的相关研究工作

最短路径算法

\qquad 最短路径算法是道路网络中最基本的操作之一,并且在过去的半个世纪中已经被广泛研究。 D i j k s t r a Dijkstra Dijkstra算法及其变体(例如, A ∗ A^* A算法)已广泛应用于基于位置的服务。我们可以使用下界(或其他启发式属性)或者使用物化技术来加速最短路径计算。距离的完全实现需要高存储成本,而 H i T i HiTi HiTi H E P V HEPV HEPV 部分地实现距离以使其适用于大图。 目前,PHL 是最快的方法,它将图形分解为最短路径并存储从每个顶点到其标签中最短路径的距离。

索引技术和层次结构

\qquad 索引技术和层次结构也广泛用于道路网络。 基本思想是递归地将图分割成子图,并预先计算子图中的一些捷径。通常需要保持层次结构平衡以获得更好的性能。 C H CH CH具有较低的内存开销,但当对象相对分散在图中时,它必须遍历大量节点。有人将 V o r o n o i d i a g r a m Voronoi\quad diagram Voronoidiagram移植到道路网络领域,但它经常导致不平衡的分区。 K. C. Lee等人使用 R O A D ROAD ROAD以分层方式索引道路网络,但如果对象稀疏且道路网络很大,则表现不佳。 G − t r e e G-tree Gtree具有优越的性能,而建立 i n d e x index index的成本是可接受。

欧几里得空间中的 k N N , A N N kNN,ANN kNNANN F A N N FANN FANN

\qquad 最近邻( k N N kNN kNN)查询已经被研究了几十年,并且前人已经开发了许多成功的方法来解决这个问题。 A b e y w i c k r a m a Abeywickrama Abeywickrama等。 研究了 k N N kNN kNN查询的不同内存算法,并证明了 I E R IER IER具有很好的潜力。 A N N ANN ANN问题已经在欧几里德空间和道路网络中进行了研究,并成功地适应了 t o p − k top-k topk算法。 I E R IER IER算法可以达到最佳性能,它使用 R R R树来索引数据对象,但只考虑Q中的部分点时效率不高。有算法使用 V o r o n o i Voronoi Voronoi图来划分道路网络,但它们通常会导致不平衡的划分,因此在大型道路网络中也是低效的。 Y. Li等人首先在欧几里得空间中研究了 F A N N FANN FANN,它推广了经典的 A N N ANN ANN问题并提供了更丰富的语义。他们提出了一系列精确算法和近似算法来解决这个问题,但由于道路网络的复杂性,这些算法无法直接使用。

\qquad 下面,对我们翻阅的相关论文进行分析与对比。从这些论文的对比中,我们对原文章,以及研究工作的展开有了更深的理解。

其它相关论文

1. D. Papadias, Q. Shen, Y. Tao, K. Mouratidis, “Group nearest neighbor queries”, ICDE, pp. 301-312, 2004.

\qquad 该文章先提出了几种用于有效地找到组最近邻居的算法,另外,针对 Q Q Q无法适应内存的情况进行技术拓展,涵盖索引和非索引查询点。假设 Q Q Q适合 m e m o r y memory memory并且 P P P R R R树索引。

2. Y. Li, F. Li, K. Yi, B. Yao, M. Wang, “Flexible aggregate similarity search”, SIGMOD, pp. 1009-1020, 2011.

\qquad 在这篇文章中,提出了为查询定义提出了一个额外的灵活性,其中相似性是对于某些支持0中p与Q的任何子集之间的距离的聚合。聚合最近邻居( A n n Ann Ann)查询,在空间和多媒体数据库中找到许多有用的应用程序。给定 M M M个查询对象的组 Q Q Q,它从数据库 P P P中检索到 Q Q Q的最大(或前k个)相似对象,其中相似性是检索到的对象p与之间的距离的聚合。

3. F. Li, B. Yao, P. Kumar, “Group enclosing queries”, IEEE TKDE, vol. 23, no. 10, pp. 1526-1540, 2011.

\qquad 这篇文章主要介绍了在聚合最邻近查询时为了进一步降低查询成本,特别是当维数增加时,如何转向近似算法。如果可以找到一个点的精确最近邻,主近似算法具有最差情况√2近似比;对于大到六维的大量数据集,其近似比率从不超过1.05。另外,该文章还讨论了如何将其扩展到更高的维度并且表明它仍然保持非常好的近似质量(仍然接近1)和低查询成本。在固定维度中,扩展√2近似算法以获得Geq问题的(1 +ε)近似解。两种近似算法在任何固定维度上都具有 O ( l o g N + M ) O(log N + M) OlogN+M查询成本,其中N和M是数据集P和查询组Q的大小。

4. M. Safar, “Group k-nearest neighbors queries in spatial network databases”, JGS, vol. 10, no. 4, pp. 407-416, 2008.

\qquad 该文章主要讨论了空间网络数据库中 K K K组最近邻( G K N N GKNN GKNN)查询的问题,并提出了一种基于真实网络距离的新方法。该方法基本上使用网络 V o r o n o i Voronoi Voronoi图属性以及渐进增量网络扩展来确定获得GKNN查询所需的内部网络距离。

5. Z. Xu, H.-A. Jacobsen, “Processing proximity relations in road networks”, SIGMOD, pp. 243-254, 2010.

\qquad 在这篇文章中,定义了三种类型的邻近关系,这些邻近关系引起位置约束,以模拟道路网络中的运动对象集之间的连续时空查询。和之前的论文不太,该文章的重点是同时评估大量连续查询,并且介绍了一种新颖的动态目标索引技术,它与新的道路网络划分方案一起限制了部分道路网络内的计算。这些技术将查询处理开销减少了95%以上。

算法不足及改进

D i j k s t r a − b a s e d A l g o r i t h m Dijkstra-based\quad Algorithm DijkstrabasedAlgorithm

\qquad 这是解决 F A N N R FANN_R FANNR问题一个较为基础的办法,还没有引入一些较为高级的结构及改进方案。从算法的执行效率来看,效率比较低并且时间复杂度较高,为 O ( ( ∣ E ∣ + ∣ V ∣ l o g ∣ V ∣ ) ∣ P ∣ ) O((|E|+|V|log|V|)|P|) O((E+VlogV)P)。空间复杂度也比较高,为 O ( ∣ P ∣ + ∣ Q ∣ + ∣ V ∣ + 2 ψ ∣ Q ∣ O(|P|+|Q|+|V|+2\psi|Q| O(P+Q+V+2ψQ)。

\qquad 除此之外,无论从是解决实际问题的哪个方面来看,算法的可变性都比较差。对于 F A N N R FANN_R FANNR问题,如果我们对 P P P Q Q Q进行增减,那么即使是一个点的变动,也会导致前功尽弃。具体来说,本算法是基于 D i j k s t r a Dijkstra Dijkstra算法的,只要图 G G G中有点的个数或位置的变化,都有可能使以 P P P中任意一点为源点到其他点的最短路径发生变化。从 ψ \psi ψ的变化来看,即使图 G G G没有发生变化,只要 ψ \psi ψ发生变化了,对 F A N N R FANN_R FANNR问题的查询都需要从头开始,不能利用已有的工作。

\qquad 在此,我们对第一种不足提出一些改进的办法。

  • 我们可以利用分支界限法的思想对一些不必要的计算进行舍弃。我们可以先计算出 P P P中某一点到 Q Q Q ψ ∣ Q ∣ \psi|Q| ψQ个点的距离之和,我们记这个点为 p m i n p_{min} pmin,距离之和为 d m i n d_{min} dmin。然后我们在计算 P P P其他点到 Q Q Q ψ ∣ Q ∣ \psi|Q| ψQ个点距离之和时,如果前 i ( i ≤ ψ ∣ Q ∣ ) i(i\le \psi|Q|) i(iψQ)个到 Q Q Q中点的距离之和大于等于 d m i n d_{min} dmin,那么就直接舍弃这个点,无需继续向下及计算。这样一来,我们就省去了一定的时间与空间。
  • 当计算从 P P P中的点到 Q Q Q中点的最小距离时,各个点之间是相互独立的,为了提高计算的速度,我们可以考虑使用并行的算法来对数据进行处理。虽然这样做并不会减少计算量,甚至还可能会增加一些,但并行处理会使计算时间大大减少,所以值得一试。
I E R − k N N F r a m e w o r k IER-kNN Framework IERkNNFramework

\qquad 这个算法可以说是对 D i j k s t r a − b a s e d A l g o r i t h m Dijkstra-based \quad Algorithm DijkstrabasedAlgorithm的一种改进,这里同样也是利用了分支界限的思想。利用 M B R ( M i n i m u n B o u n d R e c t a n g l e ) MBR(Minimun\quad Bound\quad Rectangle) MBR(MinimunBoundRectangle) R − t r e e R-tree Rtree的思想对 P P P中的各点进行划分,在算法预处理时将 Q Q Q ψ ∣ Q ∣ \psi|Q| ψQ个点到每个 M B R MBR MBR的最小距离计算出来作为权值与这个 M B R MBR MBR一起存到一个优先队列 H H H中( H H H中元素按照升序排列)。在算法正式开始时,算出 P P P中某一个点到 Q Q Q ψ ∣ Q ∣ \psi|Q| ψQ最小距离 d m i n d_{min} dmin,然后依次取出优先队列中的元素,对于权值大于 d m i n d_{min} dmin M B R MBR MBR,直接删除其中的元素。如此一来,就可以减少 P P P中多个点的计算。 但同时,这样做也导致了一些较为严重的问题。如果要对算法进行改进,可以从下列方面进行着手:

  • M B R MBR MBR R − t r e e R-tree Rtree的建立是较为复杂的,所以在数据预处理时需要花费很长时间,从而降低算法效率。
  • 对于 F A N N R FANN_R FANNR问题, R − t r e e R-tree Rtree的建立较为困难,很容易导致树的不平衡;从而使算法的效率变得低下。
  • 使用 R − t r e e R-tree Rtree的数据结构,使对 P P P各个节点的索引变得复杂,数据结构难以维护。当图中点的个数或位置发生改变时,花费时间较长,所以可变性比较差。
E x a c t − m a x A l g o r i t h m Exact-max Algorithm ExactmaxAlgorithm

\qquad 作为对 I E R − k N N F r a m w r o k IER-kNN\quad Framwrok IERkNNFramwrok的改进,这个算法极大地简化了数据结构,并且保持算法的高效性。但是,顾此很容易失彼。此算法利用了 R − L i s t R-List RList的数据结构(这是一种类似于一个由 ∣ Q ∣ |Q| Q个优先队列组成的列表),每个队列存储的依次为 { p k 1 , p k 2 , ⋯   , p k n } \{p_{k1},p_{k2},\cdots,p_{kn}\} {pk1,pk2,,pkn}。我们不妨令 d k i d_{ki} dki表示源点 q q q p k i p_{ki} pki的最短距离,队列中 d k i ≤ d k j i f f i ≤ j d_{ki}\le d_{kj}\quad iff \quad i\le j dkidkjiffij。当算法结束时,我们只能得到目标点 p ∗ p^* p与其到 ψ ∣ Q ∣ \psi|Q| ψQ个点中最小距离中最大的那一个,而不能得到 p ∗ p^* p到这些点的距离之和。这样一来,算法的适用范围就极大的缩小了。

\qquad 对于此种不足,我们提出了以下的改进方案。

\qquad 在数据预处理时,将每个优先队列中所有的权值存到一个Hash表中,以便后来取出。Hash表的结构类似于以 P P P中每个点为索引,寻找对应的权值。例如查找 q i q_i qi p j p_j pj的最小距离时,可以直接从 Q i [ p j ] Q_i[p_j] Qi[pj]取出值。如此一来,在最后得到目标点 p ∗ p^* p ψ ∣ Q ∣ \psi |Q| ψQ个对应点时,可直接利用这个结构进行查询,并计算出距离之和。从时间复杂度来看,在数据预处理时增加的时间为 O ( ∣ P ∣ ∣ Q ∣ ) O(|P||Q|) O(PQ),计算最大距离用时 O ( ∣ Q ∣ ) O(|Q|) O(Q);所以总体的时间复杂度仍为 O ( ( ∣ E ∣ + ∣ V ∣ l o g ∣ V ∣ ) ∣ P ∣ ) O((|E|+|V|log|V|)|P|) O((E+VlogV)P)。对于空间复杂度,增加的空间消耗显然为 O ( ∣ P ∣ ∣ Q ∣ ) O(|P||Q|) O(PQ),又因为原来的空间消耗为 O ( ∣ Q ∣ ∣ V ∣ ) O(|Q||V|) O(QV),所以总体的空间复杂度仍为 O ( ∣ Q ∣ ∣ V ∣ ) O(|Q||V|) O(QV)。综上来看,算法改进有一定效果。

A P X − s u m A l g o r i t h m APX-sum Algorithm APXsumAlgorithm

\qquad 这是一个近似算法,主要是通过减少了 P P P中点的个数的计算,来使算法的效率变得更高。当然,如果通过这种算法计算得出的结果与精确值相差甚远,那么即使算法效率再高也是毫无意义的。接下来,将通过对 d ∗ d^* d上界的证明来给出算法不适用的地方,其中 d ∗ d^* d为目标点 p ∗ p^* p ψ ∣ Q ∣ \psi |Q| ψQ个点的距离之和。算法证明如下:

在这里插入图片描述

\qquad 算法的不适用之处及不适用的原因如下:

  • 算法只能计算距离之和,而不能计算从 p ∗ p^* p到这 ψ ∣ Q ∣ \psi|Q| ψQ个点中距离最大的那个点 q q q以及 p ∗ , q p^*,q p,q之间的距离(我们设为 d p q d_{pq} dpq)。由上述的证明过程可知,我们可以得到近似值 d α d^{\alpha} dα的上界为 3 d ∗ 3d^* 3d,这个结果显然是可以接受的。而对于 d p q d_{pq} dpq来说,我们不能通过证明来得到它的上界,所以算法最后调用的 F A N N R FANN_R FANNR算法计算出来的 d p q d_{pq} dpq没有参考价值。
  • 算法只能用于欧氏空间且路径为直线的无向图的计算。让我们仔细来研究这几个字眼,首先是欧氏空间并且路径为直线。在算法证明的第四行和第七行,均用到了三角不等式;我们知道,如果路径为曲线时,两边之和未必大于第三边,那么这个证明就不成立,上界也就不正确了。除此之外,这个只适用于无向图而不能应用于有向图。由算法证明的倒数第三,四行可知,只有当 δ ( q τ , p ∗ ) \delta(q^\tau,p^*) δ(qτ,p) δ ( p ∗ , q τ ) \delta(p^*,q^\tau) δ(p,qτ)相等时相等时,才能完成这两行的转换。
  • 除此之外,这个算法只能算是一个预处理的算法,而不能说是一个独立的算法。它的效率等因素取决于算法的最后调用哪种 F A N N R FANN_R FANNR算法,所以算法不是十分的稳定
  • 最后,这个算法不能扩展到 k F A N N R kFANN_R kFANNR问题,即无法计算出 ψ ∣ Q ∣ \psi|Q| ψQ个点到 P P P k k k个点的最小距离。因为在算法的证明的第一行,它只能保证最小值 d α &lt; d τ d^\alpha &lt; d^\tau dα<dτ,而不能保证其他的 k − 1 k-1 k1个点所生成的值也小于 d τ d^\tau dτ
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值