<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Applications of MaxSAT in Automotive Configuration</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Rouven Walter</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Christoph Zengler</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Wolfgang K u¨chlin</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Symbolic Computation Group, versita ̈t Tu ̈bingen</institution>
          ,
          <addr-line>Germany, uni-tuebingen.de</addr-line>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2013</year>
      </pub-date>
      <fpage>29</fpage>
      <lpage>30</lpage>
      <abstract>
        <p>We give an introduction to possible applications of MaxSAT solvers in the area of automotive (re-)configuration. Where a SAT solver merely produces the answer “unsatisfiable” when given an inconsistent set of constraints, a MaxSAT solver computes the maximum subset which can be satisfied. Hence, a MaxSAT solver can compute repair suggestions, e.g. for non-constructible vehicle orders or for inconsistent configuration constraints. We implemented different state-of-the-art MaxSAT algorithms in a uniform setting within a logic framework. We evaluate the different algorithms on (re-)configuration benchmarks generated from problem instances of the automotive industry from our collaboration with German car manufacturer BMW.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1 Introduction</title>
      <p>The well-known NP-complete SAT problem of
propositional logic—is a given propositional formula satisfiable—
has many practical applications; see [Marques-Silva, 2008]
for an overview. Ku¨chlin and Sinz [Ku¨chlin and Sinz, 2000]
pioneered the application of SAT solving for the verification
of the configuration constraints and the bill-of-materials in
the product documentation of the automotive industry on the
example of Mercedes-Benz. A standard problem to be solved
there is the following: Given a (sub-)set O = {o1, . . . , on} of
equipment options and a set C = {c1, . . . , cm} of
configuration constraints whose variables are all options, is it possible
to configure a car with the options in O such that C is
satisfied? This gives us the SAT problem SAT(C ∪ O), where
the options form unit clauses. If the answer is true, then the
partial configurationO is valid and can be extended to a full
valid configurationF which satisfiesC, and F can be readily
obtained from the SAT solver.</p>
      <p>For the unsatisfiable case, two main questions arise: (1)
Which constraints (or clauses for a CNF formula C) of the
input formula caused the unsatisfiability? (2) How many (and
which) clauses can be maximally satisfied?
WSI Informatics,
Uniwww-sr.informatik.</p>
      <p>The first question can be answered with proof tracing
techniques [Zhang and Malik, 2003; As´ın et al., 2010]. Here a
CDCL SAT solver records a trace while solving the formula.
From this trace, a resolution based proof can be deduced,
which shows the clauses involved in the unsatisfiable core.
An unsatisfiable core is also called conflict.</p>
      <p>
        The answer to the second question can be of important
practical use, too. For example, a customer may want to know
a maximal valid subset of an invalid O. Similarly, the car
manufacturer may want to know which maximal subset of C
is still satisfied by a currently invalid, but frequently desired
option set. This optimization problem can be answered with
MaxSAT, a generalization of the SAT problem
        <xref ref-type="bibr" rid="ref1 ref4 ref5">(see Chapter
19 in [Biere et al., 2009])</xref>
        . Instead of deciding the
satisfiability of a propositional formula, MaxSAT computes the
maximum number of satisfiable clauses in an unsatisfiable formula
in CNF. The Partial MaxSAT variant splits the clause set into
hard and soft clauses in a way that the number of satisfied
soft clauses is maximized while all the hard clauses have to
be satisfied. In theweighted variant of MaxSAT, clauses may
carry an additional weight, such as the price of an option o.
      </p>
      <p>Some modern MaxSAT algorithms use SAT solvers as
sub-routines by reducing the problem to several SAT solver
calls [Fu and Malik, 2006; Marques-Silva and Planes, 2008;
Anso´tegui et al., 2009]. With this approach, we can make
use of all modern techniques (such as clause learning,
nonchronological backtracking, or watched literals) of
state-ofthe-art SAT solvers, which are not generally applicable to
MaxSAT solvers.</p>
      <p>MaxSAT can be used to answer further questions of
practical use. For example: (1) After choosing components with
priorities, what is the maximum sum of priorities that can be
achieved for a valid configuration? (2) When considering the
price of each component, how much is the minimal cost of a
valid configuration?</p>
      <p>Reconfiguration is of high practical relevance in the
automotive industry [Manhart, 2005]. The after-sales business
asks for extensions, replacements, or removal of components
of a valid configuration with minimal effort. For example,
when replacing the alarm system with a newer one, or when
moving a vehicle from the U.S. to Europe, we would like to
keep the maximal number of already installed components.
One approach for reconfiguration uses answer set
programming (ASP), which is a decidable fragment of first-order logic
[Friedrich et al., 2011]. In this paper, we will describe a
MaxSAT based approach for reconfiguration.</p>
      <p>This paper is organized as follows. Section 2 defines the
MaxSAT variants and notations. In Section 3 we give a short
introduction to automotive configuration based on SAT,
followed by a complete example. In Section 4 we describe
our approach to use MaxSAT for automotive configuration
to solve the above questions followed by detailed complete
examples. Section 6 shows experimental proof-of-concept
results based on different modern MaxSAT solvers. Section 8
concludes the paper.
2</p>
    </sec>
    <sec id="sec-2">
      <title>Preliminaries: SAT and MaxSAT variants</title>
      <p>A Boolean assignment v is a mapping from a set of Boolean
variables X to {0, 1}. If a propositional formula ϕ evaluates
to true under an assignment v (denoted as v |= ϕ), we call v
a satisfying assignment or model for ϕ, otherwise an
unsatisfying assignment. The SAT problem of propositional logic
is the question whether such a satisfying assignment v exists
for a given formula ϕ or not.</p>
      <p>A literal is a variable or its negation. A clause is a
disjunction of literals. Given a propositional formula ϕ = Vm
i=1 ψi in
conjunctive normal form (CNF) over n variables, where ψi is
a clause for all 1 ≤ i ≤ m and m ∈ N≥0, the solution to the
Maximum Satisfiability problem (MaxSAT) is the maximal
number of clauses which can be satisfied by an assignmentv.
Equation (1) shows a formal definition.</p>
      <p> m
MaxSAT(ϕ) := max X
j=1
kψikv v ∈ {0, 1}n


Where kψikv = 1, if v |= ψi, otherwise kψik = 0.</p>
      <p>We notice that for the corresponding MinUNSAT problem
whose solution is the minimum number of unsatisfied clauses,
equation (2) holds.</p>
      <p>MaxSAT(ϕ) + MinUNSAT(ϕ) = m
Equation (2) also holds for the same resulting model. As a
consequence, we only have to compute one problem to
directly get the optimum and the corresponding model for both
problems.</p>
      <p>There are two extensions of the MaxSAT problem,
called Weighted MaxSAT (WMaxSAT) and Partial MaxSAT
(PMaxSAT). As the name suggests, in a weighted MaxSAT
instance each clause ψi has a weight wi ∈ N≥0 (denoted
by the tuple (ψi, wi)). The Weighted MaxSAT problem then
asks for the maximal sum of weights of satisfied clauses.
Furthermore, in a partial MaxSAT instance, the clauses are
divided into disjoint hard and soft clauses sets: Hard ∪˙ Soft.
An optimal solution satisfies all hard clauses and a maximal
number of soft clauses. Both extensions can be combined to
Partial Weighted MaxSAT (PWMaxSAT).</p>
      <p>The relationship of equation (2) also holds for each
MaxSAT variant.
3</p>
    </sec>
    <sec id="sec-3">
      <title>Automotive Configuration with SAT</title>
      <p>
        Automotive configuration can be represented as a constraint
satisfaction problem
        <xref ref-type="bibr" rid="ref2 ref3">(c. f. [Astesana et al., 2010])</xref>
        and also as
(1)
(2)
a CNF formula in propositional logic, where each satisfying
assignment is called a valid configuration of a car. The latter
approach was investigated in [Ku¨chlin and Sinz, 2000].
      </p>
      <p>We will give a simplified and short introduction into this
representation: (1) Each component (option) c is represented
by a separate variable xc; the component will be used in the
final configuration assignmentv if and only if v(xc) = 1; (2)
components of a family (e.g. different steering wheels) will
be restricted by cardinality constraints [Sinz, 2005; Bailleux
et al., 2009] to choose exactly one (or at most one, if the
component is an optional feature); (3) dependencies between
components are expressed as clauses (e.g. the implication
(xa ∧ xb) → (xc ∨ xd) means “If components a and b are
chosen, then component c or d has to be chosen (or both)”; in
clause form (¬xa ∨ ¬xb ∨ xc ∨ xd)).</p>
      <p>The resulting formula in CNF is:
ϕcar := ϕcc ∧ ϕdep
(3)
Where ϕcc are the clauses of the families’ cardinality
constraints and ϕdep are the clauses of the dependencies between
the components. With this representation, we can answer the
following questions using a SAT solver:</p>
      <sec id="sec-3-1">
        <title>1. Validation of a partial configuration.</title>
        <p>2. Forced component: A component, which is used in
every valid configuration.
3. Redundant component: A component, which can
never be used in any valid configuration.
3.1</p>
      </sec>
      <sec id="sec-3-2">
        <title>Example: SAT based Configuration</title>
        <p>We consider the families of components with their limitations
listed in Table 1.</p>
        <p>Furthermore, we consider the dependencies between the
components listed in Table 2.</p>
      </sec>
      <sec id="sec-3-3">
        <title>2. (Maximization of priorities) We can generalize the use</title>
        <p>case 1 by attaching priorities to the components: A
customer chooses components c1, . . . , cn which lead to an
invalid configuration. Additionally, the customer has
priorities p1, . . . , pn, pi ∈ N&gt;0, for each component.
We can answer the question, which sum of priorities can
be maximally reached for a valid configuration by
solving Formula (6) with a Partial Weighted MaxSAT solver.</p>
        <p>ϕcar
har|d{czla}uses
∧ (xc1 , p1) ∧ . . . ∧ (xcn , pn)
| }
soft {clzauses
3. (Reconfiguration) We can use the introduced
techniques in the use cases 1 and 2 for reconfiguration. Let
us assume a customer wants to add, replace, or remove
components of her existing car. She chooses the
components c1, . . . , ck with priorities p1, . . . , pk ∈ N&gt;0. If
the priority or partial state (hard or soft) of a clause of
an originally chosen component has changed, the
original clause will be replaced by the new partial weighted
clause. Otherwise, the clause will be kept. We solve
Formula (7) with a Partial Weighted MaxSAT solver to
reach the maximal sum of priorities.</p>
        <p>For example, the implication “ G1 → E1 ∨ E2” means “If
gearbox G1 is chosen, then engine E1 or E2 has to be
chosen”.</p>
        <p>With the resulting formula ϕcar from the above
specifications, we consider two customer cases:
1. A customer chooses engine E1 and control unit C1 for
the car. But she does not want the air conditioner AC2.
We test Formula (4) for satisfiability.</p>
        <p>ϕcar ∧ xG1 ∧ xC1 ∧ ¬xAC2 (4)
The result is true. Derived from the resulting model,
we can choose the components D1, C1, G1, E1 to get a
complete valid configuration assignment.
2. A customer chooses the components E1, G2, C2, D3 and
N2, AC1, AS1, R2. The result is false.</p>
        <p>The question now is, which maximal subset of the
original choice will lead to a valid configuration?</p>
      </sec>
      <sec id="sec-3-4">
        <title>3.2 Advantage of the MaxSAT based approach</title>
        <p>With the SAT based configuration, two main problems arise.
First, if the configuration is not valid, it is not possible to
know which components cause the conflict. Second, even
if we know the components causing the conflict, we do not
know, which components to omit to get a valid configuration
with a maximal number of components we wanted originally.
The example 2 of Subsection 3.1 shows such a case.</p>
        <p>As mentioned in the introduction, the first problem can be
handled with proof tracing to explain a conflict for an
invalid configuration. The second problem can be handled with
MaxSAT and its extensions. We explain this approach in the
next section in detail.
4</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Automotive Configuration with MaxSAT</title>
      <p>For the representation of automotive configuration as a
MaxSAT instance we consider the Partial MaxSAT problem.
We use the SAT based specification ϕcar of Section 3 and
divide the clauses into hard and soft ones. First, all
cardinality constraints are marked as hard clauses, because they have
to be satisfied (e.g. it is not possible to configure a car with
more than one steering wheel). Second, it is possible that the
dependencies between components do not necessarily have
to be satisfied (e.g. a dependency could have been created
due to marketing reasons; “No black seats for all Japanese
cars”). On the other hand, technical dependencies have to
be satisfied (e.g. a conflict between an engine and a gearbox).
For simplicity reasons, we also mark all dependencies as hard
clauses.</p>
      <p>With the representation above, we can consider the
following advanced use cases and answer the new arising questions
with the help of a Partial (Weighted) MaxSAT solver:</p>
      <sec id="sec-4-1">
        <title>1. (Maximization of chosen components) A customer</title>
        <p>chooses components c1, . . . , cn which lead to an invalid
configuration. We can answer the question, what the
maximal number of the chosen components for a valid
configuration is, by solving Formula (5) with a Partial
MaxSAT solver.</p>
        <p>ϕcar
har|d{czla}uses
∧ xc1 ∧ . . . ∧ xcn
| }
soft {clzauses
(5)
(6)
(7)
ϕcar
har|d{czla}uses
∧ (xc1 , p1) ∧ . . . ∧ (xcn , pn)
| }
soft {clzauses
To force certain new components to be installed or old
components to be kept, we can designate the
corresponding clauses as hard clauses.</p>
        <p>To reach a valid reconfiguration for the customer, a
reconfiguration scenario can be considered as a process in
different steps:
• Check for validation after the customer chooses
new components with priorities as previously
described.
• If the hard clauses are unsatisfiable, check for
validation after the sales division sets additional
dependencies as soft clauses (with priorities).
• If the hard clauses are unsatisfiable, check for
validation after the engineering divison sets additional
dependencies as soft clauses (with priorites).</p>
        <p>If the hard clauses are unsatisfiable after all steps, there
is no valid configuration, because technical limitations
are reached which can not be set as soft clauses.
Otherwise, if the hard clauses are satisfiable in one step, we
can compute the maximal sum of priorities of the soft
clauses while satisfying the hard clauses.</p>
      </sec>
      <sec id="sec-4-2">
        <title>4. (Minimization of costs) The components c1, . . . , cn</title>
        <p>have prices p1, . . . , pn, pi ∈ N&gt;0. We want to know
which components have to be chosen, to get a valid
configuration with minimal cost. We can answer the
question by solving Formula (8) with a Partial Weighted
MinUNSAT solver.</p>
        <p>ϕcar
har|d{czla}uses
∧ (¬xc1 , p1) ∧ . . . ∧ (¬xcn , pn)
| }
soft {clzauses
(8)
Instead of finding the minimal costs of a valid
configuration, we could also compute a valid configuration of
minimal weights, CO2 emissions, or other interesting
targets.</p>
        <p>In all situations above, the resulting model of the solver tells
us which components to choose to get the optimum.</p>
        <p>Additionally, we can add arbitrary hard clauses to enforce
certain constraints: (1) Unit clauses to enforce the in- or
exclusion of a component; (2) Additional dependencies
between components (e.g. “When engine E1 is chosen, then
choose gearbox G2”; (xE1 → xG2 )); (3) Additional
cardinality constraints (e.g. xD1 ∨ xD2 to ensure that one of the
dashboards D1 or D2 will be chosen).</p>
        <p>For example, in Situation 4 (minimization of costs), we
could add unit clauses to enforce the inclusion of certain
components and then compute the minimal costs of the
configuration. The result is a valid configuration with minimal costs
which includes our chosen components.
4.1</p>
      </sec>
      <sec id="sec-4-3">
        <title>Example: MaxSAT based Configuration</title>
        <p>We reconsider the example in Subsection 3.1.</p>
        <p>1. In the second case, the choice of the customer was
unsatisfiable. With the MaxSAT based approach of
configuration we can find an assignment of a valid configuration
where a maximum number of components is included.
After solving Formula (5) with a Partial MaxSAT solver,
we obtain the results shown in Table 3.
We can reach a valid configuration by changing two of
the choices (bold rows in the table) and therefore, we
can keep 6 of our 8 original components at most. For the
alarm system, the resulting model did not set another
alarm system variable to true, because this is an optional
feature.</p>
        <p>In general, the result obtained from the solver may not
be the only optimum. There can be other different
assignments with the same number of satisfied clauses.
xD4 ).
2. We consider another case, where the customer chooses
the components with priorities as shown in Table 4.
Additionally, she wants dashboard D2, D3, or D4. To
enforce this constraint, we add the hard clause (xD2 ∨xD3 ∨
R2
3. After the previous configuration, the customer wants to
reconfigure her existing car. Table 5 shows her choice.
We can imagine that for technical or financial reasons,
the engine E1 and gearbox G2 can not be replaced. We
set them as hard clauses. However, control unit C2 and
dashboard D4 can possibly be replaced and therefore are
set as soft clauses.
The results show that dashboard D4 was replaced by
dashboard D2 and radio R2 has to be removed in favor
of other components.
4. Now we associate the components with prices (as shown
in Table 6) and we want to know a valid configuration
with a minimal total price.
For the minimal costs we solve Formula (8) with a
Partial Weighted MinUNSAT solver. For the maximal costs
we solve Formula (6) with a Partial Weighted MaxSAT
solver by considering the prices as priorities. The results
are:
• Minimal cost: e 3,900
• Maximal cost: e 8,625
Table 7 lists the components to choose to reach the
minimal and maximal costs.</p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>Algorithmic techniques</title>
      <p>In order to give the reader an impression of how MaxSAT
can be computed, we present a short incomplete overview of
some algorithmic techniques.</p>
      <p>Branch-and-Bound The general branch and bound
approach to explore the search tree of optimization problems
can also be used for solving MaxSAT and its extensions.
Each node of the tree represents a variable of the instance
and has two children for the two values the variable can be
assigned to. Tree pruning is used as soon as a partial
solution becomes worse than the best solution found elsewhere in
the tree. Heuristics have been developed e.g. by Wallace and
Freuder to narrow the search space predicting the final value
of partial solutions [Wallace and Freuder, 1993].
Basic SAT-based Given an unsatisfiable SAT problemϕ =
{C1, . . . , Cm}, we may iteratively try to remove individual
clauses Ci until the subproblem ϕ0 becomes satisfiable. ϕ0
will then be maximal in the sense that adding another clause
will make it unsatisfiable, but another, larger, subproblem
may exist which could be found by removing clauses from
ϕ in a different order.</p>
      <p>In SAT solving, clause removal can be simulated by
augmenting each clause Ci with a fresh blocking variable bi. As
long as bi is set to false, the solver needs to satisfy Ci, but the
constraint Ci can effectively be blocked by setting bi to true
instead. Now, in order to remove as few clauses as possible,
we add m blocking variables to ϕ as above and restrict the
use of the bi by an additional cardinality constraint CC(k),
which is a formula that prevents more than k of the bi to be set
to true. Iterating over k from below until ϕ(k) becomes
satisfiable, or from above untilϕ(k) becomes unsatisfiable, gives
us the MaxSAT result m − k, and the subset of clauses whose
bi are set to false forms one satisfiable subset of maximum
cardinality.</p>
      <p>Algorithm 1 reflects basic approach. One improvement of
this approach is the use of binary search.</p>
      <p>Algorithm 1: Basic SAT-based approach
Input: ϕ = {C1, . . . , Cm}
Output: Minimal number of unsatisfied clauses
ϕ ← {C1 ∨ b1, . . . , Cm ∨ bm}
cost ← m
while SAT(ϕ ∪ CNF(Pm</p>
      <p>i=1 bi &lt; cost)) do
cost ← cost − 1
return cost
Core-guided SAT-based Modern proof-tracing SAT
solvers return an unsatisfiable subset (unsat core) μ ⊆ ϕ
when given an unsatisfiableϕ. It is then clear that at least one
clause of μ has to be blocked before ϕ can become satisfiable,
and thus the search can be narrowed compared to the basic
approach. An algorithm based on this idea was proposed by
Fu and Malik for partial MaxSAT [Fu and Malik, 2006]. In
every iteration where the instance is unsatisfiable, we add a
new blocking variable to all soft clauses of the unsatisfiable
core and a new cardinality constraint to achieve that exactly
one of the currently added blocking variables has to be
satisfied. We can not just iterate over the unsat cores and
count them, because they may not be disjoint.</p>
      <p>This idea can also be extended for partial weighted
MaxSAT [Anso´tegui et al., 2009].
6</p>
    </sec>
    <sec id="sec-6">
      <title>Experimental Results</title>
      <p>For our benchmarks we used product configuration formulas
of a current (2013) product line of the German car
manufacturer BMW. We added unit clauses to create unsatisfiable
customer orders. We defined the following three categories for
hard and soft clauses:
• Order: Soft clauses are unit clauses of the customer’s
order. All other clauses are hard. This asks, wich of the</p>
      <p>customer’s wishes can be maximally satisfied.
• Packages: Soft clauses are clauses which represent
packages, e.g. a sports package, which triggers all
relevant sports components. The unit clauses of the
customer’s order and all other clauses are hard. This asks,
which of the package restrictions can be maximally
satisfied w.r.t. the customer’s wishes.
• Packages &amp; more: Soft clauses are package clauses
and additional other sales relevant conditions. The unit
clauses of the customer’s order and all other clauses are
hard. This asks, which of the package restrictions and
additional restrictions can be maximally satisfied w.r.t.
the customer’s wishes.</p>
      <p>The upper half of Table 8 shows detailed statistics about each
category. The second half of the table shows how many
instances have an optimum. No optimum means that there is
at least one conflict involving only hard clauses. The average
optimum is the average of the result of the minimal number
of unsatisfiable clauses. For example, the average optimum
of 2.127 within the ‘Order’ category means that on average
2.127 of the customer’s choices can not be satisfied.</p>
      <p>We applied our benchmarks to three different
state-of-theart MaxSAT solvers, namely:
• akmaxsat [Ku¨gel, 2012]: A partial weighted MaxSAT
solver based on a branch-and-bound approach. One of
the best performing solvers in last year’s MaxSAT
competition1.
• Fu &amp; Malik [Fu and Malik, 2006]: A partial MaxSAT
solver based on exploiting unsatisfiable cores and adding
blocking variables to each soft clause of each found
unsatisfiable core.
• PM2 [Anso´tegui et al., 2009]: A partial MaxSAT solver
based on exploiting unsatisfiable cores. But unlike the
Fu &amp; Malik solver this approach only uses exactly one
blocking variable to each clause.</p>
      <p>For akmaxsat we used the implementation of Adrian Ku¨gel2.
We implemented the Fu &amp; Malik and PM2 algorithms on top
of our own Java SAT solver, which is optimized for our
industrial collaborations. The cardinality constraints in the Fu
&amp; Malik approach are only of the form Pn
i=1 xi = 1 for given
1http://maxsat.ia.udl.cat:81/12
2http://www.uni-ulm.de/in/theo/m/alumni/
kuegel.html
variables x1, . . . , xn. We encode this constraint through the
constraints (Win=1 xi) and Vin=1 Vjn=i+1(¬xi ∨ ¬xj ) . The
cardinality constraints in the PM2 approach uses general
limitations, which we implemented with the encoding proposed
in [Bailleux et al., 2009].</p>
      <p>All our benchmarks were run on the same environment:
Operating System: Ubuntu 12.04 64 Bit; Processor: Intel
Core i7-3520M, 2,90 GHz; Main memory: 8 GB; JVM 1.7.0
(for Fu &amp; Malik and PM2).</p>
      <p>Table 9 shows the results of our time measurements of
each solver in each category. The listed times are the
average times a solver needed to solve an instance of a category.
We listed the average time in each category Solver akmaxsat
has an average time of remarkable less than 0.6 seconds in
each category. Our implementation of Fu &amp; Malik has a
reasonable average time of less than 6 seconds in each category.
Our implementation of PM2 has a reasonable average time
for the first category ‘Order’, but exceeded our time limit of
3, 600 seconds per instance on too many instances of
categories ‘Packages’ and ‘Packages &amp; more’ to get a reasonable
average time.</p>
      <p>Figures 1, 2 and 3 show the performance of each solver
in the first category ‘Order’. These figures show the relation
between the optimum and the response time of the instances.
Especially for Fu &amp; Malik and PM2 the response time seems
to grow linearly with increasing optimum.</p>
      <p>4
Optimum (quantity)
5
1
2
6
7
3</p>
      <p>4
Optimum (quantity)
5
7</p>
    </sec>
    <sec id="sec-7">
      <title>Related Work</title>
      <p>In [Junker, 2004] general satisfaction problems are
considered, where we have a knowlegde base of constraints which
have to be satisfied and customer requirements, which we
would like to satisfy. In the context of MaxSAT, the
knowledge base can be considered as hard clauses, whereas the
customer requirements can be considered as soft clauses. In the
case of inconsistency, the proposed algorithm QuickXplain
delivers preferred explanations, which are based on a given
total ordering of the constraints.</p>
      <p>The work of [Reiter, 1987] proposes an algorithm for
computing minimal diagnoses using a conflict detection
algorithm. A diagnosis is a minimal subset Δ of the customer
requirements, such that the constraints without Δ is
consistent. In [Felfernig et al., 2012] another algorithm is proposed,
called FastDiag, which computes a preferred minimal
diagnosis without calculating the corresponding conflicts.
8</p>
    </sec>
    <sec id="sec-8">
      <title>Conclusion</title>
      <p>In this paper we showed detailed examples of how MaxSAT
and its extensions can be applied in automotive configuration.
With this approach we are able to repair an unsatisfiable
customer order by computing the optimal solution which satisfies
as many of the customer’s choices as possible. Furthermore,
we showed how MaxSAT also can be used in reconfiguration
scenarios. From an already configured car we can compute
the minimal number of components to change when adding,
changing, or removing components.</p>
      <p>We created realistic benchmarks for our MaxSAT
applications out of the product formulas of our commercial
collaboration with BMW. Our time measurements of these
benchmarks against the state-of-the-art MaxSAT solvers akmaxsat,
Fu &amp; Malik, and PM2, showed that we have a reasonable
response time, except for PM2 in two categories. These results
suggest that MaxSAT can be applied for industrial automotive
(re-)configuration problems.
1
2
6
7
3</p>
      <p>4
Optimum (quantity)
5</p>
      <p>In Figure 4 we can also recognize the linear growing
response time with increasing optimum. Also note the lower
line of quickly solvable instances.</p>
      <p>0
2
4
6</p>
      <p>8 10 12
Optimum (quantity)
14
16
18
20
[Reiter, 1987] Raymond Reiter. A theory of diagnosis from
first principles. Artificial Intelligence , 32(1):57 – 95, April
1987.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [Anso´tegui et al.,
          <year>2009</year>
          ]
          <article-title>Carlos Anso´tegui, Maria Luisa Bonet, and Jordi Levy</article-title>
          .
          <article-title>On solving MaxSAT through SAT</article-title>
          .
          <source>In Proceedings of the 2009 conference on Artificial Intelligence Research and Development</source>
          , pages
          <fpage>284</fpage>
          -
          <lpage>292</lpage>
          . IOS Press Amsterdam, Amsterdam, Netherlands,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [As´ın et al.,
          <year>2010</year>
          ] Robert As´ın, Robert Nieuwenhuis,
          <string-name>
            <given-names>Albert</given-names>
            <surname>Oliveras</surname>
          </string-name>
          , and Enric Rodr´
          <fpage>ıguez</fpage>
          -Carbonell.
          <article-title>Practical algorithms for unsatisfiability proof and core generation in SAT solvers</article-title>
          .
          <source>AI Communications</source>
          ,
          <volume>23</volume>
          (
          <issue>2-3</issue>
          ):
          <fpage>145</fpage>
          -
          <lpage>157</lpage>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [Astesana et al.,
          <year>2010</year>
          ]
          <string-name>
            <given-names>Jean</given-names>
            <surname>Marc</surname>
          </string-name>
          <string-name>
            <surname>Astesana</surname>
          </string-name>
          , Yves Bossu, Laurent Cosserat, and
          <string-name>
            <given-names>Helene</given-names>
            <surname>Fargier</surname>
          </string-name>
          .
          <article-title>Constraint-based modeling and exploitation of a vehicle range at Renault's: Requirement analysis and complexity study</article-title>
          .
          <source>In Proceedings of the 13th Workshop on Configuration</source>
          , pages
          <fpage>33</fpage>
          -
          <lpage>39</lpage>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [Bailleux et al.,
          <year>2009</year>
          ]
          <string-name>
            <given-names>Olivier</given-names>
            <surname>Bailleux</surname>
          </string-name>
          , Yacine Boufkhad, and
          <string-name>
            <given-names>Olivier</given-names>
            <surname>Roussel</surname>
          </string-name>
          .
          <article-title>New encodings of pseudo-boolean constraints into CNF</article-title>
          . In Oliver Kullmann, editor,
          <source>Theory and Applications of Satisfiability Testing-SAT</source>
          <year>2009</year>
          , volume
          <volume>5584</volume>
          of Lecture Notes in Computer Science, pages
          <fpage>181</fpage>
          -
          <lpage>194</lpage>
          . Springer Berlin Heidelberg,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [Biere et al.,
          <year>2009</year>
          ]
          <string-name>
            <given-names>Armin</given-names>
            <surname>Biere</surname>
          </string-name>
          , Marijn Heule, Hans van Maaren, and Toby Walsh, editors.
          <source>Handbook of Satisfiability: Volume 185 Frontiers in Artificial Intelligence and Applications</source>
          , volume
          <volume>185</volume>
          . IOS Press, Amsterdam, Netherlands,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [Felfernig et al.,
          <year>2012</year>
          ]
          <string-name>
            <given-names>A.</given-names>
            <surname>Felfernig</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Schubert</surname>
          </string-name>
          , and
          <string-name>
            <given-names>C.</given-names>
            <surname>Zehentner</surname>
          </string-name>
          .
          <article-title>An efficient diagnosis algorithm for inconsistent constraint sets</article-title>
          .
          <source>Artificial Intelligence for Engineering Design, Analysis and Manufacturing</source>
          ,
          <volume>26</volume>
          (
          <issue>1</issue>
          ):
          <fpage>53</fpage>
          -
          <lpage>62</lpage>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [Friedrich et al.,
          <year>2011</year>
          ]
          <string-name>
            <given-names>Gerhard</given-names>
            <surname>Friedrich</surname>
          </string-name>
          , Anna Ryabokon, Andreas A.
          <string-name>
            <surname>Falkner</surname>
          </string-name>
          , Alois Haselbo¨ck, Gottfried Schenner, and Herwig Schreiner.
          <article-title>(re)configuration using answer set programming</article-title>
          .
          <source>In Kostyantyn Shchekotykhin</source>
          , Dietmar Jannach, and Markus Zanker, editors,
          <source>IJCAI-11 Configuration Workshop Proceedings</source>
          , pages
          <fpage>17</fpage>
          -
          <lpage>24</lpage>
          , Barcelona, Spain,
          <year>July 2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          <source>[Fu and Malik</source>
          , 2006]
          <string-name>
            <given-names>Zhaohui</given-names>
            <surname>Fu</surname>
          </string-name>
          and
          <string-name>
            <given-names>Sharad</given-names>
            <surname>Malik</surname>
          </string-name>
          .
          <article-title>On solving the partial MAX-SAT problem</article-title>
          . In Armin Biere and Carla P. Gomes, editors,
          <source>Theory and Applications of Satisfiability Testing-SAT</source>
          <year>2006</year>
          , volume
          <volume>4121</volume>
          of Lecture Notes in Computer Science, pages
          <fpage>252</fpage>
          -
          <lpage>265</lpage>
          . Springer Berlin Heidelberg,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          <source>[Junker</source>
          , 2004]
          <string-name>
            <given-names>Ulrich</given-names>
            <surname>Junker</surname>
          </string-name>
          . QUICKXPLAIN:
          <article-title>Preferred explanations and relaxations for over-constrained problems</article-title>
          . In Deborah L.
          <article-title>McGuinness</article-title>
          and George Ferguson, editors,
          <source>Proceedings of the Nineteenth National Conference on Artificial Intelligence, Sixteenth Conference on Innovative Applications of Artificial Intelligence</source>
          , pages
          <fpage>167</fpage>
          -
          <lpage>172</lpage>
          . AAAI Press / The MIT Press,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          <source>[Ku¨chlin and Sinz</source>
          , 2000]
          <article-title>Wolfgang Ku¨chlin and Carsten Sinz. Proving consistency assertions for automotive product data management</article-title>
          .
          <source>Journal of Automated Reasoning</source>
          ,
          <volume>24</volume>
          (
          <issue>1-2</issue>
          ):
          <fpage>145</fpage>
          -
          <lpage>163</lpage>
          ,
          <year>2000</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [Ku¨gel, 2012]
          <article-title>Adrian Ku¨gel. Improved exact solver for the weighted max-sat problem</article-title>
          . In Daniel Le Berre, editor,
          <source>POS-10. Pragmatics of SAT</source>
          , volume
          <volume>8</volume>
          of EPiC Series, pages
          <fpage>15</fpage>
          -
          <lpage>27</lpage>
          . EasyChair,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          <source>[Manhart</source>
          , 2005]
          <string-name>
            <given-names>Peter</given-names>
            <surname>Manhart</surname>
          </string-name>
          .
          <article-title>Reconfiguration - a problem in search of solutions</article-title>
          . In Dietmar Jannach and Alexander Felfernig, editors,
          <source>IJCAI-05 Configuration Workshop Proceedings</source>
          , pages
          <fpage>64</fpage>
          -
          <lpage>67</lpage>
          , Edinburgh, Scotland,
          <year>July 2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          <source>[Marques-Silva and Planes</source>
          , 2008]
          <article-title>Joa˜o Marques-Silva and Jordi Planes. Algorithms for maximum satisfiability using unsatisfiable cores</article-title>
          .
          <source>InDesign</source>
          , Automation and Test in Europe, pages
          <fpage>408</fpage>
          -
          <lpage>413</lpage>
          . IEEE,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [
          <string-name>
            <surname>Marques-Silva</surname>
          </string-name>
          ,
          <year>2008</year>
          ]
          <article-title>Joa˜o Marques-Silva. Practical applications of boolean satisfiability</article-title>
          .
          <source>In Discrete Event Systems</source>
          ,
          <year>2008</year>
          .
          <source>WODES</source>
          <year>2008</year>
          . 9th International Workshop on, pages
          <fpage>74</fpage>
          -
          <lpage>80</lpage>
          . IEEE,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          <source>[Sinz</source>
          , 2005]
          <string-name>
            <given-names>Carsten</given-names>
            <surname>Sinz</surname>
          </string-name>
          .
          <article-title>Towards an optimal CNF encoding of boolean cardinality constraints</article-title>
          . In Peter van Beek, editor,
          <source>Principles and Practice of Constraint Programming-CP 2005 , Lecture Notes in Computer Science</source>
          , pages
          <fpage>827</fpage>
          -
          <lpage>831</lpage>
          . Springer Berlin Heidelberg,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          <source>[Wallace and Freuder</source>
          , 1993] Richard Wallace and
          <string-name>
            <given-names>Eugene C.</given-names>
            <surname>Freuder</surname>
          </string-name>
          .
          <article-title>Comparative studies of constraint satisfaction and Davis-Putnam algorithms for maximum satisfiability problems</article-title>
          . In David S. Johnson and Michael A. Trick, editors, Cliques, Coloring, and Satisfiability: Second DIMACS Implementation Challenge, volume
          <volume>26</volume>
          <source>of Discrete Mathematics and Theoretical Computer Science</source>
          , pages
          <fpage>587</fpage>
          -
          <lpage>615</lpage>
          . American Mathematical Society, USA,
          <year>1993</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          <source>[Zhang and Malik</source>
          , 2003]
          <string-name>
            <given-names>Lintao</given-names>
            <surname>Zhang</surname>
          </string-name>
          and
          <string-name>
            <given-names>Sharad</given-names>
            <surname>Malik</surname>
          </string-name>
          .
          <article-title>Validating SAT solvers using an independent resolutionbased checker: Practical implementations and other applications</article-title>
          .
          <source>In Proceedings of the conference on Design, Automation and Test in Europe</source>
          , volume
          <volume>1</volume>
          , pages
          <fpage>10880</fpage>
          -
          <lpage>10885</lpage>
          . IEEE Computer Society,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>