FLS:一种支持更新的图可达性标记算法
【摘要】:
图中节点间的可达性判定,在现实中的多个领域有着广泛的应用,包括知识表达、程序分析、地理导航、Internet路由、基于RDF/OWL的本体查询、代谢网络和XML索引等。
一个传统的解决方法是通过最短路径算法来判定节点间的可达性,其时间复杂度是O(m),其中m=|E|(图的边数)。对于较大的图来说,显然速度过慢。
另一个传统的解决方法是预先计算好图中节点间是否可达,也即预先计算并存储图的传递闭包,则可在常数时间内判定可达性。然而,其空间复杂度O(n~2)过大不适用于大图,且不能有效支持图的动态更新。
其他的图可达性判定算法还有2-HOP,HOPI和Dual Labeling,但均不支持被标记图的动态更新,且前两种算法的时间复杂度和空间复杂度均过高,不适合应用于实际中。
为有效判定图中节点间的可达性,业已提出多种对图可达性信息进行编码的节点标记方案,但均无法有效地支持被标记图的动态更新。针对这一问题,本文提出一种新的分数区间标记方案(Fractional Labeling Scheme,FLS)及相应的算法,并给出了相关的理论结果和实验结果,实验结果证明FLS能更有效地支持图的更新并维持与原算法相当的时空复杂度。其特点是采用分数区间对节点作标记,在保持根据判断区间大小判断节点间可达性的便捷性上,利用了分数区间可无限细分的特性,使得可以方便处理插入新节点的操作,图的其它更新也只需对数据结构进行简单的调整,从而有效地支持图的动态更新。