<!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>The Comparison of Diferent SAT Encodings for the Problem of Search for Systems of Orthogonal Latin Squares</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Stepan Kochemazov</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Oleg Zaikin</string-name>
          <email>zaikin.icc@gmail.com</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Alexander Semenov</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Matrosov Institute for System Dynamics and Control Theory SB RAS</institution>
          ,
          <addr-line>Irkutsk</addr-line>
          ,
          <country country="RU">Russia</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2016</year>
      </pub-date>
      <fpage>155</fpage>
      <lpage>165</lpage>
      <abstract>
        <p>In this report we present several diferent propositional encodings for finding systems of mutually orthogonal Latin squares, and evaluate their efectiveness using state-of-the-art parallel and sequential algorithms for solving Boolean satisfiability problem (SAT). We also apply the widely used SMAC tool to study the possibility of improving the efectiveness of lingeling SAT solver on the considered tests and discuss the results of corresponding computational experiments.</p>
      </abstract>
      <kwd-group>
        <kwd>latin squares</kwd>
        <kwd>MOLS</kwd>
        <kwd>SAT</kwd>
        <kwd>combinatorial designs</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>
        In this context it is interesting to apply to this class of problems
state-ofthe-art combinatorial algorithms. One class of such algorithms is formed by the
algorithms for solving Boolean satisfiability problem (SAT) [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. Boolean
satisfiability problem is usually formulated as follows: for an arbitrary Boolean formula
to answer the question if it is satisfiable. SAT is historically the first NP-complete
problem [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ], thus it is possible to reduce many combinatorial problems to SAT.
What makes it different from many other NP-complete problems is the fact that
in the last twenty years there was achieved a remarkable progress in the
effectiveness of SAT solving algorithms. Annual SAT competitions [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] make it possible
to quickly evaluate new heuristics and ideas using relatively wide class of tests.
Today there exist both sequential and multi-threaded implementations of SAT
solving algorithms (the corresponding software complexes are usually referred to
as SAT solvers). Interesting feature of these algorithms is that since they
incorporate many heuristics, each SAT solver has a number of numeric parameters,
that can be easily varied. Given a specific solver, on some classes of tests by
carefully choosing proper values of parameters it is possible to achieve quite
significant performance gain. In this paper we apply state-of-the-art SAT solving
algorithms to the problem of finding pairs and triples of MOLS and evaluate
their effectiveness.
      </p>
      <p>Let us present the brief outline of the paper. In the next section we provide
basic terms about SAT and consider how the problem of finding MOLS can be
reduced to SAT. In the third section we describe state-of-the-art tools for finding
effective combinations of SAT solver parameters and describe our experimental
setup. In the fourth section we present the results of our computational
experiments and their discussion. In the last section we make conclusions and outline
our plans for the future.
2</p>
    </sec>
    <sec id="sec-2">
      <title>Constructing SAT Encodings for Finding MOLS</title>
      <p>
        Interesting and often forgotten fact about SAT encodings is that usually for the
same problem we can construct several different variants of them. For example,
it can be done via representing the original problem by some equivalent problem.
Latin squares can serve as a good example of such approach, because a Latin
square of order  as a combinatorial design is equivalent to orthogonal array, a
set of  disjoint transversals, a set of 3 orthogonal matrices, etc. It means that
in practice to search for Latin squares with specific properties we can search
for any of equivalent objects with desired properties adapted to their form.
Another way to construct different SAT encodings for the same problem consists
in employing different methods for reducing specific constraints to SAT form. A
good parallel here can be drawn with sorting methods: in practice we can sort a
numerical array via many different methods, and the context defines which one
is better. In the present paper we will follow this path. Note, that the problem
of finding MOLS with specific properties via SAT was already considered in a
number of papers, for example in [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ]. However, previous works did not study
several significantly different encodings for the same problem and also did not
apply parametrization algorithms to tune solver performance. In the following
subsection let us briefly introduce basic notation related to SAT.
2.1
      </p>
      <sec id="sec-2-1">
        <title>SAT Basics</title>
        <p>
          Boolean formula is constructed from Boolean variables  = { 1, . . . ,   }, logical
operators {¬, ∨, ∧} and parentheses. A literal is either a Boolean variable or its
negation. A formula is called satisfiable if we can find such an assignment of
logical values {TRUE, FALSE} (for simplicity it is usually assumed that TRUE
is equivalent to 1 and FALSE is equivalent to 0) to its variables that the result
is TRUE. Otherwise the formula is called unsatisfiable . An assignment of logical
values that makes formula TRUE is called a satisfying assignment. Boolean
satisfiability problem consists in answering the question if a given formula is
satisfiable [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ]. In practice a SAT solving algorithm needs to either find a satisfying
assignment or to prove that formula is unsatisfiable. Usually, state-of-the-art
SAT solving algorithms work with Boolean formulas represented in Conjunctive
Normal Form (CNF). CNF is essentially a conjunction of clauses, where by clause
we mean a disjunction of several literals or a single (unit) literal. An arbitrary
formula can be effectively represented in CNF using Tseitin transformations [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ].
In the following subsection we will consider the process of constructing different
SAT encodings for finding MOLS in more detail.
2.2
        </p>
        <p>
          Reducing the Problem of Search for MOLS to SAT
Let us first represent the problem of search for MOLS as a problem of satisfying a
set of constraints on Boolean variables. Latin square of order  can be represented
as an incidence cube [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ] — an  × × 0−1 array where dimensions are identified
with the rows, columns and symbols of a Latin square. Cell with coordinates
(, ,  ) contains 1 if and only if the cell of the corresponding Latin square with
coordinates (,  ) contains  . From the definition of Latin square it follows that
if we fix two coordinates in incidence cube, then in the remaining ‘line’ of the
cube, produced by varying the remaining coordinate, there should be exactly one
1. Thus to represent the Latin square we use  3 Boolean variables { (, ,  )},
, ,  = 1, . . . ,  , encoding the incidence cube. Let us introduce the general form
of  predicate: assume that  = { 1, . . . ,   } is a set of Boolean variables.
Then  ( ) =  ( 1, . . . ,   ) = 1 if and only if among  1, . . . ,   exactly
one variable takes the value of TRUE and all remaining variables take the value
of FALSE. We will consider the ways this predicate can be transformed to CNF
below. Then the Latin square can be specified using following constraints:



( (, , 1), . . . ,  (, , 
( (, 1,  ), . . . ,  (, , 
( (1, ,  ), . . . ,  (, , 
)), ,  = 1, . . . ,  ;
)), ,  = 1, . . . ,  ;
)), ,  = 1, . . . , .
If we consider a diagonal Latin square, then we add two more constraints on
varaibles corresponding to main diagonal and antidiagonal:


( (1, 1,  ), . . . ,  (, ,  )),  = 1, . . . ,  ;
( (1, ,  ), . . . ,  (, 1,  )),  = 1, . . . , .
        </p>
        <p>Since we encode the problem of finding MOLS, we also need to specify the
orthogonality condition. Let us remind that Latin squares  and  are
orthogonal if all ordered pairs of the form (  ,   ) are distinct. Assume that variables
{  (, ,  )} correspond to square  and variables {  (, ,  )} correspond to
square  . One way (usually referred to as naive) to represent orthogonality
condition in the form of CNF is to write ≈  6 clauses of the kind:
¬  ( 1,  1,  1) ∨ ¬  ( 2,  2,  2) ∨ ¬  ( 1,  1,  1) ∨ ¬  ( 2,  2,  2),
 1,  2,  1,  2,  1,  2 = 1, . . . , ,  1 ̸=  2,  1 ̸=  2.</p>
        <p>Each of these clauses restricts that the ordered pair ( 1,  2) appears
simultaneously in two different cells with coordinates ( 1,  1) and ( 2,  2).</p>
        <p>An alternative variant of representing orthogonality condition in CNF relies
on the use of auxiliary variables. Assume we use  2 arrays of  2 Boolean variables
 [,  ] = ( ,1 ,1 , . . . ,  ,, ), ,  = 1, . . . ,  . With each varaible from these
arrays we associate the following Boolean equation
 ,,
≡   (, , 
) ∧   (, ,  )
i.e. if the pair (,  ) is formed by elements of Latin squares with coordinates (,  )
then the corresponding Boolean variable  ,, takes the value of TRUE. After
this the orthogonality condition can be written using the following constraints:

(</p>
        <p>[ 1,  2]),  1,  2 = 1, . . . , .</p>
        <p>It is clear that by employing different encoding schemes for  predicate we
can produce different SAT encodings for finding MOLS. Let us consider the 
predicate in more detail.
2.3</p>
      </sec>
      <sec id="sec-2-2">
        <title>Encoding  predicate</title>
        <p>
          In recent years there had been published several variants of algorithms for
encoding it to SAT. The paper [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ] contains quite comprehensive and detailed review
of them. Below let us briefly cite the encoding variants described in [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ] that we
will use in our experiments. Assume that  = ( 1, . . . ,   ). It is convenient to
split the EO predicate into two:

where   ( ) is the predicate encoding that among the variables from the
set  there is at most one with the value of TRUE, and  ( ) is a predicate
encoding that at least one variable in  takes the value of TRUE. The encoding
of 
one big clause:
predicate to CNF is relatively straightforward – it can be written via
        </p>
        <p>( 1, . . . ,   ) =  1 ∨ . . . ∨   .</p>
        <p>It is the</p>
        <p>predicate that requires a more thorough consideration. The most
simple way to transform it to CNF is the so-called Pairwise encoding. It implies
the construction of 
× (</p>
        <p>− 1)/2 clauses of the kind
¬  ∨ ¬  , ,  = 1, . . . , 
̸= .</p>
        <p>Pairwise encoding is the only encoding we used that does not employ auxiliary
variables for encoding</p>
        <p>predicate.</p>
        <p>When we use Binary encoding to transform  
predicate to CNF we
introduce auxiliary variables  1, . . . ,  ⌈
 = 1, . . . , 
we associate a set of clauses:</p>
        <p>2 ⌉. Then with each variable   ∈  ,
⌈
︁⋀</p>
        <p>2 ⌉
 =1</p>
        <p>¬  ∨  (,  ),
where  (,  ) denotes   (¬  ) if the  -th bit of binary representation of  − 1 is
1(0). The idea behind the encoding is to create such situation that when any  
is assigned the value of TRUE it leads to the assignment of all auxiliary variables
 1, . . . ,  ⌈</p>
        <p>The Commander encoding can be considered a meta-encoding method as it
2 ⌉ and thus to assigning the value of FALSE to all other   ,  ̸=  .
can employ other encodings. It is based on dividing the set 
into 
disjoint
subsets  1, . . . ,   . Then we introduce auxiliary commander variables  1, . . . ,  
that act as representatives of corresponding subsets. After this we write the
following set of clauses
︁⋀

 =1
 
︁⋀

 =1</p>
        <p>(¬  ∪   ) ∧
(¬  ∪   ) ∧  
( 1, . . . ,   ).</p>
        <p>In Product encoding we introduce  +  auxiliary variables 
The idea is that once a variable   becomes TRUE, the corresponding
commander variable also becomes TRUE, and thus all   ,  ̸=  are assigned FALSE.
and 
= { 1, . . . ,   },  ×</p>
        <p>≥  . Then each variable   ,  = 1, . . . , 
to a pair (  ,   ), such that  = ( − 1) +  . Then the following set of clauses:
= { 1, . . . ,   }</p>
        <p>is mapped
1≤ ≤,
=( −1) +
︁⋀
1≤ ≤, 1≤ ≤
 
guarantees that once   is assigned TRUE, the corresponding pair of variables
(  ,   ) are also assigned TRUE and it leads to assigning FALSE to remaining</p>
        <p>The Sequential encoding implements the idea of sequential counter, where
we traverse the set of variables in the ordered fashion and track if we already
met a variable with the value of TRUE. It employs 
 1, . . . ,   −1 in the following set of clauses:
− 1 auxiliary variables
(¬ 1 ∨  1) ∧ (¬  ∨ ¬  −1) ⋀︁</p>
        <p>(¬  ∨   ) ∧ (¬  −1 ∨   ) ∧ (¬  ∨ ¬  −1).</p>
        <p>1&lt;&lt;</p>
        <p>Finally, the Bimander encoding combines the features of Binary and
commander encodings in the following way. Similarly to commander encoding the original
set</p>
        <p>is divided into  disjoint subsets  1, . . . ,   , such that each group  
consimilar to binary encoding and write the following set of clauses:

tains  = ⌈  ⌉ variables. Then we introduce auxiliary variables  1, . . . ,  ⌈ 2 ⌉
 ⎛
︁⋀
 =1
⎝  
(  ) ∧
︁⋀
 ⌈</p>
        <p>2 ⌉
︁⋀
where  (,  ) has the same meaning as in binary encoding.</p>
        <p>We applied all considered encoding methods to construct different SAT
encodings for several problems of finding pairs and triples of MOLS of various
order. The results are presented in Table 1. Since the size difference between
SAT encodings for finding MOLS and MODLS is relatively little, we compare
only encodings for finding MOLS. The columns naive, pw, bn, cm, pr, sq,
bm correspond to naive, pairwise, binary, commander, product, sequential and
bimander encoding schemes, respectively. Note, that we applied them only to
encode EO predicates corresponding to orthogonality condition. EO predicates
corresponding to constraints on incidence cube were encoded using pairwise
encoding in all cases. Below we refer to problem of finding 
MOLS (MODLS) of
order 
as  
  ( 
  ). For 
= 8, 9 we used  = 3,  = 3 for
product encoding and</p>
        <p>= 3 for bimander and comander encodings, and for
 = 10 we used  = 3,  = 4, 
eters. Meticulous tuning of these parameters for a particular class of problems
may significantly improve average effectiveness of the solver: sometimes it is even
possible to achieve more than 100 times better performance.</p>
        <p>
          There are some generally accepted techniques for parametrization of SAT
solvers. According to papers [
          <xref ref-type="bibr" rid="ref1 ref7 ref8">8, 7, 1</xref>
          ] one should select from the considered set
of SAT instances some subset called training set. On this training set the SAT
solver with different combinations of parameter values is launched. For each
combination of parameter values a special objective function is computed to measure
the effectiveness of SAT solving with these values. The parametrization process
itself is essentially a local search in a Cartesian product of domains containing all
possible values of considered parameters. So all the solver parameters must be
discrete (each non-discrete parameter should be discretized). To jump from local
optimums sometimes various metaheuristic procedures are used. When the local
search scheme finishes its work either due to reaching the optimality condition
or because time limit was exceeded, the resulting combination of parameters is
applied to solve all problems from the so-called test set. By test set it is
usually meant the set of test instances used to measure the effectiveness of the
parametrization procedure. Usually it is assumed that test set and training set
do not intersect. In practice, given some test set one employs reasonable
heuristics to form training set using problems of the same nature and similar dimension
as in test set.
        </p>
        <p>
          There are three state-of-the-art tools for tuning the parameters of SAT
solvers: ParamILS (Iterated Local Search in Parameter Configuration Space
[
          <xref ref-type="bibr" rid="ref8">8</xref>
          ]), GGA (Gender-based Genetic Algorithm [
          <xref ref-type="bibr" rid="ref1">1</xref>
          ]) and SMAC (Sequential
Modelbased Algorithm Configuration [
          <xref ref-type="bibr" rid="ref7">7</xref>
          ]). All mentioned tools are based on some local
search metaheuristics. GGA uses the genetic algorithm, ParamILS and SMAC
are based on the iterative hill climbing algorithm. Using these tools one can speed
up both local search and tree search SAT algorithms. With the help of these tools
two Configurable SAT Solver Challenges (CSSC) in 2013 and 2014 were held.
According to [
          <xref ref-type="bibr" rid="ref7">7</xref>
          ] SMAC shows better efficiency compared to ParamILS and
GGA. That is why in our computational experiments we used SMAC.
        </p>
        <p>
          One of the last stages in the development of a SAT solver consists in fixing
default values of its parameters. Usually to find such values developers use one of
the mentioned tools. During this process the families of SAT instances from the
latest SAT competitions are usually used as a training set. One of the reasons of
such choice is that these families are formed by SAT encodings of problems from
various areas of science. The set of values that has showed the best performance
on the training set is finally utilized in the role of the default set of the
parameters values. As a result the tuned solver shows good performance in application
to the wide class of problems. Meanwhile, in practice one often faces the
situation when it is necessary to solve large amount of SAT instances which encode
almost identical combinatorial problems. Often such combinatorial problems are
obtained by decomposing an original combinatorial problem. In the next section
this situation will be described in application to finding systems of MOLS and
MODLS.
We chose the lingeling SAT solver [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ] for tuning, because at CSSC 2014
it won the gold medals in all categories (Random SAT, Random SAT+UNSAT,
Industrial SAT+UNSAT, Crafted SAT+UNSAT). There are 323 parameters in
lingeling available for tuning. In the next section we will show how this solver
works with the default values of parameters on SAT instances built according
to the SAT encodings described in the previous section. Then we will describe
the results of its tuning in application to some problems which turned out to be
very hard.
4
        </p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Computational experiments</title>
      <p>To compare the effectiveness of SAT solvers on the SAT encodings described in
Section 2 we considered the following combinatorial problems:
– MOLS 8 2;
– MOLS 9 2;
– MOLS 10 2;
– MODLS 8 2;
– MODLS 8 3;
– MODLS 10 2;
– MODLS 10 3.</p>
      <p>
        For each of these problems we made all 7 considered SAT encodings. In our
experiments besides lingeling, we used plingeling and treengeling SAT
solvers [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. We chose them because they won several prizes on the latest SAT
competition and SAT Race (they were held in 2014 and 2015 respectively). In
particular, we used the versions from SAT Race 2015 for all solvers. Note that
plingeling and treengeling are multi-threaded programs, while lingeling
is a sequential program. We utilized the experimental setup consisting of two
16core AMD 6276 processors coupled with 64 Gb RAM. Thus, each multi-threaded
solver was launched on 32 cores.
      </p>
      <p>On the first stage we launched each of the mentioned solvers with the default
values of parameters on every SAT instance (49 SAT instances in total). In this
experiment we used the time limit of 5000 seconds for every launch. This limit
corresponds to the wall time, so for a sequential solver it is almost identical to
CPU time, but in the case of multi-threaded solvers the CPU time can be much
greater. It should be noted that this is a standard wall time limit used at SAT
competitions. In Tables 2, 3 and 4 the results of the described experiment are
shown. Each value in these tables corresopnds to the CPU time in seconds. Here
“-” stands for “interrupted due to exceeding the time limit”. The best value for
each pair (problem, type of the SAT encoding) is marked with bold.</p>
      <p>Let us discuss the obtained results. In every case when a solver could cope
with a SAT instance, the answer was SATISFIABLE. Problems MODLS 10 2
and MODLS 10 3 turned out to be very hard — no pair (SAT solver, SAT
encoding) could cope with them. On the considered test instances two variants
of SAT encodings (bm and pw) turned out to be quite mediocre. Interesting
fact is that plingeling showed superlinear speed up (compared to lingeling)
on MOLS 8 2. On lingeling in all cases the best results were obtained using
naive SAT encoding, however plingeling and treengeling in almost all cases
displayed the best results with other encodings. Finally, the best CPU times for
MOLS 8 2 and MOLS 9 2 were obtained by plingeling on pr encoding; for
MOLS 10 2 and MODLS 8 2 — by lingeling on naive SAT encoding; for
MODLS 8 3 — by treengeling on sq SAT encoding.</p>
      <p>
        In [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ] we considered weakened problems for MODLS 10 3 in which the
values of the first 45 cells of the first DLS were added to an original CNF via
unit clauses. The corresponding SAT instances turned out to be quite hard.
In the present paper we considered another type of weakened problems for
MODLS 10 3. We constructed 100 SAT instances by adding to an original CNF
the values of the first 6 rows of the first DLS via unit clauses. We also made
100 SAT instances for MODLS 10 2 in the similar way. Following [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ] we took
the corresponding values from the first 50 pairs of MODLS of order 10 found
in the volunteer computing project SAT@home [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ]. As a result we obtained
100 relatively simple (for lingeling with the default parameters values) SAT
instances for each of the considered problems. We used SMAC (see Section 3) to
find good lingeling parameters values for the obtained families of instances. In
every case as the training set we used the first 10 SAT instances from a family,
thus the remaining 90 SAT instances formed the test set. In every case SMAC
was launched 16 times, each of them for 1 day (with different values of the start
seeds). The final performance of the solver on test sets for each type of encoding
is presented in Table 5 (the best one out of 16 SMAC results was chosen in
every case).
      </p>
      <p>Let us discuss the obtained results. For both considered weakened
problems the naive encoding turned out to be better than others. With the help
of parametrization the speed-up of 49 % (40 %) was achieved for the weakened
problem MODLS 10 2 (MODLS 10 3) on this encoding in comparison with the
default parameters values.
5</p>
    </sec>
    <sec id="sec-4">
      <title>Conclusion</title>
      <p>The results of computational experiments clearly show that it is very important
to choose the best pair (SAT solver, SAT encoding) for a particular combinatorial
problem. The parametrization of the chosen SAT solver also can provide an
additional speed-up. In future we plan to evaluate other types of SAT encodings
for the considered problems, such as the ones based on representing Latin squares
via orthogonal arrays, sets of transversals, etc. We also plan to utilize other tools
for the SAT solvers parameters tuning.</p>
      <p>Acknowledgments. The research was funded by Russian Science Foundation
(project No. 16-11-10046).</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1. Anso´tegui,
          <string-name>
            <given-names>C.</given-names>
            ,
            <surname>Sellmann</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            ,
            <surname>Tierney</surname>
          </string-name>
          ,
          <string-name>
            <surname>K.</surname>
          </string-name>
          :
          <article-title>A gender-based genetic algorithm for the automatic configuration of algorithms</article-title>
          .
          <source>In: Proceedings of the 15th International Conference on Principles and Practice of Constraint Programming</source>
          . pp.
          <fpage>142</fpage>
          -
          <lpage>157</lpage>
          . CP'
          <volume>09</volume>
          , Springer-Verlag, Berlin, Heidelberg (
          <year>2009</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Balint</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Belov</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          , J¨arvisalo,
          <string-name>
            <given-names>M.</given-names>
            ,
            <surname>Sinz</surname>
          </string-name>
          ,
          <string-name>
            <surname>C.</surname>
          </string-name>
          :
          <article-title>Overview and analysis of the SAT challenge 2012 solver competition</article-title>
          .
          <source>Artif. Intell</source>
          .
          <volume>223</volume>
          ,
          <fpage>120</fpage>
          -
          <lpage>155</lpage>
          (
          <year>2015</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Biere</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Lingeling essentials, A tutorial on design and implementation aspects of the the SAT solver lingeling</article-title>
          . In: Berre,
          <string-name>
            <surname>D.L</surname>
          </string-name>
          . (ed.)
          <source>POS-14. Fifth Pragmatics of SAT workshop, a workshop of the SAT 2014 conference, part of FLoC 2014 during the Vienna Summer of Logic, July</source>
          <volume>13</volume>
          ,
          <year>2014</year>
          , Vienna, Austria.
          <source>EPiC Series</source>
          , vol.
          <volume>27</volume>
          , p.
          <fpage>88</fpage>
          .
          <string-name>
            <surname>EasyChair</surname>
          </string-name>
          (
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Biere</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Heule</surname>
            ,
            <given-names>M.J.H.</given-names>
          </string-name>
          , van Maaren,
          <string-name>
            <given-names>H.</given-names>
            ,
            <surname>Walsh</surname>
          </string-name>
          , T. (eds.): Handbook of Satisifability,
          <source>Frontiers in Artificial Intelligence and Applications</source>
          , vol.
          <volume>185</volume>
          . IOS Press (
          <year>February 2009</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Colbourn</surname>
            ,
            <given-names>C.J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Dinitz</surname>
            ,
            <given-names>J.H.</given-names>
          </string-name>
          :
          <article-title>Handbook of Combinatorial Designs, Second Edition (Discrete Mathematics and Its Applications)</article-title>
          .
          <source>Chapman &amp; Hall/CRC</source>
          (
          <year>2006</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Cook</surname>
            ,
            <given-names>S.A.</given-names>
          </string-name>
          :
          <article-title>The complexity of theorem-proving procedures</article-title>
          . In: Harrison,
          <string-name>
            <given-names>M.A.</given-names>
            ,
            <surname>Banerji</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.B.</given-names>
            ,
            <surname>Ullman</surname>
          </string-name>
          , J.D. (eds.)
          <source>Proceedings of the 3rd Annual ACM Symposium on Theory of Computing, May 3-5</source>
          ,
          <year>1971</year>
          ,
          <string-name>
            <given-names>Shaker</given-names>
            <surname>Heights</surname>
          </string-name>
          , Ohio, USA. pp.
          <fpage>151</fpage>
          -
          <lpage>158</lpage>
          . ACM (
          <year>1971</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Hutter</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hoos</surname>
            ,
            <given-names>H.H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Leyton-Brown</surname>
          </string-name>
          , K.:
          <article-title>Sequential model-based optimization for general algorithm configuration</article-title>
          .
          <source>In: Proc. of LION-5</source>
          . p.
          <volume>50723</volume>
          (
          <year>2011</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Hutter</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hoos</surname>
            ,
            <given-names>H.H.</given-names>
          </string-name>
          , Stu¨tzle, T.:
          <article-title>Automatic algorithm configuration based on local search</article-title>
          .
          <source>In: Proc. of the Twenty-Second Conference on Artifical Intelligence (AAAI '07)</source>
          . pp.
          <fpage>1152</fpage>
          -
          <lpage>1157</lpage>
          (
          <year>2007</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Jacobson</surname>
            ,
            <given-names>M.T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Matthews</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          :
          <article-title>Generating uniformly distributed random latin squares</article-title>
          .
          <source>Journal of Combinatorial Designs</source>
          <volume>4</volume>
          (
          <issue>6</issue>
          ),
          <fpage>405</fpage>
          -
          <lpage>437</lpage>
          (
          <year>1996</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Nguyen</surname>
            ,
            <given-names>V.H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mai</surname>
          </string-name>
          , S.T.:
          <article-title>A new method to encode the at-most-one constraint into sat</article-title>
          .
          <source>In: Proceedings of the Sixth International Symposium on Information and Communication Technology</source>
          . pp.
          <fpage>46</fpage>
          -
          <lpage>53</lpage>
          .
          <source>SoICT</source>
          <year>2015</year>
          , ACM, New York, NY, USA (
          <year>2015</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Tseitin</surname>
            ,
            <given-names>G.S.</given-names>
          </string-name>
          :
          <source>Automation of Reasoning: 2: Classical Papers on Computational Logic</source>
          <year>1967</year>
          -1970, chap.
          <source>On the Complexity of Derivation in Propositional Calculus</source>
          , pp.
          <fpage>466</fpage>
          -
          <lpage>483</lpage>
          . Springer Berlin Heidelberg, Berlin, Heidelberg (
          <year>1983</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Zaikin</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kochemazov</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Semenov</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>SAT-based search for systems of diagonal latin squares in volunteer computing project SAT@home</article-title>
          . In: Biljanovic,
          <string-name>
            <given-names>P.</given-names>
            ,
            <surname>Butkovic</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Z.</given-names>
            ,
            <surname>Skala</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            ,
            <surname>Grbac</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.G.</given-names>
            ,
            <surname>Cicin-Sain</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            ,
            <surname>Sruk</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            ,
            <surname>Ribaric</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            ,
            <surname>Gros</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            ,
            <surname>Vrdoljak</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            ,
            <surname>Mauher</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            ,
            <surname>Tijan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            ,
            <surname>Lukman</surname>
          </string-name>
          ,
          <string-name>
            <surname>D</surname>
          </string-name>
          . (eds.) 39th
          <source>International Convention on Information and Communication Technology, Electronics and Microelectronics</source>
          ,
          <string-name>
            <surname>MIPRO</surname>
          </string-name>
          <year>2016</year>
          , Opatija, Croatia, May 30 - June 3,
          <year>2016</year>
          . pp.
          <fpage>277</fpage>
          -
          <lpage>281</lpage>
          . IEEE (
          <year>2016</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Zaikin</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zhuravlev</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kochemazov</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Vatutin</surname>
          </string-name>
          , E.:
          <article-title>On the construction of triples of diagonal Latin squares of order 10</article-title>
          .
          <source>Electronic Notes in Discrete Mathematics</source>
          <volume>54</volume>
          ,
          <fpage>307</fpage>
          -
          <lpage>312</lpage>
          (
          <year>2016</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Zhang</surname>
          </string-name>
          , H.:
          <article-title>Combinatorial designs by SAT solvers</article-title>
          . In: Biere,
          <string-name>
            <given-names>A.</given-names>
            ,
            <surname>Heule</surname>
          </string-name>
          , M., van Maaren,
          <string-name>
            <given-names>H.</given-names>
            ,
            <surname>Walsh</surname>
          </string-name>
          , T. (eds.) Handbook of Satisfiability,
          <source>Frontiers in Artificial Intelligence and Applications</source>
          , vol.
          <volume>185</volume>
          , pp.
          <fpage>533</fpage>
          -
          <lpage>568</lpage>
          . IOS Press (
          <year>2009</year>
          )
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>