Separating Two Pointswith Obstacles in the PlaneJack Spalding-JamiesonJoint work with Anurag Murty Naredla1
Point SeparationInput two points + line segmentsOutput a subset of line segmentss and t are separated by a set of line segmentsif every path from s to t is blocked.2
Separation Not separating Separating3
Point Separationfewest line segments separating s and tInput Input Solution WeightedPoint Separationminimum total weight separating s and tInput 88888888188222181 Input 88888888188222181 Solution 88888888188222181 4
Building Fences24720251619940910162420182425161910162420187209409Compact enclosure852425161940162418720991020Minimum cost75IntrudersBaseElevation: USGS NED via Mapzen · Locations: © OpenStreetMap contributors5
Points, Segments, and RaysPointp = (x, y)Segmentabtwo endpoints: a, bRaypqfrom p through qPolygonp₁p₂p₃p₄p₅(p₁, p₂, …, pₖ)Ray–ray intersectionpqabIntersectspqabDoes not intersectintersect iffmin> 0[(a.x−p.x)(b.y−a.y) − (a.y−p.y)(b.x−a.x)]· [(q.x−p.x)(b.y−a.y) − (q.y−p.y)(b.x−a.x)],[(a.x−p.x)(q.y−p.y) − (a.y−p.y)(q.x−p.x)]· [(q.x−p.x)(b.y−a.y) − (q.y−p.y)(b.x−a.x)]Segment–ray intersectionIntersectsDoes not intersectSegment–ray intersectionIntersectsDoes not intersectSegment–ray intersectionIntersectsDoes not intersect×Segment–segment intersectionIntersectsDoes not intersectSegment–segment intersectionIntersectsDoes not intersectSegment–segment intersectionIntersectsDoes not intersect×6
Intersection Graphsabcdabcdone vertex per segmentone edge per intersecting pair7
Point in Polygon 1 crossing → inside2 crossings → outside5 crossings → inside2 crossings → outsideOdd parity means inside.8
Point-Pair Separation Odd crossings: opposite sides.Even crossings: same side.Join each pair by a segment.Any path between the pair works.The boundary may be a curve.9
A Separating Curve A closed curveinside the chosensegments.10
The Homology Cover Non-separating Curve Traced in Plane s t the plane Non-separating Curve Traced in Homology Cover s t s t two copiesThe blue segment is a 'portal'11
Crossing the Portal Trail Homology Cover Portal Animation s t s t The blue segment is a portal.12
A Non-Separating Curve Non-separating Curve Traced in Plane s t Non-separating Curve Traced in Homology Cover s t s t in the planereturns to the same copy13
A Separating Curve Separating Curve Traced in Plane s t Separating Curve Traced in Homology Cover s t s t in the planereaches the other copy14
Lifting Segmentsstststplanestststplanestststplanestststplanestststplanestststplanestststplanestststplanestststplane15
Characterization abcdsthomology coverplane abcdsta⁰b⁰c⁰d⁰ststhomology coverplane abcdsta⁰b⁰c⁰d⁰ststhomology coverplanea⁰b⁰c⁰d⁰a⁰b⁰c⁰d⁰Entering v costs w(v).a⁰ → b⁰ → c⁰ → a¹a⁰b⁰c⁰d⁰A path between the two lifts of aa⁰ → b⁰ → c⁰ → a¹CHARACTERIZATION THEOREMA set of segments separates s and tif and only ifits lifted intersection graph containsa path from c⁰ to c¹, for some c.Minimum separator cost= minc dist(c⁰, c¹)Path cost: pay w(v) when entering v.16
AlgorithmsUse geometry to reduce the number of edges.17
Review: Shortest Pathsw₁w₂w₃w₄w₅abcdToFromabcdabcdduv = distance from u to vw₁w₂w₃w₄w₅abcdToFromabcda0dabdacdadbcdduv = distance from u to vSingle-source shortest-path (SSSP)from aw₁w₂w₃w₄w₅abcdToFromabcda0dabdacdadbdba0dbcdbdcdduv = distance from u to vSSSPfrom bw₁w₂w₃w₄w₅abcdToFromabcda0dabdacdadbdba0dbcdbdcdcadcb0dcddddaddbddc0duv = distance from u to vAll-pairs shortest-paths (APSP)w₁w₂w₃w₄w₅abcdToFromabcda0dabdacdadbdba0dbcdbdcdcadcb0dcddddaddbddc0duv = distance from u to vAll-pairs shortest-paths (APSP)18
Running Timesn vertices · m edgesw₁w₂w₃w₄w₅abcdn = 4 · m = 5n vertices · m edgesToFromabcda0dabdacdadbcdSSSPÕ(n + m)n vertices · m edgesToFromabcda0dabdacdadbdba0dbcdbdcdcadcb0dcddddaddbddc0SSSPÕ(n + m)APSPÕ(n(n + m))n vertices · m edgesToFromabcda0dabdacdadbdba0dbcdbdcdcadcb0dcddddaddbddc0SSSPÕ(n + m)APSPÕ(n(n + m))Floyd–Warshall: O(n³)n vertices · m edgesToFromabcda0dabdacdadbdba0dbcdbdcdcadcb0dcddddaddbddc0SSSPÕ(n + m)APSPÕ(n(n + m))Floyd–Warshall: O(n³)APSP hypothesisNo O(n3−ε), for fixed ε > 0.n vertices · m edgesToFromabcda0dabdacdadbdba0dbcdbdcdcadcb0dcddddaddbddc0SSSPÕ(n + m)APSPÕ(n(n + m))Floyd–Warshall: O(n³)APSP hypothesisNo O(n3−ε), for fixed ε > 0.All for edge weights.19
Vertex Weightsabcdwawbwcwdwbwaabcdwawbwcwdwbwawcwawcwbwdwbwdwcabcdwawbwcwd20
Slow + easy approachPairwise intersectionsabcdstO(n²)Lifted graphO(n²) edgesa⁰b⁰c⁰d⁰a⁰b⁰c⁰d⁰n sources × Õ(n²) = Õ(n³)21
Biclique subgraphsabcdeabcdeabcdeA = {a, b}B = {c, d, e}22
Biclique coversabcdeabcdeabcdeabcdeabcde{a,b} × {c,d,e}acbd{a,c} × {b,d}Cover size: 5 + 4 = 923
Two Hubs |A| · |B| edges 2(|A| + |B|) directed edgesNew hubs have cost 0. Original vertex costs and distances are preserved.24
Segment Biclique Covers First piece: 5 + 4 = 9Second piece: 2 + 2 = 4Total cover size: 13KNOWN THEOREMn line segments admit a biclique cover of size Õ(n4/3).25
Covering the Liftinput segments c c⁰ c⁰plane 0plane 1Cross the portal → switch sheets.Two collections of O(n) segments → total cover size Õ(n4/3).26
The AlgorithmBiclique covers Õ(n4/3) total sizeZero-cost hubs Õ(n4/3) edgesShortest pathsO(n) sourcesÕ(n · n4/3) = Õ(n7/3) time27
Lower BoundsWhat would a faster algorithm imply?28
Fine-Grained Lower BoundsAPSP HYPOTHESISNo O(n3−ε) algorithm for general edge-weighted APSP,for any fixed ε > 0.EXAMPLE REDUCTIONε, ε′ > 0If we can solve Problem X in O(n3−ε) time,then we can solve APSP in O(n3−ε′) time.CONTRAPOSITIVEIf we cannot solve APSP in O(n3−ε′) time,then we cannot solve Problem X in O(n3−ε) time.29
Minimum-Weight Triangle4215642156Minimize the sumof three edge weights.4 + 2 + 1 = 7MIN-WEIGHT TRIANGLE HYPOTHESISNo O(n3−ε) algorithm forminimum-weight triangle,for any fixed ε > 0.APSP hypothesis ⇒ min-weight triangle hypothesis30
Triangle → Separator Three edges → three layersTriangle ↔ separatorsame weight + fixed offsetn vertices → N = O(n²) segmentsO(N3/2−ε) ⇒ O(n3−2ε)would contradict the APSP hypothesis31
Review ALGORITHMÕ(n7/3)APSP-BASED LOWER BOUNDΩ(n3/2−o(1))ALSO IN THE PAPERΩ(n2−o(1))under a different hypothesisFin32
Other Objects34
Rectilinear PolylinesInput three segments per polylineSolution 35
Axis-Aligned Segmentsh₁h₂h₃v₁v₂v₃v₄h₃v₃v₄h₁h₂v₁v₂B1h₁v₁v₂h₂h₃v₃v₄B2h₁h₂v₁v₂B1h₂h₃v₃v₄B2Known cover boundÕ(n)Weighted separationÕ(n²)36
PolylinesGeneralRectilinearBiclique coverÕ(n7/3)Õ(n²)37
Stronger Lower Bounds38
A Stronger HypothesisMinimum-weight k-cliqueMIN-WEIGHT k-CLIQUE HYPOTHESISFor every fixed odd k ≥ 3:no O(nk−ε) algorithm,for any fixed ε > 0.39
Clique → Cycle → SeparationMin-weight k-cliqueMin-weight k-cycleV₁V₂V₃V₄V₅m = Θ(n1+2/(k−1))Ω(mn1−o(1))Point separation stv₁vₙ stv₁vₙN = O(m)40
Rectilinear Lower BoundEdge obstaclevᵢvⱼwRectilinear obstaclevᵢvⱼwOne obstacle · three segmentsPoint separation stv₁vₙ stv₁vₙN = O(m)41
Stronger BoundsLine segments · Rectilinear polylinesClique sizeSeparation lower bound3-cliqueΩ(N3/2−o(1))5-cliqueΩ(N5/3−o(1))9-cliqueΩ(N9/5−o(1))Odd k ≥ 3Ω(N2−2/(k+1)−o(1))Under the k-clique hypothesisΩ(N2−o(1))42
ReviewLine segmentsRectilinear3-polylinesAxis-aligned segmentsALGORITHMÕ(n7/3)LOWER BOUNDΩ(n2−o(1))k-clique hypothesisALGORITHMÕ(n²)LOWER BOUNDΩ(n2−o(1))k-clique hypothesisALGORITHMÕ(n²)LOWER BOUNDOpenBonus Fin43