Moving Agents in a Graph

Moving Agents in a Graph
Adriaan ter Mors
Monday, July 15, 2013
1 / 138
Multi-agent navigation
Application domains
Complexity of multi-agent navigation
The multi-agent navigation problem
G1 , S3
S2
G3
G2
S1
2 / 138
Multi-agent navigation
Application domains
Complexity of multi-agent navigation
The multi-agent navigation problem
G1 , S3
•
•
•
•
agents A1 , A2 , and A3
S2
each Ai has start location Si , goal location Gi
G3
avoid colllisions with obstacle regions and other agents.
each agent is looking for the fastest way to reach its
goal.
G2
S1
3 / 138
Multi-agent navigation
Application domains
Complexity of multi-agent navigation
Multi-Agent (Robot) Motion Planning
G1 , S3
Multi-Agent Motion Planning
(MAMP)
S2
Find a set of conflict-free trajectories
in space and time, subject to motion
constraints (e.g. acceleration,
deceleration, degrees of freedom) for
each of the agents. MAMP is
PSPACE-complete.
G3
G2
S1
4 / 138
Multi-agent navigation
Application domains
Complexity of multi-agent navigation
Multi-Agent Route Planning
G1 , S3
• Agents traverse the nodes and
edges of a roadmap
S2
• Route plan: a path in the graph,
G3
combined with time intervals for
the intended usage.
• NP-complete in some cases.
G2
S1
5 / 138
Multi-agent navigation
Application domains
Complexity of multi-agent navigation
Three approaches to multi-agent route planning
1. Find an optimal set of conflict-free route plans
2. Sequential (reservation-based) planning:
2.1 Context-aware routing: find an optimal route that respects existing
reservations
2.2 Fixed-path scheduling: given a path in the roadmap, find an
optimal schedule that respects existing reservations
6 / 138
Multi-agent navigation
Application domains
Complexity of multi-agent navigation
Example: fixed-path scheduling
8
4
s
n
2
A1 :
c
0
2
1
m
7
•
G1 , S3
p
l
6
3
3
d
8
h
11
i
16
j
20
l
23
k
n
25
j
S2
q
t
3
4
3
G3
r
4
i
5
7
h
3
g
3
b
c
S1
4
G2
3
2
d
8
2
e
5
f
a
7 / 138
Multi-agent navigation
Application domains
Complexity of multi-agent navigation
Example: fixed-path scheduling
8
4
s
n
2
•
A1 :
c
0
A2 :
2
1
m
7
•
G1 , S3
p
l
6
3
3
d
8
q
0
h
11
r
3
i
16
i
17
j
20
h
22
l
23
g
25
k
n
25
j
S2
q
t
3
4
3
G3
r
4
i
5
7
h
3
g
3
b
c
S1
4
G2
3
2
d
8
2
e
5
f
a
7 / 138
Multi-agent navigation
Application domains
Complexity of multi-agent navigation
Example: fixed-path scheduling
8
4
s
n
2
•
•
A1 :
c
0
A2 :
A3 :
n
26
2
1
m
7
•
G1 , S3
p
l
6
3
3
d
8
q
0
h
11
r
3
i
16
i
17
j
20
h
22
l
23
k
n
25
S2
q
t
g
25
j
3
4
3
G3
r
4
i
5
l
28
j
31
i
35
r
39
q
42
7
h
3
g
3
b
c
S1
4
G2
3
2
d
8
2
e
5
f
a
7 / 138
Multi-agent navigation
Application domains
Complexity of multi-agent navigation
Example: context-aware routing
8
4
s
n
2
A1 :
c
0
2
1
m
7
•
G1 , S3
p
l
6
3
3
k
d
8
h
11
i
16
j
20
l
23
n
25
j
S2
q
t
3
4
3
G3
r
4
i
5
7
h
3
g
3
b
c
S1
4
G2
3
2
d
8
2
e
5
f
a
8 / 138
Multi-agent navigation
Application domains
Complexity of multi-agent navigation
Example: context-aware routing
8
4
s
n
2
3
3
A1 :
c
0
A2 :
l
6
k
d
8
h
11
i
16
j
20
l
23
n
25
q
0
r
3
i
17
h
22
j
S2
q
t
•
2
1
m
7
•
G1 , S3
p
4
3
g
25
3
G3
r
4
i
5
7
h
3
g
3
b
c
S1
4
G2
3
2
d
8
2
e
5
f
a
8 / 138
Multi-agent navigation
Application domains
Complexity of multi-agent navigation
Example: context-aware routing
8
4
s
n
2
2
1
m
7
•
G1 , S3
p
l
6
3
3
A1 :
c
0
k
d
8
h
11
i
16
j
20
l
23
n
25
S2
q
t
•
A2 :
q
0
r
3
i
17
h
22
•
A3 :
n
0
p
8
q
14
r
17
j
4
3
g
25
3
G3
r
4
i
5
7
h
3
g
3
b
c
S1
4
G2
3
2
d
8
2
e
5
f
a
8 / 138
Multi-agent navigation
Application domains
Complexity of multi-agent navigation
Example: optimal multi-agent route planning
8
4
s
n
G1 , S3
p
2
2
1
m
7
l
6
3
3
•
A1 :
c
0
b
2
t
9
s
16
p
20
k
n
28
j
S2
q
t
3
4
3
G3
r
4
i
5
7
h
3
g
3
b
c
S1
4
G2
3
2
d
8
2
e
5
f
a
9 / 138
Multi-agent navigation
Application domains
Complexity of multi-agent navigation
Example: optimal multi-agent route planning
8
4
s
n
G1 , S3
p
2
2
1
m
7
l
6
3
3
•
A1 :
•
A2 :
c
0
q
0
b
2
r
3
t
9
i
7
s
16
h
12
p
20
g
15
k
n
28
j
S2
q
t
3
4
3
G3
r
4
i
5
7
h
3
g
3
b
c
S1
4
G2
3
2
d
8
2
e
5
f
a
9 / 138
Multi-agent navigation
Application domains
Complexity of multi-agent navigation
Example: optimal multi-agent route planning
8
4
s
n
G1 , S3
p
2
2
1
m
7
l
6
3
3
•
A1 :
•
A2 :
q
0
r
3
i
7
h
12
•
A3 :
n
0
l
2
j
5
i
9
c
0
b
2
t
9
s
16
p
20
g
15
r
13
k
n
28
j
S2
q
t
3
4
3
G3
r
4
i
5
7
h
3
g
3
b
c
S1
4
G2
3
2
d
8
2
e
5
f
a
9 / 138
Multi-agent navigation
Application domains
Complexity of multi-agent navigation
Tutorial overview
1. Continue this introduction: some applications.
2. The compexity of MAMP and MARP
3. Multi-agent pathfinding: cooperative search in near-full graphs
4. Context-aware routing: reservation-based route planning for
practical domains
10 / 138
Multi-agent navigation
Application domains
Complexity of multi-agent navigation
Motion planning in the presence of moving obstacles
[Wilfong, 1991]
11 / 138
Multi-agent navigation
Application domains
Complexity of multi-agent navigation
Asteroid avoidance: Motion planning in the presence of
moving obstacles [Reif and Sharir, 1994]
Asteroid avoidance
“The object we wish to move, is a convex polyhedron that is free to move by
translation with bounded velocity modulus, and the polyhedral obstacles have
known translational trajectories but cannot rotate. This problem has many
applications to robot, automobile, and aircraft collision avoidance.”
12 / 138
Multi-agent navigation
Application domains
Complexity of multi-agent navigation
Prison break: Motion planning in a dynamic domain
[Fujimura and Samet, 1990]
Prison break
An escaping prisoner must traverse the prison compound and scale
the wall without ever being caught in the search beam lights that
sweep the compound.
• Each obstacle is a convex polygon that moves in a fixed direction
at a constant speed.
• A polynomial-time algorithm is presented for the case that the
agent can move faster than any of the obstacles.
13 / 138
Multi-agent navigation
Application domains
Complexity of multi-agent navigation
Long-term Stealth Navigation in a Security Zone where the
Movement of the Invader is Monitored [Park et al., 2010]
• The security robot must approach the invader while being
detected as late as possible, in order to allow a capture.
• Hide behind obstacles and try to stay out of the field of vision of
the invader.
14 / 138
Multi-agent navigation
Application domains
Complexity of multi-agent navigation
Coordinating the Motions of Multiple Robots with Specified
Trajectories [Akella and Hutchinson, 2002]
• Both the path and the velocity of the robots are fixed.
• Generate start times with Mixed Integer Programming.
• Applications in car welding and painting robots.
15 / 138
Multi-agent navigation
Application domains
Complexity of multi-agent navigation
Airport luggage handling: An experimental study of
distributed robot coordination [Carpin and Pagello, 2009]
• Not many systems with many robots have been deployed yet, and
existing systems often use reactive navigation.
• Given a path for each robot, determine starting times for each of
the segments of the paths.
• A simple priority-based algorithm is given in which agents move
forward along their paths and insert delays if a reservation from
another agent is encountered.
16 / 138
Multi-agent navigation
Application domains
Complexity of multi-agent navigation
AGENTFLY: Towards Multi-Agent Technology in Free Flight
Air Traffic Control [Šišlák et al., 2008]
• Agents make avoidance plans using the possible primitives
up/down, slow/fast, left/right, and the combination of those plans
is searched for the best.
• The agent technology center, http://agents.felk.cvut.cz/,
also tackles related UAV problems such as military patrol.
17 / 138
Multi-agent navigation
Application domains
Complexity of multi-agent navigation
Trajectory planning for multiple unmanned vehicles under
reciprocal constraints [Avigad et al., 2011]
• Applications in exploration and search and rescue
• Find optimal, conflict-free trajectories that include reciprocal
constraints, like a rendezvous.
18 / 138
Multi-agent navigation
Application domains
Complexity of multi-agent navigation
An enumeration algorithm for solving the fleet management
problem in underground mines
[Beaulieu and Gamache, 2006]
19 / 138
Multi-agent navigation
Application domains
Complexity of multi-agent navigation
Approach to the underground AGV routing problem
• Automated Guided Vehicles load, haul, and dump freight.
• Road segments are narrow so vehicles cannot drive side by side.
• Displacement mode: A vehicle must arrive at its destination
facing forward.
• Dispatching and routing of vehicles is tackled.
20 / 138
Multi-agent navigation
Application domains
Complexity of multi-agent navigation
Changing the displacement mode
Vehicles can change displacement mode:
1. At a service station, such as a stope.
2. By driving into a lane, and reversing out of it.
21 / 138
Multi-agent navigation
Application domains
Complexity of multi-agent navigation
Enumeration of states with Dynamic Programming
• A state encodes for every vehicle:
1. the location (road segment),
2. the time to reach the next intersection, and
3. the displacement mode.
• When expanding states, checks are performed to ensure no routing
conflicts occur.
• All legal successor states are generated, and duplicate states are
subsequently filtered.
22 / 138
Multi-agent navigation
Application domains
Complexity of multi-agent navigation
Complexity of multi-robot motion planning
• [Hopcroft et al., 1984]: the Warehouseman’s problem is
PSPACE-complete.
• [Schwartz and Sharir, 1983]: the Piano mover’s problem;
polynomial-time solutions are possible if the number of degrees
of freedom are fixed.
• [Hearn and Demaine, 2005]: Nondeterministic constraint logic
(NCL)
23 / 138
Multi-agent navigation
Application domains
Complexity of multi-agent navigation
Nondeterministic constraint logic: a model of computation
NCL machine : an undirected graph together with an assignment of integer
weights to edges and minimum in-flow constraints to vertices.
Configuration : an orientation (direction) of the edges such that such that
the sum of incoming edge weights at each vertex is at least
the minimum in-flow constraint of that vertex.
Move : a move from one configuration to another configuration is
simply the reversal of a single edge such that the minimum
in-flow constraints remain satisfied.
24 / 138
Multi-agent navigation
Application domains
Complexity of multi-agent navigation
And-Or constraint graphs
(a) AND gadget
(b) OR gadget
• AND-gadget: the top edge can be directed outwards only if both other
edges are directed inwards.
• OR-gadget: the top edge can be directed outwards if at least one of the
other edges is directed inwards.
• Reduction from PSPACE-Complete Quantified Boolean Formulas to
And-Or graphs.
25 / 138
Multi-agent navigation
Application domains
Complexity of multi-agent navigation
Sliding blocks
• PSPACE-completeness is proved for 1 × 2 sliding blocks
• Reduction from And-Or graphs to sliding blocks: first create the “cell
wall” construction as shown in the figure, then fill it with And- and
Or-gadgets.
26 / 138
Multi-agent navigation
Application domains
Complexity of multi-agent navigation
Sliding blocks And gadget
Block C may move down if and
only if block A first moves left and
block B first moves down.
27 / 138
Multi-agent navigation
Application domains
Complexity of multi-agent navigation
Sliding blocks Or gadget
Block C may move down if and
only if block A first moves right, or
block B first moves down.
28 / 138
Multi-agent navigation
Application domains
Complexity of multi-agent navigation
Definition of multi-agent pathfinding
adapted from [Kornhauser et al., 1984]
Multi-agent pathfinding
Let G be a graph with n vertices with k < n agents occupying distinct
vertices. A move consists of transferring an agent to an adjacent
unoccupied vertex. The problem is to decide whether one arrangement
of agents is reachable from another, and to find the shortest sequence
of moves to find the arrangement when it is possible.
29 / 138
Multi-agent navigation
Application domains
Complexity of multi-agent navigation
Complexity of multi-agent pathfinding
NP-hardness was demonstrated in [Goldreich, 2011] using a reduction
from 3-Exact Cover.
3-Exact Cover (3XC)
Given a set of elements U = {ei } and a set of subsets S = {sj },
where for each subset sj ⊆ U and |sj | = 3. Is there a subset of
S
subsets S 0 ⊆ S such that x ∈S 0 x = U and all subsets in S 0 are
pairwise disjunct (sa ∩ sb = ∅ for each sa ∈ S 0 , sb ∈ S 0 , and sa 6= sb )?
30 / 138
Multi-agent navigation
Application domains
Complexity of multi-agent navigation
Reducing 3XC to MAPF
Elements from U
a1a
a1b
a2a
a1s
a2b
a3a
a2s
a3b
···
ana
···
s
am
anb
Subsets from S
Root node v0
31 / 138
Multi-agent navigation
Application domains
Complexity of multi-agent navigation
Reducing 3XC to MAPF
Elements from U
a1a
a1b
a2a
a2b
a3a
a2s
a3b
···
ana
···
s
am
anb
Subsets from S
a1s
Root node v0
The subset vertices ais that are vacated in MAPF constitute a solution for
3XC.
31 / 138
Introduction
Definitions
Biconnected graphs, 1 empty vertex
General graphs with ≥ 2 blanks
MAPF Algorithms
Multi-Agent Pathfinding
Introduction
Definitions
Biconnected graphs, 1 empty vertex
General graphs with ≥ 2 blanks
MAPF Algorithms
Optimal solving
Bibox: algorithm for biconnected graphs
Push and Rotate
Empirical Evaluation
32 / 138
Introduction
Definitions
Biconnected graphs, 1 empty vertex
General graphs with ≥ 2 blanks
MAPF Algorithms
Multi-Agent Pathfinding example
a5
a8
a2
a1
a3
a4
a6
a7
33 / 138
Introduction
Definitions
Biconnected graphs, 1 empty vertex
General graphs with ≥ 2 blanks
MAPF Algorithms
Multi-Agent Pathfinding example
a5
a8
a2
a1
a3
a6
a4
Able to cross
a7
Unable to cross
33 / 138
Introduction
Definitions
Biconnected graphs, 1 empty vertex
General graphs with ≥ 2 blanks
MAPF Algorithms
Multi-Agent Pathfinding example
a8
a2
a1
a3
a4
a6
a5
a7
33 / 138
Introduction
Definitions
Biconnected graphs, 1 empty vertex
General graphs with ≥ 2 blanks
MAPF Algorithms
Multi-Agent Pathfinding example
a6
a8
a1
a2
a3
a4
a5
a7
33 / 138
Introduction
Definitions
Biconnected graphs, 1 empty vertex
General graphs with ≥ 2 blanks
MAPF Algorithms
Multi-Agent Pathfinding example
a6
a1
a8
a2
a3
a4
a5
a7
33 / 138
Introduction
Definitions
Biconnected graphs, 1 empty vertex
General graphs with ≥ 2 blanks
MAPF Algorithms
Multi-Agent Pathfinding example
a1
a8
a6
a2
a3
a4
a5
a7
33 / 138
Introduction
Definitions
Biconnected graphs, 1 empty vertex
General graphs with ≥ 2 blanks
MAPF Algorithms
Multi-Agent Pathfinding example
a1
a8
a2
a6
a3
a4
a5
a7
33 / 138
Introduction
Definitions
Biconnected graphs, 1 empty vertex
General graphs with ≥ 2 blanks
MAPF Algorithms
Multi-Agent Pathfinding example
a5
a8
a2
a6
a3
a4
a1
a7
33 / 138
Introduction
Definitions
General graphs with ≥ 2 blanks
Biconnected graphs, 1 empty vertex
MAPF Algorithms
The 14-15 puzzle
1
2
3
4
5
6
7
8
→
9
10
11
13
15
14
12
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
34 / 138
Introduction
Definitions
Biconnected graphs, 1 empty vertex
General graphs with ≥ 2 blanks
MAPF Algorithms
Agent navigation in video games
Maps from http://www.movingai.com
(a) Starcraft
(b) Baldur’s Gate II
35 / 138
Introduction
Definitions
Biconnected graphs, 1 empty vertex
General graphs with ≥ 2 blanks
MAPF Algorithms
State of the art
• [Wilson, 1974]: solvability of biconnected graphs with 1 empty vertex.
• [Kornhauser, 1984]: solvability of general graphs with 2 empty vertices.
• [Surynek, 2009]: An algorithm for solving MAPF on biconnected
instances with ≥ 2 empty vertices.
• [Khorshid et al., 2011]: An algorithm for solving MAPF on trees.
• [Wang and Botea, 2011]: An algorithm for solving MAPF on Slidable
instances.
• [Luna and Bekris, 2011]: An algorithm for solving MAPF on general
graphs with ≥ 2 empty vertices, which turned out to be incomplete.
• [de Wilde et al., 2013]: A complete algorithm for solving MAPF on
general graphs with ≥ 2 empty vertices.
36 / 138
Introduction
Definitions
Biconnected graphs, 1 empty vertex
General graphs with ≥ 2 blanks
MAPF Algorithms
Multi-Agent Pathfinding
Definition as coordination of pebble motion [Kornhauser et al., 1984]
Coordinating Pebble Motion on Graphs
Let G be a graph with n vertices with k < n pebbles numbered 1, . . . , k on
distinct vertices. A move consists of transferring a pebble to an adjacent
unoccupied vertex. The problem is to decide whether one arrangement of
pebbles is reachable from another, and to find the shortest sequence of
moves to find the arrangement when it is possible.
Kornhauser’s result
The pebble motion problem can be decided in polynomial time, and the
number of moves required to find the solution is at most O (n3 ); also, for
some instances O (n3 ) moves are necessary.
37 / 138
Introduction
Definitions
Biconnected graphs, 1 empty vertex
General graphs with ≥ 2 blanks
MAPF Algorithms
Definition: biconnected graph
Biconnected graph
A graph is biconnected (or nonseparable) if it stays connected after the
removal of any single vertex.
(a) separable graph
(b) nonseparable graph
38 / 138
Introduction
Definitions
Biconnected graphs, 1 empty vertex
General graphs with ≥ 2 blanks
MAPF Algorithms
Permutations
Permutation
A permutation which maps i to j is thought of as moving the agent (pebble) at
position i to position j.
1 2 3 4 5
4 1 5 2 3
k -cycle
If a permutation p moves only letters at positions a1 , a2 , . . . , ak and sends ai
to ai +1 , then p is called a k-cycle. A 2-cycle is called a transposition or swap.
Cyclic notation
Any permutation can be expressed as a product of disjoint cycles.
(142)(35)
39 / 138
Introduction
Definitions
Biconnected graphs, 1 empty vertex
General graphs with ≥ 2 blanks
MAPF Algorithms
Permutation groups: k -transitivity
k -transitivity
A group of permutations G is k -transitive if, for any k distinct letters
a1 , . . . , ak and any other set of k distinct letters b1 , . . . , bk , there exists
a permutation p ∈ G which sends ai to bi .
40 / 138
Introduction
Definitions
Biconnected graphs, 1 empty vertex
General graphs with ≥ 2 blanks
MAPF Algorithms
Kornhauser’s Algorithm ([Kornhauser, 1984], pg. 34)
• Do a number of tests: is the graph connected, simple, etc.
• Compute the subproblems Si
• If m = 1, use Wilson criterion to check solvability.
• If m ≥ 2: the graph is solvable, unless the graph is a polygon.
Polygons are only solvable iff the start and finish positions differ
by a cyclic permutation.
41 / 138
Introduction
Definitions
Biconnected graphs, 1 empty vertex
General graphs with ≥ 2 blanks
MAPF Algorithms
Wilson’s theorem (1974)
Theorem ([Wilson, 1974])
Let G be a biconnected graph on n vertices, other than a polygon or θ0
with one blank vertex. If G is not bipartite, then the puzzle is solvable.
If G is bipartite, then the puzzle is solvable iff the permutation induced
by the initial and final positions is even.
(c) A polygon graph
(d) The graph θ0
Figure: Biconnected graphs that are not generally solvable for 1 empty vertex.
42 / 138
Introduction
Definitions
General graphs with ≥ 2 blanks
Biconnected graphs, 1 empty vertex
MAPF Algorithms
Decomposing a Biconnected Graph into Handles
1. Select any v ∈ V , and any w
adjacent via e.
2. Construct H from simple path
from w to v , not using e.
3. Let w1 ∈ G \ H, adjacent to
v1 ∈ H via e1 . Add handle as
path from w1 to some v2 ∈ H,
not using e1 .
w
e
v
4. Continue adding handles until all
vertices from V have been
included.
43 / 138
Introduction
Definitions
General graphs with ≥ 2 blanks
Biconnected graphs, 1 empty vertex
MAPF Algorithms
Decomposing a Biconnected Graph into Handles
1. Select any v ∈ V , and any w
adjacent via e.
2. Construct H from simple path
from w to v , not using e.
3. Let w1 ∈ G \ H, adjacent to
v1 ∈ H via e1 . Add handle as
path from w1 to some v2 ∈ H,
not using e1 .
w
e
v
4. Continue adding handles until all
vertices from V have been
included.
43 / 138
Introduction
Definitions
General graphs with ≥ 2 blanks
Biconnected graphs, 1 empty vertex
MAPF Algorithms
Decomposing a Biconnected Graph into Handles
1. Select any v ∈ V , and any w
adjacent via e.
2. Construct H from simple path
from w to v , not using e.
3. Let w1 ∈ G \ H, adjacent to
v1 ∈ H via e1 . Add handle as
path from w1 to some v2 ∈ H,
not using e1 .
4. Continue adding handles until all
vertices from V have been
included.
v1
e1
v2
w1
43 / 138
Introduction
Definitions
Biconnected graphs, 1 empty vertex
General graphs with ≥ 2 blanks
MAPF Algorithms
Decomposing a Biconnected Graph into Handles
1. Select any v ∈ V , and any w
adjacent via e.
2. Construct H from simple path
from w to v , not using e.
3. Let w1 ∈ G \ H, adjacent to
v1 ∈ H via e1 . Add handle as
path from w1 to some v2 ∈ H,
not using e1 .
4. Continue adding handles until all
vertices from V have been
included.
v1
e1
w1
43 / 138
Introduction
Definitions
Biconnected graphs, 1 empty vertex
General graphs with ≥ 2 blanks
MAPF Algorithms
Decomposing a Biconnected Graph into Handles
1. Select any v ∈ V , and any w
adjacent via e.
2. Construct H from simple path
from w to v , not using e.
3. Let w1 ∈ G \ H, adjacent to
v1 ∈ H via e1 . Add handle as
path from w1 to some v2 ∈ H,
not using e1 .
v1
e1
w1
4. Continue adding handles until all
vertices from V have been
included.
43 / 138
Introduction
Definitions
Biconnected graphs, 1 empty vertex
General graphs with ≥ 2 blanks
MAPF Algorithms
Decomposing a Biconnected Graph into Handles
1. Select any v ∈ V , and any w
adjacent via e.
2. Construct H from simple path
from w to v , not using e.
3. Let w1 ∈ G \ H, adjacent to
v1 ∈ H via e1 . Add handle as
path from w1 to some v2 ∈ H,
not using e1 .
4. Continue adding handles until all
vertices from V have been
included.
43 / 138
Introduction
Definitions
Biconnected graphs, 1 empty vertex
General graphs with ≥ 2 blanks
MAPF Algorithms
Proof of Wilson’s Theorem
by Induction on the Number of Handles
• Kornhauser proves 3-transitivity, with which we can generate:
• The set An of even permutations, in case the graph is bipartite
• The set Sn of all permutations, on a non-bipartitite graph
• Induction hypothesis: a biconnected graph with i handles is
3-transitive
• Case 1: adding handle i + 1 with one internal vertex
• Case 2: adding handle i + 1 with k ≥ 2 internal vertices
44 / 138
Introduction
Definitions
Biconnected graphs, 1 empty vertex
General graphs with ≥ 2 blanks
MAPF Algorithms
3-transitivity for one-vertex handles
1. Let Ti be 3-transitive, handle H
with one internal node.
2. Move any three agents a1 , a2 , a3
to x , y , z.
a3
3. Suppose one of the start agents
is in the handle
x
z
a2
4. Move a non-start agent to x
5. Rotate start vertex out of handle,
into y .
a1
Ti
H
y
6. Use induction hypothesis to
move a1 , a2 , a3 into x , y , z.
45 / 138
Introduction
Definitions
Biconnected graphs, 1 empty vertex
General graphs with ≥ 2 blanks
MAPF Algorithms
3-transitivity for one-vertex handles
1. Let Ti be 3-transitive, handle H
with one internal node.
2. Move any three agents a1 , a2 , a3
to x , y , z.
a3
3. Suppose one of the start agents
is in the handle
x
z
a2
4. Move a non-start agent to x
5. Rotate start vertex out of handle,
into y .
a1
Ti
H
y
6. Use induction hypothesis to
move a1 , a2 , a3 into x , y , z.
45 / 138
Introduction
Definitions
Biconnected graphs, 1 empty vertex
General graphs with ≥ 2 blanks
MAPF Algorithms
3-transitivity for one-vertex handles
1. Let Ti be 3-transitive, handle H
with one internal node.
2. Move any three agents a1 , a2 , a3
to x , y , z.
a3
3. Suppose one of the start agents
is in the handle
x
z
a2
4. Move a non-start agent to x
5. Rotate start vertex out of handle,
into y .
a1
Ti
H
y
6. Use induction hypothesis to
move a1 , a2 , a3 into x , y , z.
45 / 138
Introduction
Definitions
Biconnected graphs, 1 empty vertex
General graphs with ≥ 2 blanks
MAPF Algorithms
3-transitivity for one-vertex handles
1. Let Ti be 3-transitive, handle H
with one internal node.
2. Move any three agents a1 , a2 , a3
to x , y , z.
x
3. Suppose one of the start agents
is in the handle
z
a3
4. Move a non-start agent to x
5. Rotate start vertex out of handle,
into y .
a2
a1
Ti
H
y
6. Use induction hypothesis to
move a1 , a2 , a3 into x , y , z.
45 / 138
Introduction
Definitions
Biconnected graphs, 1 empty vertex
General graphs with ≥ 2 blanks
MAPF Algorithms
3-transitivity for one-vertex handles
1. Let Ti be 3-transitive, handle H
with one internal node.
2. Move any three agents a1 , a2 , a3
to x , y , z.
a3
3. Suppose one of the start agents
is in the handle
4. Move a non-start agent to x
5. Rotate start vertex out of handle,
into y .
x
z
a1
Ti
a2
H
y
6. Use induction hypothesis to
move a1 , a2 , a3 into x , y , z.
45 / 138
Introduction
Definitions
Biconnected graphs, 1 empty vertex
General graphs with ≥ 2 blanks
MAPF Algorithms
3-transitivity for one-vertex handles
1. Let Ti be 3-transitive, handle H
with one internal node.
2. Move any three agents a1 , a2 , a3
to x , y , z.
x
3. Suppose one of the start agents
is in the handle
a3
z
a1
4. Move a non-start agent to x
5. Rotate start vertex out of handle,
into y .
Ti
a2
H
y
6. Use induction hypothesis to
move a1 , a2 , a3 into x , y , z.
45 / 138
Introduction
Definitions
Biconnected graphs, 1 empty vertex
General graphs with ≥ 2 blanks
MAPF Algorithms
3-transitivity for multi-vertex handles
Lemma
Let G be a nonseparable graph, and
G0 be the result of adding a handle H
to G. If the handle has k internal
nodes, then G0 is k + 1 transitive.
a2
x
a3
z
1. To show: any i + 1 agents can
be moved into ai −1 , . . . , a1 , x.
2. Rotate agents on the handle
forwards.
a4
a1
H
G
y
3. Bring the first agent to x
46 / 138
Introduction
Definitions
Biconnected graphs, 1 empty vertex
General graphs with ≥ 2 blanks
MAPF Algorithms
3-transitivity for multi-vertex handles
Lemma
Let G be a nonseparable graph, and
G0 be the result of adding a handle H
to G. If the handle has k internal
nodes, then G0 is k + 1 transitive.
x
a2
z
1. To show: any i + 1 agents can
be moved into ai −1 , . . . , a1 , x.
2. Rotate agents on the handle
forwards.
a3
a1
H
G
y
a4
3. Bring the first agent to x
46 / 138
Introduction
Definitions
Biconnected graphs, 1 empty vertex
General graphs with ≥ 2 blanks
MAPF Algorithms
3-transitivity for multi-vertex handles
Lemma
Let G be a nonseparable graph, and
G0 be the result of adding a handle H
to G. If the handle has k internal
nodes, then G0 is k + 1 transitive.
a1
x
a2
z
1. To show: any i + 1 agents can
be moved into ai −1 , . . . , a1 , x.
2. Rotate agents on the handle
forwards.
a3
H
G
y
a4
3. Bring the first agent to x
46 / 138
Introduction
Definitions
General graphs with ≥ 2 blanks
Biconnected graphs, 1 empty vertex
MAPF Algorithms
Solving graph with multiple blanks
a9
a4
a3
a6
a2
S1
S2
a5
a7
a8
S3
a10
a1
• Divide the problem into subproblems
• It is possible to swap two agents
• It is possible to show 2-transitivity
• Move agents to their destination one by one.
47 / 138
Introduction
Definitions
Biconnected graphs, 1 empty vertex
General graphs with ≥ 2 blanks
MAPF Algorithms
Definition of subproblems (1)
a9
a4
a6
a1
3
1
a2
9
6
2
4
s1
s2
5
s3
a5
7
s4
a7
8
a8
10
s5
a10
a3
Maximal biconnected components
Let G = (V , E ). Two edges e1 , e2 ∈ E are equivalent if and only if
e1 = e2 or there is a cycle in G containing e1 and e2 ; this is an
equivalence relation. The equivalence classes, together with incident
vertices, are the maximal biconnected components of G .
Join vertices
The set of join vertices S consists of vertices of degree ≥ 3 which are
common to more than one biconnected component.
48 / 138
Introduction
Definitions
Biconnected graphs, 1 empty vertex
General graphs with ≥ 2 blanks
MAPF Algorithms
Definition of subproblems (2)
Reachability Equivalence
Join vertices s1 , s2 ∈ S are equivalent if and only if
1. s1 = s2 , or
2. s1 and s2 are in the same nontrivial biconnected component, or
3. there is a unique path between s1 and s2 , and its length is
≤ m − 2.
The transitive closure of this relation is an equivalence relation.
49 / 138
Introduction
Definitions
Biconnected graphs, 1 empty vertex
General graphs with ≥ 2 blanks
MAPF Algorithms
Definition of subproblems (3)
Subproblem
A subproblem Si is a subgraph of G , generated by the set of vertices
Xi consisting of:
1. the equivalence class Si ,
2. any vertices v ∈ V such that v is in the same nontrivial
biconnected component as some s ∈ Si ,
3. any vertices on a unique path between two join vertices
s1 , s2 ∈ Si .
50 / 138
Introduction
Definitions
Biconnected graphs, 1 empty vertex
General graphs with ≥ 2 blanks
MAPF Algorithms
Definition of subproblems (4)
a9
a4
a3
a6
a2
S1
S2
a5
a7
a8
S3
a10
a1
a9
a4
a3
a6
p1,1
a2
p1,2
S1
S2
a5
a7
a8
S3
a10
a1
Plank
A unique path from some v to some s ∈ Si with a length of m − 1.
51 / 138
Introduction
Definitions
Biconnected graphs, 1 empty vertex
General graphs with ≥ 2 blanks
MAPF Algorithms
The relation between agents and subproblems
Proposition
ai is confined to Sk ∧ aj is confined to Sk ⇐⇒ ai and aj can swap.
a9
a4
a3
a6
a2
S1
a5
a7
a8
p3,1
p3,3
S2
p3,2
S3
a10
a1
52 / 138
Introduction
Definitions
Biconnected graphs, 1 empty vertex
General graphs with ≥ 2 blanks
MAPF Algorithms
Demonstrating 2-transitivity
Procedure:
1. Move any two agents a1 and a2
to the end of two free branches.
2. Determine the moves Π of any
two other agents a3 and a4 to the
same vertices.
3. Reversing Π will ensure that a1
and a2 end up in the original
locations of a3 and a4 .
a5
a1
a6
a9
a3
a7
a10
a2
a8
a4
53 / 138
Introduction
Definitions
Biconnected graphs, 1 empty vertex
General graphs with ≥ 2 blanks
MAPF Algorithms
Demonstrating 2-transitivity
Moving a1 and a2 to intermediate position
a5
a1
a6
a9
a3
a7
a10
a2
a8
a4
54 / 138
Introduction
Definitions
Biconnected graphs, 1 empty vertex
General graphs with ≥ 2 blanks
MAPF Algorithms
Demonstrating 2-transitivity
Moving a1 and a2 to intermediate position
a5
a1
a6
a9
a3
a7
a10
a2
a8
a4
54 / 138
Introduction
Definitions
Biconnected graphs, 1 empty vertex
General graphs with ≥ 2 blanks
MAPF Algorithms
Demonstrating 2-transitivity
Moving a1 and a2 to intermediate position
a5
a9
a3
a6
a1
a10
a2
a8
a4
a7
54 / 138
Introduction
Definitions
Biconnected graphs, 1 empty vertex
General graphs with ≥ 2 blanks
MAPF Algorithms
Demonstrating 2-transitivity
Moving a1 and a2 to intermediate position
a5
a6
a1
a9
a3
a7
a10
a2
a8
a4
54 / 138
Introduction
Definitions
Biconnected graphs, 1 empty vertex
General graphs with ≥ 2 blanks
MAPF Algorithms
Demonstrating 2-transitivity
Moving a1 and a2 to intermediate position
a5
a6
a1
a10
a9
a8
a7
a2
a4
a3
54 / 138
Introduction
Definitions
Biconnected graphs, 1 empty vertex
General graphs with ≥ 2 blanks
MAPF Algorithms
Demonstrating 2-transitivity
Moving a1 and a2 to intermediate position
a5
a6
a1
a10
a2
a9
a8
a7
a4
a3
54 / 138
Introduction
Definitions
Biconnected graphs, 1 empty vertex
General graphs with ≥ 2 blanks
MAPF Algorithms
Demonstrating 2-transitivity
Moving a1 and a2 to intermediate position
a5
a6
a10
a2
a1
a8
a7
a9
a4
a3
54 / 138
Introduction
Definitions
Biconnected graphs, 1 empty vertex
General graphs with ≥ 2 blanks
MAPF Algorithms
Demonstrating 2-transitivity
Moving a1 and a2 to intermediate position
a5
a6
a9
a2
a10
a8
a7
a1
a4
a3
54 / 138
Introduction
Definitions
Biconnected graphs, 1 empty vertex
General graphs with ≥ 2 blanks
MAPF Algorithms
Demonstrating 2-transitivity
Moving a1 and a2 to intermediate position
a5
a6
a9
a2
a3
a7
a1
a10
a8
a4
54 / 138
Introduction
Definitions
Biconnected graphs, 1 empty vertex
General graphs with ≥ 2 blanks
MAPF Algorithms
Demonstrating 2-transitivity
Determining the moves of a3 and a4
a5
a6
a9
a2
a3
a7
a1
a10
a8
a4
55 / 138
Introduction
Definitions
Biconnected graphs, 1 empty vertex
General graphs with ≥ 2 blanks
MAPF Algorithms
Demonstrating 2-transitivity
Determining the moves of a3 and a4
a5
a6
a9
a10
a3
a2
a1
a8
a4
a7
55 / 138
Introduction
Definitions
Biconnected graphs, 1 empty vertex
General graphs with ≥ 2 blanks
MAPF Algorithms
Demonstrating 2-transitivity
Determining the moves of a3 and a4
a5
a6
a9
a2
a1
a3
a10
a8
a4
a7
55 / 138
Introduction
Definitions
Biconnected graphs, 1 empty vertex
General graphs with ≥ 2 blanks
MAPF Algorithms
Demonstrating 2-transitivity
Determining the moves of a3 and a4
a5
a6
a9
a1
a2
a10
a8
a3
a4
a7
55 / 138
Introduction
Definitions
Biconnected graphs, 1 empty vertex
General graphs with ≥ 2 blanks
MAPF Algorithms
Demonstrating 2-transitivity
Determining the moves of a3 and a4
a5
a6
a9
a3
a1
a2
a10
a8
a4
a7
55 / 138
Introduction
Definitions
Biconnected graphs, 1 empty vertex
General graphs with ≥ 2 blanks
MAPF Algorithms
Demonstrating 2-transitivity
Determining the moves of a3 and a4
a5
a6
a9
a3
a2
a10
a4
a1
a8
a7
55 / 138
Introduction
Definitions
Biconnected graphs, 1 empty vertex
General graphs with ≥ 2 blanks
MAPF Algorithms
Demonstrating 2-transitivity
Determining the moves of a3 and a4
a5
a6
a9
a3
a10
a7
a8
a4
a2
a1
55 / 138
Introduction
Definitions
Biconnected graphs, 1 empty vertex
General graphs with ≥ 2 blanks
MAPF Algorithms
Demonstrating 2-transitivity
Reversing the moves for a3 and a4
a5
a6
a9
a1
a8
a7
a2
a10
a3
a4
56 / 138
Introduction
Definitions
General graphs with ≥ 2 blanks
Biconnected graphs, 1 empty vertex
MAPF Algorithms
Demonstrating 2-transitivity
Reversing the moves for a3 and a4
a5
a6
a9
a1
a8
a7
a2
a10
a3
a4
56 / 138
Introduction
Definitions
Biconnected graphs, 1 empty vertex
General graphs with ≥ 2 blanks
MAPF Algorithms
Demonstrating 2-transitivity
Reversing the moves for a3 and a4
a5
a6
a9
a1
a3
a10
a2
a4
a7
a8
56 / 138
Introduction
Definitions
Biconnected graphs, 1 empty vertex
General graphs with ≥ 2 blanks
MAPF Algorithms
Demonstrating 2-transitivity
Reversing the moves for a3 and a4
a5
a6
a9
a1
a4
a3
a10
a7
a2
a8
56 / 138
Introduction
Definitions
Biconnected graphs, 1 empty vertex
General graphs with ≥ 2 blanks
MAPF Algorithms
Demonstrating 2-transitivity
Reversing the moves for a3 and a4
a5
a6
a9
a4
a3
a10
a7
a1
a2
a8
56 / 138
Introduction
Definitions
Biconnected graphs, 1 empty vertex
General graphs with ≥ 2 blanks
MAPF Algorithms
Demonstrating 2-transitivity
Reversing the moves for a3 and a4
a5
a6
a9
a3
a4
a1
a10
a7
a2
a8
56 / 138
Introduction
Definitions
Biconnected graphs, 1 empty vertex
General graphs with ≥ 2 blanks
MAPF Algorithms
Demonstrating 2-transitivity
Reversing the moves for a3 and a4
a5
a6
a9
a10
a1
a3
a4
a7
a2
a8
56 / 138
Introduction
Definitions
Biconnected graphs, 1 empty vertex
General graphs with ≥ 2 blanks
MAPF Algorithms
Demonstrating 2-transitivity
Reversing the moves for a3 and a4
a5
a6
a9
a3
a10
a1
a8
a4
a7
a2
56 / 138
Introduction
Definitions
Biconnected graphs, 1 empty vertex
General graphs with ≥ 2 blanks
MAPF Algorithms
Finding Optimal Solutions to Cooperative Pathfinding
Problems [Standley, 2010]
• Standard state representation: an n-tuple of locations, one for
each agent.
• Standard solution: in one time step, consider the moves of all
agents.
57 / 138
Introduction
Definitions
Biconnected graphs, 1 empty vertex
General graphs with ≥ 2 blanks
MAPF Algorithms
Operator decomposition
• New state representation: n operators for one time step.
• The new state contains not only the position of every agent, but
also the chosen move.
• Operator: choose a move for the next unassigned agent.
• Branching factor of 9 instead of 9n , although depth increases by
n.
58 / 138
Introduction
Definitions
Biconnected graphs, 1 empty vertex
General graphs with ≥ 2 blanks
MAPF Algorithms
Pre- and post-move states
• Distinguishing between pre-move and post-move states allows
agent 1 to consider moving right.
• Expanding the state in which agent 1 moves right, agent 2 can
also move right, but it does not have the option of waiting.
• Independence Detection: a subset of agents is independent from
another subset, if there exist optimal paths for the first set of
agents that do not conflict with optimal paths of the second set.
59 / 138
Introduction
Definitions
Biconnected graphs, 1 empty vertex
General graphs with ≥ 2 blanks
MAPF Algorithms
Experimental results
• 32 × 32 grid, with 20% obstacle probability.
• Random number of agents between 2 and 60.
• Comparing standard algorithm (S), operator decomposition (OD), both
with independece detection (ID), and HCA* [Silver, 2005]
60 / 138
Introduction
Definitions
Biconnected graphs, 1 empty vertex
General graphs with ≥ 2 blanks
MAPF Algorithms
BIBOX: Path Planning for Multiple Robots in Biconnected
Graphs [Surynek, 2009]
• Two empty vertices.
• The graph is decomposed into handles.
• The outermost handles are solved first, after which they can be
discarded.
• BIBOX provides an O (n3 ) bound on the number of moves
required.
61 / 138
Introduction
Definitions
General graphs with ≥ 2 blanks
Biconnected graphs, 1 empty vertex
MAPF Algorithms
BIBOX: Solving a handle
Goal positions: all agents in
the vertex with the same
number.
v8
a4
a11
a7
v4
a5
v9
v2
a3
v5
a8
v10
v1
a10
v3
a6
v7
a9
v11
v6
62 / 138
Introduction
Definitions
General graphs with ≥ 2 blanks
Biconnected graphs, 1 empty vertex
MAPF Algorithms
BIBOX: Solving a handle
Rotate a11 out of the handle:
1. Clear vertex v3 .
v8
a4
a11
a7
v4
a5
v9
v2
a3
v5
a8
v10
v1
a10
v3
a6
v7
2. Rotate handle until a11 is
at v6 .
3. Move a11 out of the
handle.
a9
v11
v6
62 / 138
Introduction
Definitions
General graphs with ≥ 2 blanks
Biconnected graphs, 1 empty vertex
MAPF Algorithms
BIBOX: Solving a handle
Rotate a11 out of the handle:
1. Clear vertex v3 .
v3
v7
v8
a4
a11
a7
v4
a5
v9
a3
v5
a8
v10
2. Rotate handle until a11 is
at v6 .
3. Move a11 out of the
handle.
v2
a6
a9
v1
v11
a10
v6
62 / 138
Introduction
Definitions
General graphs with ≥ 2 blanks
Biconnected graphs, 1 empty vertex
MAPF Algorithms
BIBOX: Solving a handle
Rotate a11 out of the handle:
1. Clear vertex v3 .
v7
v8
a10
a3
v3
a9
a8
v4
v2
a6
a5
v5
a7
v9
2. Rotate handle until a11 is
at v6 .
3. Move a11 out of the
handle.
v10
a4
v1
v11
a11
v6
62 / 138
Introduction
Definitions
General graphs with ≥ 2 blanks
Biconnected graphs, 1 empty vertex
MAPF Algorithms
BIBOX: Solving a handle
Rotate a11 out of the handle:
1. Clear vertex v3 .
v7
v8
a10
a3
v3
a9
a8
v4
v2
a6
a5
v5
v1
a11
a7
v9
2. Rotate handle until a11 is
at v6 .
3. Move a11 out of the
handle.
v10
a4
v11
v6
62 / 138
Introduction
Definitions
General graphs with ≥ 2 blanks
Biconnected graphs, 1 empty vertex
MAPF Algorithms
BIBOX: Solving a handle
v8
v7
a4
Put a11 back into the handle:
1. Rotate the handle back.
v3
a7
v4
a5
v9
v5
a8
v10
2. Move a11 to v3 .
3. Rotate a11 into the
handle.
v2
a6
a3
v1
a11
a10
a9
v11
v6
62 / 138
Introduction
Definitions
General graphs with ≥ 2 blanks
Biconnected graphs, 1 empty vertex
MAPF Algorithms
BIBOX: Solving a handle
v8
v7
a4
Put a11 back into the handle:
1. Rotate the handle back.
v3
a11
a6
v4
a5
v9
a7
v5
a8
v10
2. Move a11 to v3 .
3. Rotate a11 into the
handle.
v2
a9
v1
a10
v11
a3
v6
62 / 138
Introduction
Definitions
General graphs with ≥ 2 blanks
Biconnected graphs, 1 empty vertex
MAPF Algorithms
BIBOX: Solving a handle
v7
v8
a11
a4
Put a11 back into the handle:
1. Rotate the handle back.
v3
a6
v4
a5
v9
v2
a7
v5
a8
v10
2. Move a11 to v3 .
3. Rotate a11 into the
handle.
a9
v1
a10
v11
a3
v6
62 / 138
Introduction
Definitions
General graphs with ≥ 2 blanks
Biconnected graphs, 1 empty vertex
MAPF Algorithms
BIBOX: Solving a handle
v7
v8
a11
a4
Put a10 into the handle:
1. Move a10 to v3 .
v3
a10
a6
v4
a5
v9
a7
v5
a8
v10
2. Clear vertex v6 .
3. Rotate a10 into the
handle.
v2
a9
v1
v11
a3
v6
62 / 138
Introduction
Definitions
General graphs with ≥ 2 blanks
Biconnected graphs, 1 empty vertex
MAPF Algorithms
BIBOX: Solving a handle
v7
v8
a10
a11
Put a10 into the handle:
1. Move a10 to v3 .
v3
a6
v4
a4
v9
v2
a7
v5
a5
v10
2. Clear vertex v6 .
3. Rotate a10 into the
handle.
a8
v1
a3
v11
a9
v6
62 / 138
Introduction
Definitions
General graphs with ≥ 2 blanks
Biconnected graphs, 1 empty vertex
MAPF Algorithms
BIBOX: Solving a handle
v7
v8
a10
a11
Put a9 into the handle:
1. Move a9 to v3 .
v3
a9
a3
v4
a4
v9
a6
v5
a5
v10
2. Clear vertex v6 .
3. Rotate a9 into the
handle.
v2
a8
v1
v11
a7
v6
62 / 138
Introduction
Definitions
General graphs with ≥ 2 blanks
Biconnected graphs, 1 empty vertex
MAPF Algorithms
BIBOX: Solving a handle
v7
v8
a9
a10
Put a9 into the handle:
1. Move a9 to v3 .
v3
a3
v4
a11
v9
v2
a6
v5
a4
v10
2. Clear vertex v6 .
3. Rotate a9 into the
handle.
a5
v1
a7
v11
a8
v6
62 / 138
Introduction
Definitions
General graphs with ≥ 2 blanks
Biconnected graphs, 1 empty vertex
MAPF Algorithms
BIBOX: Solving a handle
v7
v8
a8
a9
v3
a7
v4
a10
v9
v2
a3
v5
a11
v10
Bring a8 and a7 into the
handle in similar fashion
a4
v1
a6
v11
a5
v6
62 / 138
Introduction
Definitions
General graphs with ≥ 2 blanks
Biconnected graphs, 1 empty vertex
MAPF Algorithms
BIBOX: Solving a handle
v7
v8
a7
a8
v3
v4
a9
v9
v5
a10
v10
Bring a8 and a7 into the
handle in similar fashion.
v2
a6
a3
v1
a5
a4
a11
v11
v6
62 / 138
Introduction
Definitions
General graphs with ≥ 2 blanks
Biconnected graphs, 1 empty vertex
MAPF Algorithms
BIBOX: Solving the original cycle
A swap-based strategy is used
to bring the agents in the
original cycle to their
destinations.
v8
a7
a8
a4
v4
a9
v9
v2
a5
v5
a10
v10
v1
a6
v3
a3
v7
a11
v11
v6
63 / 138
Introduction
Definitions
Biconnected graphs, 1 empty vertex
General graphs with ≥ 2 blanks
MAPF Algorithms
Push and Rotate: Cooperative Multi-Agent Path Planning
[de Wilde et al., 2013]
• Complete for general graphs with ≥ 2 empty vertices.
• Divides an instance into subproblems, similar
to [Kornhauser, 1984].
• Algorithm is based on the operators push, swap, rotate.
• Agents are sent to their destinations one after the other, along a
shortest path.
• Agent priorities are partially determined by the relation between
subproblems.
64 / 138
Introduction
Definitions
Biconnected graphs, 1 empty vertex
General graphs with ≥ 2 blanks
MAPF Algorithms
The push operation
• To advance an agent ai to the next vertex v along its shortest
path, first a push is tried.
• If another agent aj occupies v , we look for a path p from v to an
empty vertex that contains no higher-priority agents.
• If p exists, all agents on p are pushed back one step, and ai
moves into v .
65 / 138
Introduction
Definitions
Biconnected graphs, 1 empty vertex
General graphs with ≥ 2 blanks
MAPF Algorithms
Illustration of the push operation
a3
a6
a4
a5
a1
a7
a2
Find a path to an unoccupied vertex, not containing higher-priority
agents.
66 / 138
Introduction
Definitions
Biconnected graphs, 1 empty vertex
General graphs with ≥ 2 blanks
MAPF Algorithms
Illustration of the push operation
a3
a6
a4
a1
a5
a2
a7
Clear the next vertex on the path.
66 / 138
Introduction
Definitions
Biconnected graphs, 1 empty vertex
General graphs with ≥ 2 blanks
MAPF Algorithms
Illustration of the push operation
a6
a3
a4
a1
a5
a2
a7
Move into the cleared vertex.
66 / 138
Introduction
Definitions
Biconnected graphs, 1 empty vertex
General graphs with ≥ 2 blanks
MAPF Algorithms
The swap operation
• When push fails, agent ai tries to swap with aj that occupies the
next vertex of its shortest path.
• Agents ai and aj are brought to a vertex v with degree ≥ 3, and
two of v ’s neighbours are cleared. Then ai and aj can exchange
positions.
• After the exchange, ai and aj are returned to their positions (roles
reversed), and all other moves are reversed.
• After the swap, if agent aj was already finished, then it is returned
to its goal location.
67 / 138
Introduction
Definitions
General graphs with ≥ 2 blanks
Biconnected graphs, 1 empty vertex
MAPF Algorithms
Illustration of the swap operation: exchanging two agents
a1
v
a1
v
v
a2
a2
a1
a2
68 / 138
Introduction
Definitions
Biconnected graphs, 1 empty vertex
General graphs with ≥ 2 blanks
MAPF Algorithms
Illustration of the swap operation
a6
a3
a4
a1
a5
a2
a7
Agent a3 will initiate a swap with a4 .
69 / 138
Introduction
Definitions
Biconnected graphs, 1 empty vertex
General graphs with ≥ 2 blanks
MAPF Algorithms
Illustration of the swap operation
a3
a5
a1
a6
a4
a2
a7
Clear the other neighbour of the ‘swap node’.
69 / 138
Introduction
Definitions
Biconnected graphs, 1 empty vertex
General graphs with ≥ 2 blanks
MAPF Algorithms
Illustration of the swap operation
a4
a1
a3
a5
a6
a2
a7
Move a3 into one empty neighbour.
69 / 138
Introduction
Definitions
Biconnected graphs, 1 empty vertex
General graphs with ≥ 2 blanks
MAPF Algorithms
Illustration of the swap operation
a4
a1
a3
a5
a6
a2
a7
Move a4 into the other.
69 / 138
Introduction
Definitions
Biconnected graphs, 1 empty vertex
General graphs with ≥ 2 blanks
MAPF Algorithms
Illustration of the swap operation
a4
a3
a1
a5
a6
a2
a7
Agent a3 moves into its goal location.
69 / 138
Introduction
Definitions
Biconnected graphs, 1 empty vertex
General graphs with ≥ 2 blanks
MAPF Algorithms
Illustration of the swap operation
a4
a5
a1
a6
a3
a2
a7
Agent a4 moves into the original location of a3 , completing the swap.
69 / 138
Introduction
Definitions
Biconnected graphs, 1 empty vertex
General graphs with ≥ 2 blanks
MAPF Algorithms
Illustration of the swap operation
a6
a4
a3
a1
a5
a2
a7
The move of agent a1 is reversed.
69 / 138
Introduction
Definitions
Biconnected graphs, 1 empty vertex
General graphs with ≥ 2 blanks
MAPF Algorithms
Putting higher-priority agents back after swap
In pink: the planning agent; in
yellow higher-priority agents that
have to be moved back to their
destinations.
a1
a9
a10
a2
a3
a4
a5
a8
a6
a11
a12
a7
70 / 138
Introduction
Definitions
Biconnected graphs, 1 empty vertex
General graphs with ≥ 2 blanks
MAPF Algorithms
Putting higher-priority agents back after swap
Higher-priority agent a6 has been
moved off its destination, which is
now occupied by (lower-priority)
a11 . To free the destination of a6 ,
a11 will be sent to its goal next.
a1
a9
a10
a2
a3
a4
a5
a6
a11
a8
a12
a7
70 / 138
Introduction
Definitions
Biconnected graphs, 1 empty vertex
General graphs with ≥ 2 blanks
MAPF Algorithms
Putting higher-priority agents back after swap
In moving a11 to its destination,
higher-priority a3 has been moved
off its destination, now occupied by
a9 , so a9 is sent to its goal next.
a1
a11
a10
a2
a9
a4
a5
a6
a3
a8
a12
a7
70 / 138
Introduction
Definitions
Biconnected graphs, 1 empty vertex
General graphs with ≥ 2 blanks
MAPF Algorithms
Putting higher-priority agents back after swap
• The path of a10 to its destination
intersects the trail of resolving
agents a6 , a3 , and a2 . Together
with a10 , these agents form a
cycle of agents wanting to move
forward one step. This is
accomplished by the rotate
operation.
a1
a11
a9
a10
a2
a4
a5
a6
a3
a8
a12
a7
• Note that Push and Swap
[Luna and Bekris, 2011] would
swap a10 with a6 , resulting in a6
being two positions removed
from its destination, after which
the behaviour of Push and Swap
will fail.
70 / 138
Introduction
Definitions
Biconnected graphs, 1 empty vertex
General graphs with ≥ 2 blanks
MAPF Algorithms
Putting higher-priority agents back after swap
Only a10 needs to swap with a12 .
a1
a11
a9
a2
a3
a4
a5
a10
a6
a8
a12
a7
70 / 138
Introduction
Definitions
Biconnected graphs, 1 empty vertex
General graphs with ≥ 2 blanks
MAPF Algorithms
Putting higher-priority agents back after swap
All agents have reached their
destination.
a1
a11
a9
a2
a3
a4
a5
a12
a6
a8
a10
a7
70 / 138
Introduction
Definitions
Biconnected graphs, 1 empty vertex
General graphs with ≥ 2 blanks
MAPF Algorithms
The rotate operation
• The rotate operation is used to move forward a cycle of
resolving agents.
• First one vertex of the cycle must be emptied before agents can
be rotated.
71 / 138
Introduction
Definitions
Biconnected graphs, 1 empty vertex
General graphs with ≥ 2 blanks
MAPF Algorithms
Illustration of the rotate operation.
a3
a4
a2
v
a5
a1
a6
ax
ay
···
a8
a7
All agents want to move forward one step in the clockwise direction;
first vertex v has to be cleared.
72 / 138
Introduction
Definitions
Biconnected graphs, 1 empty vertex
General graphs with ≥ 2 blanks
MAPF Algorithms
Illustration of the rotate operation.
a3
a4
a2
v
a5
a1
a6
ax
···
a8
a7
Agent a1 moves out of the cycle, a2 moves into v .
72 / 138
Introduction
Definitions
Biconnected graphs, 1 empty vertex
General graphs with ≥ 2 blanks
MAPF Algorithms
Illustration of the rotate operation.
a3
a4
v
a5
a2
a6
a1
ax
···
a8
a7
Agents a1 and a2 must swap in order to preserve their position in the
cycle.
72 / 138
Introduction
Definitions
Biconnected graphs, 1 empty vertex
General graphs with ≥ 2 blanks
MAPF Algorithms
Illustration of the rotate operation.
a3
a4
v
a5
a1
a6
a2
ax
···
a8
a7
The agents move forward in the cycle, beginning with agent a3 .
72 / 138
Introduction
Definitions
Biconnected graphs, 1 empty vertex
General graphs with ≥ 2 blanks
MAPF Algorithms
Illustration of the rotate operation.
a4
a5
a3
v
a6
a2
a7
ax
···
a1
a8
Agent a2 steps back into the cycle, and the moves of the other agents
are reversed.
72 / 138
Introduction
Definitions
Biconnected graphs, 1 empty vertex
General graphs with ≥ 2 blanks
MAPF Algorithms
Illustration of the rotate operation.
a4
a5
a3
v
a6
a2
a7
ax
ay
···
a1
a8
The final state of the rotate operation.
72 / 138
Introduction
Definitions
Biconnected graphs, 1 empty vertex
General graphs with ≥ 2 blanks
MAPF Algorithms
Push and Rotate heuristics and post-processing algorithms
• An agent ordering heuristic tries to minimize the number of swap
operations required.
• The algorithm smooth eliminates redundant moves.
• The algorithm condense tries to compress the serial output of
Push and Rotate.
73 / 138
Introduction
Definitions
General graphs with ≥ 2 blanks
Biconnected graphs, 1 empty vertex
MAPF Algorithms
Example: elimating redundant moves
Returning a3 after swap is unnecessary
a3
a1
a3
a2
a2
⇒
a3
⇒
a1
a1
⇒
a3
a3
a2
a2
a1
⇒
a2
a1
74 / 138
Introduction
Definitions
Biconnected graphs, 1 empty vertex
General graphs with ≥ 2 blanks
MAPF Algorithms
Comparing Push and Rotate to Bibox
• Comparison on biconnected graphs: grids and Bibox-generated
graphs, with parameters:
•
•
•
•
Size of the initial cycle
Number of handles
Maximum length of a handle
Number of empty vertices
• Comparing number of moves, makespan, and CPU time.
75 / 138
Introduction
Definitions
General graphs with ≥ 2 blanks
Biconnected graphs, 1 empty vertex
MAPF Algorithms
1e+07
Random (20, 20, 20, 2) to (50, 50, 50, 2) biconnected
instances: number of moves
●
●
Push & Rotate
Bibox
●
6e+06
4e+06
2e+06
0e+00
number of moves
8e+06
●
●
●
●
●
●
●
●
●
●
● ●●
●
●
● ●
● ● ●
●● ●
● ●
● ●
●●●
●●●●
●
●●
●●
●
●●
●
●●●
●
●●
●
●●
●
●●
●● ●
●
●
●
●
● ●
●
●● ●
● ●
●●
●●
●● ●
●
●● ● ●
●
●
●
●
●
●
●
● ●
●
●● ●●
● ● ●
●
●
●
● ●●
● ●
●
● ●●●●
● ●
●
●
●●
●
●●
● ●●
●●
●
●●●
●
●
●
●●
●
●
●
●●
●●
● ●●
●●
●
●
●
●
●
●
●
●
● ● ●
●●
● ●●
●
●
●
●
●●
●
●●
●●●
●●
●
● ●●●
● ●
●
●
●
●●
●●
●
●●
●●
●●●
●
●
●
●●
●
●
●●●●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●●●
●
200
400
600
800
1000
1200
1400
number of vertices
76 / 138
Introduction
Definitions
General graphs with ≥ 2 blanks
Biconnected graphs, 1 empty vertex
MAPF Algorithms
Random (20, 20, 20, 2) to (50, 50, 50, 2) biconnected
instances: makespan
4e+06
3e+06
2e+06
1e+06
0e+00
makespan
5e+06
6e+06
●
Push & Rotate
Bibox
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
● ●
●
●
● ●
●
●
●
●●●● ●
●● ●●●
●
●
● ●●
●●
●●●
●● ●
●
●
●●
●
● ●
●● ●
● ●
●
●
●
●
●
●
●●●
● ●●
●
●
●
●
●
●●
● ● ●
●●●
●●
● ●
●● ●●
●
● ●
●
● ●
●
●●
● ●●
●
●
●
● ●●●●
●
●
●●
●● ●
●
●●
●●
●●●●●
●
●●● ●
●
●
●●
●●
● ●●
●●●●
●●
●
●●
●●
●
●
●●
● ●●
●
●
●
●
●
●●
●●
●
●
●●
●
●●●
● ●●●
●
●
●
●
●●
●
●●
●●
●●●
●
●
●
●
●
●
●●●●
●
●
●
●●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●●●
●
200
400
600
800
1000
1200
1400
number of vertices
77 / 138
Introduction
Definitions
General graphs with ≥ 2 blanks
Biconnected graphs, 1 empty vertex
MAPF Algorithms
Random (20, 20, 20, 2) to (50, 50, 50, 2) biconnected
instances: CPU times
●
Push & Rotate
Bibox
6000
2000
4000
●
0
CPU time (s)
8000
10000
●
●
●
●●
●
●
●●
●●
●
●
●● ● ●
●
●
●
●
●
●
● ● ●●
● ● ● ● ●●
●
●●● ● ●
●
● ●
●
● ●● ●●●● ●
●●
●
● ● ●●
●
●
●
●●●
● ●●
●
● ●
●●●
●●
●●
●
●
●
●●●●
●
●
●● ●●
● ●
● ●●
● ● ●
●
●●
●
●
●
●●
●●
●
●
● ●●
●
●
●●●●
●
●●
●
●
●
●● ●●
●
●
●
●
●●
●
●
●●
●
●
●●●
●●
●
●
●
●●
●
●
●
●●●
●●●
●●
●
●
●●
●
●
●
●
●
●
●
●
●
●●
●
●●
●
●
●
●
●
●●
●
●●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●●
●
●
●
●
●
●●●
●
●
●●●
●
200
400
600
800
1000
1200
1400
number of vertices
78 / 138
Definitions
General graphs with ≥ 2 blanks
Biconnected graphs, 1 empty vertex
MAPF Algorithms
4 × 4 to 50 × 50 Grids: number of moves
4e+05
6e+05
P&R
P & R no−order
Bibox
●
●
●
●
2e+05
average number of moves
8e+05
●
●
●
●
●
●
●
0e+00
Introduction
●●●● ● ●
0
● ●
● ●
●
500
●
●
●
1000
1500
2000
2500
number of vertices
79 / 138
Definitions
General graphs with ≥ 2 blanks
Biconnected graphs, 1 empty vertex
MAPF Algorithms
4 × 4 to 50 × 50 Grids: makespan
4e+05
P&R
P & R no−order
Bibox
●
●
●
2e+05
average makespan
6e+05
●
●
●
●
●
●
●
0e+00
Introduction
●●●● ● ●
0
● ●
● ●
●
500
●
●
●
●
1000
1500
2000
2500
number of vertices
80 / 138
Definitions
General graphs with ≥ 2 blanks
Biconnected graphs, 1 empty vertex
MAPF Algorithms
●
P&R
P & R no−order
Bibox
400
200
average CPU time (s)
600
800
4 × 4 to 50 × 50 Grids: CPU times
0
Introduction
●●●● ● ● ● ● ● ●
0
●
500
●
●
●
●
1000
●
●
●
●
1500
●
●
2000
●
●
●
2500
number of vertices
81 / 138
Introduction
Definitions
General graphs with ≥ 2 blanks
Biconnected graphs, 1 empty vertex
MAPF Algorithms
Random (5, 40, 10, 2) biconnected graphs: empty vertices
●
Push & Rotate
Bibox
30000
25000
20000
●
●
●
●
15000
●
●
●
●
●
●
●
10000
average number of moves
35000
●
10
20
●
●
●
●
●
●
30
●
●
40
●
●
●
●
●
50
number of empty vertices
82 / 138
Definitions
General graphs with ≥ 2 blanks
Biconnected graphs, 1 empty vertex
MAPF Algorithms
40 × 40 Grids: empty vertices
200000
Push & Rotate
Bibox
●
●
●
180000
average number of moves
220000
●
●
●
●
●
●
●
●
●
160000
Introduction
10
●
●
●
20
●
30
●
●
●
●
●
40
number of empty vertices
83 / 138
Introduction
Definitions
Biconnected graphs, 1 empty vertex
General graphs with ≥ 2 blanks
MAPF Algorithms
Experiment conclusions
• Bibox’s handle-rotation approach effective for cycles in graphs.
• Push and Rotate works better when agents have more freedom
of movement.
• Both algorithms are too immature to conclude which approach is
better.
84 / 138
Introduction
Optimal routing
Model
Reservations and Free Time Windows
Unexpected Incidents
Experiments
Context-Aware Route Planning
Introduction
Optimal routing
Model
Reservations and Free Time Windows
Unexpected Incidents
Experiments
85 / 138
Introduction
Optimal routing
Model
Reservations and Free Time Windows
Unexpected Incidents
Experiments
From MAPF to CARP
Multi-Agent Pathfinding to Context-Aware Route Planning
• CARP: agents place reservations on nodes/resources/locations.
• Agent planning does not involve moving other agents.
• Agents plan around the reservations of higher-priority agents.
• CARP is generally incomplete, as the reservations of agents
1, . . . , n can make it impossible for agent n + 1 to make a plan.
a1
a2
86 / 138
Introduction
Optimal routing
Model
Reservations and Free Time Windows
Unexpected Incidents
Experiments
On the boundary between CARP and MAPF: Cooperative
Pathfinding [Silver, 2005]
• Agents move in a 2-dimensional grid with obstacles.
• The reservation table is implemented as a 3-dimensional grid
(two spatial dimensions and a time dimension).
• Windowed Hierarchical Cooperative A*: reservations are only
made for the first part of the search; beyond the horizon of the
window size, the presence of other agents is ignored.
S2
S1
G2
G1
87 / 138
Introduction
Optimal routing
Model
Reservations and Free Time Windows
Unexpected Incidents
Experiments
Reservations on intersections: Conflict-free shortest-time
bidirectional AGV routeing [Kim and Tanchoco, 1991]
• Agents make reservations for intersections.
• Multiple agents are allowed on a single lane.
• Additional checks are performed to verify that agents do not
conflict on the lanes.
88 / 138
Introduction
Optimal routing
Model
Reservations and Free Time Windows
Unexpected Incidents
Experiments
Checking for conflicts on lanes in [Kim and Tanchoco, 1991]
• Two types of conflict: head-on conflicts and catching-up conflicts.
• Checking for conflicts is inefficient, and resulted in a worst-case
performance of O (n2 v 4 ), where n is the number of intersections,
and v is the number of agents (vehicles).
distance
j
i
A
B
B
A
t
89 / 138
Introduction
Optimal routing
Model
Reservations and Free Time Windows
Unexpected Incidents
Experiments
Local lane trajectories: Roadmap-based motion planning in
dynamic environments [van den Berg and Overmars, 2005]
• A roadmap is assumed that avoid the static obstacles.
• The movements of dynamic obstacles is known, and accessed by
sensing function f (c , t ), where t is a time point, and c ∈ C a state
in the configuration space.
• Free intervals are defined as collision-free intervals on nodes of
the roadmap.
• A depth-first search is used to find a trajectory to the earliest free
interval on the next node.
90 / 138
Optimal routing
Model
Reservations and Free Time Windows
Unexpected Incidents
Experiments
Context-aware logistic routing and scheduling
[ter Mors et al., 2007]
Zwanenburgbaan
Polderbaan
Oo
stb
aa
n
Buitenveldertbaan
Aalsmeerbaan
Introduction
aan
gb
Kaa
91 / 138
Introduction
Optimal routing
Model
Reservations and Free Time Windows
Unexpected Incidents
Experiments
Dispatching and Conflict-Free Routing of Automated Guided
Vehicles: An Exact Approach [Desaulniers et al., 2004]
92 / 138
Introduction
Optimal routing
Model
Reservations and Free Time Windows
Unexpected Incidents
Experiments
Model of the Flexible Manufacturing System
Dispatching and conflict-free routing problem (DCFRP)
Given a number of AGVs and a set of material handling requests, the
problem is to find the assignment of the requests to the vehicles and
the conflict-free routes of the vehicles to minimize the sum of the
penalties related to the production delays.
• Construct a plan for a 30-minute time horizon; time step of 15
seconds.
• The problem is solved using a Mixed Integer Programming
formulation.
93 / 138
Introduction
Optimal routing
Model
Reservations and Free Time Windows
Unexpected Incidents
Experiments
MIP model for the DCFRP
• Variables for each possible route for each vehicle.
• Variables to encode whether a vehicle using route r is on node n
at time t.
• Variables to encode whethe a vehicle using route r enters road
segment w in direction w + at time t.
• Since there are too many possible routes for vehicles in general,
a column generation technique is used to generate routes, rather
than enumerating all routes beforehand.
94 / 138
Introduction
Optimal routing
Model
Reservations and Free Time Windows
Unexpected Incidents
Experiments
Experimental results
• The factory floor from a few slides back is used.
• Instances contained between 7 and 10 production requests, and
2 to 4 AGVs.
• 32 out of 36 instances were solved optimally within 3 minutes, but
one instance could not be proved optimal after 5 hours.
95 / 138
Introduction
Optimal routing
Model
Reservations and Free Time Windows
Unexpected Incidents
Experiments
Infrastructure and resources
Infrastructure graph
G = (V , E ), where V is a set of
Resource Graph
GR = (R , ER ), where R is a set of
intersections, and E is a set of
lanes.
resources, and ER is a successor
relation.
96 / 138
Introduction
Optimal routing
Model
Reservations and Free Time Windows
Unexpected Incidents
Experiments
Resource attributes
• Each resource ri has a minimum travel time tt(ri ).
• Each resource ri has a capacity cap(ri ): the maximum number of
agents it can hold.
• Intersection resources have capacity one.
97 / 138
Introduction
Optimal routing
Model
Reservations and Free Time Windows
Unexpected Incidents
Experiments
Agent Plans
Definition (Agent Plan)
Given a start location s, and a destination location d, an agent plan is
a sequence π = (hr1 , τ1 i, . . . , hrn , τn i) such that r1 = s, rn = d, and
∀j ∈ {1, . . . , n − 1}:
hr1 , [0, 2)i
hr2 , [2, 6)i
hr3 , [6, 8)i
98 / 138
Introduction
Optimal routing
Model
Reservations and Free Time Windows
Unexpected Incidents
Experiments
Agent Plans
Definition (Agent Plan)
Given a start location s, and a destination location d, an agent plan is
a sequence π = (hr1 , τ1 i, . . . , hrn , τn i) such that r1 = s, rn = d, and
∀j ∈ {1, . . . , n − 1}:
1. interval τj meets interval τj +1 ,
hr1 , [0, 2)i
hr2 , [2, 6)i
hr3 , [6, 8)i
98 / 138
Introduction
Optimal routing
Model
Reservations and Free Time Windows
Unexpected Incidents
Experiments
Agent Plans
Definition (Agent Plan)
Given a start location s, and a destination location d, an agent plan is
a sequence π = (hr1 , τ1 i, . . . , hrn , τn i) such that r1 = s, rn = d, and
∀j ∈ {1, . . . , n − 1}:
1. interval τj meets interval τj +1 ,
2. |τj | ≥ tt(rj ),
hr1 , [0, 2)i
hr2 , [2, 6)i
hr3 , [6, 8)i
98 / 138
Introduction
Optimal routing
Model
Reservations and Free Time Windows
Unexpected Incidents
Experiments
Agent Plans
Definition (Agent Plan)
Given a start location s, and a destination location d, an agent plan is
a sequence π = (hr1 , τ1 i, . . . , hrn , τn i) such that r1 = s, rn = d, and
∀j ∈ {1, . . . , n − 1}:
1. interval τj meets interval τj +1 ,
2. |τj | ≥ tt(rj ),
3. (rj , rj +1 ) ∈ ER .
hr1 , [0, 2)i
hr2 , [2, 6)i
hr3 , [6, 8)i
98 / 138
Introduction
Optimal routing
Model
Reservations and Free Time Windows
Unexpected Incidents
Experiments
Resource capacity constraint
Given a set Π of agent plans, the resource load of any resource ri
must never exceed its capacity:
∀t : λ(ri , t ) = |{hri , τi ∈ π | π ∈ Π ∧ t ∈ τ}|
cap(ri )
λ(ri , t)
t→
99 / 138
Introduction
Optimal routing
Model
Reservations and Free Time Windows
Unexpected Incidents
Experiments
Additional constraint: simultaneous resource exchanges
Recall first condition that an agent plan must satisfy:
1. interval τj meets interval τj +1
Prevent agents from swapping resources:
(hri , [ , tw )i, hrj , [tw , )i) v π1 ∧
(hrj , [ , ty )i, hri , [ty , )i) v π2 →
tw 6= ty
Taxiway 1
Taxiway 2
(h) situation at time t
Taxiway 1
Taxiway 2
(i) situation at time t + ε
100 / 138
Introduction
Optimal routing
Model
Reservations and Free Time Windows
Unexpected Incidents
Experiments
Difference between path planning and route planning
Shortest path planning: if B is on the shortest path from A to C, then
the shortest path from A to B can be expanded to the shortest path
from A to C.
A
[8, 10)
B
D
[7, 11)
C
101 / 138
Introduction
Optimal routing
Model
Reservations and Free Time Windows
Unexpected Incidents
Experiments
Example: shortest route from A to B can only be expanded
to C via D.
Intersections have travel time 2, lanes have travel time 4, all resources
have capacity 1.
A
[8, 10)
B
D
[7, 11)
C
π1 = hA, [0, 2)i; hB , [6, 8)i; hD , [12, 14)i; hC , [18, 20)i
π∗ = hA, [0, 6)i; hB , [10, 12)i; hC , [16, 18)i
102 / 138
Introduction
Optimal routing
Model
Reservations and Free Time Windows
Unexpected Incidents
Experiments
Multiple resource visits
Problem: how to construct a route planning algorithm that allows
multiple expansions of the same resource?
tt(ri ) = 2
a
b
c
d
e
cap(ri )
λ(ri , t)
0
1
2
3
4
5
6
7
8
9
t→
Q: which entry times should be considered?
103 / 138
Introduction
Optimal routing
Model
Reservations and Free Time Windows
Unexpected Incidents
Experiments
Free time windows
Free time window
A time interval in which the resource load is less than the capacity.
The interval should be at least as long as the minimum travel time.
cap(ri )
λ(ri , t)
0
1
2
3
4
5
6
7
8
9
t→
104 / 138
Introduction
Optimal routing
Model
Reservations and Free Time Windows
Unexpected Incidents
Experiments
Free time window graph
Which arcs between free time windows?
1. resources must be connected
2. free time windows must overlap
3. there must be sufficient time to traverse the second resource
A
tt(A)
B
fA
fB
tt(B)
105 / 138
Introduction
Optimal routing
Model
Reservations and Free Time Windows
Unexpected Incidents
Experiments
Free time window graph: example
[0, 8)
A
[8, 10)
B
D
[10, ∞)
[0, 7) [11, ∞)
[7, 11)
C
106 / 138
Introduction
Optimal routing
Model
Reservations and Free Time Windows
Unexpected Incidents
Experiments
Free time window graph route planning
• Find the shortest path in the free time window graph.
• Start of the search: the free time window on the start resource
containing the start time.
• If free time window f (on some resource ri ) is on the shortest path
from A to B, then the shortest route from A to f can be expanded
to the shortest route from A to B.
107 / 138
Introduction
Optimal routing
Model
Reservations and Free Time Windows
Unexpected Incidents
Experiments
Free time window graph routing: example
Q: set of h resource, start time i
tuples
B
1. {hA, 0i}
[0, 8)
A
r1
r3
D
[10, ∞)
r2
[0, 7) [11, ∞)
r4
C
108 / 138
Introduction
Optimal routing
Model
Reservations and Free Time Windows
Unexpected Incidents
Experiments
Free time window graph routing: example
Q: set of h resource, start time i
tuples
B
1. {hA, 0i}
[0, 8)
A
r1
r3
D
2. {hr1 , 2i}
[10, ∞)
r2
[0, 7) [11, ∞)
r4
C
108 / 138
Introduction
Optimal routing
Model
Reservations and Free Time Windows
Unexpected Incidents
Experiments
Free time window graph routing: example
Q: set of h resource, start time i
tuples
B
1. {hA, 0i}
[0, 8)
A
r1
r3
D
[10, ∞)
r2
[0, 7) [11, ∞)
2. {hr1 , 2i}
3. {hB , 6i, hB , 10i}
r4
C
108 / 138
Introduction
Optimal routing
Model
Reservations and Free Time Windows
Unexpected Incidents
Experiments
Free time window graph routing: example
Q: set of h resource, start time i
tuples
B
1. {hA, 0i}
[0, 8)
A
r1
r3
D
[10, ∞)
r2
[0, 7) [11, ∞)
2. {hr1 , 2i}
3. {hB , 6i, hB , 10i}
4. {hr3 , 8i, hB , 10i}
r4
C
108 / 138
Introduction
Optimal routing
Model
Reservations and Free Time Windows
Unexpected Incidents
Experiments
Free time window graph routing: example
Q: set of h resource, start time i
tuples
B
1. {hA, 0i}
[0, 8)
A
r1
r3
D
[10, ∞)
r2
[0, 7) [11, ∞)
2. {hr1 , 2i}
3. {hB , 6i, hB , 10i}
4. {hr3 , 8i, hB , 10i}
r4
5. {hB , 10i, hD , 12i}
C
108 / 138
Introduction
Optimal routing
Model
Reservations and Free Time Windows
Unexpected Incidents
Experiments
Free time window graph routing: example
Q: set of h resource, start time i
tuples
B
1. {hA, 0i}
[0, 8)
A
r1
r3
D
[10, ∞)
r2
[0, 7) [11, ∞)
2. {hr1 , 2i}
3. {hB , 6i, hB , 10i}
4. {hr3 , 8i, hB , 10i}
r4
5. {hB , 10i, hD , 12i}
6. {hr2 , 12i, hD , 12i}
C
108 / 138
Introduction
Optimal routing
Model
Reservations and Free Time Windows
Unexpected Incidents
Experiments
Free time window graph routing: example
Q: set of h resource, start time i
tuples
B
1. {hA, 0i}
[0, 8)
A
r1
r3
D
[10, ∞)
r2
[0, 7) [11, ∞)
2. {hr1 , 2i}
3. {hB , 6i, hB , 10i}
4. {hr3 , 8i, hB , 10i}
r4
5. {hB , 10i, hD , 12i}
6. {hr2 , 12i, hD , 12i}
7. {hD , 12i, hC , 16i}
C
108 / 138
Introduction
Optimal routing
Model
Reservations and Free Time Windows
Unexpected Incidents
Experiments
Free time window graph routing: example
Q: set of h resource, start time i
tuples
B
1. {hA, 0i}
[0, 8)
A
r1
r3
D
[10, ∞)
r2
[0, 7) [11, ∞)
2. {hr1 , 2i}
3. {hB , 6i, hB , 10i}
4. {hr3 , 8i, hB , 10i}
r4
5. {hB , 10i, hD , 12i}
6. {hr2 , 12i, hD , 12i}
7. {hD , 12i, hC , 16i}
C
8. {hr4 , 14i, hC , 16i}
108 / 138
Introduction
Optimal routing
Model
Reservations and Free Time Windows
Unexpected Incidents
Experiments
Free time window graph routing: example
Q: set of h resource, start time i
tuples
B
1. {hA, 0i}
[0, 8)
A
r1
r3
D
[10, ∞)
r2
[0, 7) [11, ∞)
2. {hr1 , 2i}
3. {hB , 6i, hB , 10i}
4. {hr3 , 8i, hB , 10i}
r4
5. {hB , 10i, hD , 12i}
6. {hr2 , 12i, hD , 12i}
7. {hD , 12i, hC , 16i}
C
8. {hr4 , 14i, hC , 16i}
9. {hC , 16i, hC , 18i}
108 / 138
Introduction
Optimal routing
Model
Reservations and Free Time Windows
Unexpected Incidents
Experiments
Routing algorithm summary
• A set of free time windows for every resource
• Construct free time window graph GF = (F , EF )
• Perform A*-like search through GF
• Resources can be expanded multiple times, free time windows
once
• Algorithm complexity: O (F log(F ) + EF )
109 / 138
Introduction
Optimal routing
Model
Reservations and Free Time Windows
Unexpected Incidents
Experiments
Example of a deadlock
Alice
Bob
h2
h3
t3
h1
πAlice
h2
πBob
t3
t6
t2
t2
h3
0
t1
t4
t4
t5
t6
2
4
6
t5
t7
t7
h4
t5
8
10
12
h4
t4
14
t2
16
18
t1
h1
20
22
time →
110 / 138
Introduction
Optimal routing
Model
Reservations and Free Time Windows
Unexpected Incidents
Experiments
Example of a deadlock
Alice
Bob
h2
h3
t3
h1
πAlice
h2
t3
χAlice
t1
t2
4
6
t7
t2
t6
2
t5
t5
t3
h3
0
t4
t4
h2
πBob
t6
t2
t7
h4
t4
t5
8
h4
10
12
t4
14
t2
16
18
t1
h1
20
22
time →
110 / 138
Introduction
Optimal routing
Model
Reservations and Free Time Windows
Unexpected Incidents
Experiments
Agent priorities
Alice
2: Bob
1: Alice
t2
Bob
2: Bob
1: Alice
t4
2: Bob
1: Alice
t5
111 / 138
Introduction
Optimal routing
Model
Reservations and Free Time Windows
Unexpected Incidents
Experiments
Agent priorities
Alice
2: Bob
1: Alice
t2
Bob
2: Alice
1: Bob
t4
2: Alice
1: Bob
t5
111 / 138
Introduction
Optimal routing
Model
Reservations and Free Time Windows
Unexpected Incidents
Experiments
Deadlock prevention
Maza’s “robust AGV routing” [Maza and Castagna, 2001]
• Set of agent plans → agent priorities
• Maintain agent priority during planning
• Agents wait for their delayed counterparts
χAlice
h2
t3
h3
χBob
0
t2
t4
t5
t6
2
4
6
t7
h4
t5
8
10
12
14
16
t4
18
20
t2
22
t1
24
h1
26
time →
112 / 138
Introduction
Optimal routing
Model
Reservations and Free Time Windows
Unexpected Incidents
Experiments
Example: Bob goes first
Alice
Bob
h2
h3
t3
h1
χAlice
t1
h2
χBob
0
t2
t3
h3
t6
t4
t2
t5
t4
t5
t6
2
4
6
t7
10
12
14
16
h4
h4
t5
8
t7
t4
18
20
t2
22
t1
24
h1
26
time →
113 / 138
Introduction
Optimal routing
Model
Reservations and Free Time Windows
Unexpected Incidents
Experiments
Example: Bob goes first
Alice
Bob
h2
h3
t3
h1
t1
χAlice
t6
t2
t4
h2
χBob
h3
0
t3
t6
2
t5
4
t2
t4
6
t5
t2
8
10
t7
t4
t1
12
h4
t5
t7
h4
h1
14
16
18
20
22
time →
113 / 138
Introduction
Optimal routing
Model
Reservations and Free Time Windows
Unexpected Incidents
Experiments
Mechanism: Maza-2 [Maza and Castagna, 2005]
Idea: give an agent top priority on all resources in its path, until the
resource where it already has top priority.
Alice
Bob
2: Bob
1: Alice
2: Bob
1: Alice
2: Bob
1: Alice
114 / 138
Introduction
Optimal routing
Model
Reservations and Free Time Windows
Unexpected Incidents
Experiments
Limitations of Maza-2
Mechanism Maza-2 tries to give an agent priority over all other agents
in the system, not just the delayed ones.
Alice
Bob
Trudy
2: Bob
1: Trudy
2: Bob
1: Trudy
3: Bob
2: Alice
1: Trudy
2: Bob
1: Alice
2: Bob
1: Alice
115 / 138
Introduction
Optimal routing
Model
Reservations and Free Time Windows
Unexpected Incidents
Experiments
Mechanism: Increase Agent Priority (IAP)
[ter Mors and Witteveen, 2009]
• Increase priority of agent Ai to the first of the delayed agents A.
116 / 138
Introduction
Optimal routing
Model
Reservations and Free Time Windows
Unexpected Incidents
Experiments
Mechanism: Increase Agent Priority (IAP)
[ter Mors and Witteveen, 2009]
• Increase priority of agent Ai to the first of the delayed agents A.
• Each Aj ∈ A shares a sequence of resources with the plan of Ai .
For each of these resources, Ai must be granted a higher priority.
116 / 138
Introduction
Optimal routing
Model
Reservations and Free Time Windows
Unexpected Incidents
Experiments
Mechanism: Increase Agent Priority (IAP)
[ter Mors and Witteveen, 2009]
• Increase priority of agent Ai to the first of the delayed agents A.
• Each Aj ∈ A shares a sequence of resources with the plan of Ai .
For each of these resources, Ai must be granted a higher priority.
• Agent Ai can get a higher priority than Aj on resource rk if Aj
does not occupy rk .
116 / 138
Introduction
Optimal routing
Model
Reservations and Free Time Windows
Unexpected Incidents
Experiments
Mechanism: Increase Agent Priority (IAP)
[ter Mors and Witteveen, 2009]
• Increase priority of agent Ai to the first of the delayed agents A.
• Each Aj ∈ A shares a sequence of resources with the plan of Ai .
For each of these resources, Ai must be granted a higher priority.
• Agent Ai can get a higher priority than Aj on resource rk if Aj
does not occupy rk .
• The set of delayed agents is determined for each step in the plan
of Ai . A new agent Aj can be added to A if there exists an agent
Az ∈ A, such that Aj has a lower priority than Az , but higher than
Ai .
116 / 138
Introduction
Optimal routing
Model
Reservations and Free Time Windows
Unexpected Incidents
Experiments
IAP example
Ken
2: Bob
1: Charles
2: Bob
1: Charles
Alice
4: Bob
3: Charles
2: Alice
1: Ken
Bob
2: Bob
1: Alice
3: Bob
2: Alice
1: Trudy
Charles
Trudy
117 / 138
Introduction
Optimal routing
Model
Reservations and Free Time Windows
Unexpected Incidents
Experiments
IAP example
A = {Trudy, Alice}
Ken
2: Bob
1: Charles
2: Bob
1: Charles
Alice
4: Bob
3: Charles
2: Alice
1: Ken
Bob
2: Bob
1: Alice
3: Bob
2: Alice
1: Trudy
Charles
Trudy
117 / 138
Introduction
Optimal routing
Model
Reservations and Free Time Windows
Unexpected Incidents
Experiments
IAP example
A = {Alice}
Ken
2: Bob
1: Charles
2: Bob
1: Charles
Alice
4: Bob
3: Charles
2: Alice
1: Ken
Bob
2: Bob
1: Alice
3: Bob
2: Alice
1: Trudy
Charles
Trudy
117 / 138
Introduction
Optimal routing
Model
Reservations and Free Time Windows
Unexpected Incidents
Experiments
IAP example
A = {Alice, Charles}
Ken
2: Bob
1: Charles
2: Bob
1: Charles
Alice
4: Bob
3: Charles
2: Alice
1: Ken
Bob
2: Bob
1: Alice
3: Bob
2: Alice
1: Trudy
Charles
Trudy
117 / 138
Introduction
Optimal routing
Model
Reservations and Free Time Windows
Unexpected Incidents
Experiments
IAP example
A = {Charles}
Ken
2: Bob
1: Charles
2: Bob
1: Charles
Alice
4: Bob
3: Charles
2: Alice
1: Ken
Bob
2: Bob
1: Alice
3: Bob
2: Alice
1: Trudy
Charles
Trudy
117 / 138
Introduction
Optimal routing
Model
Reservations and Free Time Windows
Unexpected Incidents
Experiments
IAP example
A = {Charles}
Ken
2: Bob
1: Charles
2: Bob
1: Charles
Alice
4: Bob
3: Charles
2: Alice
1: Ken
Bob
2: Bob
1: Alice
3: Bob
2: Alice
1: Trudy
Charles
Trudy
117 / 138
Introduction
Optimal routing
Model
Reservations and Free Time Windows
Unexpected Incidents
Experiments
IAP counterexample
Bob
2: Bob
1: Alice
Ken
Trudy
4: Bob
3: Alice
2: Ken
1: Charles
3: Bob
2: Trudy
1: Alice
2: Ken
1: Charles
Alice
2: Charles
1: Trudy
Charles
118 / 138
Introduction
Optimal routing
Model
Reservations and Free Time Windows
Unexpected Incidents
Experiments
IAP counterexample
Bob
2: Alice
1: Bob
Ken
4: Alice
3: Bob
2: Ken
1: Charles
2: Ken
1: Charles
Deadlock:
Bob
↓
Ken
↓
Charles
↓
Trudy
3: Trudy
2: Alice
1: Bob
Trudy
Alice
2: Charles
1: Trudy
↓
Bob
Charles
118 / 138
Introduction
Optimal routing
Model
Reservations and Free Time Windows
Unexpected Incidents
Experiments
Deadlock-free priority changes
Alice
2: Bob
1: Alice
t2
Bob
2: Bob
1: Alice
t4
2: Bob
1: Alice
t5
Alice
2: Alice
1: Bob
t2
Bob
2: Alice
1: Bob
t4
2: Alice
1: Bob
t5
• The wrong priority changes can lead to a deadlock.
• We construct the Planstep Priority Graph (PPG) from the plans of
the agents.
• A deadlock will occur if and only if there is a cycle in PPG.
119 / 138
Introduction
Optimal routing
Model
Reservations and Free Time Windows
Unexpected Incidents
Experiments
PPG vertices
There is a node in the Planstep Priority Graph for every plan step in an
agent’s plan, for all agents.
Set of vertices V
Let Π = {π1 , . . . , π|A| } be a set of agent plans, with
πi = {σi ,1 , . . . , σi ,m }, and σi ,j = hri ,j , τi ,j i. The set of vertices of the
Planstep Priority Graph is given by:
V=
|A| |πi |
[
[
σi ,j
i =1 j =1
120 / 138
Introduction
Optimal routing
Model
Reservations and Free Time Windows
Unexpected Incidents
Experiments
PPG arcs
• If (σi , σj ) ∈ E, then σi must start before σj .
• The set of arcs E consists of three components E1 , E2 , E3 .
1. E1 =
plan,
S|A| S|πi |−1
i =1
j =1
(σi ,j , σi ,j +1 ): between plan steps of the same
2. E2 : between direct successors on a resource,
3. E3 : between successors on a resource.
121 / 138
Introduction
Optimal routing
Model
Reservations and Free Time Windows
Unexpected Incidents
Experiments
E2 : direct successors
Priority number: p(rk , σi ) = n implies that σi is the nth plan step on
resource rk .
E2 = {(σi ,x , σj ,y ), (σi ,x +1 , σj ,y +1 ) | p(rk , σi ,x ) = p(rk , σj ,y ) + 1}
rk
...
n + 1 : σj,y
n:
σi,x
...
122 / 138
Introduction
Optimal routing
Model
Reservations and Free Time Windows
Unexpected Incidents
Experiments
E3 : Enabling plan steps
Enabling plan step
Plan step σi ,x +1 ∈ πi is the enabling plan step of σj ,y ∈ πj if σi ,x (i.e.,
the previous step in πi ) and σj ,y are on the same resource rk , and:
p(rk , σj ,y ) = p(rk , σi ,x ) + cap(rk )
rk
...
n + cap(rk ) : σj,y
(σi ,x +1 , σj ,y ) ∈ E3
...
...
n : σi,x
...
123 / 138
Introduction
Optimal routing
Model
Reservations and Free Time Windows
Unexpected Incidents
Experiments
PPG example 1
Alice1
Trudy1
Bob
Trudy2
2: Bob
1: Alice
Charles1
Ken
4: Bob
3: Alice
2: Ken
1: Charles
2: Ken
1: Charles
Charles2
Charles3
Ken1
Trudy
3: Bob
2: Trudy
1: Alice
Alice
Alice2
Ken2
2: Charles
1: Trudy
Bob2
Charles
Bob3
124 / 138
Introduction
Optimal routing
Model
Reservations and Free Time Windows
Unexpected Incidents
Experiments
PPG example 2
Bob2
Bob3
Bob
Alice1
2: Alice
1: Bob
Trudy1
Ken
4: Alice
3: Bob
2: Ken
1: Charles
2: Ken
1: Charles
Trudy2
Charles1
Charles2
Trudy
3: Trudy
2: Alice
1: Bob
Alice
Charles3
2: Charles
1: Trudy
Ken1
Charles
Ken2
Alice2
125 / 138
Introduction
Optimal routing
Model
Reservations and Free Time Windows
Unexpected Incidents
Experiments
Experiments
Compare plan repair mechanisms Maza-1 (maintain priorities),
Maza-2 (perform some priority changes), and IAP (perform more
priority changes):
1. Number of priority changes
2. Delay
More priority changes → shorter delays?
126 / 138
Introduction
Optimal routing
Model
Reservations and Free Time Windows
Unexpected Incidents
Experiments
Setup
• Incidents that immobilize agents
duration: the number of seconds that an agent cannot move
rate: frequency of incidents; a value of 0.1 implies that,
on average, an incidents occurs in 1 out of every
10 plan steps
• 100 to 500 agents
• Infrastructure topologies: random graphs and 2D lattice graphs
• Agents plan in randomly chosen order
127 / 138
Introduction
Optimal routing
Model
Reservations and Free Time Windows
Unexpected Incidents
Experiments
Random graphs
function randomGraph(int nVertices, int nEdges)
• create random spanning tree of nVertices vertices
• add random edges, up to a total of nEdges
• layout graph using graphviz (shown: nVertices=15, nEdges=30),
and determine lane travel times based on length of edges
128 / 138
Introduction
Optimal routing
Model
Reservations and Free Time Windows
Unexpected Incidents
Experiments
2D lattice graphs
function random2Dlattice(int nVertices)
• create grid of nVertices2 vertices
• layout graph using graphviz (shown: nVertices=8), and determine
lane travel times based on length of edges
129 / 138
Introduction
Optimal routing
Model
Reservations and Free Time Windows
Unexpected Incidents
Experiments
Values for High, Medium, and Low incident rates
Key
H
M
L
Rate
0.1
0.06
0.02
Duration (s)
60
60
60
130 / 138
Introduction
Optimal routing
Model
Reservations and Free Time Windows
Unexpected Incidents
Experiments
Number of priority changes: randomGraph(120, 200)
600
400
200
0
number of priority increases
800
H.IAP
L.IAP
M.IAP
H.Maza 2
L.Maza 2
M.Maza 2
100
200
300
400
500
number of agents
131 / 138
Introduction
Optimal routing
Model
Reservations and Free Time Windows
Unexpected Incidents
Experiments
1200
Number of priority changes: random2Dlattice(11)
800
600
400
200
0
number of priority increases
1000
H.IAP
L.IAP
M.IAP
H.Maza 2
L.Maza 2
M.Maza 2
100
200
300
400
500
number of agents
132 / 138
Introduction
Optimal routing
Model
Reservations and Free Time Windows
Unexpected Incidents
Experiments
Measuring delay
We measure delay per agent, and average over all agents.
Total delay: the difference between an agent’s planned finish time,
and its actual finish time
Incident delay: the total time an agent is immobilized by incidents,
plus the time the agent is stuck behind other agents
suffering incident delay
Mechanism delay: the total time an agent spends waiting to enter a
resource (because its priority is too low), plus the time
the agent is stuck behind other agents suffering
mechanism delay
We have total delay ≤ incident delay + mechanism delay. Total delay
can be smaller in case agents manage to make up time.
133 / 138
Introduction
Optimal routing
Model
Reservations and Free Time Windows
Unexpected Incidents
Experiments
Average relative delay: randomGraph(120, 200)
20
15
10
5
0
relative mechanism delay (%)
25
30
Maza 1
Maza 2
IAP
100
200
300
400
500
number of agents
134 / 138
Introduction
Optimal routing
Model
Reservations and Free Time Windows
Unexpected Incidents
Experiments
30
10
20
Maza 1
Maza 2
IAP
0
relative mechanism delay (%)
40
Average relative delay: random2Dlattice(11)
100
200
300
400
500
number of agents
135 / 138
Introduction
Optimal routing
Model
Reservations and Free Time Windows
Unexpected Incidents
Experiments
Mechanism delay for ‘low’ incident settings
Table: Relative mechanism delay for three different incident settings.
|A|
100
150
200
250
300
350
400
450
500
M1
14
15
14
16
11
11
9
10
12
0.02, 30s
M2
3
10
11
10
5
6
4
5
5
IAP
2
7
5
6
3
4
3
3
3
M1
36
33
38
30
30
30
32
26
28
0.02, 60s
M2
8
21
11
27
18
16
24
16
19
IAP
4
10
8
18
5
9
16
11
10
M1
30
27
17
17
19
16
15
16
14
0.06, 30s
M2
20
10
12
11
13
18
11
11
15
IAP
25
6
9
6
13
13
6
8
8
136 / 138
Introduction
Optimal routing
Model
Reservations and Free Time Windows
Unexpected Incidents
Experiments
Relative mechanism delay for ‘high’ incident settings
Table: Relative mechanism delay for three other incident settings.
|A|
100
150
200
250
300
350
400
450
500
M1
53
36
44
36
37
31
29
26
25
0.06, 60s
M2
35
22
35
32
36
31
26
27
20
IAP
28
26
30
24
36
30
21
22
21
M1
28
24
22
18
21
17
16
18
17
0.1, 30s
M2
16
13
26
13
15
14
27
13
14
IAP
9
10
14
5
15
14
20
11
8
M1
44
40
34
33
32
27
25
25
22
0.1, 60s
M2
25
31
25
28
35
31
29
39
24
IAP
27
32
26
28
45
28
35
43
33
137 / 138
Introduction
Optimal routing
Model
Reservations and Free Time Windows
Unexpected Incidents
Experiments
Experiment conclusions
• The IAP algorithm allows more priority changes than Maza’s
earlier efforts.
• For ‘high’ incident settings, making more priority changes does
not always result in less delay.
• Heuristics might be able to determine when the priority of an
agent should be increased.
138 / 138
Introduction
Optimal routing
Model
Reservations and Free Time Windows
Unexpected Incidents
Experiments
Akella, S. and Hutchinson, S. (2002).
Coordinating the motions of multiple robots with specified
trajectories.
In Proceedings of the 2002 IEEE International Conference on
Robotics & Automation, pages 624–631, Washington DC.
Avigad, G., Eisenstadt, E., and Cohen, M. W. (2011).
Trajectory planning for multiple unmanned vehicles under
reciprocal constraints.
Engineering Optimization, 43(12):1331–1350.
Beaulieu, M. and Gamache, M. (2006).
An enumeration algorithm for solving the fleet management
problem in underground mines.
Comput. Oper. Res., 33(6):1606–1624.
Carpin, S. and Pagello, E. (2009).
An experimental study of distributed robot coordination.
Robotics and Autonomous Systems, 57(2):129 – 133.
138 / 138
Introduction
Optimal routing
Model
Reservations and Free Time Windows
Unexpected Incidents
Experiments
de Wilde, B., ter Mors, A., and Witteveen, C. (2013).
Push and rotate: Cooperative multi-agent path planning.
In AAMAS.
accepted for publication.
Desaulniers, G., Langevin, A., Riopel, D., and Villeneuve, B.
(2004).
Dispatching and conflict-free routing of automated guided
vehicles: An exact approach.
International Journal of Flexible Manufacturing Systems,
15(4):309–331.
Fujimura, K. and Samet, H. (1990).
Motion planning in a dynamic domain.
In Proceedings of the 1990 IEEE International Conference on
Robotics and Automation, volume 1, pages 324–330, Cincinnati,
Ohio, USA.
Goldreich, O. (2011).
138 / 138
Introduction
Optimal routing
Model
Reservations and Free Time Windows
Unexpected Incidents
Experiments
Finding the shortest move-sequence in the graph-generalized
15-puzzle is np-hard.
In Goldreich, O., editor, Studies in Complexity and Cryptography.
Miscellanea on the Interplay between Randomness and
Computation, volume 6650 of Lecture Notes in Computer
Science, pages 1–5. Springer Berlin / Heidelberg.
Original version published in 1984.
Hearn, R. A. and Demaine, E. D. (2005).
PSPACE-completeness of sliding-block puzzles and other
problems through the nondeterministic constraint logic model of
computation.
Theoretical Computer Science, 343(1–2):72–96.
Hopcroft, J. E., Schwartz, J. T., and Sharir, M. (1984).
On the complexity of motion planning for multiple independent
objects; PSPACE-hardness of the “warehouseman’s problem”.
The International Journal of Robotics Research, 3(4):76–88.
138 / 138
Introduction
Optimal routing
Model
Reservations and Free Time Windows
Unexpected Incidents
Experiments
Khorshid, M. M., Holte, R. C., and Sturtevant, N. (2011).
A polynomial-time algorithm for non-optimal multi-agent
pathfinding.
In Proceedings, The Fourth International Symposium on
Combinatorial Search (SoCS-2011), pages 76–83.
Kim, C. W. and Tanchoco, J. M. (1991).
Conflict-free shortest-time bidirectional AGV routeing.
International Journal of Production Research, 29(1):2377–2391.
Kornhauser, D., Miller, G., and Spirakis, P. (1984).
Coordinating pebble motion on graphs, the diameter of
permutation groups, and applications.
In 25th Annual Symposium onFoundations of Computer Science,
pages 241–250.
Kornhauser, D. M. (1984).
Coordinating pebble motion on graphs, the diameter of
permutation groups, and applications.
138 / 138
Introduction
Optimal routing
Model
Reservations and Free Time Windows
Unexpected Incidents
Experiments
Master’s thesis, Massachusetts Intitute of Technology.
Luna, R. and Bekris, K. E. (2011).
Push and swap: Fast cooperative path-finding with completeness
guarantees.
In International Joint Conference on Artificial Intelligence (IJCAI).
Maza, S. and Castagna, P. (2001).
Conflict-free AGV routing in bi-directional network.
In Proceedings of the 8th IEEE International Conference on
Emerging Technologies and Factory Automation, volume 2, pages
761–764, Antibes-Juan les Pins, France.
Maza, S. and Castagna, P. (2005).
A performance-based structural policy for conflict-free routing of
bi-directional automated guided vehicles.
Computers in Industry, 56(7):719–733.
Park, J., Choi, J. S., Kim, J., Ji, S.-H., and Lee, B. (2010).
138 / 138
Introduction
Optimal routing
Model
Reservations and Free Time Windows
Unexpected Incidents
Experiments
Long-term stealth navigation in a security zone where the
movement of the invader is monitored.
International Journal of Control, Automation and Systems,
8(3):604–614.
Reif, J. and Sharir, M. (1994).
Motion planning in the presence of moving obstacles.
Journal of the ACM, 41(4):764–790.
Schwartz, J. and Sharir, M. (1983).
On the piano movers’ problem: II. general techniques for
computing topological properties of real algebraic manifolds.
Advances in Applications of Mathematics, 4:298–351.
Silver, D. (2005).
Cooperative pathfinding.
In Proceedings of the 1st Conference on Artificial Intelligence and
Interactive Digital Entertainment.
138 / 138
Introduction
Optimal routing
Model
Reservations and Free Time Windows
Unexpected Incidents
Experiments
Šišlák, D., Pěchouček, M., Volf, P., Pavlı́ček, D., Samek, J., Mařı́k,
V., and Losiewicz, P. (2008).
AGENTFLY: Towards Multi-Agent Technology in Free Flight Air
Traffic Control, chapter 7, pages 73–97.
Birkhauser Verlag.
Standley, T. (2010).
Finding optimal solutions to cooperative pathfinding problems.
In Proceedings of the Twenty-Fourth AAAI Conference on Artificial
Intelligence (AAAI-10), pages 173–178.
Surynek, P. (2009).
A novel approach to path planning for multiple robots in
bi-connected graphs.
In Proceedings of the 2009 IEEE International Conference on
Robotics and Automation, pages 3613–3619, Kobe, Japan.
ter Mors, A. and Witteveen, C. (2009).
Plan repair in conflict-free routing.
138 / 138
Introduction
Optimal routing
Model
Reservations and Free Time Windows
Unexpected Incidents
Experiments
In Chien, B.-C., Hong, T.-P., Chen, S.-M., and Ali, M., editors,
Proceedings of the The Twenty Second International Conference
on Industrial, Engineering & Other Applications of Applied
Intelligent Systems IEA-AIE 2009, Lecture Notes in Artificial
Intelligence, pages 46–55, Berlin, Heidelberg. Springer Verlag
LNAI.
June 24-27, 2009.
ter Mors, A. W., Zutt, J., and Witteveen, C. (2007).
Context-aware logistic routing and scheduling.
In Proceedings of the Seventeenth International Conference on
Automated Planning and Scheduling, pages 328–335.
van den Berg, J. P. and Overmars, M. H. (2005).
Prioritized motion planning for multiple robots.
In IEEE/RSJ International Conference on Intelligent Robots and
Systems, pages 2217–2222.
Wang, K.-H. C. and Botea, A. (2011).
138 / 138
Introduction
Optimal routing
Model
Reservations and Free Time Windows
Unexpected Incidents
Experiments
Mapp: a scalable multi-agent path planning algorithm with
tractability and completeness guarantees.
Journal of Artificial Intelligence Research, 42:55–90.
Wilfong, G. (1991).
Motion planning in the presence of movable obstacles.
Annals of Mathematics and Artificial Intelligence, 3(1):131–150.
Wilson, R. M. (1974).
Graph puzzles, homotopy, and the alternating group.
Journal of Combinatorial Theory, Series B, 16(1):86–96.
138 / 138