TY - JOUR

T1 - Solving systems of difference constraints incrementally

AU - Ramalingam, G.

AU - Song, J.

AU - Joskowicz, L.

AU - Miller, R. E.

PY - 1999/3

Y1 - 1999/3

N2 - Difference constraints systems consisting of inequalities of the form xi - Xj ≤ bi.j occur in many applications, most notably those involving temporal reasoning. Often, it is necessary to maintain a solution to such a system as constraints are added, modified, and deleted. Existing algorithms handle modifications by solving the resulting system anew each time, which is inefficient. The best known algorithm to determine if a system of difference constraints is feasible (i.e., if it has a solution) and to compute a solution runs in Θ (mn) time, where n is the number of variables and m is the number of constraints. 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.

AB - Difference constraints systems consisting of inequalities of the form xi - Xj ≤ bi.j occur in many applications, most notably those involving temporal reasoning. Often, it is necessary to maintain a solution to such a system as constraints are added, modified, and deleted. Existing algorithms handle modifications by solving the resulting system anew each time, which is inefficient. The best known algorithm to determine if a system of difference constraints is feasible (i.e., if it has a solution) and to compute a solution runs in Θ (mn) time, where n is the number of variables and m is the number of constraints. 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.

KW - Difference constraints

KW - Dynamic negative cycle

KW - Incremental algorithm

KW - Linear constraints

KW - Shortest-path problem

UR - http://www.scopus.com/inward/record.url?scp=0037854898&partnerID=8YFLogxK

U2 - 10.1007/PL00009261

DO - 10.1007/PL00009261

M3 - ???researchoutput.researchoutputtypes.contributiontojournal.article???

AN - SCOPUS:0037854898

SN - 0178-4617

VL - 23

SP - 261

EP - 275

JO - Algorithmica

JF - Algorithmica

IS - 3

ER -