Presentation is loading. Please wait.

Presentation is loading. Please wait.

Multiple-Source Shortest Paths in Planar Graphs Allowing Negative Lengths Philip Klein Brown University.

Similar presentations


Presentation on theme: "Multiple-Source Shortest Paths in Planar Graphs Allowing Negative Lengths Philip Klein Brown University."— Presentation transcript:

1 Multiple-Source Shortest Paths in Planar Graphs Allowing Negative Lengths Philip Klein Brown University

2 Main Result For plane graph with boundary r 1,…,r s, O(n log n) algorithm to find all shortest- path trees rooted at the r i ’s.

3 Main Result For plane graph with boundary r 1,…,r s, O(n log n) algorithm to find * all shortest- path trees rooted at the r i ’s. * implicit representation

4 Main Result For plane graph with boundary r 1,…,r s, O(n log n) algorithm to find * all shortest- path trees rooted at the r i ’s. * implicit representation –Negative lengths are ok

5 Main Result For plane graph with boundary r 1,…,r s, O(n log n) algorithm to find * all shortest- path trees rooted at the r i ’s. * implicit representation –Negative lengths are ok –Given k source-sink pairs (where each source is an r i ), can find corresponding distances in O((n + k) log n) time

6 Some Applications Single-source shortest-path tree in planar graph with some negative lengths: O(n log n). Previous bound: O(n log 3 n) [Fakcharoenphol, Rao] –Testing feasibility of planar flow with multiple sources and sinks, and upper and lower capacities: O(n log n). –Finding a minimum ratio cut in a planar graph (used in, e.g., segmentation of images [Cox, Rao, Zhong]): O(n log n log CW) where C = sum of costs, W = sum of weights.

7 Some Applications Preprocessing a planar graph to admit O*( )-time exact distance queries: O(n log 2 n). Previous bound [Fakch., Rao]: O(n log 3 n) Preprocessing undirected planar graph to admit O(ε -1 )-time approx. distance queries: O(ε -1 n log 2 n). Previous bound [Thorup]: O(ε -2 n log 3 n) (similar improvement for directed graphs) Slightly faster dynamic algorithms for planar-graph distances (improving on [Fakch., Rao])

8 Previous Work [Lipton, Rose, Tarjan, 1979]:O(n 1.5 ) [Henzinger, Klein, Rao, Subramanian, 1997]: O(n 4/3 log (nL)) [Fakcharoenphol, Rao, 2001]: O(n log 3 n) Single-source shortest paths in planar graphs with negative lengths:

9 Previous Work Multiple-source shortest paths in planar graphs: [Schmidt, 1995]: For special case of n-node grid DAG, after O(n log n) preprocessing, can find distance from any node in column 0 to any other node in O(log n) time.

10 Talk Overview Analysis technique: O(n) representation of multiple-source shortest-path trees Shortest-path-update technique: represent partial solution by spanning tree, not by distance labeling. Unrelaxed-edge-selection technique: use dynamic tree in planar dual Partial-solution-tree property: Each path P in tree is the shortest path to the right of P.

11 Nodes along boundary of graph Analysis Technique

12 Fix a node at v Analysis Technique

13 Shortest paths to v don’t cross Analysis Technique

14 For each edge entering v, paths using the edge start from consecutive r i ’s. Analysis Technique

15 As we iterate through nodes r 1,…,r s, edge used to reach v rarely changes: Number of changes ≤ indegree(v) Analysis Technique

16 As we iterate through nodes r 1,…,r s, edge used to reach v rarely changes: Number of changes ≤ indegree(v) Analysis Technique

17 As we iterate through nodes r 1,…,r s, edge used to reach v rarely changes: Number of changes ≤ indegree(v) Analysis Technique

18 As we iterate through nodes r 1,…,r s, edge used to reach v rarely changes: Number of changes ≤ indegree(v) Analysis Technique

19 As we iterate through nodes r 1,…,r s, edge used to reach v rarely changes: Number of changes ≤ indegree(v) Analysis Technique

20 As we iterate through nodes r 1,…,r s, edge used to reach v rarely changes: Number of changes ≤ indegree(v) Analysis Technique

21 As we iterate through nodes r 1,…,r s, edge used to reach v rarely changes: Number of changes ≤ indegree(v) Analysis Technique

22 As we iterate through nodes r 1,…,r s, edge used to reach v rarely changes: Number of changes ≤ indegree(v) Analysis Technique

23 As we iterate through nodes r 1,…,r s, edge used to reach v rarely changes: Number of changes ≤ indegree(v) Analysis Technique

24 As we iterate through nodes r 1,…,r s, edge used to reach v rarely changes: Number of changes ≤ indegree(v) Analysis Technique

25 Now consider shortest-path trees from r 1,…,r s. Analysis Technique

26 Number of changes as we iterate through r i ’s is: indegree(v) Analysis Technique

27 Number of changes as we iterate through r i ’s is: indegree(v), which is number of edges Analysis Technique

28 Traditional Shortest-path Algorithm Maintains an assignment d(.) of distance estimates to nodes An edge uv is unrelaxed if d(u) + len(uv) < d(v)

29 Traditional Shortest-path Algorithm Maintains an assignment d(.) of distance estimates to nodes An edge uv is unrelaxed if d(u) + len(uv) < d(v) Length of a path from root to v through relaxed edges is at least d(v). To get shorter path to v, need to use at least one unrelaxed edge.

30 Traditional Shortest-path Algorithm Maintains an assignment d(.) of distance estimates to nodes An edge uv is unrelaxed if d(u) + len(uv) < d(v) Relaxing edge uv means assigning d(u) + len(uv) to d(v)

31 Traditional Shortest-path Algorithm Maintains an assignment d(.) of distance estimates to nodes An edge uv is unrelaxed if d(u) + len(uv) < d(v) Relaxing edge uv means assigning d(u) + len(uv) to d(v)

32 Traditional Shortest-path Algorithm Maintains an assignment d(.) of distance estimates to nodes An edge uv is unrelaxed if d(u) + len(uv) < d(v) Relaxing edge uv means assigning d(u) + len(uv) to d(v) After this assignment, uv is relaxed but edges vw out of v might now be unrelaxed. Updates to d(.) propagate slowly

33 Traditional Shortest-path Algorithm Maintains an assignment d(.) of distance estimates to nodes An edge uv is unrelaxed if d(u) + len(uv) < d(v) Relaxing edge uv means assigning d(u) + len(uv) to d(v) After this assignment, uv is relaxed but edges vw out of v might now be unrelaxed. Updates to d(.) propagate slowly

34 New Approach Maintain a tentative shortest- path tree T rooted at r Each node except r has a parent edge in T Tree defines an assignment d T (.): d T (v) = length of r-to-v path in T An edge uv is unrelaxed if d T (u) + len(uv) < d T (v) Relaxing an edge uv means replacing v’s parent edge in T with uv Values of d T (.) automatically updated

35 New Approach Maintain a tentative shortest- path tree T rooted at r Each node except r has a parent edge in T Tree defines an assignment d T (.): d T (v) = length of r-to-v path in T An edge uv is unrelaxed if d T (u) + len(uv) < d T (v) Relaxing an edge uv means replacing v’s parent edge in T with uv Values of d T (.) automatically updated

36 Generic Single-Source Algorithm Start with some tree rooted at r. Repeat select an unrelaxed edge relax it Until none exist Questions: –Which tree to start with? –How to find an unrelaxed edge? –How much time is required?

37 Generic Single-Source Algorithm Start with some tree rooted at r. Repeat select an unrelaxed edge relax it Until none exist Questions: –Which tree to start with? –How to select an unrelaxed edge? –How much time is required?

38 Questions for Single-source Algorithm: A Preview How to select an unrelaxed edge? –“Leafmost” unrelaxed edge in dual spanning tree –Use a dynamic tree to represent dual spanning tree: O(log n) amortized time per relaxation step Which tree to start with? –Rightmost-search tree How much time required? –Specify invariant that guarantees O(n) relaxation steps

39 Planar Dual Every planar embedded graph has a dual graph: –Dual nodes = primal faces –Dual edge cross primal edges

40 Planar Dual Every planar embedded graph has a dual graph: –Dual nodes = primal faces –Dual edge cross primal edges For any primal spanning tree T

41 Planar Dual Every planar embedded graph has a dual graph: –Dual nodes = primal faces –Dual edge cross primal edges For any primal spanning tree T, duals of edges not in T form a dual spanning tree T*

42 Planar Dual Every planar embedded graph has a dual graph: –Dual nodes = primal faces –Dual edge cross primal edges For any primal spanning tree T, duals of edges not in T form a dual spanning tree T*

43 Planar Dual Every planar embedded graph has a dual graph: –Dual nodes = primal faces –Dual edge cross primal edges For any primal spanning tree T, duals of edges not in T form a dual spanning tree T*

44 Dual spanning tree T*, rooted at infinite face How to Select an Unrelaxed Edge

45 Dual spanning tree T*, rooted at infinite face

46 How to Select an Unrelaxed Edge Dual spanning tree T*, rooted at infinite face Choose a ‘leafmost’ unrelaxed edge (unrelaxed edge with no descendant unrelaxed edge)

47 Choosing Unrelaxed Edge: Implementation Use a dynamic tree data structure [Sleator, Tarjan] to represent the dual tree T*. O(log n) time per operation Structure Operations : –Cut an edge, breaking a tree into two –Join two trees, making the root of one into a child of some node of the other –Evert a tree, changing its root

48 Choosing Unrelaxed Edge: Implementation Use a dynamic tree data structure [Sleator, Tarjan] to represent the dual tree T*. O(log n) time per operation Structure Operations : –Cut an edge, breaking a tree into two –Join two trees, making the root of one into a child of some node of the other –Evert a tree, changing its root

49 Choosing Unrelaxed Edge: Implementation Use a dynamic tree data structure [Sleator, Tarjan] to represent the dual tree T*. O(log n) time per operation Structure Operations : –Cut an edge, breaking a tree into two –Join two trees, making the root of one into a child of some node of the other –Evert a tree, changing its root

50 Choosing Unrelaxed Edge: Implementation Dynamic tree implicitly represents assignments of costs to nodes Cost operations : –search a v-to-root path for the minimum-cost node –add a number Δ to costs of all nodes in a v-to-root path We need some new features…

51 Choosing Unrelaxed Edge Using Dynamic Tree For each non-tree primal edge uv, define σ(uv) = d T (u) + len(uv) – d T (v) Measure of how relaxed the edge is. Unrelaxed edges have negative σ values

52 Choosing Unrelaxed Edge Using Dynamic Tree For each non-tree primal edge uv, define σ(uv) = d T (u) + len(uv) – d T (v) Measure of how relaxed the edge is. Unrelaxed edges have negative σ values Dual edges: same σ values as primal edges

53 Choosing Unrelaxed Edge Using Dynamic Tree For each non-tree primal edge uv, define σ(uv) = d T (u) + len(uv) – d T (v) Measure of how relaxed the edge is. Unrelaxed edges have negative σ values Dual edges: same σ values as primal edges Use dynamic tree to represent dual tree F –Dynamic tree implicitly represents σ values –Modify dynamic tree to support O(log n) search for a leafmost edge with negative σ value. –Can update σ values in O(log n) time after relaxation step….

54 Modification of σ Values in Dual Tree Relaxing edge wv reduces the value of d T (.) by -σ(wv) for v and v’s descendents in T. Replace v’s parent edge uv in T with wv.

55 Modification of σ Values in Dual Tree Relaxing edge wv reduces the value of d T (.) by -σ(wv) for v and v’s descendents in T. Replace v’s parent edge uv in T with wv.

56 Modification of σ Values in Dual Tree Relaxing edge wv reduces the value of d T (.) by -σ(wv) for v and v’s descendents in T. Replace v’s parent edge uv in T with wv.

57 Modification of σ Values in Dual Tree Relaxing edge wv reduces the value of d T (.) by -σ(wv) for v and v’s descendents in T. Replace v’s parent edge uv in T with wv.

58 Modification of σ Values in Dual Tree Relaxing edge wv reduces the value of d T (.) by -σ(wv) for v and v’s descendents in T. Replace v’s parent edge uv in T with wv.

59 Modification of σ Values in Dual Tree Relaxing edge wv reduces the value of d T (.) by -σ(wv) for v and v’s descendents in T. Replace v’s parent edge uv in T with wv.

60 Modification of σ Values in Dual Tree Relaxing edge wv reduces the value of d T (.) by -σ(wv) for v and v’s descendents in T. Replace v’s parent edge uv in T with wv. Let xy := dual edge corresp. to uv

61 Modification of σ Values in Dual Tree Relaxing edge wv reduces the value of d T (.) by -σ(wv) for v and v’s descendents in T. Replace v’s parent edge uv in T with wv. Let xy := dual edge corresp. to uv

62 Modification of σ Values in Dual Tree Relaxing edge wv reduces the value of d T (.) by -σ(wv) for v and v’s descendents in T. Replace v’s parent edge uv in T with wv. Let xy := dual edge corresp. to uv Must change σ values along x-to-y path

63 Modification of σ Values in Dual Tree Orientation of dual edges reflect orientation of primal edges

64 Modification of σ Values in Dual Tree Orientation of dual edges reflect orientation of primal edges Keep track of orientation of dual edges in dual spanning tree

65 Modification of σ Values in Dual Tree Define dynamic-tree operation: Given a node v and a number Δ, changeValue(v,Δ) changes the σ values of all edges e on the v-to-root path: Δ if e points towards root - Δ if e points away from root

66 Modification of σ Values in Dual Tree Define dynamic-tree operation: Given a node v and a number Δ, changeValue(v,Δ) changes the σ values of all edges e on the v-to-root path: To modify σ values in dual tree:  Set Δ = σ(wv)  Call: changeValue(x, Δ) changeValue(y, -Δ) Δ if e points towards root - Δ if e points away from root

67 Structural Changes in Dual Tree After modifying σ values, use cut, evert, and join to change dual tree when relaxing an edge.

68 Structural Changes in Dual Tree After modifying σ values, use cut, evert, and join to change dual tree when relaxing an edge.

69 Structural Changes in Dual Tree After modifying σ values, use cut, evert, and join to change dual tree when relaxing an edge.

70 Structural Changes in Dual Tree After modifying σ values, use cut, evert, and join to change dual tree when relaxing an edge.

71 Single-Source Algorithm Start with some tree rooted at r. Repeat select a leafmost unrelaxed edge relax it until none exist Questions: Which tree to start with? (Later.) How to find a leafmost edge? Use the dual dynamic tree. How to bound time required? Each relaxation requires amortized O(log n) time. Need to bound number of relaxations.

72 Single-Source Algorithm Start with some tree rooted at r. Repeat select a leafmost unrelaxed edge relax it until none exist Questions: Which tree to start with? (Later.) How to find a leafmost edge? Use the dual dynamic tree. How to bound time required? Each relaxation requires amortized O(log n) time. Need to bound number of relaxations. Theorem: Each edge is relaxed at most once. (Proof later)

73 Notation: T[v] For a tree T and a node v, T[v] denotes the root-to-v path in T.

74 The “More Left Than” Partial Order on s-to-t paths For a nodes s and t, we can define what it means for one s-to-t path to be more left than another. (Definition omitted – comes from Weihe]) Implies paths don’t cross.

75 The “More Left Than” Partial Order on r-rooted Trees Given two trees T L and T R, both rooted at r, we say T L is to the left of T R if, for every node v, the r-to-v path T L [v] is to the left of the r-to-v path T R [v].

76 Right-First Search [Ripphausen-Lipa, Wagner, Weihe] Depth-first search where you explore outgoing edges from right to left.

77 Right-First Search [Ripphausen-Lipa, Wagner, Weihe] Depth-first search where you explore outgoing edges from right to left.

78 Right-First Search [Ripphausen-Lipa, Wagner, Weihe] Depth-first search where you explore outgoing edges from right to left. The right-first search tree T has the following property: For any node v, the path T[v] is the rightmost root-to-v path.

79 Single-Source Algorithm Start with right-first search tree Repeat select a leafmost unrelaxed edge relax it until none exist Questions: Which tree to start with? (Rightmost-search tree) How to find a leafmost edge? Use the dual dynamic tree. How to bound time required? Each relaxation requires amortized O(log n) time. Need to bound number of relaxations. Theorem: Each edge is relaxed at most once. (Proof…)

80 Analysis of Single-Source Algorithm Get a sequence T 0, T 1, T 2, … of trees. To show: Each tree T i+1 is to the left of previous tree T i. Hence, for each node v, each path T i+1 [v] is to the left of the previous path T i [v].

81 Analysis of Single-Source Algorithm Get a sequence T 0, T 1, T 2, … of trees. To show: Each tree T i+1 is to the left of previous tree T i. Hence, for each node v, each path T i+1 [v] is to the left of the previous path T i [v]. Hence these paths use edges entering v in clockwise order. Use analysis technique outlined at start of talk.

82 Invariant We say a tree T is right-short if, for every node v, T[v] is the unique shortest root-to-v path that is to the right of T[v].

83 Invariant We say a tree T is right-short if, for every node v, T[v] is the unique shortest root-to-v path that is to the right of T[v].

84 Invariant We say a tree T is right-short if, for every node v, T[v] is the unique shortest root-to-v path that is to the right of T[v]. A right-first search tree is trivially right-short.

85 Invariant We say a tree T is right-short if, for every node v, T[v] is the unique shortest root-to-v path that is to the right of T[v]. A right-first search tree is trivially right-short. Theorem: Suppose T is right-short and T’ is obtained from T by relaxing a leafmost unrelaxed edge. Then T’ is right-short and is to the left of T.

86 Consider an unrelaxed edge xy. Suppose the path T[x] ◦ xy is to the right of T[y]. xy is unrelaxed => T[x] ◦ xy is shorter than T[y]. T[y] is not the shortest path to the right of T[y]. T is not right-short.

87 Consider an unrelaxed edge xy. Suppose the path T[x] ◦ xy is to the right of T[y]. Lemma 1: If T is right-short and xy is unrelaxed then T[x] ◦ xy is to the left of T[y]. xy is unrelaxed => T[x] ◦ xy is shorter than T[y]. T[y] is not the shortest path to the right of T[y]. T is not right-short.

88 Theorem: Suppose T is right-short and T’ is obtained from T by relaxing a leafmost unrelaxed edge xy. Then T’ is (1) to the left of T and is (2) right-short. Proof: (1) Use Lemma 1 to show that T’ is to the left of T…

89 Theorem: Suppose T is right-short and T’ is obtained from T by relaxing a leafmost unrelaxed edge xy. Then T’ is (1) right-short and is (2) to the left of T. Proof: Edge xy forms a cycle with the tree.

90 Theorem: Suppose T is right-short and T’ is obtained from T by relaxing a leafmost unrelaxed edge xy. Then T’ is right-short and is to the left of T. Proof: Edge xy forms a cycle with the tree. Cycle encloses a region R containing no unrelaxed edges (since xy was leafmost unrelaxed edge).

91 Theorem: Suppose T is right-short and T’ is obtained from T by relaxing a leafmost unrelaxed edge xy. Then T’ is right-short and is to the left of T. Proof: Assume that T’ is not right-short.

92 Theorem: Suppose T is right-short and T’ is obtained from T by relaxing a leafmost unrelaxed edge xy. Then T’ is right-short and is to the left of T. Proof: Assume that T’ is not right-short. Then, for some node v, some path P to the right of T’ [v] is no longer than T’ [v].

93 Theorem: Suppose T is right-short and T’ is obtained from T by relaxing a leafmost unrelaxed edge xy. Then T’ is right-short and is to the left of T. Proof: Assume that T’ is not right-short. Then, for some node v, some path P to the right of T’[v] is no longer than T’[v]. Hence P shorter than T[v]. But P can’t be shorter by going to the right of T[v] (would violate right-shortness of T)

94 Theorem: Suppose T is right-short and T’ is obtained from T by relaxing a leafmost unrelaxed edge xy. Then T’ is right-short and is to the left of T. Proof: Assume that T’ is not right-short. Then, for some node v, some path P to the right of T’[v] is no longer than T’[v]. Hence P shorter than T[v]. But P can’t be shorter by going to the right of T[v] (would violate right-shortness of T) And P can’t be shorter by using an unrelaxed edge inside R (no such edge)

95 Theorem: Suppose T is right-short and T’ is obtained from T by relaxing a leafmost unrelaxed edge xy. Then T’ is right-short and is to the left of T. Proof: Assume that T’ is not right-short. Then, for some node v, some path P to the right of T’[v] is no longer than T’[v]. Hence P shorter than T[v]. But P can’t be shorter by going to the right of T[v] (would violate right-shortness of T) And P can’t be shorter by using an unrelaxed edge inside R (no such edge)

96 Theorem: Suppose T is right-short and T’ is obtained from T by relaxing a leafmost unrelaxed edge xy. Then T’ is right-short and is to the left of T. Proof: Assume that T’ is not right-short. Then, for some node v, some path P to the right of T’[v] is no longer than T’[v]. Hence P shorter than T[v]. But P can’t be shorter by going to the right of T[v] (would violate right-shortness of T) And P can’t be shorter by using an unrelaxed edge inside R (no such edge) Contradiction. Q.E.D.

97 Multiple-Source Algorithm Order the nodes r 1,r 2,…,r 10 clockwise around graph. Add ∞-cost edges from r 10  r 9,…, r 3  r 2,r 2  r 1 Start with some tree rooted at r 1 For i = 1,2,… Repeat select a leafmost unrelaxed edge relax it Until no unrelaxed edges remain Go from r i -rooted tree to r i+1 -rooted tree by adding edge r i+1  r i

98 Analysis of Multiple- Source Algorithm Go from r i -rooted tree to r i+1 -rooted tree by adding edge r i+1  r i 1.Must show tree remains right-short. 2.Must show same analysis technique applies to entire sequence of trees.

99 Multiple-Source Algorithm Start with some tree rooted at r 1 For i = 1,2,… Repeat find a leafmost unrelaxed edge relax it Until no unrelaxed edges remain Go from r i -rooted tree to r i+1 -rooted tree by adding edge r i+1  r i How to find distances?

100 How to Find Distances (in Multiple Source Algorithm) Start with some tree rooted at r 1 For i = 1,2,… Repeat find a leafmost unrelaxed edge relax it Until no unrelaxed edges remain Go from r i -rooted tree to r i+1 -rooted tree by adding edge r i+1  r i Idea: use dynamic tree to represent tentative shortest-path tree T. To relax vw is to cut the current parent edge uv, and then join the trees using vw. O(log n) time Can query a node v to find sum of costs on root-to-v path. O(log n) time At the end of iteration I of the for-loop, can query for distances from r i. Amortized time for total of k queries: O(k log n)

101 Conclusion Conceptually simple algorithm (details in the data structure!) Analysis technique might be more generally applicable Can we compute arbitrary source-to-sink distances in O(log n) time per distance?


Download ppt "Multiple-Source Shortest Paths in Planar Graphs Allowing Negative Lengths Philip Klein Brown University."

Similar presentations


Ads by Google