A Batch Algorithm for Maintaining a Topological Order David J. Pearce and Paul H.J. Kelly Victoria University of Wellington, New Zealand & Imperial College, London
Topological Orders
Updating Topological Orders
Affected Region
Updating Topological Orders Affected Region
Updating Topological Orders Unit Change Problem : Pearce, et al. 1990: Alpern, et al. 1996: Marchetti-Spaccamela, et al. 2006: Ajwani, et al. 2009: Bender, et al. 2008: Haeupler, et al. 2005: Katriel, et al. 2007: Liu, et al.
Batch Problem Definition: Given a batch of edge insertions, update the topological order Q) Can we do better than by processing them one at a time?
Batch Problem Definition: Given a batch of edge insertions, update the topological order Q) Can we do better than by processing them one at a time? A) Yes!
Previous MNR Algorithm Discovery – DFS to identify nodes reachable from tail in affected region
Previous MNR Algorithm Discovery – DFS to identify nodes reachable from tail in affected region
Previous MNR Algorithm Discovery – DFS to identify nodes reachable from tail in affected region
Previous MNR Algorithm Discovery – DFS to identify nodes reachable from tail in affected region
Previous MNR Algorithm Discovery – DFS to identify nodes reachable from tail in affected region
Previous MNR Algorithm Shift – marked nodes up the order, unmarked nodes down the order (in affected region)
Previous MNR Algorithm Shift – marked nodes up the order, unmarked nodes down the order (in affected region)
Previous MNR Algorithm Shift – marked nodes up the order, unmarked nodes down the order (in affected region)
Previous MNR Algorithm Shift – marked nodes up the order, unmarked nodes down the order (in affected region)
Previous MNR Algorithm Shift – marked nodes up the order, unmarked nodes down the order (in affected region)
Previous MNR Algorithm Shift – marked nodes up the order, unmarked nodes down the order (in affected region)
MNR Algorithm Shift – marked nodes up the order, unmarked nodes down the order (in affected region)
Our Novel Batch Algorithm Observation – edge insertions which overlap can be processed independently of others
Our Novel Batch Algorithm Observation – edge insertions which overlap can be processed independently of others Affected Region
Our Novel Batch Algorithm Discovery – identify “target node” for each node reachable from an insertion in affected region
Our Novel Batch Algorithm Discovery – identify “root node” for each node reachable from an insertion in affected region
Our Novel Batch Algorithm Discovery – identify “root node” for each node reachable from an insertion in affected region
Our Novel Batch Algorithm Discovery – identify “root node” for each node reachable from an insertion in affected region
Our Novel Batch Algorithm Discovery – identify “root node” for each node reachable from an insertion in affected region
Our Novel Batch Algorithm Shift – marked nodes up order and unmarked nodes down order; marked nodes moved just past their target
Our Novel Batch Algorithm Shift – marked nodes up order and unmarked nodes down order; marked nodes moved just past their target
Our Novel Batch Algorithm Shift – marked nodes up order and unmarked nodes down order; marked nodes moved just past their target
Our Novel Batch Algorithm Shift – marked nodes up order and unmarked nodes down order; marked nodes moved just past their target
Our Novel Batch Algorithm Shift – marked nodes up order and unmarked nodes down order; marked nodes moved just past their target
Our Novel Batch Algorithm Shift – marked nodes up order and unmarked nodes down order; marked nodes moved just past their target
Our Novel Batch Algorithm Shift – marked nodes up order and unmarked nodes down order; marked nodes moved just past their target
Our Novel Batch Algorithm Shift – marked nodes up order and unmarked nodes down order; marked nodes moved just past their target
Our Novel Batch Algorithm Shift – marked nodes up order and unmarked nodes down order; marked nodes moved just past their target
Our Novel Batch Algorithm Shift – marked nodes up order and unmarked nodes down order; marked nodes moved just past their target
Results on Sparse Random Graphs
Results on Denser Random Graphs
Applications Extensions: –Incremental Cycle Detection Applications: –Pointer Analysis –Software Model Checking –Constraint-based Local Search Algorithms –Dead-lock Detection –Machine Learning –Multiple Sequence Alignment
Conclusion That’s all folks!