=Paper=
{{Paper
|id=None
|storemode=property
|title=Enumeration of Valid Partial Configurations
|pdfUrl=https://ceur-ws.org/Vol-755/paper04.pdf
|volume=Vol-755
|dblpUrl=https://dblp.org/rec/conf/confws/VoronovAE11
}}
==Enumeration of Valid Partial Configurations==
Enumeration of valid partial configurations
Alexey Voronov, Knut Åkesson, Fredrik Ekstedt
Chalmers University of Technology, Göteborg, Sweden
{voronov, knut}@chalmers.se
Fraunhofer-Chalmers Research Centre for Industrial Mathematics, Göteborg, Sweden
fredrik.ekstedt@fcc.chalmers.se
Abstract know which combinations of variable assignments for a sub-
set of the variables might result in a product that satisfies all
Models of configurable products can have hundreds constraints, that is to know valid partial configurations. This
of variables and thousands of configuration con- is important because it helps the engineer to develop solu-
straints. A product engineer usually has a limited tions only for those combinations that can actually be built
responsibility area, and thus is interested in only and sold. Overestimation of these solutions will lead to engi-
a small subset of the variables that are relevant to neer doing unnecessary designs. Underestimation can lead to
the responsibility area. It is important for the en- costly delays if an overlooked configuration is requested by a
gineer to have an overview of possible products customer afterwards.
with respect to the responsibility area, with all ir- Computing the exact set of valid partial configurations is
relevant information omitted. Configurations with generally hard. Simply taking configurations of the complete
some variables omitted we will call partial config- products and projecting them on relevant variables is not fea-
urations, and we will call a partial configuration sible, as practical problems can have 10120 and more build-
valid if it can be extended to a complete configura- able complete products.
tion satisfying all configuration constraints. In this
One of the ways to get exact set of valid partial configura-
paper we consider exact ways to compute valid par-
tions is to existentially quantify all irrelevant variables from
tial configurations: we present two new algorithms
the formula that represents the conjunction of all configura-
based on Boolean satisfiability solvers, as well as
tion constraints, for example using resolution inference rule
ways to use knowledge compilation methods (Bi- [Robinson, 1965; Davis and Putnam, 1960], and then use a
nary Decision Diagrams and Decomposable Nega-
standard algorithm to enumerate all (complete) assignments
tion Normal Form) to compute valid partial config-
of the new simplified formula. A simple enumeration of com-
urations. We also show that the proposed methods
plete assignments searches for a satisfying assignment, adds it
are feasible on configuration data from two auto-
to the result, and also adds it to the current set of constraints as
motive companies.
a blocking constraint, forbidding future search from returning
it again. The disadvantage of this approach is that the formula
size can grow significantly after quantification. In this paper
1 Introduction we present a modification of this enumeration algorithm that
Within the automotive industry it is common to have a few does not require existential quantification of variables to enu-
general platforms where each platform are highly config- merate partial configurations (Section 4.1). Similar algorithm
urable to adapt to the needs on different markets but also to can be found in [Gebser et al., 2009].
satisfy the needs of individual customers. Having highly con- The problem of partial configurations can also be tackled
figurable products put high demands on the engineering sys- by the widely used interactive configurators. In an interac-
tems to support the engineers during the development of the tive configurator a user selects values for variables one by
platforms. While having a configurable product or platform it one. The configurator should guide the user so that at any
is inevitable to also have constraints that specify what can be point there exist at least one way to complete the configura-
allowed together and what is not allowed together. These con- tion without changing any of the earlier decisions, in this case
straints can, in many situations, be defined as a set of Boolean a configurator is backtrack-free. Configurator should also be
formulas defined over finite domain variables. complete meaning that if a configuration is allowed accord-
Development of complex products—like in the automo- ing to the constraints, configurator should allow it. Having
tive industry—is done in large teams, where each engineer such complete and backtrack-free configurator, it is possible
is working with only a limited part of the product. For the to automatically check all (partial) assignments of values to
individual engineer only a small subset of the variables from the relevant variables, and the configurator will show which
those that describe the full product, are of immediate inter- of them are valid. If a configurator is not backtrack-free, it
est. However, an important problem for the engineer is to can overestimate allowed partial configurations. If it is not
complete, it will underestimate them. 3 Motivating example
Previous work on methods for building interactive con- Configuration problems describing complete products can
figurators started as extensions of Constraint Satisfaction have thousands of variables and hundreds of thousands con-
Problem (CSP) with conditional and dynamic formulations straints. An engineer, or a group of engineers, is usually re-
[Dechter and Dechter, 1988; Mittal and Falkenhainer, 1990; sponsible only for a subset of the variables. It could be that it
Soininen and Gelle, 1999; Sabin and Freuder, 1998; Gott- is a requirement to design all possible solutions within the re-
lob et al., 2007]. However, supported implementations of sponsibility area, in case someone will order such a product.
these algorithms are not readily available. Binary Decision In such a case it can be expensive to have overestimated set
Diagrams (BDDs) [Bryant, 1986] is a knowledge compi- of valid configurations, since engineers will spend time de-
lation method [Darwiche and Marquis, 2002] successfully signing forbidden ones. Underestimations are also bad, since
used for configuration [Hadzic et al., 2004], especially for they lead to delays for designing a solution for ordered, but
real-time interactive configuration. However, BDDs suffer missed configuration.
from memory explosion for many datasets of practical size. The problem can be illustrated by the following ex-
Other knowledge compilation methods used for configuration ample of a simple car configuration. Let X =
include automata representation [Amilhastre et al., 2002], {body, engine, transmission} be the set of variables, and
Tree-of-BDDs [Subbarayan, 2005], Joint Matched CSP [Sub- D = {{mini, sedan, suv}, {gasoline, diesel, electric},
barayan and Andersen, 2005], Decomposable Negation Nor- {manual, auto, evt}} be the set of corresponding domains.
mal Form (DNNF) [Darwiche and Marquis, 2002] (espe- Let the following be the set of constraints C:
cially Deterministic DNNF for model counting [Kübler et
al., 2010]), as well as combinations of search and BDDs • ¬((body = mini) ∧ (engine = gasoline))
[Norgaard et al., 2009]. Recently, Boolean Satisfiability • ¬((body = mini) ∧ (engine = diesel))
Solvers (SAT-solvers) emerged as an alternative to work with
configurations [Sinz et al., 2003; Küchlin and Sinz, 2000; • ¬((body = sedan) ∧ (engine = electric))
Sinz et al., 2006; Janota, 2008], including interactive con- • ¬((body = suv) ∧ (engine = gasoline))
figurators [Janota, 2010]. • (engine = electric) → (transmission = evt)
In this paper we show how a SAT-solver can be used to enu-
merate partial configurations based on modification of stan- • (transmission = evt) → (engine = electric)
dard enumeration algorithm, and based on checking every Valid assignments of P = hX, D, Ci can be presented, for
partial assignment inspired by interactive configuration. We example, in a tabular form, as shown in Table 1. Each row
also show how existing DNNF algorithms can be used to enu- in the table corresponds to an assignment, and each column
merate partial configurations. We show feasibility of a SAT- corresponds to a variable. Each cell contains a value assigned
solver based implementation on configuration data from two to the corresponding variable.
automotive companies. Let us suppose that there is a group of engineers that
The paper is organized as following. Section 2 covers for- are interested only in connection between body and trans-
mal preliminaries, Section 3 gives a motivating example, Sec- mission, and they would like to disregard all information
tion 4 presents the algorithms. Section 5 provides experimen- about engine. So they define the limited scope to be S =
tal results and discussion, and Section 6 concludes the paper. {body, transmission}. Valid partial assignments for S are
presented in Table 2.
One way to get the partial assignments is to enumerate all
2 Preliminaries complete assignments, project them onto the relevant vari-
ables (remove the irrelevant columns from the table), and re-
The configuration problem is a triple P = hX, D, Ci, move duplicate partial assignments (rows). This approach is
where X = {x1 , x2 , . . . , xK } is a set of variables, D = infeasible in practice, as some industrial examples from au-
{D1 , D2 , . . . , DK } is a set of corresponding finite domains, tomotive industry have 10120 allowed complete assignments.
and C = {C1 , C2 , . . . , CJ } is a set of propositional formulas However, scopes of interest for the engineers may have less
over atomic propositions xk = v where v ∈ Dk , specifying
conditions that the variable assignments have to satisfy. Table 1: Valid complete assignments
A complete assignment to a configuration problem P is a
function A : X → D which is defined for all xk ∈ X. A body engine transmission
valid complete assignment (or solution) to P is a complete
mini electric evt
assignment A for which each Cj is satisfied. A partial as-
sedan gasoline manual
signment to P is a partial function B : X → D defined for
sedan gasoline automatic
variables xk ∈ Y ⊆ X. We will write vars(B) = Y ⊆ X
sedan diesel manual
to denote the set of variables of B, or the scope of B. We
sedan diesel automatic
will call a partial assignment valid iff it can be extended to a
suv diesel manual
valid complete assignment. We will use P[B] to denote the
suv diesel automatic
simplified problem obtained by setting the variables defined
suv electric evt
in B.
Table 2: Valid partial assignments Algorithm 1 Search for complete, then forbid partial
body transmission input: problem P = hX, D, Ci, relevant variables S ⊆ X
C0 ← C
mini evt P0 ← P
sedan manual result ← {}
sedan automatic while sat(P): /∗ ask solver ∗/
suv manual A ← assignment(P) /∗ assignment from solver ∗/
suv automatic B ← A projected on S
suv evt result ← result ∪B
C 0 ← C 0 ∧ ¬(B as constraint)
P 0 ← hX, D, C 0 )i
than a thousand valid partial assignments, which is com- return result
putable using methods presented below. Approximations of
this approach are found in practice, where instead of all valid
assignments, only the ones that correspond to the products
built during the last year (for example) are considered, which the complete scope. The solver can be used as following:
gives an underestimation of the answer. Clearly, there is a each partial assignment is added as an extra constraint to the
need for a better method. set of configuration constraints, and removed after the solver
has returned an answer. The key to the good performance in
4 Enumerating valid partial assignments this method is in the ability of the solver to cheaply add and
retract constraints consisting of atomic propositions; again,
This sections presents two algorithms adopted to solve the Minisat-like solvers have this feature.
problem based on satisfiability solvers. By a satisfiability
solver we mean a tool that is able to answer whether an in-
Algorithm 2 Enumerate partial, then extend
stance of a configuration problem has at least one valid com-
plete assignment, and provides one if such exists. For exam- input: problem P = hX, D, Ci, relevant variables S ⊆ X
ple, tools for solving Constraint Satisfaction Problems (CSP- output: valid partial assignments
solvers) and Boolean Satisfiability Problems (SAT-solvers) result ← {}
can be used for this purpose. This section also shows how for B in allAssignments(S):
DNNF algorithms can be used to enumerate valid partial con- if sat( P[B] ):
figurations. result ← result ∪B
return result
4.1 Searching for complete, then forbidding
partial
One way to enumerate all valid complete assignments is to An example illustrating this method is presented in Table 3.
iteratively search for any valid complete assignment, and in The columns for body and transmission contain all possible
addition to adding it to the result, add a negation of it as a (not only valid) partial assignments for S. The table must be
blocking constraint to the existing set of constraints. This extended with the columns for variables (X \ S), in this case
algorithm can be modified to enumerate valid partial assign- it is only one, engine. If there is at least one valid complete
ments, as shown in Algorithm 1. When a solver returns the assignment that contains the partial one for the row, the values
first complete assignment, the assignment is projected onto for all variables are written in the row. Otherwise, a “—”
the relevant scope. This partial assignment is returned as the indicates that there is no such valid complete assignment, and
first element of the result, and also added as a blocking con- the partial assignment is not valid.
straint, ensuring that the solver will not return any (complete)
assignment that will contain the partial one. Then this process
is repeated. Table 3: Illustration of Algorithm 2 (Enumerate partial, then
The ability of the solver to incrementally add blocking con- extend).
straints, while still keeping previously inferred information,
is very important for the good performance of this algorithm. body transmission engine
This is supported by, for example, Minisat-like solvers [Een
and Sörensson, 2004; Een and Sörensson, 2003]. mini manual —
mini autmatic —
4.2 Enumerating partial, then extending mini evt electric
sedan manual gasoline
In this approach it is necessary to enumerate all partial as-
sedan automatic gasoline
signments, and try to extend each of them to a valid complete
sedan evt —
assignment using a solver. Just checking a partial assignment
suv manual diesel
against each of the constraints in isolation is not enough, be-
suv automatic diesel
cause there could be dependencies between variables that are
suv evt electric
not visible within the local scope, but are only visible within
An advantage of Algorithm 1 compared to Algorithm 2 is Enumeration of assignments of DNNFs is shown in Algo-
that it builds upon heuristics of an underlying solver to skip rithm 4 [Darwiche, 2000], where each assignment is repre-
checking many of the non-allowed assignments. A disadvan- sented as a set of literals, and × is a Cartesian product on
tage is that to find the next partial assignment, it is necessary them:
to process a larger (increased by one) set of constraints; this
{N1 , . . . , Nn }×{M1 , . . . , Mm } = {N1 ∪M1 , . . . , Nn ∪Mm }.
could be a problem when it is necessary to produce millions
of partial assignments. But when there is a small number of The complexity of enumerating the models of a smooth
valid partial assignments, or a user specifically asked for the DNNF f is O(mn2 ), where m is the size of f and n =
first hundred of assignments as a sample, and there are many |MODELS(f )| [Darwiche, 1998].
non-allowed configurations, Algorithm 1 can be beneficial.
Algorithm 4 MODELS – enumerating assignments of DNNF
4.3 Knowledge compilation: DNNF
input: smooth DNNF f
Knowledge compilation is a family of approaches that ad- output: (complete) valid assignments of f , as sets of literals
dresses intractability of many Artificial Intelligence prob- if f is a Literal l:
lems. A propositional model is compiled in an off-line phase return {{l}};
in order to support some queries in polytime [Darwiche and else if f is a conjunction a1 ∧ · · · ∧ an :
Marquis, 2002]. Binary Decision Diagrams (BDDs) [Bryant, return MODELS(a1 )× · · · × MODELS(an );
1986] belong to this family and received substantial attention else if f is a disjunction a1 ∨ · · · ∨ an :
as a tool for configuration problems [Hadzic et al., 2004]. return MODELS(a1 )∪ · · · ∪ MODELS(an ).
Decomposable Negation Normal Form (DNNF) [Darwiche,
2001] is a data structure used in knowledge compilation for
which BDD is a special case. It is more succinct than BDDs The overall process of using DNNF is shown in Algo-
and its compilation time is often shorter than that of BDDs rithm 5. DNNF for the car example is shown on Figure 1a.
[Subbarayan et al., 2007]. DNNF supports smaller number DNNF with variable engine forgotten is shown on Figure 1b,
of tractable operations than BDD, while still allowing poly- and its valid partial assignments can be found in Table 2.
time existential quantification (forgetting) and assignments
enumeration, which together allow polytime partial assign- Algorithm 5 Knowledge compilation based approach
ments enumeration once DNNF is compiled.
Formally, a propositional formula a is in negation normal input: problem P = hX, D, Ci, relevant variables S ⊆ X
form (NNF) if and only if a is either a positive or negative output: valid partial assignments
atomic proposition (a literal); a conjunction ∧i ai ; or a dis- f1 ← COMPILE(P)
junction ∨i ai where each ai is in negation normal form. A f2 ← FORGET(S, f1 ) /* see Algorithm 3 ∗ /
formula in NNF f is decomposable (DNNF) if and only if for m ← MODELS(f2 ) /* see Algorithm 4 ∗ /
any conjunction a = a1 ∧ · · · ∧ an no atomic propositions are return m
shared by any conjuncts in a: ATOMS(ai ) ∩ ATOMS(aj ) = ∅
for every i 6= j. A formula in NNF is smooth if for every
disjunction a = a1 ∨ · · · ∨ an , ATOMS(a) = ATOMS(ai ) for Polynomial time guarantee for assignments enumeration
every i. operation is an advantage of DNNF. However, the compi-
Existential quantification of variables from DNNF is pre- lation time of arbitrary constraints into DNNF is in general
sented in Algorithm 3 [Darwiche, 2001]. Every occurence exponential. When the data changes rarely, this time is amor-
of irrelevant variable is replaced by true, and the formula is tized among multiple queries, but when the data changes very
simplified accordingly. This procedure preserves decompos- often, this off-line stage does not pays off.
ability, and its running time is linear in the DNNF size. DNNF have an important advantage: if it is smooth and
deterministic, it can be used to count the assignments [Dar-
wiche, 2000]. An NNF formula a is deterministic if for every
Algorithm 3 FORGET – existential quantification on DNNF disjunction a = a1 ∨ · · · ∨ an , every pair of disjuncts in a
input: relevant variables S ⊆ X, DNNF f is logically inconsistent; that is, ai ∧ aj |= f alse for every
output: DNNF with variables X \ S existentially quantified i 6= j. Unfortunately, operation FORGET does not preserve
if f is a Literal l: determinism, and counting in such case will give overesti-
if VAR(l) ∈ S: mated answer. However, even overestimated answer can be
return f useful in some cases. It is also possible to recompile the re-
else sulting DNNF again into a deterministic one. Some practical
return true applications of counting for configuration using DNNF were
else if f is a conjunction a1 ∧ · · · ∧ an : considered in [Kübler et al., 2010].
return FORGET(a1 ) ∧ . . . ∧ FORGET(an )
else if f is a disjunction a1 ∨ · · · ∨ an : 5 Experimental results
return FORGET(a1 ) ∨ . . . ∨ FORGET(an ) We analyzed the data from two automotive companies: three
datasets from the first company, and one dataset from the sec-
(a) Full DNNF. (b) DNNF with variable engine existentially quantified.
Figure 1: DNNFs for the car example.
ond, denoted as A, B, C and D, respectively. Details about Table 4: Problem properties.
datasets are presented in Table 4.
We implemented Algorithms 2 and 1 on top of Sat4j solver A B C D
[Le Berre and Parrain, 2010].
Variables 511 446 92 217
A knowledge compilation tool was developed based on Domain size, average 6.3 2.4 6.1 3.3
BDD package BuDDy [Lind-Nielsen, 2002]. The pre- Domain size, max 108 82 75 59
ordering algorithms from [Narodytska and Walsh, 2007] were # of assignments 10150 1087 1055 1085
implemented for sorting variables and restrictions, using in- # of valid assignments 10124 1057 1049 1033
flation parameter r = 1.5 in the clustering step. A simplified CNF clauses 65183 1121 341 9010
version of the MCL clustering algorithm [van Dongen, 2000] DNNF nodes n/a 5071 5009 528583
was used, skipping the truncation heuristics and the sparse
matrix multiplication tools. No post-ordering of the variables Partial scope, variables 6 17 3 8
was included. The tool was able to handle only the smallest # of valid partial assignments 200 13770 25 382
dataset.
Another attempt to use knowledge compilation involved
c2d compiler [Darwiche, 2004] that compiles propositional the BDD was successfully built, is the fastest. The reason
formulas to deterministic DNNF. Algorithms 3 (FORGET) and why DNNF-based method appears to be slow could be a non-
4 (MODELS) were implemented to work with the DNNF out- optimal implementation of Algorithms 3 and 4.
put of c2d. Using another DNNF compiler sharpSAT [Muise
et al., 2010] resulted in segmentation faults on some of the 6 Conclusions
datasets, and its debugging is underway.
In this paper we looked at the problem of computing allowed
Sat4j and c2d require the input to be in Conjunctive Normal
partial combinations, which is important for engineers work-
Form (CNF), that is it have to be a conjunction of clauses, and
ing with product development. We presented several algo-
each clause is a disjunction of literals. Each literal is either
rithms, two of which are suitable for SAT-solvers, and one
a positive or negative atomic proposition. Constraints were
that is based on DNNF. Our experiments showed that SAT-
converted to CNF using Tseitin encoding [Tseitin, 1968].
based implementation can handle large datasets from automo-
Two times were measured. The first time measured was tive industry quite efficiently. Preliminary experiments with
preprocessing or off-line time. This included, for example, knowledge compilation tools showed that available DNNF
DNNF compilation, and initial constraint propagation. The compilers cannot handle the largest dataset within the mem-
results are presented in Table 5. BDD-based implementation ory and time limits. However, DNNF-based method has
was not able to complete the compilation process of larger
instances. c2d compiler ran out of 2 GB memory limit (it is
available only as a 32 bit application) compiling the largest Table 5: Time for compilation/initial clause learning, sec-
dataset A. onds.
The second time measured was the on-line time, or the time
to actually compute the valid partial configurations for one A B C D
given scope, while utilizing results from the off-line phase.
Sat4j, Alg 1 2 2 1 2
The results are presented in Table 6. SAT-based solution is
BuDDy timeout timeout 40 timeout
very robust on the datasets, even without having theoretical
c2d out-of-mem 240 2 20
guarantees on running times. The BDD-based solution, when
Table 6: Time to compute valid partial assignments [Een and Sörensson, 2004] Niklas Een and Niklas Sörens-
(FORGET + MODELS), seconds. son. An Extensible SAT-solver. Theory and Applications
of Satisfiability Testing, 2919/2004:502–518, 2004.
A B C D [Gebser et al., 2009] Martin Gebser, Benjamin Kaufmann,
Sat4j, Alg 1 10 29 0.12 3 and Torsten Schaub. Solution enumeration for projected
BuDDy n/a n/a 0.01 n/a Boolean search problems. Integration of AI and OR Tech-
DNNF from c2d n/a 681∗ 0.15∗ 22∗ niques in Constraint Programming for Combinatorial Op-
∗
Based on own, unoptimized implementation. timization Problems, pages 71–86, 2009.
[Gottlob et al., 2007] Georg Gottlob, Gianluigi Greco, and
the advantages of polynomial time guarantee on the on-line Toni Mancini. Conditional Constraint Satisfaction: Logi-
phase, and the ability to count the assignments when DNNF cal Foundations and Complexity. In Manuela M. Veloso,
is determenistic. editor, IJCAI-2007, pages 88–93, Hyderabad, India, Jan-
uary 2007.
Acknowledgements [Hadzic et al., 2004] Tarik Hadzic, Sathiamoorthy Sub-
barayan, R.M. Jensen, Henrik Reif Andersen, J. Mø ller,
This work was carried out at the Wingquist Laboratory VINN
and H. Hulgaard. Fast backtrack-free product configu-
Excellence Centre within the Area of Advance — Produc-
ration using a precompiled solution space representation.
tion at Chalmers, supported by the Swedish Governmental
PETO conference, 2004.
Agency for Innovation Systems (VINNOVA). The support is
gratefully acknowledged. [Janota, 2008] Mikolas Janota. Do SAT solvers make good
configurators? 12th International Software Product Line
References Conference. First Workshop on Analyses of Software Prod-
uct Lines, pages 1–5, 2008.
[Amilhastre et al., 2002] Jérôme Amilhastre, Helene
Fargier, and Pierre Marquis. Consistency restoration [Janota, 2010] Mikolas Janota. SAT Solving in Interactive
and explanations in dynamic CSPs — Application to Configuration (PhD thesis). PhD thesis, University Col-
configuration. Artificial Intelligence, 135:199–234, 2002. lege Dublin, 2010.
[Bryant, 1986] Randal E. Bryant. Graph-Based Algorithms [Kübler et al., 2010] Andreas Kübler, Christoph Zengler,
for Boolean Function Manipulation. IEEE Trans. Comput., and Wolfgang Küchlin. Model Counting in Product Con-
35(8):677–691, August 1986. figuration. Electronic Proceedings in Theoretical Com-
[Darwiche and Marquis, 2002] Adnan Darwiche and Pierre puter Science, 29(LoCoCo):44–53, July 2010.
Marquis. A knowledge compilation map. Journal of Arti- [Küchlin and Sinz, 2000] Wolfgang Küchlin and Carsten
ficial Intelligence Research, 17(1):229–264, 2002. Sinz. Proving Consistency Assertions for Automotive
[Darwiche, 1998] Adnan Darwiche. Model-Based Diagnosis Product Data Management. Journal of Automated Rea-
using Structured System Descriptions. Journal of Arti cial soning, 24(1):145–163, February 2000.
Intelligence Research, 8:165–222, 1998. [Le Berre and Parrain, 2010] Daniel Le Berre and Anne Par-
[Darwiche, 2000] Adnan Darwiche. On the tractable count- rain. The Sat4j library , release 2.2 system description.
ing of theory models and its application to belief revision Journal on Satisfiability, Boolean Modeling and Compu-
and truth maintenance. Journal of Applied Non-Classical tation, 7:59–64, 2010.
Logics, 2000. [Lind-Nielsen, 2002] Jø rn Lind-Nielsen. BuDDy: A BDD
[Darwiche, 2001] Adnan Darwiche. Decomposable negation package. http://buddy.sourceforge.net, 2002.
normal form. Journal of the ACM, 48(4):608–647, July [Mittal and Falkenhainer, 1990] Sanjay Mittal and Brian
2001. Falkenhainer. Dynamic Constraint Satisfaction Problems.
[Darwiche, 2004] Adnan Darwiche. New Advances in Com- In AAAI-90, pages 25–32, 1990.
piling CNF to Decomposable Negation Normal Form. In [Muise et al., 2010] Christian Muise, Sheila McIlraith,
ECAI 2004, 2004. J.Christopher Beck, and Eric Hsu. Fast d-DNNF Com-
[Davis and Putnam, 1960] Martin Davis and Hilary Putnam. pilation with sharpSAT. In AAAI 2010, pages 54–60,
A Computing Procedure for Quantification Theory. Jour- 2010.
nal of the ACM, 7(3):201–215, July 1960. [Narodytska and Walsh, 2007] Nina Narodytska and Toby
[Dechter and Dechter, 1988] Rina Dechter and Avi Dechter. Walsh. Constraint and variable ordering heuristics for
Belief maintenance in Dynamic Constraint Networks. In compiling configuration problems. In Proceedings of the
AAAI-88, pages 37–42, 1988. 20th international joint conference on Artifical intelli-
[Een and Sörensson, 2003] Niklas Een and Niklas Sörens- gence, pages 149–154, Hyderabad, India, 2007. Morgan
son. Temporal Induction by Incremental SAT Solv- Kaufmann Publishers Inc.
ing. Electronic Notes in Theoretical Computer Science, [Norgaard et al., 2009] Andreas Hau Norgaard, Morten Ri-
89(4):543–560, 2003. iskjaer Boysen, Rune Moller Jensen, and Peter Tiede-
mann. Combining Binary Decision Diagrams and Back-
tracking Search for Scalable Backtrack-Free Interactive
Product Configuration. In Proceedings of the 21st Interna-
tional Joint Conferences on Artificial Intelligence(IJCAI-
09) Workshop on Configuration, 2009.
[Robinson, 1965] J. A. Robinson. A Machine-Oriented
Logic Based on the Resolution Principle. Journal of the
ACM, 12(1):23–41, January 1965.
[Sabin and Freuder, 1998] Mihaela Sabin and Eugene C.
Freuder. Detecting and resolving inconsistency and redun-
dancy in conditional constraint satisfaction problems. In
Proceeding of Constraint Programming (CP-98), 1998.
[Sinz et al., 2003] Carsten Sinz, Andreas Kaiser, and Wolf-
gang Küchlin. Formal methods for the validation of au-
tomotive product configuration data. Artificial Intelli-
gence for Engineering Design, Analysis and Manufactur-
ing, 17(01):75–97, August 2003.
[Sinz et al., 2006] Carsten Sinz, Wolfgang Küchlin, Dieter
Feichtinger, and Georg Görtler. Checking Consistency and
Completeness of On-Line Product Manuals. Journal of
Automated Reasoning, 37(1):45–66, August 2006.
[Soininen and Gelle, 1999] Timo Soininen and Esther Gelle.
Dynamic Constraint Satisfaction in Configuration. In
AAAI-99, Workshop on Configuration, pages 95–100,
1999.
[Subbarayan and Andersen, 2005] Sathiamoorthy Sub-
barayan and Henrik Reif Andersen. Linear Functions
for Interactive Configuration Using Join Matching and
CSP Tree Decomposition. In Configuration Workshop at
IJCAI’05, pages 7–12, 2005.
[Subbarayan et al., 2007] Sathiamoorthy Subbarayan, Lucas
Bordeaux, and Youssef Hamadi. Knowledge Compilation
Properties of Tree-of-BDDs. In AAAI 2007, pages 502–
507, 2007.
[Subbarayan, 2005] Sathiamoorthy Subbarayan. Integrating
CSP Decomposition Techniques and BDDs for Compiling
Configuration Problems. Integration of AI and OR Tech-
niques in Constraint Programming for Combinatorial Op-
timization Problems, 3524/2005:351–365, 2005.
[Tseitin, 1968] Gregory S. Tseitin. On the complexity of
derivation in propositional calculus. In A.O. Slisenko, ed-
itor, Structures in Constructive Mathematics and Mathe-
matical Logic, Part II, Seminars in Mathematics (trans-
lated from Russian), pages 234–259. Steklov Mathemati-
cal Institute, 1968.
[van Dongen, 2000] Stijn van Dongen. A cluster algorithm
for graphs. Technical Report INS-R0010., 2000.