210 likes | 329 Views
Assumption-based Pruning in Conditional CSP. Felix Geller and Michael Veksler. Outline. Conditional CSP (Mittal and Falkenhainer) Conditional CSP solution methods Activity CSP formulation MAC-based algorithm for ACSP Activity disjunction and implication Questions. Activity of a variable.
E N D
Assumption-based Pruning in Conditional CSP Felix Geller and Michael Veksler
Outline • Conditional CSP (Mittal and Falkenhainer) • Conditional CSP solution methods • Activity CSP formulation • MAC-based algorithm for ACSP • Activity disjunction and implication • Questions
Activity of a variable is determined by activity constraint Given an assignment of values to • An activity constraint: is relevant if C is relevant Conditional CSP (Mittal and Falkenhainer) • Describes CSP where not all variables are required to participate in a solution • (V, VI, D,CC,CA) • The assigned variables are active variables • A compatibility constraint is relevant if all its variables are active • An activity constraint is satisfied if v is active or C is not satisfied • In a solution all relevant constraints have to be satisfied • Minimality requirement
Existing approaches to solving Conditional CSPs • Reformulation • Working directly on Conditional CSP representation • Main idea: maintain list of active variables and check/propagate constraints after their variables become active • [Mittal,Falkenhainer]: Backtrack search with conflicts recording • [Gelle,Faltings]: At first determine variable activity status; for fixed variable activity status CondCSP turns into CSP. • [Sabin,Freuder,Wallace], [Gelle,Sabin]: invoke consistency techniques (CondFC, CondMAC) directly on Conditional CSP representation • Propagate constraints once their variables are active • CondMAC proved to be superior over CondBT and CondFC • The limitation: constraint propagation has to wait until variables become active
Explicit activity variables • A - activation conditions: Each variable is dominated by some Given an assignment of values to • Variable is active if either or is true Activity CSP formulation • (V, VI, VA,D,C,A) • Constraint is relevant if all its variables are active • An assignment is a solution if all relevant constraints are satisfied
V ey ez {true,false} {true,false} = = y z {0,…,4} {5,…,9} x {0,…,100} An ACSP problem • Early conflict detection: ey = true D(x)= D(y) = {0,…,4} ez = true D(x)= D(z) = {5,…,9} D(y) ∩ D(z) = Ø ey ez = false • Information flow from conditional variables to unconditional variables: ey = true D(x)= D(y) = {0,…,4} ez = true D(x)= D(z) = {5,…,9} ey ez D(X)= {0…9}
Activity set ey ey ez ez Shadows y[ey,ez] z[ey,ez] {5,…,9} {0,…,4} Enabling early constraint propagation • Allow constraint propagation to modify variable domains before the constraint variables become active y z {0,…,4} {5,…,9}
ey ez • Collect assumptions (activity sets) • Create shadows • Group shadows and constraints into CSP sub-problems x {true,false} {true,false} {0,…,100} = = y {0,…4} z {5,…,9} {0,…,100} {0,…,100} x ey ez x[ez] x[ey] {0,…,100} = = z {5,…,9} y {0,…,4} Assumption-based decomposition
ez ey x Shadow synchronization {true,false} {true,false} ey ez = false {0,…,100} {3} {0,…,100} {0,…,100} x[ey] x[ez] {0,…,4} {5,…,9} y {0,…,4} {5,…,9} z
Shadow synchronization • Two shadows of the same variable: x[AS1] and x[AS2] • If under the current partial solution, AS2implies AS1(AS1 is weaker than AS2 ) • D(x[AS2]) D(x[AS2]) ∩ D(x[AS1] • If an empty domain results, some activity var in AS2 is false • If AS1 and AS2 are incomparable, but D(x[AS1]) ∩ D(x[AS2]) = Ø • Conclude that some var in AS1 U AS2 is false
Compute constraints activity sets • Create shadows • Substitute constraints parameters with suitable shadows • Select an active variable • Activity inference • Handle synchronization and constraint propagation failures • Combine activity deductions to determine value of activity variables AMAC - Putting all things together • Preprocessing • While there are unassigned variables • Select a variable and instantiate it • Propagate constraints • While constraint queue is not empty • Select and propagate a constraint • Synchronize shadows • Update constraint queue • Backtrack if failed
Activity density Compatibility satisfiability Compatibility density Activation satisfiability (for ) Experimental results - setting • Random Conditional CSP generator similar to the generator in [Sabin,Freuder,Wallace] • CSP over N variables with binary (compatibility) constraints • Problem parameters: • N=48, |VI|=12, sa=0.75, dc=0.15
ey ez x {0,…,4} {5,…,9} x[ez] {0,…,4} x[ey] {5,…,9} y z Activity disjunction V {true,false} {true,false} {0,…,100} {0,…,9} {12}
Activity implication • Implication constraints between activity variables induce equivalence between activity sets • ey ez {ey} ~ {ey, ez} • Equivalence allows to reduce the number of shadow variables
Summary • Introduced Activity CSP – a variant of Conditional CSP formulation • ACSP directly supports full constraint propagation • Activity MAC checks several activity assumptions in parallel • Infers that an assumption is false if the constraint propagation fails • ACSP naturally captures clustering and activity disjunction • Interpret activity disjunction and implication in terms of activity sets and shadows operations • Further improve propagation and information flow • AMAC substantially reduces number of backtracks and solution time on random benchmarks • On easy problems adds overhead of shadow/assumption manipulation
ey ez z x y ey ez ey ey ey ez ez ez[ey] y y[ey,ez] z x[ez] z[ey,ez] x[ey] Assumption-based decomposition x