Partitioning Polygons into Convex Components Presentation by Perouz Taslakian Mcgill University COMP506 – Winter 2005 A Simple Example Given a simple polygon P with no holes, can you divide P into the minimum number of convex components in polynomial time? 2 A Simple Example Answer: YES Best known algorithm (Keil ’02) : O(n3) 3 A Simple Example What if the polygon has holes? 4 A Simple Example What if the polygon has holes? The problem becomes NP-Hard ! 5 Variation: min edge-length Given a simple polygon P with no holes, can you divide P into convex components using the minimum amount of ink in polynomial time? 6 Variation: min edge-length Answer: YES Best known algorithm (Greene ’83): O(n4) 7 Variation: min edge-length If the polygon has holes, the problem again becomes NP-Hard ! 8 Why is this interesting? Computational Geometry: Pattern Recognition: Extract information about an object by decomposing it into simpler components Robotics: some algorithms are simpler on polygons with restricted shapes (e.g. convex) Partition a workspace for a number of robots Other: Architecture, VLSI design, Image Processing, Computer Graphics, …etc 9 Planar 3SAT Most NPC problems in the area of polygon decomposition are reduced from Planar 3SAT Outline: 1. define PL3SAT 2. show how to reduce it from 3SAT 3. see how to reduce it to the problem of minimum convex decomposition. 10 Planar 3SAT Given a 3SAT instance with: m clauses C1, C2, …, Cm n variables v1, v2, …, vn Let G=(U, E) be a graph such that: U is the set of n vertices representing the variables v1, v2, …, vn union the set of clauses C1, C2, …, Cm there is an edge between two vertices vi, Ck if ui appears in the clause Ck Planar 3SAT: G is Planar 11 Planar 3SAT Example: C1 (u1 u2 u3 ) C2 (u2 u3 u4 ) or C1 (u1 u2 u3 ) C2 ( u2 u3 u4 ) C1 u1 u2 u3 u4 C2 12 3SAT → Planar 3SAT C1 C2 C3 u1 u2 u3 u4 u5 13 3SAT → Planar 3SAT Ck C1 uj Cℓ ui C2 C3 u1 u2 u3 u4 u5 14 3SAT → Planar 3SAT b1 Ck ui uj Cℓ ui γ uj a1 β a2 ξ a uj α δ b2 b ui 15 3SAT → Planar 3SAT ( a2 b2 α)(a2 α)(b2 α) i.e. a2b2 ( a2 b1 )(a2 )(b1 ) i.e. a2 b1 (a1 b1 )( a1 )( b1 ) i.e. a1b1 (a1 b2 )( a1 )(b2 ) i.e. a1b2 ( )( ) ( )( )( )( ) (a2 a )(a a2 )(b2 b )(b b2 ) i.e. a a2 , b b2 b1 a1 γ β a2 ξ α δ b b 2 16 a Convex Decomposition Given a polygon P with holes, the problem of dividing P into at most K convex components is NPC Reduction from PL3SAT 17 An Instance of PL3SAT C2 = (u1 + u3 + u5) C1 = (u1 + ū2 + u4) u4 C1 u5 u1 C2 ū2 u2 ū1 C3 u3 C3 = (ū1 + u2 + u3) 18 A Variable Wire Loop Let ki = number of convex pieces covering the variable wire loop corresponding to variable vi n Set K = k i1 i True Decomposition u1 False Decomposition ū1 19 Clause Junction Ci 20 Clause Junction U1 = False U2 = False Ci U3 = False 21 Clause Junction U1 = True U2 = False Ci U3 = False 22 Clause Junction U1 = True U2 = False Ci U3 = False 23 Putting Gadgets Together C2 C1 U1 ū1 U2 u1 C1 u2 C3 C2 ū1 C3 u3 24 Putting Gadgets Together C2 C1 U1 ū1 U2 u1 C1 u2 C3 C2 ū1 C3 u3 25 Putting Gadgets Together C2 C1 U1 ū1 U2 u1 C1 u2 C3 C2 ū1 C3 u3 26 Variations: Bisection Bisecting a polygon into two (possibly disconnected) parts with equal area & smallest possible total perimeter is NP-hard. It is even NP-hard to approximate within any ratio. A1 A3 A1 + A2 = A3 A2 27 Variations: Area Partition Given a simple polygon P and a set of areas A1, A2, …, An, the problem of partitioning P into n smaller connected components each of a given area Ai with minimum cut-length is NP-hard. It is even NP-hard to approximate within any ratio. A5 A1 A4 A3 A2 28 Open Problems 1. What is the best approximation algorithm for the problem of partitioning a polygon into the minimum number of convex pieces? 2. Given a polygon with holes, can you divide it into two congruent pieces? 3. Is there a class of simple polygons for which the area partitioning problem under the minimum edge-length criterion is polynomially solvable? 29 Thank You 30