Overview Overview � Soft Constraints Framework � Characterizing Structure in Soft Constraints Diagnosis using Bounded Search Diagnosis using Bounded Search � Exploiting Structure in Soft Constraints and Symbolic Inference and Symbolic Inference – Set-based Search – Decomposition-based Search – Hybrids Martin Sachenbacher and Brian C. Williams MIT CSAIL Overview Overview Example: Full Adder Diagnosis Example: Full Adder Diagnosis � Soft Constraints Framework � Variables � Characterizing Structure in Soft Constraints describe modes of gates � � Exploiting Structure in Soft Constraints � Gates are either in good ( ) or broken ( ) mode – Set-based Search – Decomposition-based Search – Hybrids Valued CSP Valued CSP Example: Full Adder Diagnosis Example: Full Adder Diagnosis A constraint network � AND-gates broken with 1% probability � set of variables � OR-, XOR-gates broken with 5% probability � set of domains � Probabilistic valuation structure � set of constraints � valuation structure A constraint is a function mapping assignments over to valuations in . The complete valuation of an assignment is . 1
Example: Full Adder Diagnosis Inferring Solutions Example: Full Adder Diagnosis Inferring Solutions � Model gates as soft constraints � Constraint network � Value of optimal solution obtained by combining the constraints: Gate is good Time: O(exp(n)) Space: O(exp(n)) Gate is broken Branch- Branch -and and- -Bound Search Bound Search Overview Overview � Soft Constraints Framework Time: O(exp(n)) � Each search node is a soft � Characterizing Structure in Soft Constraints Space: O(n) constraint subproblem � Exploiting Structure in Soft Constraints � Lower Bound (lb): – Set-based Search Optimistic estimate of – Decomposition-based Search best solution in subtree – Hybrids � Upper Bound (ub): Best solution found so far � Prune, if lb ≥ ub . Structure in Soft Constraints Structure in Soft Constraints Strong Independence Strong Independence � Structure can be characterized as independence � Support properties of functions . � “Strong” independence: Function independent of all assignments to some variables . � “Weak” independence: Function independent of some assignments to some variables . Weak Subset of variables that Strong function depends upon. 2
Strong Independence Strong Independence Strong Independence Strong Independence Hypergraph Weak Independence Weak Independence Weak Independence Weak Independence � E.g. for constraint : if , then value is regardless of and Sharing of common subassignments. Weak Independence Weak Independence Overview Overview � Soft Constraints Framework � Characterizing Structure in Soft Constraints � Exploiting Structure in Soft Constraints – Decomposition-based Search – Set-based Search – Hybrids Algebraic Decision Diagram 3
Exploiting Strong Independence Tree Decomposition Exploiting Strong Independence Tree Decomposition � Principle: Strong independence allows to decompose the problem into subproblems with Subproblems smaller sets of variables. Tree Decomposition Tree Decomposition BnB with Tree Decomposition BnB with Tree Decomposition � Algorithm BTD (Terrioux and Jégou CP-03) � Record solutions for subproblems (“structural goods”) Variables Constraints χ λ BnB with Tree Decomposition BnB with Tree Decomposition EO EO- -1 Model: Constraint Graph 1 Model: Constraint Graph � Algorithm BTD (Terrioux and Jégou CP-03) � Record solutions for subproblems (“structural goods”) Time: O(exp(max i | χ i |)) Space: O(exp(max i,j | χ i - χ j |)) 4
EO- -1 Model: Tree Decomposition 1 Model: Tree Decomposition Ssa2670- -141 Circuit: Graph 141 Circuit: Graph EO Ssa2670 Ssa2670- Ssa2670 -130 Circuit: Tree 130 Circuit: Tree Overview Overview � Soft Constraints Framework � Characterizing Structure in Soft Constraints � Exploiting Structure in Soft Constraints – Decomposition-based Search – Set-based Search – Hybrids Exploiting Weak Independence Exploiting Weak Independence Set Set- -based Branch based Branch- -and and- -Bound Bound � Principle: Weak independence allows to consider Encode e.g. � Each search node is a set of sets of assignments at once instead of individual using ADD soft constraint subproblems assignments. � Lower Bound Function (f lb ): Optimistic estimates of best solutions in subtree � Upper Bound (ub): Best solution found so far � Prune, if f lb ≥ ub . 5
Domain Splitting Example: 4- -Queens Queens Domain Splitting Example: 4 Generalize to search over sets : � Variables: Rows � Partition domains into sets � Domains: Columns � Choose subset for unassigned variable � Constraints: Q Q Q Q Example Example Example Example � Search Tree � Domain splitting with partitions Solution Solution Example Example Results Results � Domain splitting with partitions � C++ Implementation of SBBTD on Pentium 4 with 1 GB RAM, using ADD library from CUDD package � Weighted version of 16-Queens-Problem (16 variables, 136 constraints, domain size 16) � Using partition {{0,...,15}}: out of memory (> 1 GB) � Using partition {{0},{1},…, {15}}: out of time (>10 min) � Using partition {{0,...,7},{8,...,15}}: 104.8 sec Solution 6
Overview Hybrid Algorithm SBBTD Overview Hybrid Algorithm SBBTD � Soft Constraints Framework � Exploits both strong independence using tree decomposition, and weak independence using set- � Characterizing Structure in Soft Constraints based search. � Exploiting Structure in Soft Constraints – Set-based Search – Decomposition-based Search – Hybrids SBBTD applied to Full Adder SBBTD applied to Full Adder SBBTD applied to Full Adder SBBTD applied to Full Adder � Partition , all else � Search Tree Upper bound = 0 SBBTD applied to Full Adder SBBTD applied to Full Adder SBBTD applied to Full Adder SBBTD applied to Full Adder � Search Tree � Search Tree Upper bound = 0 Upper bound = .044 <u=0, y=0> .047 <u=0, y=0> .047 <u=0, y=1> .902 <u=0, y=1> .902 <v=0, w=0> .950 7
SBBTD applied to Full Adder SBBTD applied to Full Adder SBBTD applied to Full Adder SBBTD applied to Full Adder � Search Tree � Search Tree Upper bound = .044 Upper bound = .044 <u=0, y=0> .047 <u=0, y=0> .047 <u=0, y=1> .902 <u=0, y=1> .902 <v=0, w=0> .950 <v=0, w=0> .950 Exploiting goods recorded at v2 (“forward jump”) SBBTD applied to Full Adder SBBTD applied to Full Adder SBBTD applied to Full Adder SBBTD applied to Full Adder � Search Tree � Search Tree Upper bound = .044 Upper bound = .044 <u=0, y=0> .047 <u=0, y=0> .047 <u=0, y=1> .902 <u=0, y=1> .902 <v=0, w=0> .950 <v=0, w=0> .950 <v=0, w=1> .050 <v=0, w=1> .050 Cut by bound SBBTD applied to Full Adder SBBTD applied to Full Adder SBBTD applied to Full Adder SBBTD applied to Full Adder � Search Tree � Search Tree Cut by bound Cut by bound 8
SBBTD applied to Full Adder SBBTD applied to Full Adder SBBTD applied to Full Adder SBBTD applied to Full Adder � Search Tree � Search Tree Cut by bound Cut by bound SBBTD applied to Full Adder SBBTD applied to Full Adder Results Results � Search Tree � C++ Implementation of SBBTD on Pentium 4 with 1 Best solution = .044 GB RAM, using ADD library from CUDD package # Nodes = 45 � Weighted version of ssa0432-003 circuit (435 variables, 1027 constraints, domain size 2) � Time to compute tree decomposition: 5 sec. � Using partition {{0},{1}}: out of time (>10 min) � Using partition {{0,1}}: 3 sec. Cut by bound Finished. Future Work Future Work Material Material � Determine optimal granularity of domain partitions? � Combination with local filtering techniques? Material 9
Recommend
More recommend