940 likes | 1.48k Views
CSPs: Adding Structure to SAT George Katsirelos Fahiem Bacchus University of Toronto Introduction Finite domain Constraint Satisfaction Problems (CSPs). Formally equivalent to SAT Important practical differences. Different algorithmic techniques have been developed in the two areas.
E N D
CSPs: Adding Structure to SAT George Katsirelos Fahiem Bacchus University of Toronto
Introduction • Finite domain Constraint Satisfaction Problems (CSPs). • Formally equivalent to SAT • Important practical differences. • Different algorithmic techniques have been developed in the two areas. • Understanding these can help cross fertilize both fields.
Formalism • SAT = hV, Ci • V = {V1, V2, …, Vn} is a set of Boolean variables • C = {c1, c2, …, ck} a set of clauses. • CSP = hV, D, Ci • V = {V1, V2, …, Vn} is a set of multi-valued variables • D = {D1, D2, …, Dn} is a set of value domains, with Di being the domain of values for variable Vi • C = {C1, C2, …, Ck} is a set of constraints. • In both CSP and SAT the aim is to find an assignment of values for all of the variables: • In SAT these values must satisfy the clauses • In CSPs these values must satisfy the constraints.
Constraints • A constraint C(X1,X2, …, Xk) over the variables X1, …, Xk is a Boolean function • It maps assignments to these variables to {0,1} C(X1,X2, …, Xk) : DX1££ DXk {0,1} • If a tuple of assignments maps to 1, then these assignments satisfy the constraint, otherwise these assignments the falsify the constraint.
Extensionally vs Intensionally Represented Constraints • We can specify the constraint with a table • C(X,Y,Z) with DX = DY = DZ = {1, 2, 3}
Extensionally vs Intensionally Represented Constraints • Thus we can represent the constraint as a set of satisfying assignment tuples
Extensionally vs Intensionally Represented Constraints • Or as a set of falsifying assignment tuples
Extensionally vs Intensionally Represented Constraints • Extensionalrepresentations specify the constraint as an explicit list of satisfying assignments (or falsifying assignments). • Extensional representations were used in the 2005 CSP solver competition. But are almost never used in practice. • The extensional representation becomes very large, growing exponentially with the number of variables the constraint is over.
Extensionally vs Intensionally Represented Constraints • Constraint could also be represented intensionally as an algorithm for computing the Boolean function.
Extensionally vs Intensionally Represented Constraints = X · Y · Z
Extensionally vs Intensionally Represented Constraints • Intensional representations are typical in practice. • To specify a CSP problem in a CSP solver one supplies subroutines to implementing the constraints of the problem. • Commercial CSP solvers supply a large library of predefined common constraints. • You then simply specify the variables of the CSP, their domains, and the constraints that are over them.
Translating between SAT and CSPs • Further insight into the relation between SAT and CSPs is provided by looking at how we can translate between the formalisms.
SAT CSP • Translating in this direction is trivial • Each SAT variable becomes a CSP variable, with {0,1} as its domain of values. • Each clause is equivalent to a Boolean function from the variables it is over • (x, y, -z) A function mapping (x=0,y=0,z=1) to 0, all other assignments of x,y,z to 1.
CSP SAT • The other direction requires two steps • Converting the multi-valued variables into a set of Boolean assignment variables. • Converting the constraints into clauses over the assignment variables.
CSP SATConverting the Multi-Valued Variables • Let X be a CSP variable with Dx = {d1, …, dm} • We create m Boolean assignment variables x1, x2, …, xm these have the the interpretation xi is true iff X=di.
CSP SAT • The CSP variable X must have a value and it must have a unique value. • Hence the Boolean assignment variables x1, x2, …, xm associated with a particular CSP variable are mutually exclusive and exhaustive. • This is captured by adding the clauses • (x1, x2, …, xm) X must have a value • (-xi, -xj) for all (i j) X has a unique value
CSP SATConverting the Constraints into Clauses • Now we convert the constraints to clauses. • Each falsifying assignment tuple in the constraint’s extensional representation is equivalent to a clause. • So a constraint becomes a set of clauses, one for each falsifying assignment.
CSP SAT • Each falsifying tuple is a set of assignment variables that cannot be simultaneously true. • E.g.. –(x1^ y2^ z1) • Pushing the negation in we get a clause(-x1_ -y2_ -z1)
CSP SAT • There are various optimizations that can be applied to this basic translation. • Specific constraints admit more compact encodings.
Modeling with CSPs • CSPs offer • Multi valued variables: more natural for modeling real problems. • Constraints over groups of variables that permit a more natural encoding of the constraints of the problem. • Industrial applications are much easier to formalize using CSPs, and the range of application of CSP technology in industry far exceeds that of SAT.
N-Queens • Place N queens on an NxN chess board so that no queen can attack any other queen.
N-Queens • Place N queens on an NxN chess board so that queen can attack any other queen. • N, Queen variables, one for each column
N-Queens • Place N queens on an NxN chess board so that queen can attack any other queen. • N values for each variable: • The row we place that column’s queen on.
N-Queens • Constraints • AllDiff(Q1, …, QN) each Queen has a unique value (can’t be in the same row) • Cij(Qi,Qj): |Qi – Qj| |i-j| (for each i j) • can’t be on same diagonal
Modeling with CSPs • A SAT encoding of N-Queens more complex to specify. • SAT encodings almost impossible to generate by hand.
Modeling with CSPs • Modeling using the richer language of CSPs, translate to SAT (automatically), solve using standard SAT solver. • Understanding the pros and cons of this approach gives us further insight into the algorithmic differences between CSP and SAT solvers.
Backtracking Search • SAT and CSP backtracking solvers differ in the three main parts of backtracking • Propagation as we descend the search tree • Learning as we ascend from failed subtrees • Heuristics for guiding the branching decisions
Translation to SAT • The clause learning in SAT solvers can be exploited. • The mutually exclusive and exhaustive clauses for the multi-valued variables are not fully exploited. • Branching heuristics insensitive to CSP structure. • Unit propagation weaker than propagation methods employed in CSP solvers.
Disadvantages:(a) Clauses for Multi-valued Variables • These clauses impose a useful structure on the assignment variables. • (x1, x2, …, xm) X must have a value • (-xi, -xj) for all (i j) X has a unique value
Disadvantages:(a) Clauses for Multi-valued Variables • In general, the disjunction of any subset of positive literals is equivalent to the conjunction of the complimentary set of negative literals. E.g., if m=4 • x1_ x2 ´ –x3^ –x4 • x3´ -x1^ -x2^ -x4
Disadvantages:(a) Clauses for Multi-valued Variables • This structure could be exploited in various ways. For example, • Two negative assignment literals clause is redundant • (y1, y2, -x1, -x2, -z3) subsumed by (-x1,-x2)
Disadvantages:(a) Clauses for Multi-valued Variables • Negative assignment literal remove all positive literals from same variable. • (y1, y2, -y3, x1, -x2, -z3) • Resolve with (-y1, -y3) and (-y2, -y3) to obtain subsuming clause (-y3, -x2, -z3).
Disadvantages:(a) Clauses for Multi-valued Variables • Sets of clauses can be replaced by a single clause. • Dx = Dy = {1, 2, 3, 4}(R, -x1, -y1) (R, -x1, -y2) (R, -x2, -y1) (R, -x2, -y2) (R, -x1, -y1) (R, -x1, -y2) (R, -x2, -y1) (R, -x2, -y2)Equivalent to single clause(R, x3, x4, y3 , y4).
Disadvantages:(a) Clauses for Multi-valued Variables • (R, x3, x4, y3 , y4) ´ (R, (-x2^ -x1), (-y2^ -y1)) • Multiply this out and you get 8 clauses.
Disadvantages: (b) Heuristics • Under unit propagation contradictions arise when –x is inferred in a context where x is already true • This causes some clause to be falsified (conflict clause).
Disadvantages: (b) Heuristics • With multi-valued variables we always have • xi´ -x1^ –xi-1^ –xi+1^ -xm • Hence conflicts arise only from refuting all values from some CSP variable’s domain • -x1^^ -xm
Disadvantages: (b) Heuristics • In CSP solvers the number of unrefuted values of a variable is always considered in the branching heuristic. • In a SAT solver we shouldn’t choose to branch on xi without considering the status of other associated assignment variables. Ansótegui1 et al 2003.
Disadvantages: (c) Propagation • Unit Prop in a SAT solver on the clauses generated by a constraint is equivalent to Forward Checking in CSPs. • Forward Checking. Wait until all but one variable of the constraint is instantiated, and then prune incompatible values from the domain of the sole remaining uninstantiated variable.
Disadvantages: (c) Propagation • (-x1_ -y2_ -z1) • (-x1_ –y3_ –z1) • …
Disadvantages: (c) Propagation • Each clause contains one negated assignment literal from each CSP variable in the constraint. • To make the clause unit one has to make all but of these assignment variables true: • Equivalent to assigning the corresponding CSP variable • x1´ X=1, y2´ Y=2
Disadvantages: (c) Propagation • Then unit propagation will falsify all assignments to the remaining unassigned CSP variable that would violate the constraint • (-x1_ –y3_ –z1), (-x1_ –y3_ –z2)X=1 ^ Y=3 Z 1 & Z 2
Disadvantages: (c) Propagation • However, in practice, FC does not perform particularly well. • A superior form of propagation is GAC.
GAC (Macworth & Freuder 1977-79) • Given a constraint C(X1,X2, …, Xk) • di2 DXi is supported(in C) if there exists a set of assignments{X1 = d1, …, Xi = di ,…, Xk = dk} that satisfies C:C(X1=d1, …, Xk = dk) = 1. • This set is called a support for di.