<!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>Con ict History Based Branching Heuristic for CSP Solving?</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Djamal Habet</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Cyril Terrioux</string-name>
          <email>cyril.terriouxg@univ-amu.fr</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Aix Marseille Univ, Universite de Toulon</institution>
          ,
          <addr-line>CNRS, LIS, Marseille</addr-line>
          ,
          <country country="FR">France</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>An important feature in designing algorithms to solve Constraint Satisfaction Problems (CSP) is the de nition of a branching heuristic to explore e ciently the search space and exploit the problem structure. We propose Con ict-History Search (CHS), a new dynamic and adaptive branching heuristic for CSP solving. It is based on the search history by considering the temporality of search failures. To achieve that, we use the exponential recency weighted average to estimate the evolution of the hardness of constraints throughout the search. The experimental evaluation on XCSP3 instances shows that integrating CHS to solvers based on MAC obtains competitive results and can improve those obtained through other heuristics of the state of the art.</p>
      </abstract>
      <kwd-group>
        <kwd>CSP</kwd>
        <kwd>Con ict Based Branching Heuristic</kwd>
        <kwd>Search History</kwd>
        <kwd>Exponential Recency Weighted Average</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>
        The Constraint Satisfaction Problem (CSP) is a powerful framework to model
and e ciently solve problems that occur in various elds, both academic and
industrial [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ]. A CSP instance is de ned on a set of variables which must be
assigned in their respective nite domains by satisfying a set of constraints which
express restrictions between di erent assignments. A solution is an assignment
of each variable which satis es all constraints.
      </p>
      <p>CSP solving has made signi cant progress in recent years thanks to research
on several aspects which receive considerable e orts such as global constraints,
ltering techniques, learning and restarts. An important component in CSP
solvers is the variable branching rule. Indeed, the corresponding heuristics
dene, statically or dynamically, the order in which the variables will be assigned
and thus the way that the search space will be explored.</p>
      <p>
        Many heuristics have been proposed (e.g. [1{4, 6, 7, 9, 18, 20]) and aim to
satisfy the famous rst-fail principle [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] which advises "to succeed, try rst where
you are likely to fail". Nowadays, the most e cient heuristics are adaptive and
dynamic [
        <xref ref-type="bibr" rid="ref18 ref20 ref3 ref6 ref9">3, 6, 9, 18, 20</xref>
        ]. Indeed, the order of branchings is de ned according to
? This work has been funded by the french Agence Nationale de la Recherche, reference
      </p>
      <p>
        ANR-16-C40-0028.
the collected information since the beginning of the search. For instance, some
heuristics consider the e ect of ltering when decisions and propagations are
applied [
        <xref ref-type="bibr" rid="ref18 ref20">18, 20</xref>
        ]. De ned since 2004, the dom=wdeg heuristic remains one of the
simplest, the most popular and e cient one. It is based on the hardness of
constraints to re ect how often a constraint fails. It uses a weighting process
to focus on the variables appearing in constraints with high weights which are
assumed to be hard to satisfy [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ].
      </p>
      <p>
        In this paper, we propose Con ict-History Search (CHS), a new dynamic
and adaptive branching heuristic for CSP solving. It is based on the history of
search failures which happen as soon as a domain of a variable is emptied after
constraint propagations. The goal is to reward the scores of constraints that have
recently been involved in con icts and therefore to favor the variables appearing
in these constraints. The scores of constraints are estimated on the basis of the
exponential recency weighted average technique which comes from reinforcement
learning [
        <xref ref-type="bibr" rid="ref24">24</xref>
        ]. It was also recently used in de ning powerful branching heuristics
for solving the satis ability problem (SAT) [
        <xref ref-type="bibr" rid="ref15 ref16">15, 16</xref>
        ]. We have integrated CHS in
solvers based on MAC [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ] and BTD [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ]. The empirical evaluation on XCSP3
instances shows that CHS is competitive and brings improvements to the
heuristics of the state of the art.
      </p>
      <p>The paper is organized as follows. Section 2 includes some necessary de
nitions and notations. Section 3 describes related work on branching heuristics for
CSP and SAT. Section 4 presents and details our contribution which is evaluated
experimentally in Section 5. Finally, we conclude and give future work.
2</p>
    </sec>
    <sec id="sec-2">
      <title>Preliminaries</title>
      <p>We give some de nitions including CSP and Exponential Recency Weighted
Average (ERWA).
2.1</p>
      <sec id="sec-2-1">
        <title>Constraint Satisfaction Problem</title>
        <p>An instance of a Constraint Satisfaction Problem (CSP) is given by a triple
(X; D; C), such that:
{ X = fx1; ; xng is a set of n variables,
{ D = fD1; :::; Dng is a set of nite domains, and
{ C = fc1; ; ceg is a set of e constraints.</p>
        <p>Each constraint ci is de ned by S(ci) and R(ci), where S(ci) = fxi1 ; ; xik g
X de nes the scope of ci and R(ci) Di1 Dik is its compatibility relation.
The constraint satisfaction problem asks for an assignment of a value from Di
to each variable xi of X that satis es each constraint in C. Checking whether a
CSP instance has a solution (i.e. a consistent assignment of X) is NP-complete.</p>
      </sec>
      <sec id="sec-2-2">
        <title>Exponential Recency Weighted Average</title>
        <p>
          Given a time series of m numbers y = (y1; y2; ; ym), the simple average of y
is Pm 1 yi where each yi has the same weight m1 . However, recent data may
i=1 m
be more pertinent than the older ones to characterize the current situation. The
Exponential Recency Weighted Average (ERWA) [
          <xref ref-type="bibr" rid="ref24">24</xref>
          ] takes into account such
considerations by giving to the recent data higher weights than the older ones.
In fact, the exponential moving average ym is computed by: ym = Pim=1 :(1
)m i:yi, where 0 &lt; &lt; 1 is a step-size parameter which controls the relative
weights between recent and past data. The moving average can also be calculated
incrementally by the formula: ym+1 = (1 ):ym + :ym+1.
        </p>
        <p>
          ERWA was used to solve the bandit problem to estimate the expected reward
of di erent actions in non-stationary environments [
          <xref ref-type="bibr" rid="ref24">24</xref>
          ]. In bandit problems,
there is a set of actions and the agent must select the action to play in order to
maximize its long term expected reward.
3
        </p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Related Work</title>
      <p>We present the most e cient branching heuristics for CSP and SAT. The recalled
heuristics share the same behavior. Indeed, the variables and/or constraints are
weighted dynamically throughout the search by considering the collected
information since the beginning of the search. Also, some heuristics smooth (or decay)
these weights as it will be explained further.
3.1</p>
      <sec id="sec-3-1">
        <title>Impact-Based Search (IBS)</title>
        <p>
          This heuristic selects the variable which leads to the largest search space
reduction [
          <xref ref-type="bibr" rid="ref20">20</xref>
          ]. This impact on the search space size is approximated as the reduction
of the product of the variable domain sizes. Formally, the impact of assigning
the variable xi to the value vi 2 Di is de ned by I(xi = vi) = 1 PPbaefftoerre . Pafter
and Pbefore are respectively the products of the domain cardinalities after and
before branching on xi = vi and applying constraint propagations.
3.2
        </p>
      </sec>
      <sec id="sec-3-2">
        <title>Con ict-Driven Heuristic</title>
        <p>
          A popular branching heuristic for CSP solving is dom=wdeg [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ]. It guides the
search towards the variables appearing in the constraints which seem to be hard
to satisfy. For each constraint cj , the dom=wdeg heuristic maintains a weight
w(cj ) (initially set to 1) counting the number of times that cj has led to a
failure (i.e. the domain of a variable xi in S(cj ) is emptied during propagation
thanks to cj ). The weighted degree of a variable xi is de ned as:
wdeg(xi) =
        </p>
        <p>
          X
with U vars(cj ) the set of unassigned variables in S(cj ). The dom=wdeg heuristic
selects the variable xi to branch on with the smallest ratio jDij=wdeg(xi), such
that Di is the current domain of xi (potentially, the size of Di may be reduced
by the propagation process in the current step of the search). The constraint
weights are not smoothed in dom=wdeg. Variants of dom=wdeg were introduced
(for example, see [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ]).
3.3
        </p>
      </sec>
      <sec id="sec-3-3">
        <title>Activity-Based Heuristic (ABS)</title>
        <p>
          This heuristic is motivated by the prominent role of ltering techniques in CSP
solving [
          <xref ref-type="bibr" rid="ref18">18</xref>
          ]. It exploits this ltering information and maintains measures of
how often the variable domains are reduced during the search. Indeed, at each
node of the search tree, constraint propagation may lter the domains of some
variables after the decision has been made. Let Xf be the set of such variables.
Accordingly, the activities A(xi) (initially set to 0) of the variables xi 2 X are
updated as follows: A(xi) = A(xi) + 1 if xi 2 Xf and A(xi) = A(xi) if
xi 62 Xf . is a decay parameter, such that 0 1. The ABS heuristic selects
the variable xi with the highest ratio A(xi)=jDij.
3.4
        </p>
      </sec>
      <sec id="sec-3-4">
        <title>Branching Heuristics for SAT</title>
        <p>
          In the context of the satis ability problem (SAT), modern solvers based on
Con ict-Driven Clause Learning (CDCL) [
          <xref ref-type="bibr" rid="ref17 ref19 ref5">5, 17, 19</xref>
          ] employ variable branching
heuristics correlated to the ability of the variable to participate in producing
learnt clauses when con icts arise (a con ict is a clause falsi cation). The
Variable State Independent Decaying Sum (VSIDS) heuristic [
          <xref ref-type="bibr" rid="ref19">19</xref>
          ] maintains an
activity value for each Boolean variable. The activities are modi ed by two operations:
the bump (increase the activity of variables appearing in the process of
generating a new learnt clause when a con ict is analyzed) and the multiplicative decay
of the activities (often applied at each con ict). VSIDS selects the variable with
the highest activity to branch on.
        </p>
        <p>
          Recently, a con ict history based branching heuristic (CHB) [
          <xref ref-type="bibr" rid="ref15">15</xref>
          ], based on
the exponential recency weighted average, was introduced. It rewards the
activities to favor the variables that were recently assigned by decision or propagation.
The rewards are higher if a con ict is discovered1. The Learning Rate
Branching (LRB) heuristic [
          <xref ref-type="bibr" rid="ref16">16</xref>
          ] extends CHB by exploiting locality and introducing the
learning rate of the variables.
4
        </p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Con ict-History Search for CSP</title>
      <p>
        Inspired by the CHB heuristic for SAT, we de ne a new branching heuristic for
CSP solving which we call Con ict-History Search (CHS). The central idea is
1 Regarding constraint programming, the Gecode solver implements CHB since version
5.1.0 released in April 2017 [
        <xref ref-type="bibr" rid="ref23">23</xref>
        ]. Similarly to SAT, the variables of a CSP instance
are weighted according to ERWA in Gecode.
to consider the history of constraint failures and favor the variables that often
appear in recent failures. So, the con icts are dated and the constraints are
weighted on the basis of the exponential recency weighted average. These weights
are coupled to the variable domains to calculate the Con ict-History scores of
the variables.
4.1
      </p>
      <sec id="sec-4-1">
        <title>CHS Description</title>
        <p>
          Formally, CHS maintains for each constraint cj a score q(cj ) which is initialized
to 0 at the beginning of the search. If cj leads to a failure during the search
because the domain of a variable in S(cj ) is emptied by propagation then q(cj )
is updated by the formula below derived from ERWA:
q(cj ) = (1
)
q(cj ) +
r(cj )
The parameter 0 &lt; &lt; 1 is the step-size and r(cj ) is the reward value. It de nes
the importance given to the old value of q at the expense of the reward r. The
value of decreases over time as it is applied in ERWA [
          <xref ref-type="bibr" rid="ref24">24</xref>
          ]. Indeed, starting
from its initial value 0, decreases by 10 6 at each constraint failure to a
minimum of 0:06. Decreasing the value amounts to giving more importance
to the last value of q and considering that the values of q are more and more
relevant as the search progresses.
        </p>
        <p>The reward value r(cj ) is based on how recently cj occurred in con icts. The
goal is to give a higher reward to constraints that fail regularly over short periods
of time during the search space exploration. The reward value is calculated
according to the formula:
r(cj ) =
#Conf licts
1
Conf lict(cj ) + 1
Initialized to 0, #Conf licts is the number of con icts which have occurred since
the beginning of the search. Also initialized to 0 for each constraint cj 2 C,
Conf lict(cj ) stores the last #Conf licts value where cj led to a failure. Once
r(ci) and q(ci) are updated, #Conf licts is incremented by 1.</p>
        <p>At this stage, we are able to de ne the Con ict-History score of the variables
xi 2 X, which will be used in selecting the branching variable as follows:
jDij
CHS keeps the variable to branch on with the highest chv value. In this manner,
CHS focuses branching on the variables with small size of domain while belonging
to constraints which appear recently and repetitively in con icts.</p>
        <p>One can observe that at the beginning of the search, all the variables have
the same score equal to 0. To avoid random selection of the branching variable,
we reformulate the calculation of chv as given below, where
number close to 0.
is a positive real
jDij
Thus, at the beginning of the search, the branching will be oriented according
to the degree of the variables without having a negative in uence on the
ERWAbased calculation later in the search.
4.2</p>
      </sec>
      <sec id="sec-4-2">
        <title>CHS and Restarts</title>
        <p>
          Nowadays, restart techniques are important for the e ciency of solving
algorithms (see for example [
          <xref ref-type="bibr" rid="ref13">13</xref>
          ]). Restarts may allow to reduce the impact of
irrelevant choices done during search according to heuristics such as variable selection.
        </p>
        <p>As it will be detailed in the next section, CHS is integrated into CSP solving
algorithms which include restarts. In the corresponding implementations, the
Conf lict(cj ) value of each constraint cj is not reinitialized when a restart
occurs. It is the same for q(cj ) (however, a smoothing may be applied and will be
explained later). Keeping this information unchanged reinforces learning from
the search history.</p>
        <p>Concerning the step-size , which de nes the importance given to the old
value of q(cj ) at the expense of the reward r(cj ), CHS reinitializes the step-size
value to 0 at each restart. This may guide the search through di erent parts
of the search space.
4.3</p>
      </sec>
      <sec id="sec-4-3">
        <title>CHS and Smoothing</title>
        <p>At each con ict and as in the dom=wdeg heuristic, CHS updates the chv score of
one constraint at a time: the constraint cj which is used to wipe out the domain
of a variable in S(cj ). As long as they do not appear in new con icts, some
constraints can have their weights unchanged for several search steps. These
constraints may have high scores while their importance does not seem high for
the current part of the search. To avoid this situation, we propose to smooth
the scores q(cj ) of all the constraints cj 2 C at each restart by the following
formula:
q(cj ) = q(cj )</p>
        <p>
          0:995#Conflicts Conflict(cj)
Hence, the scores of constraints are decayed according to the date of their last
appearances in con icts. Decaying is also used in other heuristics such as ABS
[
          <xref ref-type="bibr" rid="ref18">18</xref>
          ] for CSP and VSIDS [
          <xref ref-type="bibr" rid="ref19">19</xref>
          ] for SAT. However, it is applied to the score of the
variables and not that of the constraints (or clauses).
5.1
        </p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>Experimental Evaluation</title>
      <sec id="sec-5-1">
        <title>Experimental Protocol</title>
        <p>We consider 10,785 instances from the XCSP3 repository2, including notably
structured instances and discarding fully random instances. This latter
restriction is quite natural since adaptive heuristics aim to exploit the underlying
structure of the instances to solve.</p>
        <p>
          Regarding the solving step, we exploit MAC with restarts [
          <xref ref-type="bibr" rid="ref14">14</xref>
          ]. MAC uses
a geometric restart strategy based on the number of backtracks with an initial
cuto set to 100 and an increasing factor set to 1.1. In order to make the
comparison fair, the lexicographic ordering is used for the choice of the next value to
assign. Furthermore, no probing process is used for any heuristic for parameter
tuning.
        </p>
        <p>All the algorithms are written in C++. The experiments are performed on
Dell PowerEdge M610 blade servers with Intel Xeon E5620 processors under
Ubuntu 18.04. Each solving process is allocated a slot of 30 minutes and at
most 12 GB of memory per instance. In the following tables, #solv denotes the
number of solved instances by a given solver and time is the cumulative runtime.
5.2</p>
      </sec>
      <sec id="sec-5-2">
        <title>Impact of CHS Settings</title>
        <p>In this part, we assess the sensitivity of CHS with respect to the chosen values
for or . First, we x to 10 4 (to start the search by considering the variable
degrees then quickly exploit ERWA-based computation) and vary the value of 0
between 0.1 and 0.9 with a step of 0.1. Figure 1 presents the number of instances
solved by MAC depending on the value of 0 and the corresponding cumulative
runtime. We also provide the results of the Virtual Best Solver (VBS) when
varying the value of .</p>
        <p>se 9300
can
it
sn 9200
#
9600
9500
9400
9100
9000
8900
8800
#solved instances
cumulative runtime
520
510
500
490 )
h
(
480 ite
m
n
u
470 r
460
450
440
0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 VBS
2 http://www.xcsp.org/series</p>
        <p>We can observe that the value 0 = 0:4 allows MAC to solve more instances
(9,525 solved instances with a cumulative solving time of 493 hours) than the
other considered values. The worst case is 0 = 0:7 with 9,515 solved instances
in 496 hours. This shows the robustness of CHS w.r.t. the parameter.</p>
        <p>Regarding the VBS, we note that it can solve 64 additional instances than
MAC+CHS when 0 = 0:4. Among these instances, some of them seem to be
hard. Indeed, often, only one of the checked values of allows MAC to solve
them and the required runtime generally exceeds several minutes. Therefore, a
ner adjustment of the value of 0 or its adaptation to the treated instance
would allow MAC+CHS to perform even better.</p>
        <p>Now, we set 0 to 0.4 and evaluate di erent values of . From Table 1, the
observations are similar to those presented previously, showing the robustness of
CHS regarding . Also, it is interesting to highlight that MAC+CHS with = 0
solves 9,517 instances while it solves 9,525 instances if = 10 4. This illustrates
the relevance of introducing in CHS.</p>
        <p>
          Table 2 gives the results of MAC+CHS ( 0 = 0:4, = 10 4) with smoothing
(+s) or not (-s) the constraint scores and/or with resetting (+r) or not (-r) the
value of to 0:4 at each new restart. The observed behaviors clearly support
the importance of these two operations for CHS. For example, MAC+CHS-s-r
solves 43 less instances than MAC+CHS.
Now, we compare CHS ( 0 = 0:4, = 10 4) to other search strategies: dom=wdeg,
ABS and CHB as implemented in Gecode. For ABS, we x the decay parameter
to 0.999 as in [
          <xref ref-type="bibr" rid="ref18">18</xref>
          ]. For CHB, we use the value parameters as given in [
          <xref ref-type="bibr" rid="ref23">23</xref>
          ]. We
add a variant dom=wdeg+s which is dom=wdeg but the weights of constraints
are smoothed exactly as in CHS.
        </p>
        <p>From Table 3, it is clear that MAC with CHS performs better than with
the other heuristics. Indeed, it solves 24 instances more than MAC+dom=wdeg,
49 instances more than MAC+ABS and 67 instances more than MAC+CHB.
Interestingly, whatever the value of 0, MAC with CHS remains better than
all its competitors. Indeed, the worst case is when 0 = 0:7 where MAC+CHS
solves 9,515 instances. Moreover, the results obtained by MAC+CHB show that
the calculation of weights by ERWA on the constraints (as done in CHS) is more
relevant than its calculation on the variables (as done in CHB). Furthermore,
the smoothing phase introduced in dom=wdeg allows MAC+dom=wdeg+s to
reduce slightly the computation time when compared to MAC+dom=wdeg, while
solving one less instance.</p>
        <p>Table 4 provides the results of MAC variants on some instance families chosen
form a representative panel of our benchmark and allow to show the di erent
trends we observed. First, we can note that no heuristic is always better than
the others. However, if we sort the heuristics with respect to the number of
solved instances per family, CHS is ranked at the rst place for 88% of the
141 considered families, by performing better or similarly than the two other
heuristics. This percentage exceeds respectively 93% and 99% if we consider
the rst two places or the rst three places. Hence, CHS is clearly competitive.
Also, one might think that dom=wdeg performs worse than ABS and CHB. This
impression is explained by the fact that, when MAC+dom=wdeg is better on
a given family, it solves only few additional instances. In contrast, when it is
outperformed, this is done by several additional solved instances. Finally, if we
compare the results on the instances labeled real-world in the XCSP3 repository,
we observe that MAC with CHS solves more instances and performs faster,
between 10% and 30%, than any other combination.
5.4</p>
      </sec>
      <sec id="sec-5-3">
        <title>CHS and Tree-Decomposition</title>
        <p>
          We now assess the behavior of CHS when the search is guided by a
treedecomposition. Studying this question is quite natural since CHS aims at
exploiting the structure of the instance, but in a way di erent from what the
treedecomposition does. With this aim in view, we consider BTD-MAC+RST+Merge
[
          <xref ref-type="bibr" rid="ref10">10</xref>
          ]. The parameters of BTD-MAC+RST+Merge are set like in [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ] except the
variable heuristic which can be one of the two best heuristics considered
previously, namely dom=wdeg or CHS.
        </p>
        <p>Like for MAC, the solving is more e cient with CHS than with dom=wdeg.
Indeed, BTD-MAC+RST+Merge with CHS solves 9,525 instances (in 485 h)
against 9,495 instances (in 501 h) for dom=wdeg. This observation shows that
exploiting both CHS and tree-decomposition may be of interest and that these
two strategies can be complementary.
6</p>
      </sec>
    </sec>
    <sec id="sec-6">
      <title>Conclusion</title>
      <p>We have proposed CHS, a new branching heuristic for CSP based on the search
history and designed following techniques coming from reinforcement learning.
The experimental results con rm the relevance of CHS which is competitive with
the powerful heuristics dom=wdeg and ABS, when implemented in solvers based
on MAC or tree-decomposition exploitation.</p>
      <p>The experimental study suggests that the parameter value could be re ned.
We will explore the possibility of de ning its value depending on the instance to
be solved. Furthermore, similarly to the ABS heuristic, we will also consider to
include information provided by ltering operations in CHS.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Bessiere</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Chmeiss</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          , Sas, L.:
          <article-title>Neighborhood-based variable ordering heuristics for the constraint satisfaction problem</article-title>
          .
          <source>In: CP</source>
          . pp.
          <volume>565</volume>
          {
          <issue>569</issue>
          (
          <year>2001</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Bessiere</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Regin</surname>
            ,
            <given-names>J.C.</given-names>
          </string-name>
          :
          <article-title>MAC and Combined Heuristics: Two Reasons to Forsake FC (and CBJ?) on Hard Problems</article-title>
          . In: CP. pp.
          <volume>61</volume>
          {
          <issue>75</issue>
          (
          <year>1996</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Boussemart</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hemery</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lecoutre</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sa</surname>
          </string-name>
          s, L.:
          <article-title>Boosting systematic search by weighting constraints</article-title>
          .
          <source>In: ECAI</source>
          . pp.
          <volume>146</volume>
          {
          <issue>150</issue>
          (
          <year>2004</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Brelaz</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          :
          <article-title>New Methods to Color Vertices of a Graph</article-title>
          .
          <source>Communications of the ACM</source>
          <volume>22</volume>
          (
          <issue>4</issue>
          ),
          <volume>251</volume>
          {
          <fpage>256</fpage>
          (
          <year>1979</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Een</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          , Sorensson, N.:
          <article-title>An Extensible SAT-solver</article-title>
          .
          <source>In: SAT</source>
          . pp.
          <volume>502</volume>
          {
          <issue>518</issue>
          (
          <year>2003</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Geelen</surname>
            ,
            <given-names>P.A.</given-names>
          </string-name>
          :
          <article-title>Dual viewpoint heuristics for binary constraint satisfaction problems</article-title>
          . In: ECAI. pp.
          <volume>31</volume>
          {
          <issue>35</issue>
          (
          <year>1992</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Golomb</surname>
            ,
            <given-names>S.W.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Baumert</surname>
          </string-name>
          , L.D.:
          <article-title>Backtrack programming</article-title>
          .
          <source>Journal of the ACM</source>
          <volume>12</volume>
          ,
          <issue>516</issue>
          {
          <fpage>524</fpage>
          (
          <year>1965</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Haralick</surname>
            ,
            <given-names>R.M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Elliot</surname>
            ,
            <given-names>G.L.</given-names>
          </string-name>
          :
          <article-title>Increasing tree search e ciency for constraint satisfaction problems</article-title>
          .
          <source>AIJ</source>
          <volume>14</volume>
          ,
          <issue>263</issue>
          {
          <fpage>313</fpage>
          (
          <year>1980</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Hebrard</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Siala</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Explanation-based weighted degree</article-title>
          .
          <source>In: CPAIOR</source>
          . pp.
          <volume>167</volume>
          {
          <issue>175</issue>
          (
          <year>2017</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Jegou</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kanso</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Terrioux</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <article-title>Towards a Dynamic Decomposition of CSPs with Separators of Bounded Size</article-title>
          . In: CP. pp.
          <volume>298</volume>
          {
          <issue>315</issue>
          (
          <year>2016</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Jegou</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kanso</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Terrioux"</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <article-title>BTD and miniBTD</article-title>
          .
          <source>In: XCSP3 Competition</source>
          (
          <year>2017</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Jegou</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Terrioux</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <article-title>Hybrid backtracking bounded by tree-decomposition of constraint networks</article-title>
          .
          <source>AIJ 146</source>
          ,
          <issue>43</issue>
          {
          <fpage>75</fpage>
          (
          <year>2003</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Lecoutre</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sais</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tabary</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Vidal</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          :
          <article-title>Nogood recording from restarts</article-title>
          .
          <source>In: IJCAI</source>
          . pp.
          <volume>131</volume>
          {
          <issue>136</issue>
          (
          <year>2007</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Lecoutre</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sa</surname>
            s,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tabary</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Vidal</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          :
          <article-title>Recording and Minimizing Nogoods from Restarts</article-title>
          .
          <source>JSAT</source>
          <volume>1</volume>
          (
          <issue>3-4</issue>
          ),
          <volume>147</volume>
          {
          <fpage>167</fpage>
          (
          <year>2007</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Liang</surname>
            ,
            <given-names>J.H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ganesh</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Poupart</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Czarnecki</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          :
          <article-title>Exponential Recency Weighted Average Branching Heuristic for SAT Solvers</article-title>
          . In: AAAI. pp.
          <volume>3434</volume>
          {
          <issue>3440</issue>
          (
          <year>2016</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Liang</surname>
            ,
            <given-names>J.H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ganesh</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Poupart</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Czarnecki</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          :
          <article-title>Learning Rate Based Branching Heuristic for SAT Solvers</article-title>
          . In: SAT. pp.
          <volume>123</volume>
          {
          <issue>140</issue>
          (
          <year>2016</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>Marques-Silva</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sakallah</surname>
            ,
            <given-names>K.A.</given-names>
          </string-name>
          :
          <article-title>Grasp: A search algorithm for propositional satis ability</article-title>
          .
          <source>IEEE Transactions on Computers</source>
          <volume>48</volume>
          (
          <issue>5</issue>
          ),
          <volume>506</volume>
          {
          <fpage>521</fpage>
          (
          <year>August 1999</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <surname>Michel</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hentenryck</surname>
            ,
            <given-names>P.V.</given-names>
          </string-name>
          :
          <article-title>Activity-based search for black-box constraint programming solvers</article-title>
          .
          <source>In: CPAIOR</source>
          . pp.
          <volume>228</volume>
          {
          <issue>243</issue>
          (
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <surname>Moskewicz</surname>
            ,
            <given-names>M.W.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Madigan</surname>
            ,
            <given-names>C.F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zhao</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zhang</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Malik</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          : Cha :
          <article-title>Engineering an E cient SAT Solver</article-title>
          . In: DAC. pp.
          <volume>530</volume>
          {
          <issue>535</issue>
          (
          <year>2001</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <surname>Refalo</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          :
          <article-title>Impact-based search strategies for constraint programming</article-title>
          .
          <source>In: CP</source>
          . pp.
          <volume>557</volume>
          {
          <issue>571</issue>
          (
          <year>2004</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21.
          <string-name>
            <surname>Rossi</surname>
          </string-name>
          , F.,
          <string-name>
            <surname>van Beek</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Walsh</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          :
          <article-title>Handbook of Constraint Programming</article-title>
          ,
          <source>Foundations of Arti cial Intelligence</source>
          , vol.
          <volume>2</volume>
          .
          <string-name>
            <surname>Elsevier</surname>
          </string-name>
          (
          <year>2006</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          22.
          <string-name>
            <surname>Sabin</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Freuder</surname>
            ,
            <given-names>E.C.</given-names>
          </string-name>
          :
          <article-title>Contradicting Conventional Wisdom in Constraint Satisfaction</article-title>
          .
          <source>In: ECAI</source>
          . pp.
          <volume>125</volume>
          {
          <issue>129</issue>
          (
          <year>1994</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          23.
          <string-name>
            <surname>Schulte</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <article-title>Programming branchers</article-title>
          . In: Schulte,
          <string-name>
            <given-names>C.</given-names>
            ,
            <surname>Tack</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G.</given-names>
            ,
            <surname>Lagerkvist</surname>
          </string-name>
          , M.Z. (eds.)
          <article-title>Modeling and Programming with Gecode (</article-title>
          <year>2018</year>
          ),
          <source>corresponds to Gecode 6.0.1</source>
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          24.
          <string-name>
            <surname>Sutton</surname>
            ,
            <given-names>R.S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Barto</surname>
            ,
            <given-names>A.G.</given-names>
          </string-name>
          :
          <article-title>Reinforcement Learning: An Introduction</article-title>
          . MIT Press, Cambridge, MA, USA, 1st edn. (
          <year>1998</year>
          )
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>