Remove ads
Technique to solve constraint satisfaction problems From Wikipedia, the free encyclopedia
In computer science, an interchangeability algorithm is a technique used to more efficiently solve constraint satisfaction problems (CSP). A CSP is a mathematical problem in which objects, represented by variables, are subject to constraints on the values of those variables; the goal in a CSP is to assign values to the variables that are consistent with the constraints. If two variables A and B in a CSP may be swapped for each other (that is, A is replaced by B and B is replaced by A) without changing the nature of the problem or its solutions, then A and B are interchangeable variables. Interchangeable variables represent a symmetry of the CSP and by exploiting that symmetry, the search space for solutions to a CSP problem may be reduced. For example, if solutions with A=1 and B=2 have been tried, then by interchange symmetry, solutions with B=1 and A=2 need not be investigated.
The concept of interchangeability and the interchangeability algorithm in constraint satisfaction problems was first introduced by Eugene Freuder in 1991.[1][2] The interchangeability algorithm reduces the search space of backtracking search algorithms, thereby improving the efficiency of NP-complete CSP problems.[3]
Finds neighborhood interchangeable values in a CSP. Repeat for each variable:
The algorithm can be used to explicitly find solutions to a constraint satisfaction problem. The algorithm can also be run for k steps as a preprocessor to simplify the subsequent backtrack search.
Finds k-interchangeable values in a CSP. Repeat for each variable:
In the case of neighborhood interchangeable algorithm, if we assign the worst case bound to each loop. Then for n variables, which have at most d values for a variable, then we have a bound of : .
Similarly, the complexity analysis of the k-interchangeability algorithm for a worst case , with -tuples of variables and , for -tuples of values, then the bound is : .
The figure shows a simple graph coloring example with colors as vertices, such that no two vertices which are joined by an edge have the same color. The available colors at each vertex are shown. The colors yellow, green, brown, red, blue, pink represent vertex Y and are fully interchangeable by definition. For example, substituting maroon for green in the solution orange|X (orange for X), green|Y will yield another solution.
In Computer Science, the interchangeability algorithm has been extensively used in the fields of artificial intelligence, graph coloring problems, abstraction frame-works and solution adaptation.[2][4][5][6] [7][8][9]
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.