<!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>On the Benefits of Enhancing Optimization Modulo Theories with Sorting Networks for MaxSMT</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Roberto Sebastiani</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Patrick Trentin</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>DISI, University of Trento</institution>
          ,
          <country country="IT">Italy</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>Optimization Modulo Theories (OMT) is an extension of SMT, which combines SMT with optimization, finding models that make given objectives optimal. OMT has been extended to be incremental and to handle multiple objective functions either independently or with their linear, lexicographic, Pareto, min-max/max-min combinations. OMT applications can be found not only in the domains of Formal Verification, Automated Reasoning and Planning with Resources, but also Machine Learning and Requirement Engineering. (Partial weighted) MAXSMT-or, alternatively, OMT with Pseudo-Boolean objective functions- is a very-relevant subcase of OMT. Unfortunately, using general OMT algorithm for MAXSMT suffers from some intrinsic inefficiencies in some cases. In this paper we identify the sources of such inefficiencies and address them by enhancing general OMT by means of sorting networks. We implemented this idea on top of the OPTIMATHSAT OMT solver and evaluated them empirically on problems coming from Machine Learning and Requirement Engineering. The empirical results support the effectiveness of this idea.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>Optimization Modulo Theories (OMT) is an extension of SMT, which allows for finding models that
make a given objective optimal through a combination of SMT and optimization procedures [18, 11,
12, 20, 21, 14, 15, 9, 10, 23, 22]. Latest advancements in OMT have further broadened its horizon by
making it incremental [9, 23] and by supporting objectives defined in other theories than linear
arithmetic (e.g. Bit-Vectors) [9, 10, 16]. Moreover, OMT has been extended with the capability of handling
multiple objectives at the same time either independently or through their linear, min-max/max-min,
lexicographic or Pareto combination [9, 10, 23].</p>
      <p>An important sub-case of OMT is (partial weighted 1) MAXSMT–or alternatively OMT with
PseudoBoolean objective functions [19]– [18, 11, 12], which is the problem of finding a model for an input
formula which both satisfies all hard clauses and maximizes the cumulative weight of all soft clauses
made True by the model.</p>
      <p>Two main approaches for MAXSMT have been adopted in the literature.</p>
      <p>One approach is to embed some MAXSAT engine within the SMT solver itself, and use it in
combination with dedicated T -solvers [4, 12, 9, 10]. Although this approach can be very efficient, it has some
limitations that make it an impractical choice in some cases.</p>
      <p>The first issue is that, to the best of our knowledge, MAXSAT engines deal with integer weights
only. However, some applications, e.g., Learning Modulo Theories [25] –a hybrid Machine Learning
approach in which OMT is used as an oracle for Support Vector Machines [25]– may require the weight
of soft-constraints to be high-precision rational values. In this context, it is preferable not to round the
weights associated with soft-clauses since it affects the accuracy of the Machine Learning approach.</p>
      <p>The second drawback is that a MAXSAT engine cannot be used when dealing with an OMT problem
with multiple-independent objectives that need to be optimized at the same time, or when the objective
function is given by either a linear combination of Pseudo-Boolean and arithmetic terms (like, e.g., for
Linear Generalized Disjunctive Programming problems [21]) or a non-trivial combination of several
Pseudo-Boolean sums as in [25].</p>
      <p>An alternative approach for dealing with MAXSMT is to encode it as a Pseudo-Boolean objective
in Optimization Modulo Theories [21] which, for the above reasons, is the approach adopted in
OPTIMATHSAT [1].</p>
      <p>We notice that, unfortunately, compared with the use of a dedicated MAXSAT engine, this second
approach might result in poor performance when dealing with MAXSMT problems in which a large
number of soft-clauses are assigned the same weight. In fact, this situation entails the existence of
symmetries in the solution space that might lead to a combinatorial explosion of the partial truth assignments
generated by the CDCL engine during the optimization search.</p>
      <p>In this paper we analyze the sources of this inefficiency and describe and evaluate a solution based
on sorting networks, which we implemented on top of OPTIMATHSAT. The benefits of applying this
technique are shown with an experimental evaluation based on two OMT applications, performed on
benchmarks sets coming from the Requirement Engineering and Machine Learning domain.
Related Work. The idea of MaxSMT and, more generally, of optimization in SMT was first introduced
by Nieuwenhuis &amp; Oliveras [18], who presented a general logical framework of “SMT with
progressively stronger theories” (e.g., where the theory is progressively strengthened by every new
approximation of the minimum cost), and presented implementations for MaxSMT based on this framework.
Cimatti et al. [11] introduced the notion of “Theory of Costs” C to handle Pseudo-Boolean (PB) cost
functions and constraints by an ad-hoc and independent “C-solver” in the standard lazy SMT schema,
and implemented a variant of MathSAT tool able to handle SMT with PB constraints and to minimize
PB cost functions. Anso´tegui et al. [4] described the evaluation of an implementation of a MaxSMT
procedure based on YICES, although this implementation is not publicly available. Cimatti et al. [12]
presented a “modular” approach for MaxSMT, combining a lazy SMT solver with a MaxSAT solver,
which can be used as black-boxes, where the SMT solver is used as an oracle generating T -lemmas
that are then learned by the MAXSAT solver so as to progressively narrow the search space toward the
optimal solution.</p>
      <p>Sebastiani and Tomasi [20, 21] introduced a wider notion of optimization in SMT, namely
Optimization Modulo Theories (OMT) with linear cost functions on the rationals, OMT(LRA[T ), which allows
for finding models minimizing some LRA cost term –T being some (possibly empty) stably-infinite
theory s.t. T and LRA are signature-disjoint 2, and presented novel OMT(LRA [ T ) tools which
combine standard SMT with LP minimization techniques. Eventually, OMT(LRA [ T ) has been
extended so that to handle costs on the integers, incremental OMT, multi-objective and lexicographic
OMT and Pareto-optimality [15, 14, 9, 23, 10, 22]. To the best of our knowledge only four OMT solvers
are currently implemented: BCLT [14], OPTIMATHSAT [23, 22], SYMBA [15] and Z [9, 10].
Remarkably, Z [9, 10] implements specialized procedures for MaxSMT, leveraging to SMT level various
state-of-the-art MaxSAT procedures. In addition to it, Z features a Pseudo-Boolean T -solver which
can generate sorting networks on demand for Pseudo-Boolean inequalities featuring sums with small
coefficients when a Pseudo-Boolean inequality is used some times for unit propagation/conflicts [10, 8].</p>
      <p>Importantly, both partial weighted MAXSMT and SMT with PB objectives can be encoded into
OMT(LRA [ T ), whereas the contrary is not possible [20, 21].</p>
      <p>Content. The paper is structured as follows. The background and the state of the art are briefly reviewed
2Notice that T can also be a combination of Theories Si Ti [20, 21].
in section x2, whereas section x3 describes the source of inefficiency arising when partial weighted
MAXSMT is encoded in OMT as in [21]. Section x4 illustrates a possible solution based on sorting
networks, whereas in x5 we provide empirical evidence of the benefits of this approach on two applications
of OMT interest. Section x6 concludes the paper with some considerations on the future work.
2</p>
    </sec>
    <sec id="sec-2">
      <title>Background and State of the Art</title>
      <p>Optimization Modulo Theories is an extension of SMT which addresses the problem of finding a model
for an input formula ' which is optimal wrt. some objective function obj [18].</p>
      <p>The basic minimization scheme implemented in state-of-the-art OMT solvers, known as
linearsearch scheme [20, 21], requires solving an SMT problem with a solution space that is progressively
tightened by means of unit linear constraints in the form (obj &lt; ubi), where ubi is the value of obj that
corresponds to the optimum model of the most-recently found truth assignment i s.t. i j= '. The ubi
value is computed by means of a specialized optimization procedure embedded within the T -solver of
interest that, taken as input a pair h ; obji, returns the optimal value ub of obj for such . The OMT
search terminates when the latter procedure finds that obj is unbounded or when the SMT search is
UNSAT, in which case the latest value of obj (if any) and its associated model Mi is returned as optimal
solution value. (Alternatively, binary-search schemes can also be used [20, 21].)</p>
      <p>An important subcase of OMT is that of MAXSMT, which is a pair h'h; 'si, where 'h denotes
the set of “hard” T -clauses, 's is a set of positive-weighted “soft” T -clauses, and the goal is to find
the maximum-weight set of T -clauses s, s 's, s.t. 'h [ s is T -satisfiable [18, 11, 4, 12]. As
described in [21], MAXSMT h'h; 'si can be encoded into a general OMT problem with a
PseudoBoolean objective. To do so, one first introduces a fresh Boolean variable Ai for each soft-constraint
Ci 2 's as follows
' =def 'h [
[ f(Ai _ Ci)g; obj =def X</p>
      <p>wiAi
Ci2's</p>
      <p>Ci2's
and then encodes the problem into OMT as a pair h'; obji where ' is defined as</p>
      <p>Vi((0
xi) ^ (xi</p>
      <p>wi))
' =def</p>
      <p>' ^ Vi((Ai ! (xi = wi)) ^ (:Ai ! (xi = 0))) ^
obj
def
=</p>
      <sec id="sec-2-1">
        <title>Pi xi; xi f resh</title>
        <p>
          Notice that, although redundant from a logical perspective, the constraints in (
          <xref ref-type="bibr" rid="ref3">3</xref>
          ) serve the important
purpose of allowing early-pruning calls to the LRA-Solver (see [6]) to detect a possible LRA
inconsistency among the current partial truth assignment over variables Ai and linear cuts in the form (obj &lt; ub)
that are pushed on the formula stack by the OMT solver during the minimization of obj. To this extent,
the presence of such constraints improves performance significantly.
3
        </p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Problems with using OMT for MaxSMT</title>
      <p>
        Consider first the case of a MAXSMT-derived OMT problem as in equation (
        <xref ref-type="bibr" rid="ref1">1</xref>
        ) s.t. all weights are
identical, that is: let h'; obji be an OMT problem, where obj = Pii==0n 1 w Ai, Ai being Boolean
variables, and let be a satisfiable truth assignment found by the OMT solver during the minimization
of obj. Given AT = fAij j= Aig and k = jAT j, then the upper bound value of obj in is ub = w k.
      </p>
      <p>
        As described in [20, 21], the OMT solver adds a unit clause in the form (obj &lt; ub) in order to (
        <xref ref-type="bibr" rid="ref1">1</xref>
        )
remove the current truth assignment from the feasible search space and (
        <xref ref-type="bibr" rid="ref2">2</xref>
        ) seek for another 0 which
(
        <xref ref-type="bibr" rid="ref1">1</xref>
        )
(
        <xref ref-type="bibr" rid="ref2">2</xref>
        )
(
        <xref ref-type="bibr" rid="ref3">3</xref>
        )
(
        <xref ref-type="bibr" rid="ref4">4</xref>
        )
improves the current upper-bound value ub. Importantly, the unit clause (obj &lt; ub) does not only prune
the current truth assignment from the feasible search space, but it also makes inconsistent any other
possible (partial) truth assignment 0 which sets exactly k (or more) Ai variables to True. Thus, each
new unit clause in this form prunes at least = nk truth assignments from the search space, where
is equal to the cardinality of the set of possible permutations of over the variables Ai.
      </p>
      <p>However, the inconsistency of a truth assignment 0 which sets exactly k variables to True wrt. a
unit clause (obj &lt; ub), where ub = w k, can not be determined by simple Boolean Propagation. In
fact, (obj &lt; ub) being a LRA term, the CDCL engine is totally oblivious to this inconsistency until
when the T -solver for linear arithmetic is invoked, and a conflict clause is generated. Therefore, since
the T -solver for linear arithmetic is more resource demanding than Boolean Propagation and is invoked
less often, it is clear that the performance of an OMT solver can be negatively affected when dealing
with this kind of objectives.</p>
      <p>
        To conclude, notice that the performance issue identified with the previous case example can be
generalized to any objective obj in the form
obj = 1 + ::: + m;
8j 2 [1; m]: ( j = wj
where the logically-redundant constraints (0
with (
        <xref ref-type="bibr" rid="ref3">3</xref>
        ).
(5)
(6)
(7)
(8)
i=kj
X Aji) ^ (0
i=0
      </p>
      <p>j ) ^ ( j
obj = w
i=n 1
X
i=0</p>
      <p>Ai
j ) ^ ( j</p>
      <p>wj kj )
wj kj ) are added for the same reason as
4</p>
    </sec>
    <sec id="sec-4">
      <title>Combining OMT with Sorting Networks</title>
      <p>A solution for improving search efficiency when dealing with MAXSMT and OMT with
PseudoBoolean objectives in the form
is to reduce the dependency on the expensive LRA-Solver by better exploiting Boolean Constraint
Propagation (BCP) with the aid of sorting networks.</p>
      <p>A sorting-network relation, depicted in figure 1, takes A0; :::; An 1 Boolean variables as input and
returns out0; :::; outn 1 variables as output s.t., if in the current (partial) truth assignment , k variables
are set to True, n m variables are set to False and m k are unassigned, then by Boolean Constraint
Propagation out0; :::; outk 1 are set to True, outm; :::; outn 1 are set to False and outk; :::; outm 1 are
not propagated.</p>
      <p>For our purposes, it is important that the implementation of the relation is bidirectional: e.g., if
outk 1 is forced to be True (that is, at least k inputs must be True) and n k inputs Ai are False, then
by Boolean Propagation all other unassigned Ais are automatically set to True; vice-versa, if outk+1 is
forced to be False (that is, at most k inputs can be True) and n k inputs Ai are True, then all other
unassigned Ais are automatically set to False.</p>
      <p>
        Given an OMT problem h'; obj; i, where obj is as in (7), and a sorting network relation encoding C
matching the previous definition, we extend ' in equation (
        <xref ref-type="bibr" rid="ref2">2</xref>
        ) as follows:
'0 = ' ^ C ^
      </p>
      <p>8outk ! ((k + 1) w
k=n 1 &gt;
^ &lt; k w)</p>
      <p>:outk ! (obj
k=0 &gt;::((k + 1) w</p>
      <p>obj)
obj) _ :(obj
k w)
and optimize obj over '0. Notice here that the third line in equation 8 is T -valid, but it allows for
assigning the value of some variables outi by BCP as soon as a unit clause in the form (obj k w) is
added to the formula.</p>
      <p>The benefit of this extension is that now, whenever the optimization search finds a new satisfiable
truth assignment which sets k variables Ai to True, so that a unit clause in the form (obj &lt; k w) is
learned, then as soon as k 1 inputs Ai are assigned to True the remaining n k + 1 inputs are set to
False by BCP. (A dual case occurs when some lower-bound unit clause (obj &gt; k w) is learned.)</p>
      <p>In our work, we have considered two encodings for the sorting network relation: the sequential
counter encoding [24] and the cardinality network encoding [3]. Notice that, in contrast with the
literature which usually focuses on only one direction of cardinality constraints, in our context we are
interested in a bidirectional encoding of sorting circuit so to ensure the correct propagation of the outk
values. This is due to the fact that our OMT solver applies this technique to deal not only with MaxSMT
problems but also with Pseudo-Boolean objectives that can be either minimized or maximized, and other
Pseudo-Boolean sums subject to simple cardinality constraints outside of an optimization context.</p>
      <sec id="sec-4-1">
        <title>Bidirectional Sequential Counter Encoding</title>
        <p>The sequential counter encoding LTSnE;kQ for k(A0; :::; An 1) presented in [24] requires O(k n)
clauses and variables to be represented, and is arc-consistent. The circuit is given by the composition of
n sub-circuits, each of which computes si = Pjj==i0 Aj , represented in unary form with the bits si;j . The
following formula is the original propositional encoding of LTSnE;kQ presented in [24], with k instantiated
to n, which was obtained after discarding one direction of the equations for polarity reasons.
(:A0 _ s0;0) ^ Vii==1n 1f(:Ai _ si;0) ^ (:si 1;0 _ si;0) ^ (:Ai _ :si 1;n)^g</p>
        <p>Vjj==1n 1f(:s0;j )g ^ Vii;;jj==1n 1f(:Ai _ :si 1;j 1 _ si;j ) ^ (:si 1;j _ si;j )g
We strengthened the original encoding with the following clauses to make it bidirectional:
(A0 _ :s0;0) ^ Vii==1n 1f(:si;0 _ Ai _ si 1;0)g ^ Vii;;jj==1n 1(:si;j _ si 1;j _ (si 1;j 1 ^ Ai))</p>
      </sec>
      <sec id="sec-4-2">
        <title>Bidirectional Cardinality Network Encoding</title>
        <p>The cardinality network encoding presented in [13, 5, 3], based on the underlying sorting scheme of the
well-known merge-sort algorithm, has complexity O(n log2 k) in the number of clauses and variables,
and is arc-consistent. Due to space limitations, we refer the reader to [3] for the encoding of cardinality
networks we used in our own work. Notice that, differently than in the previous case, this sorting circuit
propagates values in both directions and is thus suitable to be used as is within OMT.
Both of the previous encodings are istantiated assuming k = n, since the sorting network is generated
prior to starting the search. Therefore, the cardinality network circuit looks more appealing than the
sequential counter encoding due to its lower complexity in terms of clauses and variables employed.</p>
        <p>To conclude, note that this approach based on sorting networks can also be applied when dealing
with more general Pseudo-Boolean objectives as in equations 5, 6. In this case a separate sorting circuit
is generated for each term j , and some (optional) constraints in the form (obj &lt; wj i) =) ( j &lt; wj i),
for i 2 [0; kj ], can be added to ensure that the circuit is activated by BCP.
5</p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>Experimental Evaluation</title>
      <p>As part of our research work, we extended OPTIMATHSAT with a novel preprocessing step for dealing
with assert-soft constraints (see [22]) which automatically extends the input formula with a sorting
network circuit of choice among the sequential counter and the cardinality network. We recall here that,
in OPTIMATHSAT, the assert-soft statement can be used not only to encode MAXSMT problems
like in Z, but also generic Pseudo-Boolean terms that can be linearly combined into other constraints
or objective functions.</p>
      <p>In the following experiments3 we evaluate whether the speed-up obtained by extending the input
formula with a sorting network during the optimization search can outweigh the cost of its generation
step within the OMT solver itself, as opposed to demanding the end-user to do it offline.</p>
      <p>Each test was performed on a pair of identical Ubuntu Linux machines featuring 8-core
IntelXeon@2.20GHz CPU, 64 GB of ram and kernel 3.8-0-29.</p>
      <p>Benchmark Set #1: Optimal Realization of Goal Model with Soft-Requirements
In our first experiment, we focused on a benchmark database consisting of 18996 formulas,
automatically generated, derived from the problem of computing the optimal realization of a constrained goal
model enriched with soft-requirements [17], one of OPTIMATHSAT applications in the context of
Requirement Engineering. Each OMT problem contains a combination of up to three MAXSMT objectives
sorted with lexicographic priority. In this experiment, we set the timeout at 100 seconds and we verified
that all the tested configurations agreed on the optimum value.</p>
      <p>As it can be seen in the top table of figure 2, extending the input formula with either of the sorting
network circuits increases the number of benchmarks solved within the time-out.</p>
      <p>Notably, the cardinality network encoding –which has the lowest complexity– scores the best both
in terms of number of solved benchmarks and solving time. On the other hand, the sequential counter
circuit is affected by a significant performance hit on a number of benchmarks, as it is witnessed by
the bottom-left scatter plot in figure 2. This not only affects unsatisfiable benchmarks, for which using
sorting networks appears to be not beneficial in general, but also satisfiable ones.</p>
      <p>A possible strategy for overcoming this performance issue is to reduce the memory footprint
determined by the generation of the sorting network circuit. This can be easily achieved by splitting each
Pseudo-Boolean sum in smaller sized chunks and generating a separate sorting circuit for each splice.</p>
      <p>The result of applying this enhancement, using chunks of increasing size, is shown in figure 3. Both
the table and the scatter plots suggest that the sequential counter encoding can greatly benefit from this
simple heuristic, since both the number of solved benchmarks and the running time improve to levels
comparable with that achieved using the cardinality network circuit.</p>
      <p>As suggested by one of the reviewers, we extended our experimental evaluation to include Z. The
results are shown in the top table of figure 2. Although Z is able to solve the whole benchmark set in
a very short amount of time using the MaxRes MAXSMT engine, OPTIMATHSAT and Z disagree on
the optimal solution of a number of benchmarks. Further investigation confirmed that in some cases Z
returns an incorrect optimum model when dealing with multiple MAXSMT combined lexicographically.</p>
      <p>3 All benchmarks, as well as our experimental results, are made available at http://disi.unitn.it/˜trentin/
resources/smt16.tar.gz
encoding
OPTIMATHSAT
orig. OMT enc.
seq. counter enc.
card. network enc.</p>
      <p>Z (maxres)
Z (wmax)
# inst.</p>
      <p>Benchmark Set #2: Structured Learning Modulo Theories
The second experiment regards a set of problems taken from PYLMT [2], a tool for Structured Learning
Modulo Theories [25] which uses OPTIMATHSAT as back-end oracle for performing inference in the
context of machine learning in hybrid domains.</p>
      <p>Starting from the original set of 500 satisfiable formulas, which used a naive encoding of
PseudoBoolean objectives by default, we generated a new benchmark set which uses the assert-soft
statement to encode the following objective function given by a non-trivial combination of several
PseudoBoolean terms.</p>
      <p>cover =</p>
      <p>X wiAi</p>
      <p>i
obj =</p>
      <sec id="sec-5-1">
        <title>X wj Bj + cover</title>
        <p>j</p>
        <p>X wk Ck
k
jK
coverj
We ran both Z and OPTIMATHSAT over the original set of benchmarks, and compared the following
three configurations for OPTIMATHSAT over the assert-soft based benchmark set: orig. enc.,
which maps the input weighted MAXSMT formula into an OMT problem with no circuit, seq. counter
enc., which extends the input formula with the sequential counter encoding, and card. network enc.
which uses instead the cardinality network encoding.</p>
        <p>We imposed a timeout of 600 seconds for both tools, and verified that all solvers and their
configurations –when terminating– agreed on the optimal solution values.</p>
        <p>The results, depicted in figure 4, show that extending the input problems with sorting network
circuits benefits the number of solved benchmarks within the timeout, with the cardinality network
encoding performing better by a small margin. As highlighted by the scatter plots in the bottom part of
figure 4, generating these circuit on the fly causes a limited overhead on easy benchmarks, whereas it
can significantly improve the running time on difficult ones.
6</p>
      </sec>
    </sec>
    <sec id="sec-6">
      <title>Conclusion and Future Work</title>
      <p>MAXSMT is an important sub-case of Optimization Modulo Theories for which specialized algorithms
and techniques have been developed over the years. Nonetheless, when dealing with non trivial
combination of multiple objectives or problems with fine grained weights over soft-clauses, MAXSMT might
require being encoded as a Pseudo-Boolean objective and solved with ordinary OMT techniques.</p>
      <p>In this paper we reviewed the encoding of MAXSMT in OMT proposed in [21] and described a
possible inefficiency problem that might arise when dealing with problems in which a large number of
soft-clauses share the same weight value, due to the resulting symmetries in the solution space. In order
size # total # solved</p>
      <p>original encoding</p>
      <p>Z 500 406
OPTIMATHSAT 500 424</p>
      <p>
        OPTIMATHSAT using assert-soft
orig. OMT enc. 500 421
seq. counter enc. 500 441
card. network enc. 500 442
2120
3522
[5] R. As´ın, R. Nieuwenhuis, A. Oliveras, and E. Rodr´ıguez-Carbonell. Cardinality networks: a theoretical and
empirical study. Constraints, 16(
        <xref ref-type="bibr" rid="ref2">2</xref>
        ):195–221, 2011.
[6] C. W. Barrett, R. Sebastiani, S. A. Seshia, and C. Tinelli. Satisfiability Modulo Theories. In Handbook of
      </p>
      <p>Satisfiability, chapter 26, pages 825–885. IOS Press, 2009.
[7] A. Biere, M. J. H. Heule, H. van Maaren, and T. Walsh, editors. Handbook of Satisfiability. IOS Press,</p>
      <p>February 2009.
[8] N. Bjorner. personal communication, 02 2016.
[9] N. Bjorner and A.-D. Phan. Z - Maximal Satisfaction with Z3. In Proc International Symposium on Symbolic
Computation in Software Science, Gammart, Tunisia, December 2014. EasyChair Proceedings in Computing
(EPiC). http://www.easychair.org/publications/?page=862275542.
[10] N. Bjorner, A.-D. Phan, and L. Fleckenstein. Z - An Optimizing SMT Solver. In Proc. TACAS, volume
9035 of LNCS. Springer, 2015.
[11] A. Cimatti, A. Franze´n, A. Griggio, R. Sebastiani, and C. Stenico. Satisfiability modulo the theory of costs:</p>
      <p>
        Foundations and applications. In TACAS, volume 6015 of LNCS, pages 99–113. Springer, 2010.
[12] A. Cimatti, A. Griggio, B. J. Schaafsma, and R. Sebastiani. A Modular Approach to MaxSAT Modulo
Theories. In International Conference on Theory and Applications of Satisfiability Testing, SAT, volume 7962
of LNCS, July 2013.
[13] N. Ee´n and N. So¨rensson. Translating pseudo-boolean constraints into SAT. JSAT, 2(
        <xref ref-type="bibr" rid="ref1 ref2 ref3 ref4">1-4</xref>
        ):1–26, 2006.
[14] D. Larraz, A. Oliveras, E. Rodr´ıguez-Carbonell, and A. Rubio. Minimal-Model-Guided Approaches to
Solving Polynomial Constraints and Extensions. In SAT, pages 333–350, 2014.
[15] Y. Li, A. Albarghouthi, Z. Kincad, A. Gurfinkel, and M. Chechik. Symbolic Optimization with SMT Solvers.
      </p>
      <p>In POPL, 2014.
[16] A. Nadel and V. Ryvchin. Bit-vector optimization. In M. Chechik and J. Raskin, editors, Tools and Algorithms
for the Construction and Analysis of Systems - 22nd International Conference, TACAS 2016, Held as Part of
the European Joint Conferences on Theory and Practice of Software, ETAPS 2016, Eindhoven, The
Netherlands, April 2-8, 2016, Proceedings, volume 9636 of Lecture Notes in Computer Science, pages 851–867.</p>
      <p>Springer, 2016.
[17] C. M. Nguyen, R. Sebastiani, P. Giorgini, and J. Mylopoulos. Multi object reasoning with constrained goal
model. CoRR, abs/1601.07409, 2016. Under journal submission. Available at http://arxiv.org/abs/
1601.07409.
[18] R. Nieuwenhuis and A. Oliveras. On SAT Modulo Theories and Optimization Problems. In Proc. Theory and</p>
      <p>Applications of Satisfiability Testing - SAT 2006, volume 4121 of LNCS. Springer, 2006.
[19] O. Roussel and V. Manquinho. Pseudo-Boolean and Cardinality Constraints, chapter 22, pages 695–733. In</p>
      <p>Biere et al. [7], February 2009.
[20] R. Sebastiani and S. Tomasi. Optimization in SMT with LA(Q) Cost Functions. In IJCAR, volume 7364 of</p>
      <p>
        LNAI, pages 484–498. Springer, July 2012.
[21] R. Sebastiani and S. Tomasi. Optimization Modulo Theories with Linear Rational Costs. ACM Transactions
on Computational Logics, 16(
        <xref ref-type="bibr" rid="ref2">2</xref>
        ), March 2015.
[22] R. Sebastiani and P. Trentin. OptiMathSAT: A Tool for Optimization Modulo Theories. In Proc. International
      </p>
      <p>Conference on Computer-Aided Verification, CAV 2015, volume 9206 of LNCS. Springer, 2015.
[23] R. Sebastiani and P. Trentin. Pushing the Envelope of Optimization Modulo Theories with Linear-Arithmetic
Cost Functions. In Proc. Int. Conference on Tools and Algorithms for the Construction and Analysis of
Systems, TACAS’15, volume 9035 of LNCS. Springer, 2015.
[24] C. Sinz. Towards an optimal cnf encoding of boolean cardinality constraints. In P. van Beek, editor, CP,
volume 3709 of Lecture Notes in Computer Science, pages 827–831. Springer, 2005.
[25] S. Teso, R. Sebastiani, and A. Passerini. Structured Learning Modulo Theories. Artificial Intelligence Journal,
2015. To appear.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>[1] OptiMathSAT. http://optimathsat.disi.unitn.it.</mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>[2] PyLMT. www.bitbucket.org/stefanoteso/pylmt.</mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <surname>I. Ab</surname>
          </string-name>
          ´ıo,
          <string-name>
            <given-names>R.</given-names>
            <surname>Nieuwenhuis</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Oliveras</surname>
          </string-name>
          , and E. Rodr´ıguez-Carbonell.
          <article-title>A Parametric Approach for Smaller and Better Encodings of Cardinality Constraints</article-title>
          .
          <source>In 19th International Conference on Principles and Practice of Constraint Programming</source>
          ,
          <source>CP'13</source>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>C.</given-names>
            <surname>Anso</surname>
          </string-name>
          ´tegui, M. Bofill, M. Palah´ı, J. Suy, and
          <string-name>
            <given-names>M.</given-names>
            <surname>Villaret</surname>
          </string-name>
          .
          <article-title>Satisfiability Modulo Theories: An Efficient Approach for the Resource-Constrained Project Scheduling Problem</article-title>
          .
          <source>In SARA</source>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>