是否存在一种算法,可以在插入/删除的情况下有效维护DAG的连接信息?


17

给定有向无环图,是否有可能有效地支持以下操作?G(V,E)

  • :确定 G中是否存在从节点 a到节点 b的路径isConnected(G,a,b)Gab
  • :在图形 G中 a b添加一条边link(G,a,b)abG
  • :删除从边缘 b ģunlink(G,a,b)abG
  • :向G添加一个顶点add(G,a)
  • :从G删除一个顶点remove(G,a)

一些注意事项:

  • 如果我们不允许,现在看来,这将是很容易保持连通性信息,使用不相交集类型的数据结构。unlink
  • 显然,可以使用深度或广度优先搜索,使用曲线图的幼稚基于指针的表示来实现。但这效率低下。isConnected

我希望所有这三个操作的摊销常数或对数时间。这可能吗?



1
您能解释一下如何使用不交集类型数据结构来解决更简单的情况(不取消链接)吗?
jbapple

@Tsuyoshi-这个问题上的链接看起来很有趣,我现在来看看它们。
贾斯汀·基尔帕特里克

(1)您正在寻找一种动态图算法,以实现定向可达性,并限制该图为DAG。如果我没记错的话,动态定向可达性要比无方向可达性难得多,但是在这里DAG属性可能会有所帮助。(2)是否remove也去除了入射边缘?如果是这样,那么要求该操作为O(log n)时间可能就太令人希望了……。
伊藤刚(Tsuyoshi Ito)

Answers:


19

您描述的问题是完全动态DAG可达性(也称为DAG上的完全动态可传递关闭)。之所以称为完全动态,是因为人们还研究只能删除的版本(然后称为递减可达性),以及只能插入的版本(称为增量可达性)。

在更新时间和查询时间之间有一些权衡。令为边数,n为顶点数。对于DAG,Demetrescu和Italiano(FOCS'00)给出了一种随机数据结构,该结构支持O(n 1.58)时间内的更新(边缘插入或删除),以及O(n 0.58)时间内的可达性查询(还支持节点插入/删除) ,在O(1)时间内);此结果由Sankowski(FOCS'04)扩展,可用于一般有向图。同样对于DAG,罗迪蒂(SODA'03)表明,您可以在总时间O(m n + I · n 2 + D)中维护传递闭包矩阵,其中mnn1.58n0.58mn+I·n2+D是插入数, D是删除数,查询时间当然是O( 1)。ID1

对于一般有向图,以下(更新,查询)时间是已知的:(O(),O(1))(Demetrescu和Italiano FOCS'00(摊销),Sankowski FOCS'04(最坏的情况)),( O(n2),Omn))(Roditty,Zwick FOCS'02),(O(m+nlogn),O(n))(Roditty,Zwick STOC'04),(O(n 1.58),O(n 0.58))和(O(n 1.495),O(n 1.495))由Sankowski(FOCS'04)设计。O(nm+nlognnn1.58n0.58n1.495n1.495

即使对于DAG而言,在不增加太多更新时间的情况下获得多对数查询时间也是一个主要的开放问题。


1
谢谢您的回答。尽管我不得不说,我对这些界限多么糟糕感到失望。:(
贾斯汀·基尔帕特里克

1
一个相关的问题:您是否可以向我介绍有关DAG的更简单问题,增量可达性和递减可达性的任何参考资料?
贾斯汀·基尔帕特里克

这并没有天真的dfs方法(O(1),O(n^2))或更好(O(m),O(n+m))
Thomas Ahle

4

我认为到目前为止最好的结果已在“为完全动态传递闭合保留动态矩阵”中进行了讨论。该论文讨论了具有查询时间和O n 1.58更新时间的随机算法。O(n0.58)O(n1.58)

(这仅涵盖您的问题的第一个版本,带有linkunlink不带有addremove。)


边界是建立在Strassen算法上的,因此常数很大。
Thomas Ahle
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.