Solving Systems of Difference Constraints Incrementally
- G. Ramalingam ,
- J. Song ,
- L. Joskowicz ,
- R. E. Miller
Algorithmica | , Vol 23(3): pp. 261-275
Difference constraints systems consisting of inequalities of the form xi – xj
This paper presents a new efficient incremental algorithm for maintaining a solution to a system of difference constraints. As constraints are added, modified, or deleted, the algorithm determines if the new system is feasible and updates its solution. When the system becomes infeasible, the algorithm continues to process changes until it becomes feasible again, at which point a feasible solution will be produced. The algorithm processes the addition of a constraint in time O(m + n log n) and the removal of a constraint in constant time when the original system is feasible. More precisely, additions are processed in time O( || Δ || + |Δ| log|Δ| ) , where |Δ| is the number of variables whose values are changed to compute the new feasible solution, and || Δ || is the number of constraints involving the variables whose values are changed. When the original system is infeasible, the algorithm processes any change in O(m + n log n)amortized time. The new algorithm can also be used to check for the existence of negative cycles in dynamic graphs.