ating between resource provider and consumer, we
make it possible for each robot to take any of both
roles according to the demands, so that the system can
more flexibly react to environment changes; (3) the
deadlock problem is raised because of the interdepen-
dency among different task points in the schedules,
which is largely omitted in the traditional recharging
problem. For the resource-caused deadlock problem,
(Han Lei, 2014) presents a Petri-Net-based multi-
robot scheduling approach for flexible manufacturing
system, which embeds deadlock control policies into
heuristic (e.g., genetic) search algorithm. Our work
is partially inspired by their idea of embedding dead-
lock prevention mechanisms into search algorithm.
In comparison, our work assumes dynamic environ-
ment and unforeseeable requirement resources, which
make our work potentially more applicable to a dy-
namic environment rather than a relatively fixed in-
dustrial environment.
3 PROBLEM FORMATION
3.1 Preliminaries
Task Point. Each task point π is a unit of task
execution on each robot, and is written as a tuple
hκ, l, R
, R
−
, R
+
i, where (1) κ is the action to be per-
formed by the robot to which the task point π is as-
signed; (2) l ∈ R
2
is the 2-D location at which the π
is to be executed; (3) R
is the set of resources re-
quired by π for its successful execution; (4) R
−
⊆ R
is the set of resources consumed by π; (5) R
+
is the
set of resources generated by π, provided that κ is a
resource-fetching action.
Schedule. Task points are organised into schedules
in order to be executed on robots. Each robot pos-
sesses a schedule σ which is defined as a sequence of
task points π
1
, ..., π
n
, where |σ| = n is the length of
the schedule. For each i = 1, ..., |σ|, σ(i) = π
i
is the
i
th
task point of the σ, and σ(0) is a presumed (but not
really existing) task point which marks the very be-
ginning of the schedule. The index of π is ι
σ
(π). For
each task point π ∈ σ, we make the following defini-
tions: (1) the set of task points preceding π is Π
(π) =
{π
0
∈ σ : ι
σ
(π
0
) < ι
σ
(π)}; (2) the set of task points
succeeding π is Π
(π) = {π
0
∈ σ : ι
σ
(π
0
) > ι
σ
(π)}.
Resource. Each resource r is defined as a tuple
hy, mi, where (1) y is the type of r; (2) m is the amount
of resource of type y shown by r. A set of resources
R can thus be defined as {r = hy, mi : y ∈ Y, m ∈ R}.
Operations of Resources. In this work, we assume
the resources are linear, and define their operations:
(1) hy, m
1
i + hy, m
2
i = hy, m
1
+ m
2
i; (2) hy, m
1
i −
hy, m
2
i = hy, m
1
− m
2
i; (3) k · hy, mi = hy, k · mi.
Operations of Sets of Resources. We define the
type set Y (R) = {y ∈ Y : ∃m ∈ R
+
: hy, mi ∈ R}. We
further define the operations (union, intersect, and mi-
nus) on set of resources: (1) R
1
˜
∪ R
2
= ς(R
1
∪ R
2
);
(2) R
1
˜
∩ R
2
= ς(R
1
∩ R
2
); (3) R
1
˜
\ R
2
= ς(R
1
∪ −R
2
),
where −R = {−r : r ∈ R}. The function ς is defined
as ς(R) = {r
0
∈
S
y∈Y (R)
{hy,
∑
r∈R,r.y=y
r.mi} : r
0
.m > 0},
which means that the resources with the same type
(r.y = y) will be combined into one, and all the re-
sources whose amount is below zero will be removed.
Required and Provided Resources. For each
schedule σ, and task point π ∈ σ, we can define:
(1) R
(π) is the set of resources required by π,
which is defined by R
(π) = π.R
; (2) R
(π) is the
set of resources provided by σ after executing π,
which is recursively defined by R
(σ(i)) = (R
(σ(i −
1))
˜
∪ π.R
+
)
˜
\ π.R
−
.
Resource Holder. This concept is introduced to
uniformly analyse the change of the resource config-
uration of the entire system (including both the MRS
and its environment). Each resource holder h is a tu-
ple hl, R, σi, where (1) l is the location of h; (2) R is
the set of resources currently possessed by h; (3) σ is
the sequence of task points which are not yet executed
and which will take effects on either the location l or
the set of resources R after being executed. A holder
h can be either a robot or a station. If h is a station,
then its σ field is simply a representation of those re-
sources scheduled to be given out to robots. If h is
a robot, then its σ field shows the sequence of task
points to be actually executed by the robot.
Rendezvous. Each rendezvous υ represents multi-
ple robots meeting at a common time and location,
and is defined as a tuple hl, Π, H, pi, where (1) l is
the location of the rendezvous; (2) Π is the set of task
points attending υ; (3) H is the set of resource hold-
ers attending υ; (4) p is a function which corresponds
each h ∈ H to π ∈ Π, so that p(h) = π shows that h
attending υ through executing π.
Resource-delivering Rendezvous. In this work, all
rendezvouses are used for delivering resources, and
therefore should contain only two task points: (1)
Deadlock Prevention in Rendezvous Generation for On-demand Inter-robot Resource Delivery
671