# Interactive Configuration

## Presentation on theme: "Interactive Configuration"— Presentation transcript:

Interactive Configuration
A SURVEY ON SOLVING INTERACTIVE CONFIGURATION PROBLEMS

What is configuration? (1)
When: recognized as topics of research since late 1980s Why: change of industry orientation from mass production to mass customization, meeting the demand for the increased needs for customization lead to product configuration What: design activity of assembling an artifact that is made of a fixed set of well defined component types where components can interact only in predefined ways. (first generic definition, Mittal and Frayman, 1989) Examples: PC configuration, car assembling

What is configuration? (2)
Definition 1. A configuration (problem) C is a triple (X,D,F) where a X is a set of variables x1, x2, , xn, D a set of their finite domains Dx1 ,Dx2 , ,Dxn and F = {f1, f2, , fm} a set of propositional formulas over atomic propositions xi = vj , vj  Dxi specifying conditions that the variable assignments have to satisfy. X={x1, x2, x3}; Dx1 = {1,2,3}; Dx2 = {1,2}; Dx3 = {1,2,3,4}; f1: (x1=1) and (x2 = 2) => not(x3=3)

Interactive configuration
Think of a user that is interactively tailoring (ordering) a product (a car, PC) for his specific needs. The software supporting the process is called a configurator. Scenario: The user makes a choice for some specific component (fx. x1 = 2) The configurator makes calculations on what are valid choices for the other available (undecided) variables (Dx2, Dx3, …, Dxn) This process repeats until the user completely has specified the desired product (i.e. a complete valid assignment to all variables is reached).

Interactive configurator functionalities
Calculate_valid_domains: - Completeness - Inference Restoration Assisted conflict resolution Response time is crucial. Guranateed response time is very desirable property.

CSP perspective (1) Definition 2. Constraint satisfaction problem is defined by a set of variables X = {x1, x2, , xn}, set of constraints C = {C1,C2, ,Cm}, and set of nonempty domains D = {D1,D2, ,Dn} for each variable xi. Each constraint is defined over some subset of original variables {x1, x2, , xn} and specifies the allowed combinations of these variable values. The goal is to find the assignment to all variables that satisfies all constraints in C simultaneously. Widely investigated area with lot of known results. Configuration naturaly fits in that framework. Can we use existing results in our research?

CSP perspective (2) CSP problems most efficientlu solved by combination of problem reduction (k - consistency) and search algorithms (non-chronological backtracking). Interactive configuration could be seen as a type of Consistency Maintaining Algorithm. Problem: All general CSP solving techniques have exponential worst-case complexity. Worst case complexity is polynomial if we have backtrack-free search. It can be achieved through imposing high k-consistency, or through adaptive consistency. All technques are NP-hard. We could do the NP-hard part offline ie. Perform compilation.

CSP perspective (3) Compilation: compute unchanging parts of constraint satisfaction problems into structures corresponding to a condensed representation of solution spaces. Consistency, Decomposition, Interchagebility Minimal synthesis trees, Uniformed acyclic constraint networks, (Finite State Automata, Binary Decision Diagrams)

BDD perspective (1) Definition 3: A ROBDD is rooted, directed acyclic graph with… Reduced Ordered Binary Decision Diagrams offer cannonical representation of boolean functions, and efficient execution of finding satisfying assignment and implementing general binary operator on ROBDDs f1 and f2

BDD perspective (2) Translate finite domain variables into boolean domain variables Transform all propositional formulas f into formulas with boolean domains fB. Form a boolean function: FB = f1B & f2B & .. & fnb and incode FB into ROBDD. Add ”domain constraints” to the ROBDD Calculate_valid_domains: User makes assignment for xi. Calculate ROBDD for: Fxi=Exists(xi) FB. The valid domains consist of all values appearing in AllSat(Fxi). Translate back the boolean valid domains to finite valid domains

BDD perspective (3) Restoration: 1. Memorize intermediate ROBDDs
2. Always perform set of assignments from original ROBDD Assisted conflict resolution: - Move conflicting choice to the beginning of decision que, and apply as many exisiting assignments in the que as possible BDD is just another way of performing compilation

SAT perspective Satisfiability problem asks wether there exist a satisfying assignment to a boolean formula f. DPLL algorithm – a base for state of the art SAT solvers (ZChaff) Use calculated FB in SAT solving instead transforming it into ROBDD There exists no efficient implementation of calculate_valid_domains function based on CNF form. Possible approaches: - transform SAT instance to a form that can be solved in polynomial time (2-SAT for example) - divide to subproblems, precompute variable and value ordering heuristics

Further challenges Modularity: naturally represent the hierarchy that exists in configuration data Dynamicity: the number of variables that will be relevant to the solution is not known in advance.