Movement patterns

advertisement
Computational Movement
Analysis
Lecture 4:
Movement patterns
Joachim Gudmundsson
Movement patterns
Much of the early work on movement analysis focussed on finding
movement patterns.
For example:
• Flocks (group of entities moving close together)
• Swarm
• Convoys
• Heards
• Following (is an entity following another entity)
• Leadership
• Single file
• Popular places (place visited by many)
• …
Movement patterns: Challenge
Find definitions of movement patterns that are:
1. Useful and
2. “Computable”
Movement patterns: Notation
n – number of entities (trajectories)
 - maximum complexity of a trajectory
Movement patterns: Groups
Movement patterns: Groups
Kalnis, Mamoulis & Bakiras, 2005
G. & van Kreveld, 2006
Benkert, G., Hubner & Wolle, 2006
Jensen, Lin & Ooi, 2007
Al-Naymat, Chawla & G., 2007
Vieria, Bakalov & Tsotras, 2009
Jeung, Yiu, Zhou, Jensen & Shen, 2008
Jeung, Shen & Zhou, 2008
...
t2
t4
t3
t1
Movement patterns: Groups
m – flock size
Time = 0 1 2 3 4 5 6 7 8
m=3
Movement patterns: Groups
fixed subset
variable subset
flock
meet
examples for m = 3
Movement patterns: Convoy
Movement patterns: Convoy
X – set of entities
m – convoy size
x
 – distance threshold

y
Define a group:
x,yX are directly connected if the
-disks of x and y intersect.
x1 and xk are -connected if there is a
sequence x1,x2 ,…, xk of entities such
that i, xi and xi+1 are directly
connected.
x1
x2
x5
x3
x4
Movement patterns: Convoy
A group of entities form a convoy
if every pair of entities are -connected.
[Jeung, Yiu, Zhou, Jensen & Shen, 2008]
[Jeung, Shen & Zhou, 2008]
Movement patterns: Leadership & Followers
Movement patterns: Leadership & Followers
A leader?
- Should not follow anyone else!
- Is followed by at least m
other entities.
- For a certain duration.
front
Movement patterns: Leadership & Followers
A leader?
- Should not follow anyone else!
- Is followed by at least m
other entities.
- For a certain duration.
Many different settings. Running time ~O(n2 log n)
[Andersson et al. 2007]
Movement patterns: Popular places
Movement patterns: Popular places
A region is a popular place if at least m entities visit it.
σ
σ is a popular place for m  5
[Benkert, Djordjevic, G. & Wolle 2007]
Movement patterns: Popular places
Continuous model:
maximum number of visitors
Discrete model:
maximum number of visitors
O(2n2)
(2n2)
O(n log n)
(n log n)
Movement patterns: Single File
Movement patterns: Single File
Single file: Intuitively easy to define
Hard to define formally!
Movement patterns: Single File
Single file: Intuitively easy to define
Hard to define formally!
Movement patterns: Single File
Single file: Intuitively easy to define
Hard to define formally!
Towards a Formal Definition?
We say that the entities x1, … , xm are moving in single file for
a given time interval if during this time each entity
xj+1 is following behind entity xj for j = 1, … ,m-1.
Towards a Formal Definition?
We say that the entities x1, … , xm are moving in single file for
a given time interval if during this time each entity
xj+1 is following behind entity xj for j = 1, … ,m-1.
Following behind?
Time t
Time t’  [t+min,t+max]

Define Following Behind
Let x1 be an entity with parameterized trajectory f1 over the
time interval [s1,t1] and let x2 be an entity with parameterized
trajectory f2 over the time interval [s2,t2], where
s2  [s1+min, s1+max] and t2  [t1+min, t1+max].
Entity x2 is following behind x1 in [s1,t1] if there exists a
continuous, bijective function  : [s1,t1]  [s2,t2] such that
(s1)=s2 and
 t  [s1,t1]: (t)  [t-max,t-min] d(f1((t)),f2(t))  .
f2
f1
Define Following Behind
Let x1 be an entity with parameterized trajectory f1 over the
time interval [s1,t1] and let x2 be an entity with parameterized
trajectory f2 over the time interval [s2,t2], where
s2  [s1+min, s1+max] and t2  [t1+min, t1+max].
Entity x2 is following behind x1 in [s1,t1] if there exists a
continuous, bijective function  : [s1,t1]  [s2,t2] such that
(s1)=s2 and
 t  [s1,t1]: (t)  [t-max,t-min] d(f1((t)),f2(t))  .
f2
f1
Free Space Diagram
If there exists a monotone path in the free-space diagram from
(0, 0) to (p, q) which is monotone in both coordinates, then
curves P and Q have Fréchet distance less than or equal to ε
(p,q)
(0,0)
Free Space Diagram and Following Behind
The time delay means that the path will be restricted to
a “diagonal” strip!
FC(f1,f2) = {(s,t) | d(f1(s),f2(t))  
Running time: O(+k) where k is the
complexity of the diagonal strip
t-s  [min,max]}.
min
max
Algorithm: Single file
One can determine in O(k2) time during which time
intervals one trajectory is following behind the other.
If the order between the entities is specified then compute
the free space diagram between every pair of consecutive
entities:
Time: O(nk2)
No Order?
If no order then compute the free space diagram between
every pair of entities:
x1
Time: O(n2k2)
x3
x1
x3
x2
x2
([3,8],[14,21])
x4
x4
[Buchin et al. 2008]
Trajectory grouping
How to define and compute the structure of groups of moving
entities, including merging and splitting?
[Buchin, Buchin, van Kreveld, Speckmann and Staals 2013]
Grouping
We do not want this to be considered:
A merge of two groups into one, followed by a split of a
group into two
Grouping
We probably want this to be considered:
A merge of two groups into one, followed by a split of a
group into two
Grouping: definitions
X – set of entities
x
 - complexity of each input trajectory

y
Define a group:
x,yX are directly connected if the
-disks of x and y intersect.
x1
x1 and xk are -connected if there is a
sequence x1,x2 ,…, xk of entities such
that i, xi and xi+1 are directly
connected.
x2
x5
x3
x4
Grouping: definitions
A set S of entities is -connected if all
entities in S are pairwise -connected.
 The -disks of the entities in S form
a connected component.
Grouping: definitions
C(t) consists of 5 components
C(t) – the set of connected components
at time t that forms a partition of X.
Time: t
Grouping: definitions
What is a group?
m=4

Three criteria for a group:
- big enough (size m)
- close enough (-connected)
- long enough (duration δ)
Only maximal groups are relevant
(maximal in group size, starting time or ending time)
Grouping: definitions
What is a group?
m=4
Three criteria for a group:
- big enough (size m)
- close enough (-connected)
duration>δ
- long enough (duration δ)
Only maximal groups are relevant
(maximal in group size, starting time or ending time)
Grouping: definitions
Note that an entity can be in several maximal groups
at the same time!
Grouping:definitions
Note that an entity can be in several maximal groups
at the same time!
Grouping:definitions
Note that an entity can be in several maximal groups
at the same time!
Grouping: definitions
Note that an entity can be in several maximal groups
at the same time!
t=0
t=1
t=3
t=2
t=[0,2] : red/blue
t=[1,2] : red/blue/green
t=[1,3] : red/green
At time t=2 red is in 3 groups
Trajectory grouping structure
Trajectory grouping structure
Trajectory grouping structure
blue
t=0
t=0
t=0
red, blue
blue, green
red, blue, green
t=5
red t=1
t=4
red
t=10
t=10
green
purple, green
purple
t=8
t=10
Grouping
Questions:
1. Number of maximal groups?
2. How can we effectively compute all the maximal groups?
Grouping
Idea:
Consider the motion of the -disks of the entities over time.
Grouping
Idea:
Consider the motion of the -disks of the entities over time.
 Union of n tubes. Denote this manifold by M.
Each tube consists of  skewed
cylinders with horizontal radius .
We can see it as tracing the -disk
of an entity over its trajectory.
Grouping
We are interested in horizontal cross-sections, and the evolution of
the connected components.
This is captured by the so-called Reeb graphs.
Reeb graph
Reeb graph, with maximal groups associated to edges
captures the changes in connectivity of a process, using a graph
– Edges are connected components
– Vertices define changes in connected components (events)
Reeb graph
Four types of vertices:
start vertex (time t0) – in-degree 0, out-degree 1
end vertex (time t) – in-degree 1, out-degree 0
merge vertex - in-degree 2, out-degree 1
split vertex - in-degree 1, out-degree 2
Complexity of the Reeb graph
Observation:
Reeb graph of M has (n2) vertices and
edges.
Proof:
Construction for one time step [ti,ti+1].
Complexity of the Reeb graph
Observation:
Reeb graph of M has (n2) vertices and
edges.
Proof:
Construction for one time step [ti,ti+1].
Complexity of the Reeb graph
Observation:
Reeb graph of M has (n2) vertices and
edges.
Proof:
Construction for one time step [ti,ti+1].

n/2  n/2 = (n2) components/
time step.
□
Complexity of the Reeb graph
Observation:
The Reeb graph of M has O(n2) vertices.
Proof:
Consider two entities during one time
interval [ti,ti+1].
This interval can generate at most two
vertices in the the Reeb graph.
Complexity of the Reeb graph
Observation:
The Reeb graph of M has O(n2) vertices.
Proof:
Consider two entities during one time
interval [ti,ti+1].
This interval can generate at most two
vertices in the the Reeb graph.
 O(n2) components/time step.
□
Computing the Reeb graph
Compute all events:
For every pair of skewed cylinders
compute the time of intersection.
Time: O(n2)
Sort the events with respect to time:
Time: O(n2 log n)
Computing the Reeb graph
Compute & sort all events:
Time: O(n2 log n)
Initialize graph:
Time: O(n2)
Handle events by increasing time:
Time: O(n2 log n)
Using a dynamic ST-trees
[Sleator & Tarjan’83]
[Parsa‘12]
Computing the Reeb graph
Theorem:
The Reeb graph of M can be
computed in time O(n2 log n).
Number of maximal groups
Each entity follows a directed path in the Reeb graph
starting at a start vertex and
ending at an end vertex.
blue
t=0
t=0
red, blue
blue, green
red, blue, green
t=5
red t=1
t=4
red
t=10
green
purple, green
purple
t=0
t=10
t=8
t=10
Number of maximal groups
Theorem:
There are O(n3) maximal groups.
Proof:
There are O(n2) vertices in the Reeb graph.
Prove that O(n) maximal groups can start at a start or merge vertex.
blue
t=0
t=0
red, blue
blue, green
red, blue, green
t=5
red t=1
t=4
red
t=10
green
purple, green
purple
t=0
t=10
t=8
t=10
Number of maximal groups
Consider a merge vertex v.
Assume sets S and T merge at v.
v
S
T
Number of maximal groups
Consider a merge vertex v.
Assume sets S and T merge at v.
Let px denote the path of entity x ST
starting at v.
px
v
S
T
Number of maximal groups
Consider a merge vertex v.
Assume sets S and T merge at v.
Let px denote the path of entity x ST
starting at v.
Consider the union R’ of all such paths from
entities in ST.
R’ is a directed acyclic subgraph of the Reeb
graph.
v
S
T
Number of maximal groups
Consider a merge vertex v.
Assume sets S and T merge at v.
Let px denote the path of entity x ST
starting at v.
R’
py
px
Consider the union R’ of all such paths from
entities in ST.
R’ is a directed acyclic subgraph of the Reeb
graph.
“Unravel” R’: if px and py split and then merge
at a vertex u then duplicate the paths starting
at u.
v
S
T
Number of maximal groups
“Unravel” R’: if px and py split and then merge
at a vertex u then duplicate the paths starting
at u.
px
py
v
px
py
v
Number of maximal groups
“Unravel” R’: if px and py split and then merge
at a vertex u then duplicate the paths starting
at u.
px
py
v
px
py
v
Number of maximal groups
“Unravel” R’: if px and py split and then merge
at a vertex u then duplicate the paths starting
at u.
v
v
Number of maximal groups
“Unravel” R’: if px and py split and then merge
at a vertex u then duplicate the paths starting
at u.
v
v
Number of maximal groups
“Unravel” R’: if px and py split and then merge
at a vertex u then duplicate the paths starting
at u.
A maximal group can only end at an end
or split vertex.
v
Number of maximal groups
“Unravel” R’: if px and py split and then merge
at a vertex u then duplicate the paths starting
at u.
A maximal group can only end at an end
or split vertex.
Number of leaves = |S|+|T|  n
v
Number of maximal groups
“Unravel” R’: if px and py split and then merge
at a vertex u then duplicate the paths starting
at u.
A maximal group can only end at an end
or split vertex.
Number of leaves = |S|+|T|  n
Number of split vertices?
Every vertex has degree at most 3.
 O(n) split vertices.
v
Number of maximal groups
“Unravel” R’: if px and py split and then merge
at a vertex u then duplicate the paths starting
at u.
A maximal group can only end at an end
or split vertex.
Number of leaves = |S|+|T|  n
Number of split vertices?
Every vertex has degree at most 3.
 O(n) split vertices.
There can be at most one maximal group
starting at v and ending at a split vertex w.
 O(n) maximal groups starting at v.
v
Number of maximal groups
Theorem:
There are O(n3) maximal groups.
Proof:
There are O(n2) vertices in the Reeb graph.
There are O(n) maximal groups can start at a
start or merge vertex. □
v
Computing the maximal groups
Input: Given a set of trajectories and three parameters m,  and .
1. Compute the Reeb graph using distance . Time: O(n2 log n)
2. Process the vertices in time-order, maintaining maximal groups
1
(1,t0)
2
(2,t0)
(3,t0)
3
4
(4,t0)
t0
t1
(3,t0)
(4,t0)
(34,t1)
(1,t0)
(3,t0)
(13,t2)
(1,t0)(2,t0)
(3,t0)(4,t0)
(12,t1)(34,t1)
(1234,t2)
(1,t0)
(2,t0)
(12,t1)
tG
t2
t3
(2,t0)
(4,t0)
(24,t2)
1,3
2,4
t4
Computing the maximal groups
2. Maintain maximal groups
Each edge e=(u,v) is labelled with a set of maximal groups Ge.
Note: A group G becomes maximal at a vertex.
1
(1,t0)
2
(2,t0)
(3,t0)
3
4
(4,t0)
t0
t1
(3,t0)
(4,t0)
(34,t1)
(1,t0)
(3,t0)
(13,t2)
(1,t0)(2,t0)
(3,t0)(4,t0)
(12,t1)(34,t1)
(1234,t2)
(1,t0)
(2,t0)
(12,t1)
tG
t2
t3
(2,t0)
(4,t0)
(24,t2)
1,3
2,4
t4
Computing the maximal groups
2. Annotate its edges and vertices
Each edge e=(u,v) is labelled with a set of maximal groups Ge.
Note that a group G becomes maximal at a vertex v.
a. Start vertex: Set Ge = {(Ce,tv=t0)}
u
Ge={(Ce,tv=t0)}
v
Computing the maximal groups
2. Annotate its edges and vertices
Each edge e=(u,v) is labelled with a set of maximal groups Ge.
Note that a group G becomes maximal at a vertex v.
a. Start vertex: Set Ge = {(Ce,tv=t0)}
b. Merge vertex: Propagate the maximal groups from
“children” to e and add (Ce,tv).
u
Ge={Ge1Ge2(Ce,tv)}
v
Ge1
Ge2
Computing the maximal groups
2. Annotate its edges and vertices
Each edge e=(u,v) is labelled with a set of maximal groups Ge.
Note that a group G becomes maximal at a vertex v.
a. Start vertex: Set Ge = {(Ce,tv=t0)}
b. Merge vertex: Propagate the maximal groups from
“children” to e and add (Ce,tv).
c. Split vertex:
Ge1
Ge2
v
Ge
Computing the maximal groups
2. Annotate its edges and vertices
Each edge e=(u,v) is labelled with a set of maximal groups Ge.
Note that a group G becomes maximal at a vertex v.
a. Start vertex: Set Ge = {(Ce,tv=t0)}
b. Merge vertex: Propagate the maximal groups from
“children” to e and add (Ce,tv).
c. Split vertex:
- A group may end at v (if group splits)
- A group may start at v on either e1 or e2
- A group may continue on e1 or e2
Ge1
Ge2
v
Ge
Question: How can we compute these groups efficiently?
Store maximal groups
Observation:
Assume S, T in Ge.
S starting at tS and T starting at tT.
tS
Ge = {S,T,…}
e
tT
Store maximal groups
Observation:
Assume S, T in Ge.
S starting at tS and T starting at tT.
• G  ST in Ge with starting time tG  max{tS,tT}.
tS
tG
Ge = {S,T,G,…}
e
tT
Store maximal groups
Observation:
Assume S, T in Ge.
S starting at tS and T starting at tT.
• G  ST in Ge with starting time tG  max{tS,tT}.
• If ST then ST or T  S.
 S and T are disjoint, ST or T S
tS
tG
Ge = {S,T,G,…}
e
tT
Store maximal groups
Represent Ge by a tree Te.
Each node v in Te represents a group Gv in Ge.
The children of v are the largest subgroups of of Gv.
1
(1,t0)
2
(2,t0)
(3,t0)
3
4
(4,t0)
t0
t1
(3,t0)
(4,t0)
(34,t1)
(1,t0)
(3,t0)
(13,t2)
(1,t0)(2,t0)
(3,t0)(4,t0)
(12,t1)(34,t1)
(1234,t2)
(1,t0)
(2,t0)
(12,t1)
tG
t2
t3
(2,t0)
(4,t0)
(24,t2)
1,3
2,4
t4
Store maximal groups
{1,2,3,4}
Represent Ge by a tree Te.
{1,2}
{3,4}
Each node v in Te represents a group Gv in Ge.
The children of v are the largest subgroups of of Gv.
{1}
1
(1,t0)
2
(2,t0)
(3,t0)
3
4
(4,t0)
t0
t1
(3,t0)
(4,t0)
(34,t1)
(1,t0)
(3,t0)
(13,t2)
(1,t0)(2,t0)
(3,t0)(4,t0)
(12,t1)(34,t1)
(1234,t2)
(1,t0)
(2,t0)
(12,t1)
t2
t3
(2,t0)
(4,t0)
(24,t2)
{2}
1,3
2,4
t4
{3}
{4}
Computing the maximal groups
2.
Annotate its edges and vertices
Each edge e=(u,v) is labelled with a set of maximal groups Ge.
Start vertex: Set Ge = {(Ce,tv=t0)} 
Merge vertex: Propagate the maximal groups from
“children” to e and add (Ce,tv). 
c. Split vertex:
- A group may end at v (if group splits)
- A group may start at v on either e1 or e2
- A group may continue on e1 or e2
a.
b.
(1,t0)
(3,t0)
(13,t2)
t2
(1,t0)(2,t0)
(3,t0)(4,t0)
(12,t1)(34,t1)
(1234,t2)
(1234,t2)
1,3
(12,t1)
(2,t0)
(4,t0)
(24,t2)
t3
(34,t1)
2,4
t4
(1,t0) (2,t0) (3,t0) (4,t0)
Computing the maximal groups
2.
Annotate its edges and vertices
Each edge e=(u,v) is labelled with a set of maximal groups Ge.
Start vertex: Set Ge = {(Ce,tv=t0)} 
Merge vertex: Propagate the maximal groups from
“children” to e and add (Ce,tv). 
c. Split vertex:
- A group may end at v (if group splits)
- A group may start at v on either e1 or e2
- A group may continue on e1 or e2
a.
b.
(1,t0)
(3,t0)
(13,t2)
t2
(1,t0)(2,t0)
(3,t0)(4,t0)
(12,t1)(34,t1)
(1234,t2)
(1234,t2)
1,3
(1,t0) (3,t0)
(2,t0)
(4,t0)
(24,t2)
t3
(12,t1)
(34,t1)
2,4
t4
(2,t0)
(4,t0)
(1,t0) (2,t0) (3,t0) (4,t0)
Computing the maximal groups
2.
Annotate its edges and vertices
Each edge e=(u,v) is labelled with a set of maximal groups Ge.
Start vertex: Set Ge = {(Ce,tv=t0)} 
Merge vertex: Propagate the maximal groups from
“children” to e and add (Ce,tv). 
c. Split vertex:
- A group may end at v (if group splits)
- A group may start at v on either e1 or e2
- A group may continue on e1 or e2
a.
b.
(1,t0)
(3,t0)
(13,t2)
t2
(1,t0)(2,t0)
(3,t0)(4,t0)
(12,t1)(34,t1)
(1234,t2)
(1234,t2)
1,3
(1,t0) (3,t0)
(2,t0)
(4,t0)
(24,t2)
t3
(12,t1)
(34,t1)
2,4
t4
(2,t0)
(4,t0)
(1,t0) (2,t0) (3,t0) (4,t0)
Computing the maximal groups
2.
Annotate its edges and vertices
Each edge e=(u,v) is labelled with a set of maximal groups Ge.
Start vertex: Set Ge = {(Ce,tv=t0)} 
Merge vertex: Propagate the maximal groups from
“children” to e and add (Ce,tv). 
c. Split vertex:
- A group may end at v (if group splits)
- A group may start at v on either e1 or e2
- A group may continue on e1 or e2
a.
b.
(13,t3)
(1,t0)
(3,t0)
(13,t2)
t2
(1,t0)(2,t0)
(3,t0)(4,t0)
(12,t1)(34,t1)
(1234,t2)
(1234,t2)
1,3
(1,t0) (3,t0)
(2,t0)
(4,t0)
(24,t2)
t3
(34,t1)
(24,t3)
2,4
t4
(12,t1)
(2,t0)
(4,t0)
(1,t0) (2,t0) (3,t0) (4,t0)
Computing the maximal groups
Analysis
Start vertex: O(1)
Merge vertex: O(1)
Split vertex: O(|Te|) and |Te|=O(n)
Total time: #vertices in the Reeb graph  O(n) = O(n3)
+ the total output size
(13,t3)
(1,t0)
(3,t0)
(13,t2)
t2
(1,t0)(2,t0)
(3,t0)(4,t0)
(12,t1)(34,t1)
(1234,t2)
(1234,t2)
1,3
(1,t0) (3,t0)
(2,t0)
(4,t0)
(24,t2)
t3
(34,t1)
(24,t3)
2,4
t4
(12,t1)
(2,t0)
(4,t0)
(1,t0) (2,t0) (3,t0) (4,t0)
Changing group size and duration
minimum group size 3
For illustration: x-coordinate is time
smaller minimum group size (2)
larger minimum group size (5)
larger minimum duration
smaller minimum duration
Robustness
If a group of 6 entities has 1 entity leaving very briefly, should we
really see this as
- two maximal groups of size 6, and
- one maximal group of size 5 ?
6 entities
5 entities
6 entities
Robust grouping structure
Entities are α-connected at time t if they are directly connected at
some time t‘ in [t-α/2, t+α/2]
Robust grouping structure
Modify Reeb graph
Passing
encounter
Collapse
encounter
› at most O(n3) changes in the Reeb graph
› compute robust maximal groups in O(n3 log n) time (plus output
size)
Summary
Grouping structures [Buchin et al.’13]
- Model for the grouping structure of moving entities
- Algorithms for computing the grouping structure
Many different movement patterns
• Moving groups
• Convoys
• Following/Leadership
• Single file
• Popular places (place visited by many)
Open Problem
•
Interesting movement patterns?
•
Query versions?
•
Automatically set parameters?
References
• K. Buchin, M. Buchin, M. van Kreveld, B. Speckmann and F. Staals.
Trajectory Grouping Structure. WADS, 2013.
• H. Jeung, M. L. Yiu, X. Zhou, C. S. Jensen and H. T. Shen. Discovery
of Convoys in Trajectory Databases. PVLDB, 2008.
• K. Buchin, M. Buchin and J. Gudmundsson. Constrained Free Space
Diagrams: a Tool for Trajectory Analysis, International Journal of
Geographical Information Science, 2010.
• M. Andersson, J. Gudmundsson, P. Laube and T. Wolle. Reporting
leaders and followers among trajectories of moving point objects.
GeoInformatica, 2008.
Download