230 likes | 324 Views
Integrating CSP Decomposition Techniques and BDDs for Compiling Configuration Problems. Sathiamoorthy Subbarayan IT University of Copenhagen Denmark CP-AI-OR 2005. Configuration. An arrangement of parts Valid Configuration- a valid arrangement Valid according to some specified rules
E N D
Integrating CSP Decomposition Techniques and BDDs for Compiling Configuration Problems Sathiamoorthy Subbarayan IT University of Copenhagen Denmark CP-AI-OR 2005
Configuration An arrangement of parts Valid Configuration- a valid arrangement Valid according to some specified rules NP-Hard problem
Examples • Bike • Car • PC • Power-Backup Systems • Controllers • Business Software
Problem Representation Constraint Satisfaction Problem (CSP) • A set of variables and their domains • A set of rules/constraints on variable values Configuration - A legal assignment to all variables
Interactive Configurator • Interactively guides the user • Shows only valid extensions • User always in a consistent state
Required Functionalities • Propagate the user selections • Display the valid choices • Explain reasons for unselectable or implied options
Binary Decision Diagrams A compressed representation of solutions
Previous work Compile into a Binary Decision Diagram configurator BDD generation lookup BDD BDD Compilation rules offline online NP-hard P Problem! BDD size could explode
This work • Configuration rules have hierarchies • Hierarchies close to tree-shape Tree Decomposition of CSP? Space reduction? (upto 96%) Response time reduction? (upto 200x)
CSP to BDD compilation C1 C2 C3 C4 C5 C6 C7 bdd BDD CSP
Tree Decomposition of CSP C1 C1 C2 C3 C4 C6 C7 C5 C2 C3 C5 C6 C7 C3 C6 C4 b3 b1 b2 CSP’ CSP Tree-of-BDDs
Benefit of decomposition b1 b2 b3 bdd BDD Tree-of-BDDs Potential Space Reduction |b1|+|b2|+|b3|<|bdd| -Online Configurators -Embedded Configurators
Required Functionalities • Propagate the user selections • Display the valid choices • Explain reasons for unselectable or implied options
Explanations • A partial assignment by the user might cause some options unselectable /implied • Explanation for such an option is the subset of the partial assignment that makes the option unselectable/implied • When user assignments are given priorities, we might need minimum explanations
Explanations in single BDD case Variant of Shortest path problem in DAG • Assigned variable (v=val) • 0 for ’val’ edges • 1 for other edges • Other variables • 0 for their edges • Shortest path from root to 1-node corresponds to an explanation
Example Assign a=0 Assign b=1 e=1 is implied 1 1 Explain e=0? Explanation b=1 Can also handle priorities and non-Boolean variables
Don’t Care variables for Explain • In the example, necessary variables are: a,b, and e • Variables c and d are hence don’t cares for Explain Abstraction !
Explanations in Tree-of-BDDs b1 b2 b3 b’ Abstraction b1’ b2’ b3’ Join Explanation Explain
Experiments • Four Benchmarks • PC • Renault • Two PSR instances • 10000 random interactions • Comparison of: • Space usage • Average and Worst time for Responses • Average and Worst time for Explanations • Tools • CLab: an existing single BDD-based tool • iCoDE: implementation of the tree-of-BDDs
Time Comparisons • Response (Propagate+Display)
Time Comparisons • Explanation
Conclusion • Decomposition results in • Space reduction • Shorter responses • Tree-of-BDDs can scale higher than the single BDD approach • Future work include: • BDD variable orderings • Multi-valued Decision Diagrams • different decomposition techniques