ning graph encoding phase, where each agent encodes
its planning graph into a CSP problem (propositions
correspond to variables and actions to values), and a
solving phase based on specific techniques adapted to
Graphplan search such as explanation based learning,
dynamic variable ordering and forward checking.
Now, consider what happens when an agent suc-
ceeds or fails to extract an individual solution. As in
the merging step, the agents must check if they are al-
ways able to reach collectively the global goal. Thus,
each agent broadcasts the result of the extraction of
its individual plan. Then, based on this information,
the agents decide if the global goal is unreachable, if a
further expansion of their planning graph is needed, or
finally if they must continue and coordinate their indi-
vidual plans. Let consider the first case: an agent fails
to extract its individual plan and no further expansion
is possible. It means that a subset of the global goal
becomes unreachable. DPGM ends and returns fail-
ure. Consider now the second case: an agent can still
expand its planning graph. Each agent returns to the
expansion step and tries to find a solution at the next
level. Finally, if no previous case happens, DPGM as-
sures that all agents have an individual plan to reach
all the propositions of the global goal. Therefore, the
agents must try to coordinate their individual plans.
3.5 Distributed Plans Coordination
Coordination Constraints. Remember that DPGM
merging step adds new actions in the planning graphs
of the agents. These actions define threats and pro-
motions between their activities. Thus, individual
plans may contain actions that must be executed by
the other agents involved in the planning problem. In
other words, an individual plan can be viewed as a
conditional plan, i.e., a plan which could be executed
if certain conditions are met. In our case, these con-
ditions are defined as constraints of the form (a, i)
where a is an action and i the level where a must
be executed. Consider our example and the planning
graphs of ag
1
, ag
2
and ag
3
(see Fig. 3). The agents
ag
1
, ag
2
can respectively extract one individual plan
at level 3:
π
ag1
= hload(c2, t2, l2), move(t2, l2, l1), unload(c2, t2, l1)i
π
ag2
= hload(c1, t1, l1), move(t1, l1, l2), unload(c1, t1, l2)i
More precisely, π
ag1
is executable if π
ag2
matches the
constraint (load(c2, t2, l2), 0) and π
ag3
the constraint
(move(t2, l2, l1), 1). Symmetrically, π
ag2
is executable
if π
ag1
matched the constraint (load(c1, t1, t1), 0) and
π
ag3
the constraint (move(t1,l1, l2), 1). As regards ag
3
,
it may extract several individual plans, but no one
needs the help of ag
1
or ag
2
. Thus, ag
3
individual
plans imply no constraint for the other agents:
π
ag3
= h{move(t2, l2, l1), move(t1, l1, l2)}, no-op, no-opi
π
0
ag3
= hmove(t2, l2, l1), move(t1, l1, l2), no-opi
π
00
ag3
= . . .
We call this first kind of constraints requirement con-
straints because they express that an agent needs the
execution of some other actions at a specified time
step to execute its own plan.
Is this first kind of constraints enough to guaran-
tee the correctness of the individual plans in a dis-
tributed context ? Not quite. Because, individual
plans may contain commitment actions, e.g., ag
1
is
committing itself to execute action unload(c2,t2,l1) at
time step 3. No constraint says that the mutex actions
of unload(c2,t2,l1) must not be executed at the same
level by the other agents. Hence, we have to consider
a second kind of constraints called commitment con-
straints of the form (a, i) that express that the mutex
actions of a specified action a must not be executed at
a given level i.
Coordination Mechanisms. In order to coordinate
their individual plans, each agent broadcasts the re-
quirement and the commitment constraints of its in-
dividual plan. Then it tries to integrate the received
constraints into its own individual plan. This integra-
tion follows a least commitment principle based on
two coordination mechanisms.
First, each agent checks if the received constraints
can be directly integrated in its individual plans pre-
viously computed. This checkout is quite simple and
does not need any replanning mechanism. Indeed,
the threats, the promotions and the mutexes are al-
ready in the agents planning graphs. Thus, agents
have all the needed information to decide if the con-
straints can be satisfied. Consider the constraints
related to π
ag1
: the requirement constraints are
{(load(c2, t2, l2), 0), (move(t2, l2, l1), 1)} and the com-
mitment constraints are {(unload(c2, t2, l1), 2)}. Let
the individual plan of ag
2
:
π
ag2
= hload(c1, t1, l1), move(t1, l1, l2), unload(c1, t1, l2)i
and let us study how π
ag2
is refined to integrate the
constraints set from π
ag1
. The requirement constraint
(load(c2, t2, l2), 0) of ag
1
can be satisfied because no
action of π
ag2
at level 0 is mutex with load(c2,t2,l2).
Hence, load(c2,t2,l2) is added to π
ag2
at level 0 to check
the requirement constraint of ag
1
. Consider now the
commitment constraint of ag
1
. Is unload(c2,t2,l1) mu-
tex with an action of π
ag2
at level 2 ? In our example
the answer is no. It means that π
ag2
holds the commit-
ment constraint of ag
1
: (unload(c2,t2,l1),2). But what
about the commitment constraint (move(t1,l1,l2), 1) of
ag
1
and (move(t2,l2,l1), 1) of ag
2
not yet considered ?
ICAART 2010 - 2nd International Conference on Agents and Artificial Intelligence
132