我正在寻找一种在线算法来维护有向无环图的传递闭合,其时间复杂度小于每个边添加的O(N ^ 2)。我当前的算法是这样的:
For every new edge u->v connect all nodes in Pred(u) \cup { u } with all nodes in Succ(v) \ \cup { v }.
对于O(N ^ 2)边,这转化为O(N ^ 4)的总时间复杂度,这比例如Floyd-Warshall更差。
我正在寻找一种在线算法来维护有向无环图的传递闭合,其时间复杂度小于每个边添加的O(N ^ 2)。我当前的算法是这样的:
For every new edge u->v connect all nodes in Pred(u) \cup { u } with all nodes in Succ(v) \ \cup { v }.
对于O(N ^ 2)边,这转化为O(N ^ 4)的总时间复杂度,这比例如Floyd-Warshall更差。
Answers:
每个边缘相加的O(n)时间:
GF Italiano(1986):路径检索数据结构的摊销效率,理论计算机科学 48,273–281。
JA LaPoutré和J. van Leeuwen(1988):图的传递闭包的维护和传递的减少,Proc.Natl.Acad.Sci.USA。1987年工作组。