Bounded incremental computation - Ramalingam, G. (University of Wisconsin at Madison, 1993)
Incremental computation concerns the re-computation of output after a change in the input. Incremental algorithms, also called dynamic or on-line algorithms, process a change in the input by identifying the "affected output", that is, the part of the previous output that is no longer "correct", and "updating" it. This thesis presents results–upper bound results, lower bound results, and experimental results–for several incremental computation problems. The common theme in all these results is that the complexity of an algorithm or problem is analyzed in terms of a parameter δ that measures the size of the change in the input and output. An incremental algorithm is said to be bounded if the time it takes to update the output depends only on the size of the change in the input and output (i.e., δ), and not on the size of the entire current input. A problem is said to be bounded (unbounded) if it has (does not have) a bounded incremental algorithm. The results in this thesis, summarized below, illustrate a complexity hierarchy for incremental computation from this point of view. We present O(δδ) incremental algorithms for several shortest-path problems and a generalization of the shortest-path problem, establishing that these problems are polynomially bounded. We present an O(2[δ]) incremental algorithm for the circuit value annotation problem, which matches a previous Ω(2[δ]) lower bound for this problem and establishes that the circuit value annotation problem is exponentially bounded. We also present experimental results that show that our algorithm, in spite of a worst-case complexity of Θ(2[δ]), appears to work well in practice. We present lower bounds showing that a number of problems, including graph reachability, dataflow analysis, and algebraic path problems, are unbounded with respect to a model of computation called the sparsely-aliasing pointer machine model. We present an O(δn) incremental algorithm for the reachability problem in reducible flowgraphs, and an algorithm for maintaining the dominator tree of a reducible flowgraph.