multiple-source shortest paths in planar graphs allowing negative lengths philip klein brown...

Post on 28-Dec-2015

225 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Multiple-Source Shortest Paths in Planar Graphs Allowing Negative Lengths

Philip KleinBrown University

Main Result

For plane graph with boundary r1,…,rs,O(n log n) algorithm to find all shortest-path trees rooted at the ri’s.

Main Result

For plane graph with boundary r1,…,rs, O(n log n) algorithm to find* all shortest-path trees rooted at the ri’s.

*implicit representation

Main Result

For plane graph with boundary r1,…,rs, O(n log n) algorithm to find* all shortest-path trees rooted at the ri’s.

*implicit representation

– Negative lengths are ok

Main Result

For plane graph with boundary r1,…,rs,O(n log n) algorithm to find* all shortest-path trees rooted at the ri’s.

*implicit representation

– Negative lengths are ok

– Given k source-sink pairs (where each source is an ri), can find corresponding distances in O((n + k) log n) time

Some Applications

• Single-source shortest-path tree in planar graph with some negative lengths: O(n log n). Previous bound: O(n log3 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.

Some Applications• Preprocessing a planar graph to admit O*( )-time

exact distance queries: O(n log2 n). Previous bound [Fakch., Rao]: O(n log3 n)

• Preprocessing undirected planar graph to admit O(ε-1)-time approx. distance queries: O(ε-1n log2 n). Previous bound [Thorup]: O(ε-2n log3 n)

(similar improvement for directed graphs)

• Slightly faster dynamic algorithms for planar-graph distances (improving on [Fakch., Rao])

n

Previous Work

[Lipton, Rose, Tarjan, 1979]: O(n1.5)

[Henzinger, Klein, Rao, Subramanian, 1997]:

O(n4/3 log (nL))

[Fakcharoenphol, Rao, 2001]:

O(n log3 n)

Single-source shortest paths in planar graphs with negative lengths:

Previous WorkMultiple-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.

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.

Nodes along boundary of graph

Analysis Technique

Fix a node at v

Analysis Technique

Shortest paths to v don’t cross

Analysis Technique

For each edge entering v, paths using the edge start from consecutive ri’s.

Analysis Technique

As we iterate through nodes r1,…,rs,edge used to reach v rarely changes:

Number of changes ≤ indegree(v)

Analysis Technique

As we iterate through nodes r1,…,rs,edge used to reach v rarely changes:

Number of changes ≤ indegree(v)

Analysis Technique

As we iterate through nodes r1,…,rs,edge used to reach v rarely changes:

Number of changes ≤ indegree(v)

Analysis Technique

As we iterate through nodes r1,…,rs,edge used to reach v rarely changes:

Number of changes ≤ indegree(v)

Analysis Technique

As we iterate through nodes r1,…,rs,edge used to reach v rarely changes:

Number of changes ≤ indegree(v)

Analysis Technique

As we iterate through nodes r1,…,rs,edge used to reach v rarely changes:

Number of changes ≤ indegree(v)

Analysis Technique

As we iterate through nodes r1,…,rs,edge used to reach v rarely changes:

Number of changes ≤ indegree(v)

Analysis Technique

As we iterate through nodes r1,…,rs,edge used to reach v rarely changes:

Number of changes ≤ indegree(v)

Analysis Technique

As we iterate through nodes r1,…,rs,edge used to reach v rarely changes:

Number of changes ≤ indegree(v)

Analysis Technique

As we iterate through nodes r1,…,rs,edge used to reach v rarely changes:

Number of changes ≤ indegree(v)

Analysis Technique

Now consider shortest-path trees from r1,…,rs.

Analysis Technique

Number of changes as we iterate through ri’s is: indegree(v)

v

Analysis Technique

Number of changes as we iterate through ri’s is: indegree(v), which is number of edges

v

Analysis Technique

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)

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.

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)

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)

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

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

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

dT(.):

dT(v) = length of r-to-v path in T

• An edge uv is unrelaxed if

dT(u) + len(uv) < dT(v)

• Relaxing an edge uv means replacing v’s parent edge in T with uv

• Values of dT(.) automatically updated

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

dT(.):

dT(v) = length of r-to-v path in T

• An edge uv is unrelaxed if

dT(u) + len(uv) < dT(v)

• Relaxing an edge uv means replacing v’s parent edge in T with uv

• Values of dT(.) automatically updated

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?

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?

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

Planar Dual

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

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

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*

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*

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*

Dual spanning tree T*, rooted at infinite face

How to Select an Unrelaxed Edge

How to Select an Unrelaxed Edge

Dual spanning tree T*, rooted at infinite face

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)

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

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

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

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…

Choosing Unrelaxed Edge Using Dynamic Tree

For each non-tree primal edge uv, define

σ(uv) = dT(u) + len(uv) – dT(v)

Measure of how relaxed the edge is.

Unrelaxed edges have negative σ values

Choosing Unrelaxed Edge Using Dynamic Tree

For each non-tree primal edge uv, define

σ(uv) = dT(u) + len(uv) – dT(v)

Measure of how relaxed the edge is.

Unrelaxed edges have negative σ values

Dual edges: same σ values as primal edges

Choosing Unrelaxed Edge Using Dynamic Tree

For each non-tree primal edge uv, define

σ(uv) = dT(u) + len(uv) – dT(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….

Modification of σ Values in Dual Tree

• Relaxing edge wv reduces the value of dT(.) by -σ(wv) for v and v’s descendents in T.

• Replace v’s parent edge uv in T with wv.

Modification of σ Values in Dual Tree

• Relaxing edge wv reduces the value of dT(.) by -σ(wv) for v and v’s descendents in T.

• Replace v’s parent edge uv in T with wv.

Modification of σ Values in Dual Tree

• Relaxing edge wv reduces the value of dT(.) by -σ(wv) for v and v’s descendents in T.

• Replace v’s parent edge uv in T with wv.

Modification of σ Values in Dual Tree

• Relaxing edge wv reduces the value of dT(.) by -σ(wv) for v and v’s descendents in T.

• Replace v’s parent edge uv in T with wv.

Modification of σ Values in Dual Tree

• Relaxing edge wv reduces the value of dT(.) by -σ(wv) for v and v’s descendents in T.

• Replace v’s parent edge uv in T with wv.

Modification of σ Values in Dual Tree

• Relaxing edge wv reduces the value of dT(.) by -σ(wv) for v and v’s descendents in T.

• Replace v’s parent edge uv in T with wv.

Modification of σ Values in Dual Tree

• Relaxing edge wv reduces the value of dT(.) 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

Modification of σ Values in Dual Tree

• Relaxing edge wv reduces the value of dT(.) 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

Modification of σ Values in Dual Tree

• Relaxing edge wv reduces the value of dT(.) 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

Modification of σ Values in Dual Tree

• Orientation of dual edges reflect orientation of primal edges

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

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:

)(:)( ee { Δ if e points towards root- Δ if e points away from root

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, -Δ)

)(:)( ee { Δ if e points towards root- Δ if e points away from root

Structural Changes in Dual Tree

• After modifying σ values, use cut, evert, and join to change dual tree when relaxing an edge.

Structural Changes in Dual Tree

• After modifying σ values, use cut, evert, and join to change dual tree when relaxing an edge.

Structural Changes in Dual Tree

• After modifying σ values, use cut, evert, and join to change dual tree when relaxing an edge.

Structural Changes in Dual Tree

• After modifying σ values, use cut, evert, and join to change dual tree when relaxing an edge.

Single-Source AlgorithmStart with some tree rooted at r.Repeat

select a leafmost unrelaxed edgerelax it

until none existQuestions:• 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.

Single-Source AlgorithmStart with some tree rooted at r.Repeat

select a leafmost unrelaxed edgerelax it

until none existQuestions:• 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)

Notation: T[v]

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

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.

The “More Left Than” Partial Order on r-rooted Trees

• Given two trees TL and TR, both rooted at r, we say TL is to the left of TR if, for every node v, the r-to-v path TL[v] is to the left of the r-to-v path TR[v].

Right-First Search

[Ripphausen-Lipa, Wagner, Weihe]

• Depth-first search where you explore outgoing edges from right to left.

Right-First Search

[Ripphausen-Lipa, Wagner, Weihe]

• Depth-first search where you explore outgoing edges from right to left.

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 hasthe following property:

For any node v, the path T[v] is the rightmost root-to-v path.

Single-Source AlgorithmStart with right-first search treeRepeat

select a leafmost unrelaxed edgerelax it

until none existQuestions:• 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…)

Analysis of Single-Source Algorithm

• Get a sequence T0, T1, T2, … of trees.

• To show: Each tree Ti+1 is to the left of previous tree Ti.

• Hence, for each node v, each path Ti+1[v] is to the left of the previous path Ti [v].

Analysis of Single-Source Algorithm

• Get a sequence T0, T1, T2, … of trees.

• To show: Each tree Ti+1 is to the left of previous tree Ti.

• Hence, for each node v, each path Ti+1[v] is to the left of the previous path Ti [v].

• Hence these paths use edges entering v in clockwise order.

• Use analysis technique outlined at start of talk.

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].

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].

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.

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.

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.

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.

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…

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.

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 wasleafmost unrelaxed edge).

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.

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 theright of T’ [v] is no longer than T’ [v].

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 theright of T’[v] is no longer than T’[v].

Hence P shorter than T[v].

But P can’t be shorter by going tothe right of T[v] (would violateright-shortness of T)

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 theright of T’[v] is no longer than T’[v].

Hence P shorter than T[v].

But P can’t be shorter by going tothe 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)

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 theright of T’[v] is no longer than T’[v].

Hence P shorter than T[v].

But P can’t be shorter by going tothe right of T[v] (would violateright-shortness of T)

And P can’t be shorter by using an unrelaxed edge inside R(no such edge)

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 theright of T’[v] is no longer than T’[v].

Hence P shorter than T[v].

But P can’t be shorter by going tothe right of T[v] (would violateright-shortness of T)

And P can’t be shorter by using an unrelaxed edge inside R(no such edge)

Contradiction. Q.E.D.

Multiple-Source Algorithm• Order the nodes r1,r2,…,r10 clockwise around graph.• Add ∞-cost edges from r10r9,…, r3r2,r2r1

• Start with some tree rooted at r1

• For i = 1,2,…Repeat

select a leafmost unrelaxed edgerelax it

Until no unrelaxed edges remainGo from ri-rooted tree to ri+1-rooted

tree by adding edge ri+1 ri

Analysis of Multiple-Source Algorithm

Go from ri-rooted tree to ri+1-rooted tree by adding edge ri+1ri

1. Must show tree remains right-short.

2. Must show same analysis technique applies to entire sequence of trees.

Multiple-Source Algorithm

Start with some tree rooted at r1

For i = 1,2,…Repeat find a leafmost unrelaxed edge relax itUntil no unrelaxed edges remain

Go from ri-rooted tree to ri+1-rooted tree by adding edge ri+1 ri

How to find distances?

How to Find Distances (in Multiple Source Algorithm)Start with some tree rooted at r1

For i = 1,2,…

Repeat

find a leafmost unrelaxed edge

relax it

Until no unrelaxed edges remain

Go from ri-rooted tree to ri+1-rooted tree by adding edge ri+1 ri

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 ri.

Amortized time for total of k queries: O(k log n)

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?

top related