Polygon partition

A partition of a polygon is a set of primitive units (e.g. squares), which do not overlap and whose union equals the polygon. A polygon partition problem is a problem of finding a partition which is minimal in some sense, for example a partition with a smallest number of units or with units of smallest total side-length.

Polygon partitioning is an important class of problems in computational geometry. There are many different polygon partition problems, depending on the type of polygon being partitioned and on the types of units allowed in the partition.

The term polygon decomposition is often used as a general term that includes both covering and partitioning.[1]

Applications

Polygon decomposition is applied in several areas:[1]

  • Pattern recognition techniques extract information from an object in order to describe, identify or classify it. An established strategy for recognising a general polygonal object is to decompose it into simpler components, then identify the components and their interrelationships and use this information to determine the shape of the object.
  • In VLSI artwork data processing, layouts are represented as polygons, and one approach to preparation for electron-beam lithography is to decompose these polygon regions into fundamental figures. Polygon decomposition is also used in the process of dividing the routing region into channels.
  • In computational geometry, algorithms for problems on general polygons are often more complex than those for restricted types of polygons such as convex or star-shaped. The point inclusion problem is one example. A strategy for solving some of these types of problems on general polygons is to decompose the polygon into simple component parts, solve the problem on each component using a specialized algorithm, and then combine the partial solutions.
  • Other applications include data compression, database systems, image processing and computer graphics.

Partitioning a polygon into triangles

The most well-studied polygon partition problem is partitioning to a smallest number of triangles, also called triangulation. For a hole-free polygon with vertices, a triangulation can be calculated in time . For a polygon with holes, there is a lower bound of .

A related problem is partitioning to triangles with a minimal total edge length, also called minimum-weight triangulation.

Partitioning a polygon into pseudo-triangles

The same two variants of the problem were studied for the case in which the pieces should be pseudotriangles – polygons that like triangles have exactly three convex vertices. The variants are: partitioning to a smallest number of pseodutriangles, and partitioning to pseudotriangles with a minimal total edge length.

Partitioning a rectilinear polygon into rectangles

A special sub-family of polygon partition problems arises when the large polygon is a rectilinear polygon (also called: orthogonal polygon). In this case, the most important component shape to consider is the rectangle.[1]

Rectangular partitions have many applications. In VLSI design, it is necessary to decompose masks into the simpler shapes available in lithographic pattern generators, and similar mask decomposition problems also arise in DNA microarray design. Rectangular partitions can simplify convolution operations in image processing and can be used to compress bitmap images. Closely related matrix decomposition problems have been applied to radiation therapy planning, and rectangular partitions have also been used to design robot self-assembly sequences.[2]

Minimizing the number of components

The problem of minimizing the number of component rectangles is polynomial: several polynomial-time algorithms are known. See [1]:10–13 and [2]:3–5 for surveys.

The problem of partitioning a rectilinear polygon to a smallest number of squares (in contrast to arbitrary rectangles) is NP-hard.[3]

Minimizing the total edge length

In some applications, it is more important to minimize the total length of the cuts (e.g. to minimize the cost of performing the partition, or to minimize the amount of dust). This problem is called minimum edge-length rectangular partitioning. It was first studied by Lingas, Pinter, Rivest and Shamir in 1982.[4][5] The run-time complexity of this problem crucially depends on whether the raw polygon is allowed to have holes.

If the raw polygon is hole-free, then an optimal partition can be found in time , where n is the number of vertices of the polygon. In the special case of a "histogram polygon", the complexity improves to .[4] The algorithm uses dynamic programming and relies on the following fact: if the polygon is hole-free, then it has a minimum-length partition in which each maximal line-segment contains a vertex of the boundary. The reason is that, in any minimum-length partition, every maximal line-segment can be "pushed" until it hits one of the vertices of the boundary, without changing the total length. Therefore, there are only candidates for a line segment in an optimal partition, and they can be checked efficiently using dynamic programming.[5]:166–167

If the raw polygon might have holes, even if they are degenerate holes (i.e., single points), the problem is NP-hard. This can be proved by reduction from Planar SAT.[4][6] For the case in which all holes are single points, several constant-factor approximations have been developed:

  • A (3+sqrt(3)) approximation in time ;[6]
  • A (3+sqrt(3)) approximation in time ;[7]
  • A 4 approximation approximation in time (more generally, in d dimensions, it is a approximation in time ),[8]
  • A 3 approximation in time ;
  • A 1.75 approximation in time (more generally, in d dimensions, it is a approximation in time );[9] the latter approximation uses a restricted variant of the problem called guillotine partitioning, in which the cuts must be guillotine cuts (edge-to-edge cuts).
  • Several polynomial-time approximation schemes using sophisticated guillotine cuts.[10][11][5]

Partition a polygon into trapezoids

In VLSI artwork processing systems, it is often required to partition a polygonal region into the minimum number of trapezoids, with two horizontal sides. A triangle with a horizontal side is considered to be a trapezoid with two horizontal sides one of which is degenerate. For a hole-free polygon with sides, a smallest such partition can be found in time .[12]

If the number of trapezoids need not be minimal a trapezoidation can be found in time , as a by-product of a polygon triangulation algorithm.[13]

If the polygon does contain holes, the problem is NP-complete, but a 3-approximation can be found in time .[12]

Partition a polygon into convex quadrilaterals

A quadrilateralization or a quadrangulation is a partition into quadrilaterals.

A recurring characteristic of quadrangulation problems is whether they Steiner point are allowed, i.e., whether the algorithm is allowed to add points which are not vertices of the polygon. Allowing Steiner points may enable smaller divisions, but then it is much more difficult to guarantee that the divisions found by an algorithms have minimum size.

There are linear-time algorithms for quadrangulations of hole-free polygons with Steiner points, but they are not guaranteed to find a smallest partition.[14][15]

Partition a polygon into m-gons

A generalization of previous problems is the problem of partitioning to polygons that have exactly m sides, or at most m sides. Here the goal is to minimize the total edge length. This problem can be solved in time polynomial in n and m.[16][17]

More general component shapes

More general shapes of pieces have been studied, including: arbitrary convex polygons, spiral shapes, star polygons and monotone polygons. See [1] for a survey.

See also

References

  1. Realz Slaw. "Tiling an orthogonal polygon with squares". CS stack exchange. Retrieved 19 October 2015.
  2. Andrzej Lingas and Ron Y Pinter and Ron L Rivest and Adi Shamir (1982). "Minimum edge length partitioning of rectilinear polygons" (PDF). Proc. 20th Allerton Conf. Commun. Control Comput: 53–63.
  3. Du, Ding-Zhu; Ko, Ker-I.; Hu, Xiaodong (2012). Design and Analysis of Approximation Algorithms. Springer Optimization and Its Applications. New York: Springer-Verlag. pp. 165–209, chapter 5 "guillotine cut". ISBN 978-1-4614-1700-2.
  4. Gonzalez, Teofilo; Zheng, Si-Qing (1985-06-01). "Bounds for partitioning rectilinear polygons". Proceedings of the first annual symposium on Computational geometry. SCG '85. Baltimore, Maryland, USA: Association for Computing Machinery: 281–287. doi:10.1145/323233.323269. ISBN 978-0-89791-163-4.
  5. Levcopoulos, C (1986-08-01). "Fast heuristics for minimum length rectangular partitions of polygons". Proceedings of the second annual symposium on Computational geometry. SCG '86. Yorktown Heights, New York, USA: Association for Computing Machinery: 100–108. doi:10.1145/10515.10526. ISBN 978-0-89791-194-8.
  6. Gonzalez, Teofilo F.; Razzazi, Mohammadreza; Zheng, Si-Qing (1993-12-01). "An efficient divide-and-conquer approximation algorithm for partitioning into d-boxes". International Journal of Computational Geometry & Applications. 03 (04): 417–428. doi:10.1142/S0218195993000269. ISSN 0218-1959.
  7. Gonzalez, Teofilo; Zheng, Si-Qing (1989-06-01). "Improved bounds for rectangular and guillotine partitions". Journal of Symbolic Computation. 7 (6): 591–610. doi:10.1016/S0747-7171(89)80042-2. ISSN 0747-7171.
  8. Arora, S. (October 1996). "Polynomial time approximation schemes for Euclidean TSP and other geometric problems". Proceedings of 37th Conference on Foundations of Computer Science: 2–11. doi:10.1109/SFCS.1996.548458.
  9. Mitchell, Joseph S. B. (1999-01-01). "Guillotine Subdivisions Approximate Polygonal Subdivisions: A Simple Polynomial-Time Approximation Scheme for Geometric TSP, k-MST, and Related Problems". SIAM Journal on Computing. 28 (4): 1298–1309. doi:10.1137/S0097539796309764. ISSN 0097-5397.
  10. Chazelle, Bernard (2007). "Triangulating a simple polygon in linear time". Discrete & Computational Geometry. 6 (3): 485–524. doi:10.1007/bf02574703.
  11. H. Everett; W. Lenhart; M. Overmars; T. Shermer; J. Urrutia. (1992). "Strictly convex quadrilateralizations of polygons". Proc. 4th Canad. Conf. Comput. Geom. pp. 77–83.
  12. Ramaswami, Suneeta; Ramos, Pedro; Toussaint, Godfried (1998). "Converting triangulations to quadrangulations". Computational Geometry. 9 (4): 257. doi:10.1016/s0925-7721(97)00019-9.
  13. Lingas, Andrzej; Levcopoulos, Christos; Sack, Jörg (1987). "Algorithms for minimum length partitions of polygons". BIT. 27 (4): 474. doi:10.1007/bf01937272.
  14. Levcopoulos, Christos; Lingas, Andrzej; Sack, Jörg-R. (1989). "Heuristics for optimum binary search trees and minimum weight triangulation problems". Theoretical Computer Science. 66 (2): 181. doi:10.1016/0304-3975(89)90134-5.
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.