Did you check the short description of "Secretaries' Nightmare"? If not, click here.

There are two orthogonal ways of constraint satisfaction problem solving. The one is backtracking and the other is constraint propagation. Backtracking always finds solution if exist, but less efficient than constraint propagation. Constraint propagation(arc-consistency) is efficient, but does not guarantee solutions. Constraint propatation result is consistency sets, which can be solutions but we lost intermediate steps why the domain elements should be eliminated In general, backtracking is complete but inefficient and constraint propagation is efficient but incomplete. There are several methods for each of the algorithms, but I am introducing the most popular methods, dependency directed backtracking(backtracking) and arc-consistency(constraint propagation, AC-3).

This method is backtracking(dependency directed backtracking). In backtracking method, we first decide parameter values. Then test if the values are consistent. If not, select another values and test until a solution is found. To avoid thrashing, DDB records future nogoods and decides the culprit, usually the farthest nodes from current dead-lock node, and jump to the culprit.

This method is constraint propagation(arc-consistency, AC-3). If we use constraint propagation, we can eliminate inconsistent domain values before making a decision.



Heecheol Jeon : jhc@cdr.stanford.edu