Two algorithms for maintaining order in a list
STOC '87 Proceedings of the nineteenth annual ACM symposium on Theory of computing
An Efficient Deadlock Avoidance Technique
IEEE Transactions on Computers
On competitive on-line algorithms for the dynamic priority-ordering problem
Information Processing Letters
Maintaining a topological order under edge insertions
Information Processing Letters
Incremental evaluation of computational circuits
SODA '90 Proceedings of the first annual ACM-SIAM symposium on Discrete algorithms
Introduction to Algorithms
On-line Graph Algorithms for Incremental Compilation
WG '93 Proceedings of the 19th International Workshop on Graph-Theoretic Concepts in Computer Science
Two Simplified Algorithms for Maintaining Order in a List
ESA '02 Proceedings of the 10th Annual European Symposium on Algorithms
SODA '05 Proceedings of the sixteenth annual ACM-SIAM symposium on Discrete algorithms
A tight analysis of the Katriel–Bodlaender algorithm for online topological ordering
Theoretical Computer Science
Faster Algorithms for Incremental Topological Ordering
ICALP '08 Proceedings of the 35th international colloquium on Automata, Languages and Programming, Part I
Average-case analysis of online topological ordering
ISAAC'07 Proceedings of the 18th international conference on Algorithms and computation
An O(n2.75) algorithm for online topological ordering
SWAT'06 Proceedings of the 10th Scandinavian conference on Algorithm Theory
Average-case analysis of incremental topological ordering
Discrete Applied Mathematics
A batch algorithm for maintaining a topological order
ACSC '10 Proceedings of the Thirty-Third Australasian Conferenc on Computer Science - Volume 102
Incremental Cycle Detection, Topological Ordering, and Strong Component Maintenance
ACM Transactions on Algorithms (TALG)
Reallocation problems in scheduling
Proceedings of the twenty-fifth annual ACM symposium on Parallelism in algorithms and architectures
Hi-index | 0.00 |
Let G = (V, E) be a directed acyclic graph (dag) with n = |V| and m = |E|. We say that a total ordering ≺ on vertices V is a topological ordering if for every edge (u, v) ∈ E, we have u ∈ v. In this paper, we consider the problem of maintaining a topological ordering subject to dynamic changes to the underlying graph. That is, we begin with an empty graph G = (V, ø) consisting of n nodes. The adversary adds m edges to the graph G, one edge at a time. Throughout this process, we maintain an online topological ordering of the graph G. In this paper, we present a new algorithm that has a total cost of O(n2logn) for maintaining the topological ordering throughout all the edge additions. At the heart of our algorithm is a new approach for maintaining the ordering. Instead of attempting to place the nodes in an ordered list, we assign each node a label that is consistent with the ordering, and yet can be updated efficiently as edges are inserted. When the graph is dense, our algorithm is more efficient than existing algorithms. By way of contrast, the best known prior algorithms achieve only O(min(m1.5, n2.5)) cost.