<!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>
      <journal-title-group>
        <journal-title>Porto, Portugal, September</journal-title>
      </journal-title-group>
    </journal-meta>
    <article-meta>
      <title-group>
        <article-title>Asynchronous Forward-Bounding algorithm with Directional Arc Consistency</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Rachid Adrdor</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Lahcen Koutti</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Ibn Zohr University, Faculty of Sciences, Department of Computer Science</institution>
          ,
          <addr-line>Agadir</addr-line>
          ,
          <country country="MA">Morocco</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2021</year>
      </pub-date>
      <volume>21</volume>
      <issue>2021</issue>
      <abstract>
        <p>The AFB_BJ+-AC* algorithm is one of the latest algorithms used to solve Distributed Constraint Optimization Problems known as DCOPs. It is based on soft arc consistency techniques (AC* ) to speed up the process of solving a problem by permanently removing any value that doesn't belong to the optimal solution. In fact, these techniques have greatly contributed to improving the performance of the AFB_BJ+ algorithm in solving DCOPs, but there are some exceptions in which they have no efect due to the limited number of deletions made. For that, we use in this paper a higher consistency level, which is a directional arc consistency (DAC* ). This level makes it possible to erase more values and thus to quickly reach the optimal solution of a problem. Experiments on some benchmarks show that the new algorithm, AFB_BJ+-DAC* , is better in terms of communication load and computation efort.</p>
      </abstract>
      <kwd-group>
        <kwd>eol&gt;DCOP</kwd>
        <kwd>AFB_BJ+</kwd>
        <kwd>AC*</kwd>
        <kwd>Directional Arc Consistency</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
      <p>more deletions and thus quickly reach the optimal solution of a problem. The new algorithm
is called AFB_BJ+-DAC* . It uses DAC* to filter agent domains by performing a set of cost
extensions from an agent to its neighbors, then executing AC* . Our experiments on diferent
benchmarks show the superiority of AFB_BJ+-DAC* algorithm in terms of communication load
and computation efort.</p>
      <p>This paper comprises four sections. Section 2 gives an overview of DCOPs, soft arc consistency
rules, and AFB_BJ+-AC* algorithm. Section 3 gives a description of AFB_BJ+-DAC* algorithm.
Section 4 talks about experiments fulfilled on some benchmarks. The last section gives the
conclusion.</p>
    </sec>
    <sec id="sec-2">
      <title>2. Background</title>
      <sec id="sec-2-1">
        <title>2.1. Distributed Constraint Optimization Problem (DCOP)</title>
        <p>
          A DCOP [
          <xref ref-type="bibr" rid="ref11 ref12 ref13">12, 13, 11</xref>
          ] is defined by 4 sets, set of agents  = {1, 2, ..., }, set of variables
 = {1, 2, ..., }, set of finite domains  = {1, 2, ..., }, where each  in  contains
the possible values for its associated variable  in  , and set of soft constraints  = { :
 ×  → R+} ∪ { :  → R+}. In a DCOP, each agent is fully responsible for a subset of
variables and the constraints that involve them.
        </p>
        <p>
          In this paper, while maintaining the generality, each DCOP is characterized in that each agent
is responsible for a single variable and that two variables, at most, are linked by a constraint
(i.e., unary or binary constraint) [
          <xref ref-type="bibr" rid="ref14">14</xref>
          ].
        </p>
        <p>We consider these notations:  is an agent, where  is its level. ( ,  ) is an assignment
of  , where  ∈  and  ∈  .  is a binary constraint between  and  , and  is its
binary cost.  is an identical copy of the  constraint, used in the AC* process.  is a
unary constraint on  and  is its unary cost.  is a zero-arity constraint that represents a
lower bound of any problem solution.  is the contribution value of  in .   is the
cost of the optimal solution reached so far and it is also the lowest unacceptable cost used for
AC* process. [1, 2, . . . , ] is the lexicographic ordering of agents (the default ordering),
Γ( ) = {Γ− :  ∈  |  ⊆  ×  ,  &lt; } ∪ {Γ+ :  ∈  |  ⊆  ×  ,  &gt; } is
the set of neighbors of  . Γ− (resp. Γ+) is a set of neighbors with a higher priority (resp. with
a lower priority).  =   = [(1, 1), . . . , ( ,  )] is a current partial assignment (CPA). * is
the optimal value of  . [][ ] are the lower bounds of a lower neighbor  obtained for
  .  (resp. * ) are the guaranteed costs of  (resp. in AC* ).   is a list of  arrays
containing deleted values, each array,  [], contains two elements,   which is the
list of values deleted by  and    which is a counter of the  neighbors that have not
yet processed  .   is a list of arrays containing extension values.</p>
        <p>The guaranteed cost of  is the sum of  involved in  (1).</p>
        <p>( ) = ∑︁  (,  ) | (, ), ( ,  ) ∈ 
(1)
∈</p>
        <p>A CPA  is said to be a complete assignment (i.e., a solution) when it comprises a value
assignment for each variable of a DCOP. Solving a DCOP is to find a solution such that the sum of the
Proc. 1: ProjectUnary()
1  ← ∈ {()} ;
2  ←  +  ;
3 foreach ( ∈ ) do
4 () ← () −  ;
Proc. 2: ProjectBinary(, )
1 foreach ( ∈ ) do
2  ← ∈ {(, )} ;
3 foreach ( ∈ ) do
4  (, ) ←  (, ) −  ;
5 if ( is the current agent)
6 () ← () +  ;
Proc. 3: Extend(, , )
1 foreach ( ∈ ) do
2 foreach ( ∈ ) do
3  (, ) ←  (, ) + [] ;
4 if ( is the current agent)
5 () ← () − [] ;
Proc. 4: CheckPruning()
1 foreach ( ∈ ) do
2 if (() +  ≥  )
3  ←  − { } ;
4  []. .() ;
5 if (  ℎ)
6  [].   ← . ;
7 if (  )
8 broadcastMsg : stp( ) ;
9  ←  ;
Proc. 5: DAC* ()
1 foreach ( ∈ Γ+) do
2 foreach ( ∈ ) do
3 [] ← () ;
4 (, , ) ;
5  [].() ;
6  (, ) ;
Proc. 6: ProcessPruning(msg)
1   ← .  ;
2 foreach ( ∈ Γ) do
3 foreach ( ∈  []) do
4  ←  − { } ;
5 if (  ℎ)
6  [].  .(− 1) ;
7 if ( [].   = 0)
8  []. . ;
9 if (. = ok?)
10   ← .  ;
11 foreach ( ∈ Γ− ) do
12 (, ,  []) ;
13  []. ;
14  (, ) ;
15  () ;
16  ←  {︀ , .}︀ +  ;
17  ← 0 ;
18 if ( ≥  )
19 broadcastMsg : stp() ;
20  ←  ;
21 ℎ () ;
22 DAC* () ;
23  () ;
 }.</p>
      </sec>
      <sec id="sec-2-2">
        <title>2.2. Soft arc consistency</title>
        <p>costs of constraints involved in this solution is minimal, i.e.,  * = arg min{( ) | ( ) =

Soft arc consistency techniques are used when solving a problem to delete values that are not
part of the optimal solution of this problem. To apply these techniques to a problem, a set of
transformations known as equivalence preserving transformations are used. They allow the
exchange of costs between the constraints of the problem according to three manners that are a
binary projection, a unary projection, and an extension.</p>
        <p>
          The binary projection (Proc. 2) is an operation which subtracts, for a value  of , the
smallest cost  of a binary constraint  and adds it to the unary constraint . The unary
projection (Proc. 1) is an operation which subtracts the smallest cost  of a unary constraint
 and adds it to the zero-arity constraint . The extension (Proc. 3) is an operation which
subtracts, for a value  of , the extension value ([]) of  from a unary constraint  and
adds it to the binary constraint  , with 0 &lt; [] ≤ (). All of these transformations are
applied to a problem under a set of conditions represented by soft arc consistency levels [
          <xref ref-type="bibr" rid="ref15">15</xref>
          ],
namely:
        </p>
        <p>Node Consistency (NC* ) : a variable  is NC* if each value  ∈  satisfies  + () &lt;
  and there is a value  ∈  with () = 0. A problem is NC* if each variable  of this
problem is NC* .</p>
        <p>Arc Consistency (AC* ) : a variable  is AC* with respect to its neighbor  if  is NC*
and there is, for each value  ∈ , a value  ∈  which satisfies  (,  ) = 0.  is called
a simple support of . A problem is AC* if each variable  of this problem is AC* .</p>
        <p>Directional Arc Consistency (DAC* ) : a variable  is DAC* with respect to its neighbor
(&gt;) if  is NC* and there is, for each value  ∈ , a value  ∈  which satisfies
 (,  ) +  ( ) = 0.  is called a full support of . A problem is DAC* if each variable 
of this problem is DAC* with its neighbors (&gt;).</p>
        <p>To make a given problem DAC* , we first compute, for each variable  with respect to its
neighbors of lower priority (&gt;), the extension values appropriate to the values of its domain
 (Proc. 5, . 3). Next, we perform the extension operation (Proc. 5, . 4) by subtracting the
extension values from the unary constraints  and adding them to the binary ones  (Proc. 3).
Then, each neighbor  performs, successively, a binary projection (Proc. 2), a unary projection
(Proc. 1), and finally a deletion of non-NC * values. These last three instructions ensure the
fulfillment of arc consistency (AC * ).</p>
        <p>
          In a distributed case, each agent  performs DAC* locally and shares the value of its
zeroarity constraint  with the other agents in order to calculate the global  (i.e.,  =
∑︀∈ )(Proc. 6, . 16). Each agent  keeps locally for each of its constraints  an
identical copy marked by  and used in DAC* procedure. During DAC* ,  constraints are
changed. To keep the symmetry of these constraints in the agents, each agent  applies, on its
copy , the same action of its neighbor  and vice versa (Proc. 5, . 6) [
          <xref ref-type="bibr" rid="ref16">16</xref>
          ].
        </p>
      </sec>
      <sec id="sec-2-3">
        <title>2.3. AFB_BJ+-AC* algorithm</title>
        <p>
          Each agent  carries out the AFB_BJ+-AC* [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ] according to three phases. First,  initializes
its data structures and performs the AC* in which it deletes permanently all suboptimal values
from its domain  . Second,  chooses, for its variable  , a value from its previously filtered
domain  in order to extend the CPA   by its value assignment ( ,  ). If  has successfully
extended the CPA, it sends an ok? message to the next agent asking it to continue the extension
of CPA   . This message loads the extended CPA   , its guaranteed cost (2), its guaranteed
cost in AC* (3), the , and the list  .
        </p>
        <p>(  )[] = ( − 1) +</p>
        <p>∑︁
(,)∈ − 1 | &lt;</p>
        <p>(,  )
* (  ) = * ( − 1) +  ( ) + ∑︁  (,  )
(,)∈ − 1
∈
(2)
(3)
Otherwise, that is to say, the agent  fails to extend the CPA, either because it doesn’t find
a value that gives a valid CPA, or because all the values in its domain are exhausted, it stops
the CPA extension and sends a back message, containing the same data structures as an ok?
message excluding  and * , to the appropriate agent. If such an agent doesn’t exist or the
domain of  becomes empty,  stops its execution and informs the others via stp messages.
A CPA   is said to be valid if its lower bound (4) doesn’t exceed the global upper bound   ,
which represents the cost of the optimal solution achieved so far.</p>
        <p>(  )[] = (  )[] +</p>
        <p>∑︁ (  )[]
&gt;
Third,  evaluates the extended CPA by sending fb? messages, which hold the same data
structures excluding  and  , to unassigned agents asking them to evaluate the CPA
and send the result of the evaluation. When an agent has completed its evaluation, it sends the
result directly to the sender agent via an lb message. The evaluation is based on the calculation
of appropriate lower bounds for the received CPA  . The lower bound of   (5) is the minimal
lower bound over all values of  with respect to  .</p>
        <p>(ℎ≤ &lt;)
 ( )[ℎ] = min
∈
︂{</p>
        <p>∑︁
(,)∈ ℎ
(≤ ℎ)</p>
        <p>(,  ) +
 (,  ) +
− 1
∑︁
=ℎ+1
(ℎ&lt;&lt;)
∑︁
∈Γ+()
(&gt;)
min
∈
min
∈
{ (,  )} +
{( , )}
︂}
3. The AFB_BJ+-DAC* algorithm
The AFB_BJ+-DAC* algorithm uses a higher consistency level, which is a directional arc
consistency (DAC* ). It improves the ability of AFB_BJ+-AC* algorithm to generate more
deletions. It is based on executing a set of cost extensions from unary constraints to binary ones,
then on executing of AC* . DAC* () (Proc. 5) is the procedure responsible for calculating the
extension values (i.e., costs to be transferred) and () (Proc. 3) is the one that performs the
extension of costs from the unary constraints towards the binary ones (§2.2). All the extension
values used by an agent are stored in a list,  , and routed to its lower neighbors via an
ok? message in order to keep the symmetry of  constraints in each agent and its neighbors.
The list of extension values,  , is processed in the procedure   () (Proc.
6, . 9-13) in which DAC* () is also performed (Proc. 6, . 22).</p>
      </sec>
      <sec id="sec-2-4">
        <title>3.1. Description of AFB_BJ+-DAC*</title>
        <p>The AFB_BJ+-DAC* (Proc. 7) is performed by each agent  as follows :</p>
        <p>starts with the initialization step (Proc. 7, . 1-3). If  is the 1 agent (Proc. 7, . 4), it filters
its domain by calling ℎ () (Proc. 4), then performs the appropriate extensions
through DAC* () (Proc. 5), and finally calls  () to generate a CPA  .</p>
        <p>Next,  starts processing the messages (Proc. 7, . 9). First, it updates   and * (Proc.
7, . 12). Then,  updates  and  and erases all unrelated lower bounds if the received
CPA (. ) is fresh compared to the local one ( ) (Proc. 7, . 13). Thereafter,  restores all
temporarily deleted values (Proc. 7, . 28).
(4)
(5)</p>
        <p>When receiving an ok? message (Proc. 7, . 16),  authorizes the sending of fb? messages
and calls   () (Proc. 6).</p>
        <p>When calling   () (Proc. 6),  deals initially, for ok? messages only, with
extensions of its higher neighbors (Proc. 6, . 9-13). Afterward, it updates its  , then
its neighbors’ domains separately in order to keep the same domains as these agents (Proc.
6, . 1-4). After that, it performs the two projections fulfilling the condition of AC * (Proc. 6,
. 14-15). Next,  decrements the unvisited neighbors of ,  [].  , and then
checks whether it is the last visited neighbor of this agent  in order to reset its list of deleted
values  [].  (Proc. 6, . 5-8). Then,  updates its global  (Proc. 6, . 16). If 
exceeds the   ,  turns of its execution and notifies the others (Proc. 6, . 18-20). Finally, 
calls ℎ () to prune its domain, DAC* () (Proc. 5) to make the proper extensions,
and  () to extend the received CPA (Proc. 6, . 21-23).</p>
        <p>When calling DAC* () (Proc. 5),  performs the proper extensions from  to each  (Proc.
5, . 4-5). To do that,  calculates, for each value  of  , its extension value (Proc. 5, . 2-3)
based on the unary cost of this value (0 &lt; [] ≤ ()). Once completed,  performs a
binary projection to keep the symmetry of  constraints (Proc. 5, . 6). It should be noted
that the direction taken into account by each agent  for the extension of its costs is towards
its lower neighbors (Γ+( )).</p>
        <p>When calling ℎ () (Proc. 4),  deletes any value from its domain for which
the sum of the  with the unary cost of this value exceeds   (Proc. 4, . 2-3). With each
new deletion,  initializes the number of its neighbors not yet visited (Proc. 4, . 5-6). If 
domain becomes empty,  turns of its execution and notifies the others (Proc. 4, . 7-9).</p>
        <p>When calling  () (Proc. 8),  looks for a value  for its variable  (Proc. 8,
. 1). If no value exists,  returns to the priority agents by sending a back message to the
contradictory agent (Proc. 8, . 2-5). If no agent exists,  turns of its execution and notifies
the others via stp messages (Proc. 8, . 6-7). Otherwise,  extends  by adding its assignment
(Proc. 8, . 9). If  is the last agent (Proc. 8, . 10) then a new solution is obtained and the
  is updated, which obliges  to call ℎ () to filter again its domain and then
 () to proceed the search (Proc. 8, . 11-14). Otherwise,  sends an ok? message
loaded with the extended  to the next agent (Proc. 8, . 16) and fb? messages to unassigned
agents (Proc. 8, . 19).</p>
        <p>When  receives an fb? message, it filters its domain  with respect to the received 
(Proc. 7, . 24-28), calculates the appropriate lower bounds (5), and immediately sends them to
the sender via lb message (Proc. 7, . 29).</p>
        <p>When  receives an lb message, it stores the lower bounds received (Proc. 7, . 34) and
performs  () to modify its assignment if the lower bound calculated, based on the
cost of  (4), exceeds the   .</p>
      </sec>
      <sec id="sec-2-5">
        <title>3.2. Correctness of AFB_BJ+-DAC*</title>
        <p>
          Theorem 1. AFB_BJ+-DAC* is guaranteed to calculate the optimum and terminates.
Proof. The AFB_BJ+-DAC* algorithm outperforms AFB_BJ+-AC* [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ] by executing a set of cost
extensions. These extensions have already been proved which are correct in [
          <xref ref-type="bibr" rid="ref15 ref17">15, 17</xref>
          ], and they
are executed by the AFB_BJ+-DAC* without any cost redundancy (Proc. 3, . 4), (Proc. 5, . 6),
and (Proc. 6, . 9-13).
        </p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>4. Experimental Results</title>
      <p>
        In this section, we experimentally compare the AFB_BJ+-DAC* algorithm with its older versions
[
        <xref ref-type="bibr" rid="ref8 ref9">8, 9</xref>
        ] and with the BnB-Adopt+-DP2 algorithm [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ], which is its famous competitor. Two
benchmarks are used in these experiments: meetings scheduling and sensors network.
      </p>
      <p>
        Meetings scheduling [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]: are defined by (, , ), which are respectively the number of
meetings/variables, the number of participants, and the number of time slots for each meeting.
Each participant has a private schedule of meetings and each meeting takes place at a particular
location and at a fixed time slot. The constraints are applied to meetings that share participants.
We have evaluated the same cases presented in detail in [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. These cases are A, B, C, and D,
each representing a diferent scenario in terms of the number of meetings and the number of
participants who each have a diferent hierarchical level.
      </p>
      <p>
        Sensors network [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]: are defined by (, , ), which are respectively the number of
targets/variables, the number of sensors, and the number of possible combinations of 3 sensors
1,000
reserved for tracking each target. A sensor can only track one target at most and each
combination of 3 sensors must track a target. The constraints are applied to adjacent targets. We
have evaluated the same cases presented in detail in [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. These cases are A, B, C, and D, each
representing a diferent scenario in terms of the number of targets and the number of sensors
which are arranged in diferent topologies.
      </p>
      <p>To compare the algorithms, we use two metrics which are the total of messages exchanged
() that represents the communication load and the total of non-concurrent constraint
checks () that represents the computation efort.</p>
      <p>Regarding meetings scheduling problems (Fig. 1), the results show a clear improvement of
the AFB_BJ+-DAC* compared to others, whether for  or for . But with regard to
sensors network problems (Fig. 2), the BnB-Adopt+-DP2 retains the pioneering role, despite
the superiority of the AFB_BJ+-DAC* algorithm to its older versions.</p>
      <p>By analyzing the results, we can conclude that the AFB_BJ+-DAC* is better than its earlier
versions, because of the existence of directional arc consistency (DAC* ) which allows agents to
remove more suboptimal values. This is due to a set of cost extensions applied to the problem.
Regarding the superiority of the BnB-Adopt+-DP2 over the AFB_BJ+-DAC* in sensors network
problems, this is mainly due to the arrangement of the pseudo-tree used by this algorithm
that corresponds to the structure of these problems, as well as the existence of DP2 heuristic
facilitates the proper choice of values.</p>
    </sec>
    <sec id="sec-4">
      <title>5. Conclusion</title>
      <p>In this paper, we have introduced the AFB_BJ+-DAC* algorithm. It is an algorithm that relies
on DAC* to generate more deletions and thus quickly reach the optimal solution of a problem.
DAC* mainly relies on performing a set of cost extensions in one direction from an agent
to its lower priority neighbors in order to perform AC* multiple times, which increases the
number of deletions made by each agent and thereby speed up the process of solving a problem.
Experiments on some benchmarks show that the AFB_BJ+-DAC* algorithm behaves better
than its older versions. As future work, we propose to exploit the change in the size of the agent
domains in variable ordering heuristics.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>R. T.</given-names>
            <surname>Maheswaran</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Tambe</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            <surname>Bowring</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. P.</given-names>
            <surname>Pearce</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Varakantham</surname>
          </string-name>
          ,
          <article-title>Taking dcop to the real world: Eficient complete solutions for distributed multi-event scheduling</article-title>
          ,
          <source>in: Proceedings of the Third International Joint Conference on Autonomous Agents and Multiagent Systems-Volume 1, IEEE Computer Society</source>
          ,
          <year>2004</year>
          , pp.
          <fpage>310</fpage>
          -
          <lpage>317</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>R.</given-names>
            <surname>Béjar</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Domshlak</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Fernández</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Gomes</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Krishnamachari</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Selman</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Valls</surname>
          </string-name>
          ,
          <article-title>Sensor networks and distributed csp: communication, computation and complexity</article-title>
          ,
          <source>Artificial Intelligence</source>
          <volume>161</volume>
          (
          <year>2005</year>
          )
          <fpage>117</fpage>
          -
          <lpage>147</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>A.</given-names>
            <surname>Gershman</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Meisels</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Zivan</surname>
          </string-name>
          ,
          <article-title>Asynchronous forward bounding for distributed cops</article-title>
          ,
          <source>Journal of Artificial Intelligence Research</source>
          <volume>34</volume>
          (
          <year>2009</year>
          )
          <fpage>61</fpage>
          -
          <lpage>88</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>P. J.</given-names>
            <surname>Modi</surname>
          </string-name>
          ,
          <string-name>
            <surname>W.-M. Shen</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Tambe</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Yokoo</surname>
          </string-name>
          ,
          <article-title>Adopt: Asynchronous distributed constraint optimization with quality guarantees</article-title>
          ,
          <source>Artificial Intelligence</source>
          <volume>161</volume>
          (
          <year>2005</year>
          )
          <fpage>149</fpage>
          -
          <lpage>180</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>W.</given-names>
            <surname>Yeoh</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Felner</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Koenig</surname>
          </string-name>
          ,
          <article-title>Bnb-adopt: An asynchronous branch-and-bound dcop algorithm</article-title>
          ,
          <source>Journal of Artificial Intelligence Research</source>
          <volume>38</volume>
          (
          <year>2010</year>
          )
          <fpage>85</fpage>
          -
          <lpage>133</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>P.</given-names>
            <surname>Gutierrez</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Meseguer</surname>
          </string-name>
          ,
          <article-title>Saving messages in adopt-based algorithms</article-title>
          ,
          <source>in: Proc. 12th DCR workshop in AAMAS-10</source>
          , Citeseer,
          <year>2010</year>
          , pp.
          <fpage>53</fpage>
          -
          <lpage>64</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>K.</given-names>
            <surname>Hirayama</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Yokoo</surname>
          </string-name>
          ,
          <article-title>Distributed partial constraint satisfaction problem</article-title>
          ,
          <source>in: International Conference on Principles and Practice of Constraint Programming</source>
          , Springer,
          <year>1997</year>
          , pp.
          <fpage>222</fpage>
          -
          <lpage>236</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>M.</given-names>
            <surname>Wahbi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Ezzahir</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Bessiere</surname>
          </string-name>
          ,
          <article-title>Asynchronous forward bounding revisited</article-title>
          ,
          <source>in: International Conference on Principles and Practice of Constraint Programming</source>
          , Springer,
          <year>2013</year>
          , pp.
          <fpage>708</fpage>
          -
          <lpage>723</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>R.</given-names>
            <surname>Adrdor</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Ezzahir</surname>
          </string-name>
          , L. Koutti,
          <article-title>Connecting afb_bj+ with soft arc consistency</article-title>
          ,
          <source>International Journal of Computing and Optimization 5 no. 1</source>
          (
          <issue>2018</issue>
          )
          <fpage>9</fpage>
          -
          <lpage>20</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>R.</given-names>
            <surname>Adrdor</surname>
          </string-name>
          , L. Koutti,
          <string-name>
            <surname>Enhancing</surname>
            <given-names>AFB</given-names>
          </string-name>
          _
          <article-title>BJ+AC* algorithm</article-title>
          , in: 2019 International Conference of Computer Science and Renewable
          <string-name>
            <surname>Energies</surname>
          </string-name>
          (ICCSRE), IEEE,
          <year>2019</year>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>7</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>R.</given-names>
            <surname>Adrdor</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Ezzahir</surname>
          </string-name>
          , L. Koutti,
          <article-title>Consistance d'arc souple appliquée aux problèmes dcop</article-title>
          ,
          <source>Journées d'Intelligence Artificielle Fondamentale (JIAF)</source>
          (
          <year>2020</year>
          )
          <fpage>63</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>T.</given-names>
            <surname>Grinshpoun</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Tassa</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Levit</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Zivan</surname>
          </string-name>
          ,
          <article-title>Privacy preserving region optimal algorithms for symmetric and asymmetric dcops</article-title>
          ,
          <source>Artificial Intelligence</source>
          <volume>266</volume>
          (
          <year>2019</year>
          )
          <fpage>27</fpage>
          -
          <lpage>50</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>F.</given-names>
            <surname>Fioretto</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            <surname>Pontelli</surname>
          </string-name>
          , W. Yeoh,
          <article-title>Distributed constraint optimization problems and applications: A survey</article-title>
          ,
          <source>Journal of Artificial Intelligence Research</source>
          <volume>61</volume>
          (
          <year>2018</year>
          )
          <fpage>623</fpage>
          -
          <lpage>698</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>D. T.</given-names>
            <surname>Nguyen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W.</given-names>
            <surname>Yeoh</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H. C.</given-names>
            <surname>Lau</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Zivan</surname>
          </string-name>
          ,
          <article-title>Distributed gibbs: A linear-space samplingbased dcop algorithm</article-title>
          ,
          <source>Journal of Artificial Intelligence Research</source>
          <volume>64</volume>
          (
          <year>2019</year>
          )
          <fpage>705</fpage>
          -
          <lpage>748</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>J.</given-names>
            <surname>Larrosa</surname>
          </string-name>
          ,
          <string-name>
            <surname>T.</surname>
          </string-name>
          <article-title>Schiex, In the quest of the best form of local consistency for weighted csp</article-title>
          ,
          <source>in: IJCAI</source>
          , volume
          <volume>3</volume>
          ,
          <year>2003</year>
          , pp.
          <fpage>239</fpage>
          -
          <lpage>244</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>P.</given-names>
            <surname>Gutierrez</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Meseguer</surname>
          </string-name>
          ,
          <string-name>
            <surname>Improving</surname>
          </string-name>
          bnb-adopt+
          <article-title>-ac</article-title>
          , in
          <source>: Proceedings of the 11th International Conference on Autonomous Agents and Multiagent Systems-Volume</source>
          <volume>1</volume>
          ,
          <string-name>
            <surname>International</surname>
            <given-names>Foundation</given-names>
          </string-name>
          <source>for Autonomous Agents and Multiagent Systems</source>
          ,
          <year>2012</year>
          , pp.
          <fpage>273</fpage>
          -
          <lpage>280</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <surname>M. C. Cooper</surname>
            , S. De Givry,
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Sánchez</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          <string-name>
            <surname>Schiex</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Zytnicki</surname>
          </string-name>
          , T. Werner,
          <article-title>Soft arc consistency revisited</article-title>
          ,
          <source>Artificial Intelligence</source>
          <volume>174</volume>
          (
          <year>2010</year>
          )
          <fpage>449</fpage>
          -
          <lpage>478</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>S.</given-names>
            <surname>Ali</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Koenig</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Tambe</surname>
          </string-name>
          ,
          <article-title>Preprocessing techniques for accelerating the dcop algorithm adopt</article-title>
          ,
          <source>in: Proceedings of the fourth international joint conference on Autonomous agents and multiagent systems, ACM</source>
          ,
          <year>2005</year>
          , pp.
          <fpage>1041</fpage>
          -
          <lpage>1048</lpage>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>