Presentation is loading. Please wait.

Presentation is loading. Please wait.

2IMG15 Algorithms for Geographic Data

Similar presentations


Presentation on theme: "2IMG15 Algorithms for Geographic Data"— Presentation transcript:

1 2IMG15 Algorithms for Geographic Data
Fall Lecture 2: Similarity

2 Trajectories Model for the movement of a (point) object; f : [ time interval ] D or 3D The path of a trajectory is just any curve

3 Trajectories vs trajectory data

4 Trajectory data The data as it is acquired by e.g. GPS: sequence of triples (2D spatial + time) or quadruples (3D spatial + time) (xn,yn,tn) (x2,y2,t2) (xi,yi,ti) (x1,y1,t1)

5 Trajectory data Typical assumption for sufficiently densely sampled data: constant velocity between consecutive samples ➨ velocity/speed is a piecewise constant function (xn,yn,tn) (x2,y2,t2) (xi,yi,ti) (x1,y1,t1)

6 Trajectory data analysis
Questions “How much time does a gull typically spend foraging on a trip from the colony and back?”

7 Trajectory data analysis
Questions “How much time does a gull typically spend foraging on a trip from the colony and back?” “If customers look at book display X, do they more often than average also go to and look at bookshelf Y?” “Is this Alzheimer patient in need of assistance?”

8 General purpose questions
Single trajectory simplification, cleaning segmentation into semantically meaningful parts finding recurring patterns (repeated subtrajectories) Two trajectories similarity computation subtrajectory similarity Multiple trajectories clustering, outliers flocking/grouping pattern detection finding a typical trajectory or computing a mean/median trajectory visualization

9 Similarity is fundamental
Single trajectory simplification, cleaning segmentation into semantically meaningful parts finding recurring patterns (repeated subtrajectories) Two trajectories similarity computation subtrajectory similarity Multiple trajectories clustering, outliers flocking/grouping pattern detection finding a typical trajectory or computing a mean/median trajectory visualization

10 Similarity is fundamental
Single trajectory simplification, cleaning segmentation into semantically meaningful parts finding recurring patterns (repeated subtrajectories) Two trajectories similarity computation subtrajectory similarity Multiple trajectories clustering, outliers flocking/grouping pattern detection finding a typical trajectory or computing a mean/median trajectory visualization

11 When are two trajectories similar?
Often, spatial similarity is more important than temporal similarity

12 Many measures exist… Agrawal, Lin, Sawhney & Shim, 1995
Alt & Godau, 1995 Yi, Jagadish & Faloutsos, 1998 Gaffney & Smyth, 1999 Kalpakis, Gada & Puttagunta, 2001 Vlachos, Gunopulos & Kollios, 2002 Gunopoulos, 2002 Mamoulis, Cao, Kollios, Hadjieleftheriou, Tao & Cheung, 2004 Chen, Ozsu & Oria, 2005 Nanni & Pedreschi, 2006 Van Kreveld & Luo, 2007 Gaffney, Robertson, Smyth, Camargo & Ghil, 2007 Lee, Han & Whang, 2007 Buchin, Buchin, van Kreveld & Luo, 2009 Agarwal, Aranov, van Kreveld, Löffler & Silveira, 2010 Sankaraman, Agarwal, Molhave, Pan and Boedihardjo, 2013 ...

13 A simple approach Input: Two polygonal curves P and Q of size m in Rd Approach: Map curve into a point in dm-dimensional space 2D 10D

14 A simple approach Input: Two polygonal curves P and Q of size m in Rd Approach: Map curve into a point in dm-dimensional space Similar? 10D 2D

15 A simple approach Input: Two polygonal curves P and Q of size m in Rd Approach: Map curve into a point in dm-dimensional space Drawbacks: P and Q must have same number points only takes the vertices into consideration Not similar? 2D 6D

16 Hausdorff distance Input: Two polygonal curves P and Q in Rd
Distance: Hausdorff distance H(PQ) = maxpP minqQ |p-q| dH(P,Q) = max [H(PQ), H(QP)] P Q P Q

17 Hausdorff distance Input: Two polygonal curves P and Q in Rd
Distance: Hausdorff distance Drawback: Fails to capture the distance between curves H(PQ) = maxpP minqQ |p-q| dH(P,Q) = max [H(PQ), H(QP)] P Q

18 Aligning sequences Input: Two polygonal curves P and Q in Rd
Some interesting measures are: Dynamic Time Warping (DTW) Longest Common Subsequence (LCSS) Model-Driven matching (MDM)

19 Dynamic Time Warping (DTW)
Euclidean Distance One-to-one alignments Time Warping Distance Non-linear alignments are allowed

20 Calculating DTW Q C Warping path w distance matrix

21 5 steps to Dynamic Programming
[Prerequisite] 5 steps to Dynamic Programming define subproblems [#subproblems] guess first choice [#choices] give recurrence for the value of an optimal solution [time/subproblem, treating recursive calls as (1)] define subproblem in terms of a few parameters define variable m[..] = value of optimal solution for subproblem relate subproblems by giving recurrence for m[..] algorithm: fill in table for m [..] in suitable order (or recurse & memoize) solve original problem Running time: #subproblems * time/subproblem Correctness: (i) correctness of recurrence: relate OPT to recurrence (ii) correctness of algorithm: induction using (i)

22 Longest common subsequence
[Prerequisite] Longest common subsequence substring of a string: string that can be obtained by omitting zero or more characters string: A C C A T T G example substrings: A C C A T T G or A C C A T T G or … LCS(X,Y) = a longest common subsequence of strings X and Y = a longest string that is a subsequence of X and a subsequence of Y X = A C C G T A A T C G A C G Y = A C G A T T G C A C T G LCS(X,Y) = ACGTTGACG (or ACGTTCACG …)

23 [Prerequisite] The LCS problem Input: strings X = x1 , x2 , … , xn and Y = y1 , y2 , … , ym Output: (the length of) a longest common subsequence of X and Y So we have valid solution = common subsequence profit = length of the subsequence (to be maximized)

24 LCS: structure what are the choices that need to be made?
[Prerequisite] LCS: structure what are the choices that need to be made? what are the subproblems that remain? do we have optimal substructure? first choice: is last character of X matched to last character of Y? or is last character of X or Y unmatched? greedy choice? overlapping subproblems? x1 x xn optimal solution X = A C C G T A A T C G A C G Y = A C G A T T G C A C T G LCS for x1…xn-1 and y1…ym-1 so: optimal substructure y1 y ym

25 5 steps to Dynamic Programming
[Prerequisite] 5 steps to Dynamic Programming define subproblems guess first choice give recurrence for the value of an optimal solution algorithm: fill in table for m [..] in suitable order (or recurse & memoize) solve original problem

26 LCS: recurrence give recurrence for the value of an optimal solution
[Prerequisite] LCS: recurrence give recurrence for the value of an optimal solution define subproblem in terms of a few parameters Find LCS of Xi := x1 … xi and Yj := y1 … yj , for parameters i, j with 0 ≤ i ≤ n and 0 ≤ j ≤ m ? define variable c [..] = value of optimal solution for subproblem c [i,j] = length of LCS of Xi and Yj give recursive formula for c [..] X0 is empty string

27 LCS: recurrence give recursive formula for c [..]
[Prerequisite] LCS: recurrence give recursive formula for c [..] Xi := x1 … xi and Yj := y1 … yj , for 0 ≤ i ≤ n and 0 ≤ j ≤ m we want recursive formula for c [i,j] = length of LCS of Xi and Yj x1 x xn X = A C C G T A A T C G A C G Y = A C G A T T G C A C T G y1 y ym Lemma: c [i,j] = if i = 0 or j = 0 if i,j > 0 and xi = yj if i,j > 0 and xi ≠ yj c[i-1,j-1] + 1 max { c[i-1,j], c[i,j-1] }

28 5 steps to Dynamic Programming
[Prerequisite] 5 steps to Dynamic Programming define subproblems guess first choice give recurrence for the value of an optimal solution algorithm: fill in table for m [..] in suitable order (or recurse & memoize) solve original problem

29 LCS: algorithm Fill table for c [..] in suitable order
[Prerequisite] LCS: algorithm Fill table for c [..] in suitable order c [i,j] = if i = 0 or j = 0 c[i-1,j-1] + 1 if i,j > 0 and xi = yj max { c[i-1,j], c[i,j-1] } if i,j > 0 and xi ≠ yj j m solution to original problem i n

30 LCS: algorithm Fill table for c [..] in suitable order
[Prerequisite] LCS: algorithm Fill table for c [..] in suitable order LCS-Length(X[1..n],Y[1..m]) for i ← 0 to n do c[i,0] ← 0 for j ← 0 to m do c[0,j] ← 0 for i ← 1 to n do for j ← 1 to m do if X[i] = Y[j] then c[i,j] ← c[i-1,j-1] + 1 else c[i,j] ← max { c[i-1,j], c[i,j-1] } return c[n,m] c [i,j] = if i = 0 or j = 0 c[i-1,j-1] + 1 if i,j > 0 and xi = yj max { c[i-1,j], c[i,j-1] } if i,j > 0 and xi ≠ yj j m i n

31 LCS: time analysis LCS-Length(X[1..n],Y[1..m])
[Prerequisite] LCS: time analysis LCS-Length(X[1..n],Y[1..m]) for i ← 0 to n do c[i,0] ← 0 for j ← 0 to m do c[0,j] ← 0 for i ← 1 to n do for j ← 1 to m do if X[i] = Y[j] then c[i,j] ← c[i-1,j-1] + 1 else c[i,j] ← max { c[i-1,j], c[i,j-1] } return c[n,m] Θ(n) Θ(m) Θ(1) Lines 4 – 8: ∑1≤i≤n ∑1≤j≤m Θ(1) = Θ(nm)

32 5 steps to Dynamic Programming
[Prerequisite] 5 steps to Dynamic Programming define subproblems guess first choice give recurrence for the value of an optimal solution algorithm: fill in table for m [..] in suitable order (or recurse & memoize) solve original problem Approaches for going from optimum value to optimum solution: store choices that led to optimum retrace/deduce sequence of solutions that led to optimum backwards

33 Calculating DTW Each warping path w can be found using dynamic programming to evaluate the following recurrence: where γ(i, j) is the cumulative distance of the distance d(i, j) and its minimum cumulative distance among the adjacent cells . (i-1, j) (i, j-1) (i, j) (i-1, j-1)

34 Incorporating time If we also want to consider temporal similarity
Combine space+time for point-to-point distance Make sure of “sensible scale”... Limit warping to points with similar time stamp Also useful for other measures in this lecture

35 Incorporating time If we also want to consider temporal similarity
Combine space+time for point-to-point distance Make sure of “sensible scale”... Limit warping to points with similar time stamp Also useful for other measures in this lecture Sakoe-Chiba Band Itakura Parallelogram

36 Aligning sequences Input: Two polygonal curves P and Q in Rd
Some interesting measures are: Dynamic Time Warping (DTW) Longest Common Subsequence (LCSS) Model-Driven matching (MDM) Often work well Drawback: non-metrics (triangle inequality does not hold) Makes clustering complicated

37 Fréchet distance Fréchet distance measures the similarity of two curves Analogy Person is walking his dog (person on one curve, dog on other) Can vary their speeds but cannot go back! Fréchet distance: minimal leash length necessary for both to walk the curves from beginning to end

38 Fréchet distance Fréchet distance measures the similarity of two curves Analogy Person is walking his dog (person on one curve, dog on other) Can vary their speeds but cannot go back! Fréchet distance: minimal leash length necessary for both to walk the curves from beginning to end

39 Fréchet distance Input: polygonal lines P=p1, … , pn and Q=q1, … , qm in Rd The Fréchet distance between P and Q is: where  and  range over all continuous non-decreasing reparametrizations with (0)=p1, (1)=pn, (0)=q1 and (1)=qm. 𝛿 𝐹 (P,Q) = inf 𝛼:[0,1]→𝑃 𝛽:[0,1]→𝑄 max 𝑡 ∈[0,1] |𝑃(𝛼 𝑡 )−𝑄(𝛽 𝑡 )| reparamterized monotonous curve

40 Discrete Fréchet distance
The discrete Fréchet distance uses “jumps” from vertex to vertex; the interior of an edge is never used in measurements. Recurrence: reparamterized monotonous curve May give large errors!

41 Fréchet distance: analysis
Input: polygonal lines P=p1, … , pn and Q=q1, … , qm in Rd Decision problem: F(P, Q) ≤ r ? P P Q Q

42 Fréchet distance: analysis
Input: polygonal lines P=p1, … , pn and Q=q1, … , qm in Rd Decision problem: F(P, Q) ≤ r ? P P Q Q

43 Fréchet distance: analysis
Input: polygonal lines P=p1, … , pn and Q=q1, … , qm in Rd Decision problem: F(P, Q) ≤ r ? P P Q Q

44 Fréchet distance: analysis
Input: polygonal lines P=p1, … , pn and Q=q1, … , qm in Rd Decision problem: F(P, Q) ≤ r ? r P P Q Q

45 Fréchet distance: analysis
Input: polygonal lines P=p1, … , pn and Q=q1, … , qm in Rd Decision problem: F(P, Q) ≤ r ? P P Q Q

46 Fréchet distance: analysis
Input: polygonal lines P=p1, … , pn and Q=q1, … , qm in Rd Decision problem: F(P, Q) ≤ r ? P r P Q Q

47 Fréchet distance: analysis
Input: polygonal lines P=p1, … , pn and Q=q1, … , qm in Rd Decision problem: F(P, Q) ≤ r ? P P Q Q

48 Fréchet distance: analysis
Input: polygonal lines P=p1, … , pn and Q=q1, … , qm in Rd Decision problem: F(P, Q) ≤ r ? P P Q Q

49 Fréchet distance: analysis
Input: polygonal lines P=p1, … , pn and Q=q1, … , qm in Rd Decision problem: F(P, Q) ≤ r ? P P Q Q

50 Fréchet distance: analysis
Input: polygonal lines P=p1, … , pn and Q=q1, … , qm in Rd Decision problem: F(P, Q) ≤ r ? P P Q Q

51 Fréchet distance: analysis
Input: polygonal lines P=p1, … , pn and Q=q1, … , qm in Rd Decision problem: F(P, Q) ≤ r ? P P Q Q

52 Fréchet distance: analysis
Input: polygonal lines P=p1, … , pn and Q=q1, … , qm in Rd Decision problem: F(P, Q) ≤ r ? P P Q Q

53 Fréchet distance: analysis
Input: polygonal lines P=p1, … , pn and Q=q1, … , qm in Rd Decision problem: F(P, Q) ≤ r ? P P Q Q

54 Fréchet distance: analysis
Input: polygonal lines P=p1, … , pn and Q=q1, … , qm in Rd Decision problem: F(P, Q) ≤ r ? P P Q Q

55 Fréchet distance: analysis
Input: polygonal lines P=p1, … , pn and Q=q1, … , qm in Rd Decision problem: F(P, Q) ≤ r ? P P Q Q

56 Fréchet distance: analysis
Input: polygonal lines P=p1, … , pn and Q=q1, … , qm in Rd Decision problem: F(P, Q) ≤ r ? Free-space diagram of P and Q free space P Q

57 Fréchet distance: analysis
Input: polygonal lines P=p1, … , pn and Q=q1, … , qm in Rd Decision problem: F(P, Q) ≤ r ? How do we find a reparametrization between P and Q that realizes the Fréchet distance r? P Q

58 Fréchet distance: analysis
Input: polygonal lines P=p1, … , pn and Q=q1, … , qm in Rd Decision problem: F(P, Q) ≤ r ? How do we find a reparametrization between P and Q that realizes the Fréchet distance r? Recall that it has to be continuous, non-decreasing, q1  p1 and qm  pn P Q

59 Fréchet distance: analysis
q1  p1 P Q

60 Fréchet distance: analysis
q1  p1 qm  pn P Q

61 Fréchet distance: analysis
q1  p1 qm  pn must lie in the free space Not valid! P Q

62 Fréchet distance: analysis
q1  p1 qm  pn must lie in the free space continuous P Q

63 Fréchet distance: analysis
q1  p1 qm  pn must lie in the free space continuous non-decreasing: monotone in x- and y-direction P Q

64 Fréchet distance: analysis
q1  p1 qm  pn must lie in the free space continuous non-decreasing: monotone in x- and y-direction A monotone path exists in the free space from the bottom-left to the top-right corner of the diagram, if and only if the Fréchet distance is at most r P Q

65 Free-space diagram r Decision version
Is the Fréchet distance between two paths at most r? P P for each edge in the graph let Q r Q

66 Free-space diagram A monotone path exists in the free space from the bottom-left to the top-right corner of the diagram, if and only if the Fréchet distance is at most r (q1,p1) (qm,pn) P Q P Q r

67 Free-space diagram A monotone path exists in the free space from the bottom-left to the top-right corner of the diagram, if and only if the Fréchet distance is at most r (q1,p1) (qm,pn) P Q P Q r

68 Free-space diagram A monotone path exists in the free space from the bottom-left to the top-right corner of the diagram, if and only if the Fréchet distance is at most r (q1,p1) (qm,pn) P Q P Q r

69 Free-space diagram A monotone path exists in the free space from the bottom-left to the top-right corner of the diagram, if and only if the Fréchet distance is at most r (q1,p1) (qm,pn) P Q P Q r

70 Free-space diagram A monotone path exists in the free space from the bottom-left to the top-right corner of the diagram, if and only if the Fréchet distance is at most r (q1,p1) (qm,pn) P Q P Q r

71 Free-space diagram A monotone path exists in the free space from the bottom-left to the top-right corner of the diagram, if and only if the Fréchet distance is at most r (q1,p1) (qm,pn) P Q P Q r

72 Free-space diagram A monotone path exists in the free space from the bottom-left to the top-right corner of the diagram, if and only if the Fréchet distance is at most r (q1,p1) (qm,pn) P Q P Q r

73 Free-space diagram A monotone path exists in the free space from the bottom-left to the top-right corner of the diagram, if and only if the Fréchet distance is at most r (q1,p1) (qm,pn) P Q P Q r

74 Free-space diagram A monotone path exists in the free space from the bottom-left to the top-right corner of the diagram, if and only if the Fréchet distance is at most r (q1,p1) (qm,pn) P Q P Q r

75 Fréchet distance: decision algorithm
Compute free-space diagram in O(mn) time

76 Computing the free-space diagram
One cell can be constructed in O(1) time Free space is a cell is convex (ellipsoid) Square and ellipsoid intersect in at most 8 (critical) points

77 Computing the free-space diagram
One cell can be constructed in O(1) time Free space is a cell is convex (ellipsoid) Square and ellipsoid intersect in at most 8 (critical) points We need only these critical points Q P P Q

78 Computing the free-space diagram
One cell can be constructed in O(1) time Free space is a cell is convex (ellipsoid) Square and ellipsoid intersect in at most 8 (critical) points We need only these critical points P P Q Q

79 Computing the free-space diagram
One cell can be constructed in O(1) time Free space is a cell is convex (ellipsoid) Square and ellipsoid intersect in at most 8 (critical) points We need only these critical points P P Q Q

80 Computing the free-space diagram
One cell can be constructed in O(1) time Free space is a cell is convex (ellipsoid) Square and ellipsoid intersect in at most 8 (critical) points We need only these critical points P P Q Q

81 Computing the free-space diagram
One cell can be constructed in O(1) time Free space is a cell is convex (ellipsoid) Square and ellipsoid intersect in at most 8 (critical) points We need only these critical points P P Q Q

82 Computing the free-space diagram
One cell can be constructed in O(1) time Free space is a cell is convex (ellipsoid) Square and ellipsoid intersect in at most 8 (critical) points We need only these critical points P P Q Q

83 Fréchet distance: decision algorithm
Compute free-space diagram in O(mn) time

84 Fréchet distance: decision algorithm
Compute free-space diagram in O(mn) time Compute a monotone path from (q1,p1) to (qm,pn) in O(mn) time (q1,p1) (qm,pn) P Q

85 Computing a monotone path
Per cell boundary Find the earliest reachable point that can be reached with a monotone path from (q1,p1) This must lie in the free space For reaching the right side (top is analogous) If we can reach the bottom side, we can reach all free space on the right side If we can reach the left side, we can reach free space on the right side that is at least as high If left is reachable, the right side may not be, even if it has free space!

86 Computing a monotone path
Per boundary Find the earliest reachable point that can be reached with an non-xy-decreasing path from (q1,p1) This must lie in the free space (q1,p1) (qm,pn) P Q

87 Computing a monotone path
A non-xy-decreasing path in the free space exists if the last cell’s boundary is reachable and |qm - pn|  r (q1,p1) (qm,pn) P Q

88 Fréchet distance: decision algorithm
Compute free-space diagram in O(mn) time Compute a monotone path from (q1,p1) to (qm,pn) in O(mn) time Theorem: Given two polygonal curves P, Q and r  0, one can decide in O(mn) time, whether (P,Q)  r.

89 Compute the Fréchet distance
Theorem: Given two polygonal curves P, Q and r  0, one can decide in O(mn) time, whether (P,Q)  r. How can we use the algorithm to compute the Fréchet distance? Assume r = 0 and then let r grow. The free space will only extend Once there is a monotone path, there will always be one We can do binary search on r? In practice: determine r bit by bit  O(mn log “accuracy”) time Can we get exact computation?

90 Compute the Fréchet distance
Aim: Determine the smallest r such that the free-space diagram contains a monotone path from (q1,p1) to (qm,pn) This minimal r must coincide with one of the three critical events

91 Critical events r is minimal with (q1,p1) and (qm,pn) in the free space Case 1 is easy to test in constant time

92 Critical events r is minimal with (q1,p1) and (qm,pn) in the free space r is minimal when a new vertical or horizontal passage opens up between two adjacent cells in the free space Case 1 is easy to test in constant time Case 2:

93 Critical events r is minimal with (q1,p1) and (qm,pn) in the free space r is minimal when a new vertical or horizontal passage opens up between two adjacent cells in the free space Case 1 is easy to test in constant time Case 2:

94 Critical events r is minimal with (q1,p1) and (qm,pn) in the free space r is minimal when a new vertical or horizontal passage opens up between two adjacent cells in the free space Case 1 is easy to test in constant time Case 2: Number of events?

95 Critical events r is minimal with (q1,p1) and (qm,pn) in the free space r is minimal when a new vertical or horizontal passage opens up between two adjacent cells in the free space Case 1 is easy to test in constant time Case 2: Number of events: O(mn)

96 Critical events r is minimal with (q1,p1) and (qm,pn) in the free space r is minimal when a new vertical or horizontal passage opens up between two adjacent cells in the free space r is minimal when a new vertical or horizontal passage opens up between two non-adjacent cells in the free space Case 1 is easy to test in constant time Case 2: O(mn) events Case 3:

97 Critical events r is minimal with (q1,p1) to (qm,pn) in the free space, r is minimal when a new vertical or horizontal passage opens up between two adjacent cells in the free space. r is minimal when a new vertical or horizontal passage opens up between two non-adjacent cells in the free space. Case 1 is easy to test in constant time. Case 2: O(mn) events Case 3:

98 Critical events r is minimal with (q1,p1) to (qm,pn) in the free space, r is minimal when a new vertical or horizontal passage opens up between two adjacent cells in the free space. r is minimal when a new vertical or horizontal passage opens up between two non-adjacent cells in the free space. Case 1 is easy to test in constant time. Case 2: O(mn) events Case 3: O(m2n+mn2) possible events

99 Compute the Fréchet distance
Case 1: easy to test in constant time Case 2: O(mn) possible events Case 3: O(m2n+mn2) possible events Binary search on the events  O((m2n+mn2) log mn) time

100 Compute the Fréchet distance
Case 1: easy to test in constant time Case 2: O(mn) possible events Case 3: O(m2n+mn2) possible events Binary search on the events  O((m2n+mn2) log mn) time Improvement: use parametric search [Meggido’83, Cole’88]  O(mn log mn) time

101 Parametric search The decision version F(r) of the Fréchet distance depends on the parameter r, and it is monotone in r Aim: Find minimum r such that F(r) is true Our algorithm As can decide F(r) in Ts=O(mn) time Meggido’83 and Cole’88 (simplified): If there exists a parallel algorithm Ap that can solve F(r) in Tp time using P processors then there exists a sequential algorithm with running time O(PTp+TpTs+Ts log P) For our problem we get (details are involved): O(mn log mn) time using a parallel sorting network [n processors and O(log n) time]

102 Fréchet distance Aligns the full geometry of the curves
Drawback: bottleneck measure Only the place of “worst match” (or “maximal leash length”) matters

103 Fréchet distance variants
Continuous and discrete (this lecture) Weak Fréchet distance (allow walking backwards) With shortcuts (allow avoiding parts of a curve) ...

104 Invariants Invariants describe that operations do not affect the measure Translation invariance Scale invariance Rotation invariance

105 Invariants Invariants describe that operations do not affect the measure Translation invariance Scale invariance Rotation invariance In this lecture, measures did not have invariants Which are relevant depends on application

106 Summary Many different similarity measures
Which is best depends on the application and the data We often use the Fréchet distance, or variants of it Theorem: Given two polygonal curves P, Q and r  0 one can decide in O(mn) time, whether (P,Q)  r Theorem: The Fréchet distance between two polygonal curves P and Q can be computed in O(mn log mn) time

107 Examples: previous MSc theses
Algorithms for comparing moving complex shapes, Tim Ophelders, 2014, results published at Europ. Symposium on Algorithms, computational complexity and algorithms for similarity between moving curves A novel algorithm for computing the Fréchet distance, Rolf van Leusden, 2013, results published at Europ. Symposium on Algorithms, avoids (parametric) search, O(mn) for specific metrics Detecting the moving-along pattern in trajectory data, Teng Li, 2012, about partial matches, for instance bird to coastline

108 References H. Alt and M. Godau. Computing the Fréchet distance between two polygonal curves. IJCGA, 1995.


Download ppt "2IMG15 Algorithms for Geographic Data"

Similar presentations


Ads by Google