Presentation is loading. Please wait.

Presentation is loading. Please wait.

Polygon Decomposition

Similar presentations

Presentation on theme: "Polygon Decomposition"— Presentation transcript:

1 Polygon Decomposition
Fatemeh Zahra Saberifar

2 Cell decomposition is often used in autonomous area coverage.
Decomposition is a technique commonly used to break complex models into sub-models that are easier to handle. Cell decomposition is often used in autonomous area coverage. Convex decomposition applications : pattern recognition Minkoski sum computation motion planning computer graphics origami folding

3 Cell-Decomposition Methods
Two classes of methods: Exact cell decomposition The free space F is represented by a collection of non-overlapping cells whose union is exactly F Example: trapezoidal decomposition

4 Cont… Approximate cell decomposition F is represented by a collection of non-overlapping cells whose union is contained in F Examples: quadtree, octree, 2n-tree

5 Outline A practical algorithm for decomposing polygonal domains into convex polygons by diagonals A visibility based algorithm A Voronoi based space partitioning for coordinated multi robot exploration An Exat and approximattion algorithm for computing optimal α-fat decompositions Another approximation algorithm

6 Two different goals of decomposing a polygon into convex polygons :
Partition into as few convex pieces as possible Partiton as quickly as possible

7 Decomposing polygonal domains into convex polygons by diagonals
Decompose a polygon (with holes) into convex polygons by diagonals Computationally quick May not have minimal cardinality

8 Three different types of partition can be used:
by diagonals by segments free

9 The problem of decomposing a polygon with holes into the minimum number of convex pieces is known to be NP-hard (Keil 1985; Lingas 1982)

10 History Hertel and Mehlhorn (1983) presented an algorithm suitable when approximately optimal convex partitions are enough in O(n+r log r) time For the case without holes, Keil (1985) presented an exact O(nr log r) time algorithm For the case with holes, Narkhede and Manocha (1995) implemented the O(nlog∗ n) algorithm

11 Held (2001) has also presented an O(n h) algorithm
An algorithm in O(nh+nr) time (Held 2008) We modify the algorithms in Fernández et al. (2008)

12 Decomposing polygons without holes
The best algorithm described in Fernández et al. (2000), MP3, works as follows : Initially, L consists of one vertex, say v1 Then, we add the next consecutive vertex (clockwise order) of P , v2, to L If the last vertex we have already added to L is vi . then we provisionally add vi+1 to L if ang(vi−1, vi, vi+1) ≤ 180 ang(vi, vi+1, v1) ≤ 180 ang(vi+1, v1, v2) ≤ 180

13 Notice that if there are vertices of P \L inside the convex polygon then at least one of them must be a notch Generate the smallest rectangle R with sides parallel to the axes containing all the vertices of L If v is a notch of P \ L we first check whether v is inside R

14 If a vertex v is found to be in the polygon generated by L, then we remove from L its last vertex vk and all the vertices of L in the half- plane generated by v1v containing vk This process is repeated with the new L until no vertex is inside the polygon generated by L Try to expand L by adding in ccw order ,consecutive, adjacent vertices to it in its first position v1, doing a similar process

15 If L has then more than two vertices, and at least one of the vertices of the diagonal joining the last and first vertices in L is a notch, it generates one of the polygons of the partition, else the procedure does not generate a polygon The algorithm continues by calling MP3 again, considering as initial vertex the last vertex of L

16 Example L = < v1 > L = < v1 , v2 >
L = < v1 , v2 , v3 > L = < v1 , v2 , v3 , v4 > L1 = < v1 , v2 , v3 > L2 = < v1 , v6 , v5 > L3 = < v5 , v4 , v3 > v6 v4

17 Run time Adding vertices to the provisional list L can be done in O(n − r) Finding the notches inside R is O(r) To check whether the notches are inside the convex polygon generated by L needs O(r(n−r)) Removing vertices from L can be done in O(n − r)

18 Since this process may be repeated up to r times, we need O(n − r) + r · (O(n − r) + O(r) + O(r(n − r))) = O(r2(n − r)) time to generate a polygon of the partition Hence the total complexity is O( r2(n−r −i)) = O(nr2( n/2−r)+ 5/2nr2 −3r2) if r is close to n/2 then the complexity is about O(r3)

19 Definition We say that two angles ang(a, b, c) and ang(d, b, e) incident at vertex b overlap if the intersection of the interior of the cones that they generate is not empty. P is said to be a weakly-in-simple polygon provided that the internal angles of P do not overlap.


21 The modification is the following:
now, a vertex v on the boundary of the polygon generated by the vertices in L is considered outside that polygon (no removing of vertices will then be necessary) if the co- ordinates of v coincide with those of one of the vertices in L


23 Decomposing polygons with holes



26 Run time The total complexity of the algorithm is O(NR (N/2− R)+ 5/2NR −3R )+ O(Nn H ) The merging process described in Fernández et al. (2000) can be used to remove the inessential diagonals of a partition. No major modifications are required.

27 Visibility based decomposition

28 Consider the ray emanating from p, aimed at v, and crossing ∂P at a point w after v (w = v). If pw is inside P and the line containing pw is tangent to P at v, the segment vw is called the constraint induced by p and v and is denoted by c(p, v). An easy observation is that for any point p inside P, the constraints induced by p are exactly the windows of V (p).

29 When both p and v are polygon vertices, the constraint c(p,v) is called a critical constraint .
The critical constraints partition the polygon into visibility-equivalent cells.


31 Run time The critical constraints partition the interior of P into cells so that two points see equivalent visibility polygons if and only if they are in the same cell There are O(n2) critical constraints, an immediate upper bound on the complexity of visibility decomposition isO(n4)

32 Lemma . Any segment s inside a simple polygon P can cross at most O(n) critical constraints of P.
Therefore, the complexity of the visibility decomposition is O(n3).

33 An Exat and approximattion algorithm for computing optimal α-fat decompositions
The minimum α-fat decompositions problem is decomposing a simple polygon into the fewest subpolygons , each with aspect ratio at most α A polygon is α-fat decomposable if P has an α- fat decompositions

34 The diameter of a simple polygon is the diameter of a smallest enclosing circle
The width of a simple polygon is the diameter of a largest enclosed circle The aspect ratio of a simple polygon is the ratio of its diameter to its width We need to choose a min subset of the diagonals of the polygon

35 Problem definition Given a polygon P and positive real α , decompose P into the fewest α –fat subpolygons . The α-fat decompositions problem finds motivation in collision detection .

36 Definitions n : # vertexes of P r : # reflex vertexes
T : visibility graph of P (whose edges are diagonals) m : # of edges of T (# of diagonals) Pij : subpolygon of P defined by vertices i ,i+1,…, j Oij : an optimal α-fat decomposition of each Pij

37 Cont … C : a circle that is tangent to at least 2 vertices of P and at most 3 non reflex vertices I : a circle that is defined by at most 3 element of T Gi,j(C,I) : the subgraph of the T wij : # of polygons in Oij pij : the weighted path from i to j

38 Algorithm For j = i + 1 , Oij is empty set
For j > i + 1 , first check if Pij is α-fat If so, Oij is Pij Otherwise consider all circles C passing through 3 non-reflex vertices of P For each such C of diameter D, consider all circles I of diameter D/α

39 For each pair (C,I) , let Gij(C,I) be a weighted graph
For each pair (C,I) , compute a path pij(C,I) of minimum weight from I to j in Gij(C,I) Q = pij = min pij(C,I) Q is an α-fat polygon



42 Approximate α-fat decompositions
A faster approximation method is then used to produce, for any ε > 0, an optimal ( α+ε )-fat decomposition . Here our goal is reduced number of pairs (C,I) The subpolygons in the decomposition have diameter no smaller than a given lower bound L

43 Theorem Oij is a minimum size α-fat decomposition of Pij . O1n is a minimum α-fat decomposition of P that can be computad in time O(m (n-r) n).

44 2) Compute the Voronoi diagram associated with the current set of Ci
A Voronoi based space partitioning for coordinated multi robot exploration 1) Randomly choose K points Ci, 1 ≤ i ≤ K, contained in the polygons corresponding to the current unknown regions in the map. 2) Compute the Voronoi diagram associated with the current set of Ci 3) Constrain the cells of the Voronoi diagram to the current unknown polygons.

45 4) Determine the center of mass Mi of every constrained Voronoi cell.
5) If Ci- Mi< ε for all i, ε being a convergence parameter,go to step 6. Otherwise, substitute every Ci for its corresponding Mi and proceed from step 2. 6) The set of unknown polygons is partitioned into K stabledisjoint regions

46 Another approximation algorithm
We have developed an approximate technique, called Approximate Convex Decomposition (ACD), which decomposes a given polygon or polyhedron into “approximately convex” pieces

47 Defenition. concavity and £-convex.
We say a polygon or a polyhedron P has concavity(P) ≤ £ , or equivalently that P is £-convex, if all vertices v of P have concavity(v) ≤ £ , where concavity(ρ) denotes the concavity measurement of ρ .

48 Algorithm


50 The selection of the measure for the concavity tolerance should depend on the application
E.g. normalize distances Convexity measurements of polygons estimate the similarity of a polygon to its convex hull.

51 concavity(P) = max { concavity(x) }, x Є V
convexity(P) = volume(P)/volume(CHP )

52 Observation. Given a simple polygon P
Observation . Given a simple polygon P. Notches can only be found in pockets. Each bridge has an associated pocket, the chain of Boundary(P0) between the two bridge vertices. Hole boundaries are also pockets, but they have no associated bridge.

53 Two practical simple and stable retraction methods to compute concavity :
The straight-line distance to the bridge The length of the shortest path to the bridge that does not intersect the polygon

54 Lemma. Measuring the concavity of the vertices on the external boundary P0 using shortest paths takes O(n) time, where n is the size of boundary P0.

55 Resolve algorithm Resolve runs in O(n) time

56 Run time Theorem. Let {Ci}, i = 1,...,m, be a £ -convex decomposition of a polygon P with n vertices, r notches and k holes. P can be decomposed into {Ci} in O(nr) time.

57 References A practical algorithm for decomposing polygonal domains into convex polygons by diagonals , by José Fernández · Boglárka Tóth · Lázaro Cánovas · Blas Pelegrín , 2008. APPROXIMATE CONVEX DECOMPOSITION AND ITS APPLICATIONS, by JYH-MING LIEN , Texas A&M University , for the degree of DOCTOR OF PHILOSOPHY , December 2006.

58 Voronoi based space partitioning for coordinated multi robot exploration , by Ling Wu , 2007 .
Exat and approximattion algorithm for computing optimal α-fat decompositions , by Mirela Damian , Visibility Queries and Maintenance in Simple Polygons , By Boris Aronov, Leonidas J. Guibas,Marek Teichmann, Li Zhang ,


Download ppt "Polygon Decomposition"

Similar presentations

Ads by Google