Thick Paths and Minimum-Cost Flows in Polygonal Domains Valentin Polishchuk joint work with Joseph...
-
Upload
adele-garrett -
Category
Documents
-
view
218 -
download
1
Transcript of Thick Paths and Minimum-Cost Flows in Polygonal Domains Valentin Polishchuk joint work with Joseph...
Thick Paths and
Minimum-Cost Flows in Polygonal Domains
Valentin Polishchuk joint work with
Joseph Mitchell
Geometric Shortest Paths
• Given:– (Outer) Polygon P– Polygonal obstacles – Pair of terminals (s, t)
• Find: – shortest s-t path – avoiding obstacles
• Efficient Algorithms Known
Multiple Paths
• Given– K pairs of terminals (sk,tk)
• Find – shortest sk-tk paths
• minsum • minmax
– non-crossing
• NP-hard [Bastert and Fekete’98]
– no obstacles – minsum or minmax– L1 or L2
• Terminals on the boundary of P– linear time [Papadopolou’99]
OK
Not allowed
A Thick Path
Thick path =
reference_path unit_circle
Minkowski sum
Length =
length(reference_path)
©
Finding 1 Shortest Thick Path
Inflate by 1
Find shortest reference path
Inflate the reference path
K Thick Non-Crossing Paths• Shortest sk-tk paths
– minsum – minmax
• Thick• Non-intersecting
Not allowedOK
Motivations
• VLSI: wire thickness• Robotics: circular robot• Sensor field
– Short paths• Close to bd
– congestion
– Well-separated• Medial axis
– Long
• Shortest paths– given separation
• Air Traffic Management: safety margins
Previous Work: Point Obstacles
• Continuous Homotopic Routing (VLSI)[Cole and Siegel’84, Leiserson and Maley’85, Maley’90, Gao, Jerrum Kaufman, Mehlhorn and
Rülling’88]
This Work• Polygonal Domains
from [Gao et al.’88]
Simple Polygons: K = 2
Inflate by 1
Route s2-t2 path
Inflate P(s1,t1) by 2
Find shortest reference path
Same on the other side
InflateNon-crossing
• Each path is ASAP (as short as possible)– given the existence of the other
• minsum, minmax: “Ideal” routing (VLSI) [Maley’90]
“Gluing” Shortest Thick Paths
Simple Polygons: K ≥ 2• Map to circle
– chords sk-tk
• For k = 1…Kdk(u,v): kth depth of ∂C(u,v) ≡
≡ 2 • (# of chords between ∂C(u,v) and sk-tk) + 1
– Inflate ∂P(u,v) by dk(u,v)
– Find shortest reference path– Inflate the reference path
Running Time: 1 pathdk(u,v) O(K)
Inflate ∂P(u,v) by dk(u,v):
O(n+K) [Kedem, Livine, Pach and Sharir’86; Chin, Snoeyink and Wang’99]
Splinegon O(n+K) [Dobkin and Souvaine’90]
Find shortest reference path
O(n+K)
[(e©Cdk (e))
Running Time: K paths
• O(K(n+K))
• Worst-case optimal– kth path
• Ω(n+k) complexity
• Linear size – Fat Graphs [Duncan, Efrat, Kobourov, Step, Wenk‘02]
– Thin paths [Papadopolou’99]
• Compute in linear time [Chin, Snoeyink and Wang’99]
• Report: O(# of edges)
Implicit Paths Representation
Polygons with Holes
Assume: Terminals on the outer boundary
• Given K pairs of terminals (sk,tk)
• Find shortest thin non-crossing sk-tk paths
– NP-hard [Bastert and Fekete’98]
• no obstacles
• L1 or L2
• minsum or minmax
Approach: scroll through “threadings”
Small Number of Holes
Threading:above/below holes
For every threadings
For k = 1…KInflate correspondingly
Shortest reference path
of given threading
Threading vs. Homotopy
• SP of given homotopy [Hershberger,
Snoeyink’94]
• Threading doesn’t define homotopy
• ∞ homotopy types with same threading
• Need simple-SP homotopies– finite number
Threading + Order = Homotopy
For every threadings O((K+1)h)For k = 1…KInflate correspondingly O(poly(n,K))
For every order, in which holes are visited h!define homotopy type
Find SP of the homotopy type O(poly(n,K))
O((K+1)hh! poly(n,K))
Large Number of Holes
[Holst and Pina’02]
NP-complete
Length-bounded disjoint paths in planar graph
↓
Short thick non-crossing paths in geometric domains
Flows in Continua
• Network• capacities• costs
• Find– maxflow– min-cost flow
• Maxflow/Mincut Theorem• Flow Decomposition Theorem
Network Flows
4
4
1
11
21
3s t
4
4
1
11
21
31
1
111
1
4
4
1
11
21
3s t
4
4
1
11
21
31
1
111
1
Flows in Geometric Domain• Polygonal domain P
– source and sink edges • Cut
– partition domain into subsets S and T– capacity
• length of the boundary between S and T• Flow
– vector field
Maxflow = Mincut4
41
11
21
3 t4
41
11
21
31
1
111
1s s t
Flow Decomposition
[Strang’83,Mitchell’90] This talk
Problems Statement
Given: Polygonal domain Psources S and sinks T
Find flow vector field σ
div σ = 0 inside P σ • n = 0 on ∂P\{S,T}|σ| ≤ 1 – capacity
V = sT σ • n ds = – sS σ • n ds MaxFlow
Find σ that maximizes V
Min-Cost FlowGiven VFind σ that minimizes cost
Objectives
|ls| – length of streamline through s in Sminsum sS |ls|ds
minmax maxS |ls| [Mitchell’90]
min-area Area(supp σ) – “optimal design” [Strang’83]
Constraints (WLOG)
saturated: |σ| = 1 or 0
no closed streamlines
|σ • n| = 1 on S,T
minsum = min-area sS |ls|ds Area(supp σ)
Our Results
minsum = minmax sS |ls|ds maxS |ls|
in simple P
Flow Decomposition
Flow = U of paths (e.g., streamlines)
Continuous Flow
Decomposition Theorem:
Min-Cost Flow = U of shortest thick pathslinear #
Canonical Part
Thick path – “sausage”
Canonical part – strip
Auxiliary ProblemThe Segment Interconnection Problem
Given segments(sk,tk) on ∂P, k=1…K
|sk| = |tk| =wk
Connect sk to tk with
width-wk “strip”
minsum: SIP∑
minmax: SIPmax
P’ = P augmented with
diameter-wk semicirclesglued along sk, tk
reside in a Riemann sheet
SIP =(Canonical parts) thick non-crossing paths
within P’
between midpoints of (sk,tk)
SIP: (Re)formulationP
sk
P’
SIP = Thick Non-Crossing Paths
SIP∑ = SIPmax
Equivalent Problems
ls – streamline of σ through s in S
ls: S → T
σab – restriction of σ
Split a into sk, k=1…K
Split b into tk, k=1…K
SIP(sk,tk), width w/K
Strip → ls as K → ∞
Min-cost σab = SIP(sk,tk)
Equivalent Problems (Another Pair)
a
b
Contiguous subsets of S
mapped into Contiguous subsets of T
ls(a) = b,
|a| = |b| = w
Min-cost σab = SIP(sk,tk) == K Shortest Thick Non-Crossing Paths= 1 Shortest Thick Path (Canonical Part from a to b)
σ = σab
a
b
Putting Things Together
by “Gluing”
Min-cost Flow =
Thick Non-Crossing
Paths
=
b’
a’
+ σa’b’ + σ …Intervals of continuity of ls:S→T and its inverse
The Continuous Flow Decomposition Theorem
The support of
a minimum-cost flow
may be decomposed into a linear number of
the canonical parts of
shortest thick non-crossing paths
ConclusionShortest Thick Non-Crossing Paths
Continuous Homotopic Routing in polygonal domains
simple polygonslinear-size data structure
linear-time
1 thick path output efficiently
polygonal domainssmall number of holes
polynomial-time algorithms
large number of holesNP-hardness
ConclusionContinuous Flows in Geometric Domains
Optimal design, river routing
Continuous Flow Decomposition Theorem
Greedy vs. Selfish
“Ideal” routing (VLSI) [Maley’90]
– each path is ASAP (as short as possible)• given the existence of the other
– minsum – minmax
Balanced Transshipment with Source-Sink Separation
• Given – sources si, sinks tk i=1…I, k=1…K
– s1…sI,tK…t1 around ∂P
– ∑|si| = ∑ |tk| = V
• Ship V from sources to sinks
Go around ∂P– match sources and sinks– solve SIP = Thick Non-Crossing Paths
K=2: Weakly NP-hard
• Reduce from Partition – Given numbers {c1…cm}, c1+…+cm = S– Is there a subset summing to S/2?
• Partition feasible iff 2 disjoint s-t paths length ≤ S/2+2(m+1) each
[Holst and Pina’02]
Rectilinearize
Running Time: 1 Pathdk(u,v) O(K)
Inflate ∂P(u,v) by dk(u,v) S(e©dk(e))
Pseudodiscs Property
Lemma: – pseudodiscs Feasible d(f,e) ≥ 2(x+y)
not pseudodiscs d(f,e) < |dk(f) – dk(e)| =
|2(x+z) – 2(y+z)| = 2|x – y|
Proof:
S(e©dk(e))
e©dk(e)f ©dk(f )
not pseudodiscs
– Early work: heuristics, restricted versions [Hsu’83, AKMSW’86]
|S| = |T| = V
Simple Polygons
• 1 path– linear time
• Linear-size data structure– linear-time to compute
• Output 1 thick path – O(combinatorial complexity)
– NEED PICTURE
Hardness Results
• Short non-crossing thick paths – polygons with holes
• NP-hard
• 2 short non-crossing thick rectilinear monotone paths – polygons with holes
• weakly NP-complete
• NEED PICTURE
Related Work: Optimal Design Problem• Our Problem
min Area(supp σ) = ∫P |σ| dA |σ| = 1 on supp σ
• Subject todiv σ = 0 inside P
σ • n = 0 on ∂P\{S,T}
|σ| ≤ 1
sT σ • n ds = -sS σ • n ds = V
• [Kohn, Strang ’80s]
min ∫P |σ| dA
• Subject todiv σ = 0 inside P
|σ| ≤ 1
σ • n = f on ∂P
Numerical methods [extensive literature]
Special CaseMore
General
Problems Statement (with animations)
Given: Polygonal domain Psources S and sinks T
Find flow vector field σ
div σ = 0 inside P σ • n = 0 on ∂P \ {S,T}|σ| ≤ 1 – capacity
V = ∫T σ • n ds = – ∫S σ • n ds MaxFlow
Find σ that maximizes V
Min-Cost FlowGiven VFind σ that minimizes cost
ls – streamline of σ through s in S
ls: S → T
σab – restriction of σ
Split a into sk, k=1…K
Split b into tk, k=1…K
SIP(sk,tk), width w/K
Strip → ls as K → ∞
Min-cost σab = SIP(sk,tk)
Equivalent Problems (Another Pair) with anim
a
b
Contiguous subsets of S
mapped into Contiguous subsets of T
ls(a) = b,
|a| = |b| = w
Pseudodiscs Property
[BKOS’97]
Lemma: – pseudodiscsS(e©dk(e))