Abstract 1 Introduction 2 Preliminaries 3 Lattice formulation for orthogonal strip partitions of simple polygons 4 Dynamic programming algorithm and complexity 5 Orthogonal strip partitioning of convex and self-overlapping polygons 6 Concluding remarks References

Orthogonal Strip Partitioning of Polygons: Lattice-Theoretic Algorithms and Lower Bounds

Jaehoon Chung ORCID Korea Institute for Advanced Study (KIAS), Seoul, Republic of Korea
Abstract

We study a variant of a polygon partition problem, introduced by Chung, Iwama, Liao, and Ahn [ISAAC’25]. Given orthogonal unit vectors 𝐮,𝐯2 and a polygon P with n vertices, we partition P into connected pieces by cuts parallel to 𝐯 such that each resulting subpolygon has width at most one in direction 𝐮. We consider the value version, which asks for the minimum number of strips, and the reporting version, which outputs a compact encoding of the cuts in an optimal strip partition.

We give efficient algorithms and lower bounds for both versions on three classes of polygons of increasing generality: convex, simple, and self-overlapping. For convex polygons, we solve the value version in O(logn) time and the reporting version in O(hlog(1+nh)) time, where h is the width of P in direction 𝐮. We prove matching lower bounds in the decision-tree model, showing that the reporting algorithm is input-sensitive optimal with respect to h. For simple polygons, we present O(nlogn)-time, O(n)-space algorithms for both versions and prove an Ω(n) lower bound. For self-overlapping polygons, we extend the approach for simple polygons to obtain O(nlogn)-time, O(n)-space algorithms for both versions, and we prove a matching Ω(nlogn) lower bound in the algebraic computation-tree model via a reduction from the δ-closeness problem.

Our approach relies on a lattice-theoretic formulation of the problem. We represent strip partitions as antichains of intervals in the Clarke–Cormack–Burkowski lattice, originally developed for minimal-interval semantics in information retrieval. Within this lattice framework, we design a dynamic programming algorithm that uses the lattice operations of meet and join. To the best of our knowledge, this is the first geometric application of the Clarke–Cormack–Burkowski lattice.

Keywords and phrases:
Polygon partitioning, Strip partition, Lattice, Self-overlapping curves
Copyright and License:
[Uncaptioned image] © Jaehoon Chung; licensed under Creative Commons License CC-BY 4.0
2012 ACM Subject Classification:
Theory of computation Computational geometry
Related Version:
Full Version: https://arxiv.org/abs/2604.15247
Funding:
This work was supported in part by a KIAS Individual Grant AP106101 via the Center for Artificial Intelligence and Natural Sciences at Korea Institute for Advanced Study, and by the Center for Advanced Computation at Korea Institute for Advanced Study.
Editor:
Pierre Fraigniaud

1 Introduction

Partitioning a polygon into the minimum number of pieces has been studied extensively under shape-class constraints, for example into convex, star-shaped, quadrilateral, or monotone pieces [1, 10, 15]. Much less is known for metric constraints that bound geometric measures, such as width, diameter, or perimeter. In contrast to the classical shape-based setting, the problem becomes significantly harder under such metric bounds. Imposing a unit upper bound on diameter or perimeter already makes the minimum partition problem NP-hard for simple polygons without holes [3]. Moreover, no polynomial-time algorithm is known for computing an optimal solution even when the input is a square or an equilateral triangle [2].

In ISAAC’25, Chung et al. [11] introduced a minimum partition problem with an upper-bounded width constraint, which limits the width of each partitioned piece in prescribed directions. Such a constraint is motivated by manufacturing and recycling, where materials must be cut or processed within width limits. For instance, Lan et al. [16] recycle wind turbine blades by first cutting the blades into panels small enough to fit the intake of crushing machines, and then crushing them into recyclates. Moreover, wind turbine blades are typically made of glass-fiber composites with directionally aligned fibers, so the cutting effort can depend on the cut direction [13].

From a theoretical perspective, the problem is related to Bang’s conjecture, a long-standing open problem in convex geometry [5]. Chung et al. resolved a partition analogue of this conjecture, showing that for any convex body, there exists a direction in which an optimal partition can be achieved using only parallel cuts.

These applications and theoretical results motivate the study of minimum partitioning under an upper-bounded width constraint. Moreover, they suggest that it is natural to restrict attention to partitions in which all cuts are parallel to a single direction, which we call the strip partition model.

We consider three classes of input polygons: convex, simple, and self-overlapping, where a self-overlapping polygon generalizes a simple polygon by allowing the boundary to self-intersect. A self-overlapping curve was introduced by Shor and van Wyk [21] as the boundary of a topological disk immersed in 2. When this curve is polygonal, it serves as the boundary of a self-overlapping polygon. Unlike in the simple case, the boundary alone does not determine a unique interior or visibility relation. Following Shor and van Wyk, we define visibility with respect to a triangulation of the curve, so that partitions of the polygon are well defined.

Figure 1: (a) The polygon P has a windmill shape with three arms extending from an equilateral triangle of height 4. (b) A minimum partition of P under width and cut constraints, W=U=𝕊+. (c) A minimum orthogonal strip partition of P with 𝐮=(1,0),𝐯=(0,1).

In this work, we study orthogonal strip partitioning of polygons and present efficient algorithms with lower bounds for each class of input polygons.

Orthogonal strip partition problem.

We first recall the partitioning problem under width and cut constraints introduced by Chung et al. [11]. Let P be a simple polygon, and let 𝕊+={(cosθ,sinθ)0θ<π} denote the set of all unit vectors in the plane. For 𝐯𝕊+ and a set X2, let ω𝐯(X) denote the width of X in direction 𝐯, that is, the length of the projection of X onto a line parallel to 𝐯. Given a subset W𝕊+, we say that X satisfies the unit-width constraint W if ω𝐯(X)1 for some 𝐯W. We also impose a cut constraint U𝕊+, meaning that every cut used to partition P must be aligned with some direction in U. Here, a cut is a line segment cP whose relative interior lies in the interior of P. Given a simple polygon P and sets W,U𝕊+, the goal is to find a partition of P into the minimum number of pieces such that every cut is aligned with a direction in U and each piece satisfies the unit-width constraint W.

The orthogonal strip partition problem is the special case with W={𝐮} and U={𝐯} for two orthogonal unit vectors 𝐮,𝐯𝕊+. A strip is a subpolygon QP with ω𝐮(Q)1, and a strip partition divides P into strips using only cuts parallel to 𝐯. Without loss of generality, we assume 𝐮=(1,0) and 𝐯=(0,1). Under this assumption, each cut is a vertical segment and every strip Q has width at most 1 in the horizontal direction. In this orthogonal setting, we regard a cut as a maximal vertical segment contained in P whose relative interior lies in the interior of P. See Figure 1 for an illustration.

Cut descriptors and lossless encoding.

We define the descriptor of a cut as the pair of boundary edges of P on which its top and bottom endpoints lie, together with its x-coordinate. If a top or bottom endpoint lies on two incident edges, we choose the left edge, so the descriptor uniquely determines the position of the cut. A partition of P can be represented by the descriptors of its cuts. Our primary objective is to minimize the number of strips. In the reporting variant, we also compute the descriptors of all cuts in an optimal partition.

To store these descriptors succinctly, we fix a lossless encoding scheme for strip partitions. For each polygon P, the scheme assigns a codeword to each strip partition of P so that the partition can be reconstructed from the codeword without loss. Thus each strip partition of P is represented by a unique codeword.

The purpose of lossless encoding is to separate the combinatorial difficulty of finding an optimal partition from the cost of listing all cuts. For an integer k1, the optimal strip partition of k×1 rectangle consists of k1 cuts spaced one unit apart. If we store one descriptor per cut, any reporting algorithm requires Ω(k) time to output the explicit list. We therefore allow the algorithm to output a succinct codeword from which the full list of cut descriptors can be reconstructed without loss, for example by encoding the x-coordinate of the leftmost cut together with the number of cuts. This is called a run-length encoding [6]. Under this model, the cost is no longer dominated by explicit output size, but by distinguishing among combinatorially different optimal partitions.

Definition 1 (Orthogonal Strip Partition Problems).

An orthogonal strip partition of a polygon P2 is a partition of P into subpolygons (strips) using vertical cuts, such that each subpolygon has horizontal width at most 1. We consider three input domains 𝒟{convex,simple,self-overlapping}. For 𝒟{convex,simple}, an input instance consists of the vertices of P listed in counterclockwise order along its boundary. For 𝒟=self-overlapping, an instance consists of a triangulation of P. For each domain 𝒟, we consider two versions:

  • Value version: return the minimum number of strips.

  • Reporting version: with respect to the fixed lossless encoding scheme, output any codeword representing an optimal strip partition of P.

Let 𝒟{conv,simp,self} denote the type of P, corresponding to convex, simple, and self-overlapping, respectively. For a polygon P in domain 𝒟, let OSPV𝒟(P) and OSPR𝒟(P) be the value and reporting versions of the orthogonal strip partition problem, respectively. We denote by opt(P) the minimum number of strips in an optimal strip partition of P.

Related work.

The general version of the strip partition problem with arbitrary width and cut constraints W,U𝕊+, was first introduced by Chung et al. [11]. They studied structural properties in simple polygons, in particular the monotonicity of the minimum partition number under polygon containment. They proved a partition analogue of Bang’s conjecture. If U contains every direction orthogonal to each 𝐰W, then any convex body admits an optimal partition obtained by equally spaced cuts parallel to some direction 𝐯U. Hence an optimal solution exists in the strip partition model.

Most algorithmic work for the strip partition model focuses on monotone variants, including the convex case. Liu [19] gave an O(nlogn)-time algorithm for partitioning a rectilinear polygon with rectilinear holes into x-monotone pieces using horizontal cuts, where n is the total number of vertices. Lee et al. [17] improved this to linear time for hole-free polygons. Lingas and Soltan [18] studied minimum convex partitions of polygons with holes by cuts restricted to a set U of directions; in particular, they give an O(nlogn)-time algorithm when |U|=1 (parallel cuts).

Our results.

We study orthogonal strip partitioning of convex, simple, and self-overlapping polygons, and give efficient algorithms with matching lower bounds in appropriate computational models, in particular the decision-tree and algebraic computation-tree models.

First, for a convex n-gon, the value version can be solved in O(logn) time and the reporting version in O(hlog(1+n/h)) time, where h1 is the horizontal width of the input polygon. As a function of h, this bound is O(logn) when h=1 and approaches O(n) as h increases. We prove matching lower bounds in the decision-tree model, showing that any algorithm needs Ω(logn) time for the value version and Ω(hlog(1+n/h)) time for the reporting version. Thus the reporting algorithm is input-sensitive optimal with respect to h.

Second, for simple polygons with n vertices, we use a lattice-theoretic formulation of strip partitions. We represent strip partitions as antichains of intervals in the Clarke–Cormack–Burkowski lattice, originally developed for minimal-interval semantics in information retrieval, and design a dynamic programming algorithm on a trapezoidal decomposition whose recurrence is expressed using the lattice operations of meet and join on these antichains. This yields an O(nlogn)-time, O(n)-space algorithm that solves both the value and reporting versions. We also show that, unlike for convex polygons, any algorithm requires Ω(n) accesses to the coordinates of the input vertices in the worst case. To the best of our knowledge, this is the first geometric application of the Clarke–Cormack–Burkowski lattice.

Finally, we extend this lattice-based framework to self-overlapping polygons given by a triangulation. We obtain an O(nlogn)-time, O(n)-space algorithm that solves both versions, and prove an Ω(nlogn) lower bound in the algebraic computation-tree model by a reduction from the δ-closeness problem. This shows that our algorithm is optimal in that model.

Because of page limits, the main body of the paper focuses on the lattice formulation (Section 3) and dynamic program (Section 4) for simple polygons. Omitted proofs and full details for the convex and self-overlapping cases are deferred to the full version.

2 Preliminaries

Let P be a polygon with n vertices in the plane, given as a list of vertices in counterclockwise order along its boundary. A partition of P is a set of connected pieces with pairwise disjoint interiors whose union equals P. The cardinality of a partition is the number of its pieces.

For a set X2, we denote by X its boundary, by int(X) its interior, and by cl(X) its closure. We regard a polygon as the union of its interior and boundary; in particular, cl(P)=P, P is the boundary of P, and int(P) is its interior.

For a point p2, let x(p) and y(p) denote its x- and y-coordinates, respectively. For any two points p,q2, we use pq to denote the line segment connecting p and q, and write |pq| for its length. We call pq a cut in P if p,qP and the interior points of pq lie in int(P). If is a vertical cut, we denote by x() the x-coordinate of .

Let O be a totally ordered set. A subset IO is an interval of O if for all x,y,zO with xzy, the condition x,yI implies zI. A closed interval of O is an interval of the form [a,b]={xOaxb}. We denote by 𝐈O the set of all closed intervals of O. If O with the induced order, then for a closed interval I=[a,b]𝐈O, we define its length by |I|ba. The set O is locally finite if every closed interval [a,b]O contains only finitely many elements of O; for example, is locally finite, whereas and are not.

We use the notation [m]{1,2,,m} for a positive integer m. For a finite set A, we use |A| to denote its cardinality.

Computational model.

We work in the real-RAM model, which supports unit-cost arithmetic (+,,×,÷) and comparisons on real numbers. The n vertices of the input polygon P are given by real coordinates (xi,yi)i=1n. We allow a restricted use of floor function: for each input xi, the integer part xi is also given and can be accessed in constant time, which increases the input size only by a constant factor. We do not allow the floor function on arbitrary real values, since this would make the model unrealistically powerful [20]. The integer labels do not increase the computational power for the problems we consider.

Our algorithms take floor/ceiling of differences between x-coordinates of input vertices. In our model, these are supported in constant time because the integer parts of all input x-coordinates are given. Let (x1,x2,,xn) be the x-coordinates of the vertices of P. For each i[n], let fi=xi (the integer part) and ri=xifi (the fractional part). Then, xixj=fifj𝟏[ri<rj], where 𝟏[] is the indicator function and its value is computed by a single comparison. For computing ceilings, we use the identity xixj=xjxi.

Figure 2: (a) Vertical trapezoidal decomposition of P into V={Δ1,,Δ6}, and decomposition of P into PL and PR by a vertical cut c of V. (b-c) Merging optimal strip partitions of PL and PR incident to c may or may not require an additional cut, depending on whether |I1I2|1 or >1.

3 Lattice formulation for orthogonal strip partitions of simple polygons

In this section, P is a simple polygon with n vertices, stored in an array in counterclockwise order along its boundary. We give an O(nlogn)-time, O(n)-space algorithm for both OSPVsimp(P) and OSPRsimp(P).

We first compute a vertical trapezoidal decomposition of P and its dual graph in O(n) time using the algorithm of Chazelle [9]; see Figure 2(a). Let V={Δ1,Δ2,,Δm} be the set of trapezoids and let G=(V,E) be its dual graph. Then m=O(n) and G is a tree.

Let c be a vertical cut in the trapezoidal decomposition. Cutting P along c yields two subpolygons PL,PRP, where PL is the part of P lying to the left of c and PR is the part lying to the right. Consider optimal strip partitions of PL and PR in which every strip has horizontal width at most 1. Taking the union of these two partitions, with c as a common boundary, yields a feasible strip partition of P, implying opt(P)opt(PL)+opt(PR). Conversely, given an optimal partition of P, restricting it to PL and PR yields feasible strip partitions of these subpolygons. Thus, opt(PL)+opt(PR)1opt(P)opt(PL)+opt(PR), and we need to determine whether the lower or upper bound is achieved in a given instance.

To analyze this, observe that in any strip partition of PL, there is exactly one strip incident to c. For PL, let c(PL) denote the set of x-intervals obtained as follows: for each optimal strip partition of PL, take the strip incident to c and project it onto the x-axis, and include the resulting interval in c(PL). We define c(PR) for PR analogously. Every interval in c(PL) and in c(PR) contains x(c), since its corresponding strip is incident to c.

When gluing optimal partitions of PL and PR along c, the total number of strips decreases by one only when the two strips incident to c can be merged into a single strip without violating the width constraint. In terms of x-intervals, this is equivalent to checking whether there exist intervals I1c(PL) and I2c(PR) such that |I1I2|1. See Figure 2.

Observation 2.

We have opt(P)=opt(PL)+opt(PR)1 if and only if there exist intervals I1c(PL) and I2c(PR) such that |I1I2|1.

Moreover, it suffices to consider only inclusion-minimal intervals in each family c(PL) and c(PR). If (I1,I2)c(PL)×c(PR) satisfies |I1I2|1 and there exists I1c(PL) with I1I1, then |I1I2|1 also holds; by symmetry, the same argument applies to c(PR). Thus, we may restrict attention to inclusion-minimal intervals in c(PL) and c(PR).

Observation 3.

To decide whether there exist I1c(PL) and I2c(PR) with |I1I2|1, it suffices to consider only the inclusion-minimal intervals in c(PL) and c(PR).

Algorithm overview and lattice formulation.

Our algorithm performs a bottom-up dynamic program over the vertical trapezoidal decomposition of P and its dual tree G, rooted at an arbitrary node. For a node u of G, let Q be the subpolygon formed by the union of trapezoids in the subtree rooted at u. If u is not the root, we designate a vertical edge c of Q that serves as the interface to its parent. The associated subproblem for (Q,c) is to determine the minimum number opt(Q), together with the possible x-intervals of strips incident to c in optimal partitions of Q.

Observation 2 shows that, when two subpolygons are glued across c, the optimum of the combined region can be determined from the optimum of each subpolygon and the x-intervals of the strips incident to c in optimal partitions of the two subpolygons. Moreover, by Observation 3, it suffices to retain only the inclusion-minimal such intervals. Thus, for each subproblem (Q,c), we maintain the optimal value opt(Q) together with the inclusion-minimal intervals in c(Q).

We initialize these DP states at leaf trapezoids and combine them bottom-up at internal nodes, eventually reaching the root and obtaining opt(P). The crucial observation is that the update from child subproblems to a parent subproblem can be carried out entirely on these interval families. These interval families form an order-theoretic structure, namely the Clarke–Cormack–Burkowski (CCB) lattice. This lattice comes with two basic operations, meet() and join(). As we show next, the two basic operations naturally describe the two update situations of the dynamic program: gluing two incident strips into one, or introducing a new cut when such a gluing would violate the unit-width constraint.

3.1 Antichain completion and the Clarke–Cormack–Burkowski lattice

Let (X,) be a partially ordered set (poset). A subset AX is an antichain if no two distinct elements of A are comparable, that is, for all a,bA with ab, we have neither ab nor ba. We denote by 𝖠𝖢(X) the set of all antichains of X.

Boldi and Vigna [8] order antichains by their lower sets. For 𝒜𝖠𝖢(X), its lower set is (𝒜):={xXy𝒜 with xy}. They define a partial order on 𝖠𝖢(X) by 𝒜(𝒜)(). The poset (𝖠𝖢(X),) is called the antichain completion of (X,).

Now let O be a totally ordered set, and let 𝐈O be the set of all closed intervals of O. We order 𝐈O by reverse inclusion, so (𝐈O,) is a poset. We write O𝖠𝖢(𝐈O) and view (O,) as the antichain completion of (𝐈O,). For our purposes, it suffices to keep in mind the following description of O and . Each element 𝒜O is a family of intervals in which no interval properly contains another. For 𝒜,O, the relation 𝒜 means that every interval in 𝒜 contains at least one interval in .

Figure 3: Let (O,) be the antichain completion of (𝐈O,). The figure illustrates the partial order, meet, and join operations for two antichains 𝒜,O: (a) 𝒜; (b) 𝒜; (c) 𝒜.

Clarke–Cormack–Burkowski (CCB) lattice.

A poset is a lattice if every pair of elements has a unique least upper bound (join) and a unique greatest lower bound (meet). For a locally finite, totally ordered set O, Boldi and Vigna [8] show that the antichain completion O forms a complete lattice. This structure, known as the Clarke–Cormack–Burkowski lattice, is named after the work of Clarke, Cormack, and Burkowski on minimal-interval semantics in information retrieval [12].

Let O be a locally finite, totally ordered set, so O is a CCB lattice. Each 𝒜O is a family of intervals of O in which no interval properly contains another. For a family of intervals, let min(){IJ with JI} be the set of inclusion-minimal intervals in . The join and meet of 𝒜,O are defined, respectively, as

𝒜min(𝒜)and𝒜min{[min{,},max{r,r}][,r]𝒜,[,r]}.

See Figure 3 for an illustration of the partial order, meet, and join of two antichains.

Boldi and Vigna also show that O is a completely distributive lattice: arbitrary meets distribute over arbitrary joins in this lattice. In particular, for any family (𝒜i)iIO and any O, we have (iI𝒜i)=iI(𝒜i).

Lattice-based representation of strip partitions.

For a vertical cut c, the sets min(c(PL)) and min(c(PR)) are antichains of intervals, since no interval in each set properly contains another. By Observation 3, these antichains suffice to decide whether the strips incident to c can be merged. In fact, the equality opt(P)=opt(PL)+opt(PR)1 holds if and only if the meet min(c(PL))min(c(PR)) contains an interval of length at most 1. Thus, in our dynamic program, we only need to maintain, for each subpolygon Q with vertical edge c, the antichain 𝖠𝗇𝗍(Q,c)min(c(Q)). In other words, 𝖠𝗇𝗍(Q,c) is the set of inclusion-minimal x-intervals of strips incident to c across all optimal strip partitions of Q.

At first glance, these antichains appear to be families of intervals of , which is not locally finite. However, as we will show, once we fix some ε0, every interval that arises in our algorithm has endpoints of the form x(p)+m or x(p)+m±ε, where p is a vertex of P and m. Thus all endpoints lie in

(P,ε):={x(p)+mε,x(p)+m,x(p)+m+εp is a vertex of P,m},

a locally finite, totally ordered set. Consequently, every antichain maintained by our dynamic program lies in the CCB lattice (P,ε). This lattice is completely distributive.

Figure 4: Subproblem structure (QΔ,eΔ,η(eΔ)) is defined for every non-root node Δ of G=(V,E).

3.2 Subproblem structures in the refined dual tree

We now describe the subproblem structure underlying our dynamic program for simple polygons, formulated in terms of antichains of intervals.

We associate each subproblem with a pair (Q,e), where Q is a union of trapezoids from the vertical trapezoidal decomposition V and e is a vertical boundary edge of Q. (Recall that e(Q) denotes the family of x-intervals of all strips incident to edge e across all optimal strip partitions of Q.) We compress this family into an antichain by keeping only inclusion-minimal intervals: 𝖠𝗇𝗍(Q,e)min(e(Q)). Every interval in 𝖠𝗇𝗍(Q,e) has length at most 1, and each such interval includes the common x-coordinate x(e).

Let G=(V,E) be the dual graph of the trapezoidal decomposition V, and fix an arbitrary leaf Δ¯V as the root. For each node ΔV, let GΔ be the subtree of G rooted at Δ and let QΔP be the subpolygon obtained as the union of the trapezoids in GΔ. A vertical cut of the trapezoidal decomposition that lies on QΔ is called a vertical interface of QΔ.

Because G is a tree, all the vertical interfaces of QΔ lie on a single vertical edge of QΔ for ΔΔ¯. Let eΔ denote this vertical edge. Note that eΔ is contained in Δ. We define the normal direction of eΔ, denoted η(eΔ), to be right if eΔ lies on the right side of Δ, and left if it lies on the left side. We refer to the triple (QΔ,eΔ,η(eΔ)) as the subproblem structure associated with Δ. See Figure 4.

Refining 𝑮 into a binary tree 𝑮~.

We transform the dual graph G of V into a rooted binary tree G~ by locally refining each star centered at a trapezoid. Let ΔV be a trapezoid in V with subproblem structure (QΔ,eΔ,η(eΔ)), and assume without loss of generality that η(eΔ)=𝗋𝗂𝗀𝗁𝗍. Suppose Δ has p children incident to its left side and q children on its right. Let (ΔiL,eiL,η(eiL))i=1p (resp. (ΔjR,ejR,η(ejR))j=1q) be the subproblem structures associated with its left (resp. right) children. By construction, each η(eiL)=𝗋𝗂𝗀𝗁𝗍 and each η(eiR)=𝗅𝖾𝖿𝗍.

First, we construct a binary tree TL whose leaves are the left children of Δ. If p=0, we do not create TL; if p=1, then TL is a single node Δ1L. For p2, we create (p1) new internal nodes u2,,up and set each ui as the parent of ΔiL and ui1 for each i=2,,p, with u1:=Δ1L. Symmetrically, we construct a binary tree TR for the right children of Δ.

Next, we remove all edges from Δ to its children in G. If TL exists (i.e., p1), we attach the root of TL as the sole child of Δ. If TR exists, let w be a new internal node whose children are the root of TR and Δ; otherwise, let w:=Δ. If Δ has a parent z in G, we replace the edge between z and Δ by an edge between z and w. The case η(eΔ)=𝗅𝖾𝖿𝗍 is handled symmetrically. See Figure 5 for an illustration.

Processing all trapezoids in postorder replaces every star subgraph in G with a binary tree. At each step, only the adjacency between Δ and its children changes; the subtrees rooted at those children remain intact. This refinement adds only O(n) new internal nodes in total, and G~ can be constructed in O(n) time. We refer to the original nodes of G as trapezoid nodes and the new internal nodes as bridge nodes. By construction, every trapezoid node in G~ has at most one child, and every bridge node has exactly two children.

Figure 5: (a) The trapezoid Δ has three left children and two right children in the subtree GΔ. (b) Refining the local star centered at Δ into a binary tree.

Subproblem structures in 𝑮~.

We lift the subproblem structures defined for nodes of G to the nodes of the refined tree G~. For each non-root node u, we associate a triple (Qu,eu,η(eu)), where Qu is a weakly simple subpolygon of P, eu is a vertical edge on Qu, and η(eu){𝗅𝖾𝖿𝗍,𝗋𝗂𝗀𝗁𝗍} is the outward normal direction of eu with respect to Qu. If u is a trapezoid node corresponding to a trapezoid ΔV, we inherit its subproblem structure by setting (Qu,eu,η(eu)):=(QΔ,eΔ,η(eΔ)).

Suppose that u is a bridge node with children v and w. Assume that (Qv,ev,η(ev)) and (Qw,ew,η(ew)) are already defined. Let s be the minimal vertical segment spanning both ev and ew, and define Qu:=QvsQw. If η(ev)=η(ew), then u is a same-side bridge. We set eu:=s and η(eu):=η(ev). In this case, Qu has boundary edges that touch each other without crossing, so Qu is only weakly simple.

If η(ev)η(ew), then u is a cross-side bridge. In this case, Qu is always simple and one of ev,ew properly contains the other. If evew, we set eu:=ewev and η(eu):=η(ew); otherwise, eu:=evew and η(eu):=η(ev). Figure 6(a-b) illustrates the subproblem structures at bridge nodes.

For the root node ρ of G~, which corresponds to the leaf Δ¯ of G, the region Qρ=P has no vertical interface on its boundary. Then, we cannot directly define a subproblem structure for ρ. Let e be the vertical side of Δ¯ that is not incident to any other trapezoid of V. Note that e may be a single vertex if Δ¯ is a triangle. In this degenerate case, we conceptually replace e with a very short vertical segment, obtained by extending it slightly in both vertical directions. This extension preserves the x-interval of Δ¯, keeps P simple, and does not affect any strip partition of P. We set eρ:=e and define η(eρ) as 𝗅𝖾𝖿𝗍 if e lies on the left side of Δ¯, or 𝗋𝗂𝗀𝗁𝗍 if e lies on the right side. This yields the subproblem structure (Qρ,eρ,η(eρ)) for the root node ρ. See Figure 6(c).

Lemma 4.

For every node u of G~, the subproblem structure (Qu,eu,η(eu)) is well-defined: Qu is a weakly simple subpolygon of P, eu is a vertical edge of Qu with positive length, and η(eu) is the outward normal direction of eu with respect to Qu.

Figure 6: The subproblem structures (Qu,eu,η(eu)) in G~ when u is (a) a same-side bridge, (b) a cross-side bridge, and (c) the root; attaching the cap Tρ(ε) along eρ yields the simple polygon Qρε.

Reducing weakly simple subpolygons to simple ones.

By Lemma 4, every node u of G~ has an associated subproblem structure (Qu,eu,η(eu)). If u is a trapezoid node or a cross-side bridge node, then Qu is simple. If u is a same-side bridge node, however, Qu is only weakly simple. To handle all subproblems in the simple polygon setting, we convert Qu into a simple polygon by attaching a thin triangular cap along eu on the outside of Qu.

Let qu be any point on the edge eu, excluding its endpoints. For sufficiently small ε>0, let qu(ε) be the point obtained by shifting qu by ε units in the direction of η(eu). Let Tu(ε) be the triangle with base eu and apex qu(ε).

Lemma 5.

For each node u of G~, there exists ε0>0 such that QuTu(ε) is a simple polygon for all 0<εε0.

Let (xi)i=1n be the x-coordinates of the vertices of P, and let (P,0):={xi+mi[n],m}. Let δ>0 be the minimum positive distance between two distinct points of (P,0). From Lemma 5, for each node u, there exists ε0(u)>0 such that QuTu(ε) is simple for all 0<εε0(u). Choose a particular ε>0 satisfying εminuε0(u) and ε<δ2. Note that δ and ε are not computed explicitly; we only fix such values conceptually.

Now we define the capped subpolygon Quε:=QuTu(ε), which is a simple polygon. Figure 6 illustrates how the cap Tu(ε) attaches to eu for each node type. Let optε(Qu) denote the minimum number of strips in an optimal strip partition of Quε. Among all optimal strip partitions of Quε, let 𝒮ε(Qu,eu) be the set of strips incident to the apex qu(ε), and define 𝖠𝗇𝗍ε(Qu,eu):=min{Ix(S)S𝒮ε(Qu,eu)}, where Ix(S) is the interval obtained by projecting S onto the x-axis. Then 𝖠𝗇𝗍ε(Qu,eu) is an antichain of intervals. By definition, every interval in 𝖠𝗇𝗍ε(Qu,eu) is realized as the x-projection of a strip incident to qu(ε) in some optimal partition of Quε. Although the family 𝒮ε(Qu,eu) may be infinite, Algorithm 1 and Lemma 9 together imply that 𝖠𝗇𝗍ε(Qu,eu) is finite. We define the dynamic-programming subproblem OSPε(Qu,eu) to be the task of computing both optε(Qu) and 𝖠𝗇𝗍ε(Qu,eu). The pair (optε(Qu),𝖠𝗇𝗍ε(Qu,eu)) is called the DP state at node u; its first entry is the value component, and its second entry is the antichain component.

4 Dynamic programming algorithm and complexity

We process the nodes of the rooted binary tree G~ in bottom-up order. For each node u, after the subproblems for all of its descendants have been solved, we compute the DP state of OSPε(Qu,eu) using the update rule for either a trapezoid node or a bridge node.

During this process, we maintain the following invariant for each node u of G~. The value optε(Qu) is the minimum number of strips in a strip partition of Quε. Let 𝒮ε(Qu,eu) be the set of strips incident to the apex qu(ε) among all optimal partitions of Quε. Then 𝖠𝗇𝗍ε(Qu,eu) consists of the inclusion-minimal x-intervals of the strips in 𝒮ε(Qu,eu).

4.1 Bottom-up evaluation on the refined tree

The update procedure is described in detail in Algorithm 1. Throughout the algorithm, we assume that η(eu)=right; the case η(eu)=left is symmetric. We use the low-pass operator Filter1 on the family of intervals. For 𝐈, let Filter1():={I|I|1}, which discards intervals of length greater than 1.

Trapezoid nodes.

Let u be a trapezoid node corresponding to a trapezoid Δ. If u has a child v in G~, the DP state (optε(Qv),𝖠𝗇𝗍ε(Qv,ev)) has already been computed. If u is a leaf, we introduce a virtual child v by taking ev to be the vertical side of Δ opposite to eu, letting Qv be the degenerate trapezoid consisting of ev, and setting η(ev)=η(eu); then optε(Qv)=1 and 𝖠𝗇𝗍ε(Qv,ev) consists of a single interval of length ε adjacent to x(ev).

Figure 7: Additional vertical cuts are inserted when no strip can be merged or extended across the node: (a) trapezoid node, (b) same-side bridge node, and (c) cross-side bridge node.

The update at a trapezoid node proceeds as follows. Let [a,b] be the x-interval of Δ, where a=x(ev) and b=x(eu). For each strip S𝒮ε(Qv,ev), we remove the old cap Tv(ε), insert Δ into the polygon, and then attach the new cap Tu(ε) along eu. If [,r] is the x-interval of S, then the extended strip has x-interval [min{,a},max{r,b+ε}], which is exactly the interval obtained by taking the meet of {[,r]} with {[a,b+ε]}. Thus, the inclusion-minimal x-intervals of all feasible extensions are exactly Filter1(𝖠𝗇𝗍ε(Qv,ev){[a,b+ε]}).

If at least one extended strip survives, then we do not introduce any new cut at u. If none survive, then no strip can be extended through Δ without violating the unit-width constraint. Let [,r] be the x-interval of the rightmost strip in 𝒮ε(Qv,ev). If no extended strip survives, we insert a series of vertical cuts in ΔTu(ε) at x-coordinates +1,+2,, decomposing the extended region into unit-width strips (with the last piece possibly shorter than 1). We then increase optε(Qu) by the number of new strips, and define 𝖠𝗇𝗍ε(Qu,eu) to consist of the single x-interval of the rightmost suffix strip incident to qu(ε).

Bridge nodes.

Let u be a bridge node of G~ with children v and w. At a bridge node, we consider pairs of strips Sv𝒮ε(Qv,ev) and Sw𝒮ε(Qw,ew), and ask whether they can be combined into a single strip incident to qu(ε). By the choice of ε, the x-interval of each of Sv and Sw already contains [x(eu)ε,x(eu)+ε]. Hence, replacing the child caps Tv(ε),Tw(ε) with the cap Tu(ε) does not change either x-interval.

For a same-side bridge, this combination is obtained by removing the caps Tv(ε) and Tw(ε), gluing the two strips along eu, and attaching the cap Tu(ε). For a cross-side bridge, we remove the two caps, take the union of the resulting strips, and attach Tu(ε) along eu. In either case, if [,r] and [,r] are the x-intervals of Sv and Sw, respectively, then the combined region has x-interval [min{,},max{r,r}]. Thus, the inclusion-minimal x-intervals of all feasible combinations are exactly Filter1(𝖠𝗇𝗍ε(Qv,ev)𝖠𝗇𝗍ε(Qw,ew)).

If at least one pair of strips yields a feasible strip, then no additional cut is introduced at u, and the feasible combined strips form 𝒮ε(Qu,eu). Otherwise, we insert a vertical cut near eu so that strips from the two child subproblems cannot be combined across u. The strips from Qv and Qw are then extended separately to qu(ε). Hence, 𝖠𝗇𝗍ε(Qu,eu)=𝖠𝗇𝗍ε(Qv,ev)𝖠𝗇𝗍ε(Qw,ew).

Algorithm 1 DP update at a node u (case η(eu)=right).

Cut placement at nodes.

We now describe how new cuts are placed when strips cannot be merged or extended at a node u without violating the unit-width constraint.

If u is a trapezoid node, no strip extends through its trapezoid Δ, so we place vertical cuts in ΔTu(ε). They start at x=+1, where [,r] is the interval with the maximum left endpoint in 𝖠𝗇𝗍ε(Qv,ev), and continue at unit distance. See Figure 7(a).

Now suppose that u is a bridge node with children v and w. If some strip in 𝒮ε(Qv,ev) can merge with one in 𝒮ε(Qw,ew) into a unit-width strip, no new cut is added at u. Otherwise, we place a single vertical cut near eu to prevent any strip from Qv from merging with a strip from Qw, so that all strips are extended to qu(ε) separately. See Figure 7(b–c).

The position of this cut depends on the bridge type and on the child from which each x-interval in 𝖠𝗇𝗍ε(Qu,eu) originates. For a same-side bridge, the cut is placed along ew if the interval comes from 𝖠𝗇𝗍ε(Qv,ev) and along ev if it comes from 𝖠𝗇𝗍ε(Qw,ew). For a cross-side bridge, either evew or ewev. Assume evew. If the interval comes from 𝖠𝗇𝗍ε(Qw,ew), the cut is placed along ev. Otherwise it is placed inside Qw at x-distance ε from eu, blocking any strip from Qwε from reaching qu(ε); see Figure 7(c). The case ewev is symmetric. Note that inserting these cuts at bridge nodes does not increase the x-interval of any strip from Qvε or Qwε; we prove this in the proof of Lemma 6.

Every interval appearing in an antichain 𝖠𝗇𝗍ε(Qu,eu) has endpoints of the form x(p)+m or x(p)+m±ε, where p is a vertex of P and m. Thus all endpoints lie in the locally finite, totally ordered set (P,ε), and each antichain maintained by our DP is an element of the Clarke–Cormack–Burkowski lattice (P,ε). The update rules are written using meet () and join () in this lattice, and the outputs of these operations remain in (P,ε).

Since ε>0 is chosen sufficiently small, the values opt(Qu) and optε(Qu) differ by at most one. This difference occurs only when, in every optimal partition of Quε, the only strip incident to qu(ε) is the cap Tu(ε); in this case we have 𝖠𝗇𝗍ε(Qu,eu)={[x(eu),x(eu)+ε]}.

In the DP state, we store an endpoint of the form x(p)+m or x(p)+m±ε as the value x(p)+m together with a single bit indicating whether the ε–offset is present. Since ε>0 is chosen sufficiently small, all order and width tests used by the algorithm can be decided from the base values and the flags. For example, if a,b(P,0) and m, then

ba2ε>mba>m,ba+2ε>mbam,(ba)+2ε=ba,(ba)2ε=ba1.
Lemma 6.

When Algorithm 1 is executed on the tree G~ in bottom-up order, it correctly computes, for every node u of G~, the pair (optε(Qu),𝖠𝗇𝗍ε(Qu,eu)), where optε(Qu) is the number of strips in an optimal partition of Quε, and 𝖠𝗇𝗍ε(Qu,eu) is the antichain of x-intervals of the strips incident to qu(ε) across all optimal partitions of Quε.

By Lemma 6, Algorithm 1 correctly computes (optε(Qρ),𝖠𝗇𝗍ε(Qρ,eρ)) at the root ρ of G~, where Qρ=P. By the discussion above on the relation between optε(Qu) and opt(Qu), we obtain opt(P) from this pair in constant time.

Encoding cut descriptors.

We show that the additional cuts placed at trapezoid and bridge nodes admit a lossless encoding from which all cut descriptors in the optimal partition can be reconstructed in O(n) time using O(n) extra space. Importantly, we can generate this encoding during the DP without increasing the asymptotic running time.

Lemma 7.

The cut descriptors produced by the dynamic program admit an O(n)-space encoding from which all cuts in an optimal partition can be reconstructed in O(n) time.

Failure of greedy approach.

One might suspect that we can discard some intervals from an antichain component before passing information to its parent. This is impossible in general: if we discard even one interval before passing the DP state upward, the reduced state no longer determines the optimum.

Let Q be a simple polygon and let e be a vertical edge of Q. Let η(e){left,right} denote the outward normal direction of e. Let 𝒫(Q,e) be the set of all simple polygons P for which there exists a simple polygon R such that P=QR and QRe. In other words, 𝒫(Q,e) consists of all simple polygons that contain (Q,e,η(e)) as a subproblem structure in the orthogonal strip partition problem.

Let 𝖠𝗇𝗍(Q,e) be the antichain component computed by Algorithm 1 for the subproblem structure (Q,e,η(e)). A certificate for (Q,e,η(e)) is a subset 𝒲𝖠𝗇𝗍(Q,e) with the following property: there exists an algorithm that, for every P𝒫(Q,e), computes opt(P) from given 𝒲, opt(Q), and the remaining region PQ. The certificate complexity of (Q,e,η(e)) is min{|𝒲|𝒲 is a certificate for (Q,e,η(e))}. This viewpoint is standard in lower bound arguments [4], and shows whether pruning 𝖠𝗇𝗍(Q,e) loses information necessary to determine opt(P).

Lemma 8.

For every integer n1, there exists a subproblem instance (Q,e,η(e)) with O(n) vertices whose certificate complexity is at least n.

Although keeping all intervals in the antichain component often appears redundant, Lemma 8 shows that one cannot safely prune intervals in general. There exist instances in which every interval is necessary; hence any greedy approach that discards intervals using only information available in the subproblem fails on some instance.

4.2 Algorithmic complexity and lower bounds

We analyze the running time and space of our dynamic program. The value component is updated only by testing whether the resulting antichain is empty, and the cut descriptor is computed during the meet or join operations without extra asymptotic cost. Thus, the overall running time is dominated by the cost of the meet and join operations on antichains.

In an antichain, intervals are strictly ordered: for two distinct intervals [a,b] and [a,b], we have a<a if and only if b<b. Thus, we store each antichain as a list of intervals sorted by their left (or right) endpoints. Every antichain produced by our lattice operations is maintained in this sorted order.

Lemma 9.

Let 𝒜 and be finite antichains of intervals in (P,ε). Then, |𝒜||𝒜|+||1 and |𝒜||𝒜|+||.

If u is a leaf node of G~, 𝖠𝗇𝗍ε(Qu,eu) consists of a single interval. At every trapezoid node or bridge node, Algorithm 1 performs exactly one meet or one join of two antichains. At every node u of G~, Lemma 9 implies that |𝖠𝗇𝗍ε(Qu,eu)| is bounded by the size of the subtree rooted at u. Boldi and Vigna [7] give one-pass, optimally lazy algorithms that compute 𝒜 and 𝒜 in time linear in |𝒜|+||. Moreover, the operation Filter1 can clearly be implemented in time linear in the number of intervals in the antichain.

Let T(t) be the total running time of Algorithm 1 on a subtree with t nodes, where T(1)=O(1). If u is a trapezoid node, its unique child has a subtree of size t1, the antichain at u has size O(t), and the update takes O(t) time; thus T(t)=T(t1)+O(t). If u is a bridge node with children whose subtrees have sizes a and ta1, then the two antichains together have size O(t), so the update again takes O(t) time and T(t)=T(a)+T(ta1)+O(t). In the worst case, this recurrence yields T(n)=O(n2).

To improve this bound, we work in the real-RAM model, where random access and binary search allow these operations to be implemented more efficiently than the one-pass algorithms. Let L() and R() denote the sorted list of left and right endpoints of intervals in , respectively. For each interval I=[,r]𝒜, we compute the insertion ranks of in L() and of r in R(), that is, their positions in these sorted lists.

Given two sorted lists X and Y with |X|=k and |Y|=m, we use a selection technique of Kaplan et al. [14] to compute all insertion ranks of X in Y in O(klogmk) time for m4k. We partition Y into blocks of size B:=m/(4k); for each xX, we first identify the block containing x and then perform a binary search within that block. The block size B itself can be computed in O(logmk) comparisons by testing powers of two, so this does not change the overall running time.

The following lemma shows that the join and filtered meet of two antichains can be computed efficiently, assuming precomputed insertion ranks.

Lemma 10.

Let 𝒜, be two finite antichains of intervals in (P,ε) such that every interval in 𝒜 has length at most 1. Assume that, for every interval I𝒜, the insertion ranks of its endpoints among those of are available in constant time. Then, 𝒜 and Filter1(𝒜) can be computed in O(|𝒜|) time.

Let |𝒜|=k and ||=m with km. We first compute the insertion ranks of all endpoints of intervals in 𝒜 among L() and R() in O(klogmk) time. If 4km, we then compute Filter1(𝒜) and 𝒜 in O(k) time. If km4k, we instead use the linear-time algorithm of Boldi and Vigna, which runs in O(m+k)=O(k) time.

Let T(t) be the running time of Algorithm 1 on a subtree of size t. For a trapezoid node with a unique child, one antichain in the meet is a singleton, so the update takes O(logt) time and T(t)=T(t1)+O(logt). For a node whose children have subtree sizes s and ts1 with sts1, the cost at that node is O(slogtss), so T(t)=T(s)+T(ts1)+O(slogtss). These recurrences give T(n)=O(nlogn) in the worst case.

Theorem 11.

For a simple polygon P with n vertices, the problems OSPVsimp(P) and OSPRsimp(P) can be solved in O(nlogn) time using O(n) space.

Lower bounds.

We now show that no sublinear-time algorithm exists for the value or reporting version, so our algorithm is optimal up to a logarithmic factor. If the input polygon is given as an array of vertices in boundary order and each query reveals one input vertex at unit cost, then any algorithm requires Ω(n) time in the worst case.

Theorem 12.

Let P be a simple polygon with n vertices stored in an array in boundary order, and suppose that each query reveals one vertex of the input polygon and has unit cost. Then, any algorithm for OSPVsimp(P) or OSPRsimp(P) requires Ω(n) time in the worst case.

5 Orthogonal strip partitioning of convex and self-overlapping polygons

We also consider the orthogonal strip partition problem for convex and self-overlapping polygons.

  • Convex polygons. For a convex polygon P with n vertices given in boundary order, OSPVconv(P) and OSPRconv(P) can be solved in O(logn) and O(hlog(1+nh)) time, respectively, where h is the horizontal width of P. Both bounds are optimal in the decision-tree model.

  • Self-overlapping polygons. For a self-overlapping polygon P with n vertices given together with a triangulation, OSPVself(P) and OSPRself(P) can be solved in O(nlogn) time using O(n) space. This bound is optimal in the algebraic computation-tree model.

6 Concluding remarks

We studied orthogonal strip partitioning for convex, simple and self-overlapping polygons. For convex polygons, we presented optimal algorithms for both value and reporting versions. In particular, for the reporting version, our reporting algorithm is input-sensitive optimal with respect to the horizontal width of P.

For simple and self-overlapping polygons, we presented a dynamic programming approach that runs in O(nlogn) time and uses O(n) space for both the value and reporting versions. The DP recurrences are naturally formulated on the Clarke–Cormack–Burkowski lattice from order theory. For self-overlapping inputs, the running time is optimal in the algebraic computation-tree model; for simple polygons, it is optimal up to a logarithmic factor in the decision-tree model.

The main open problem is to close the logarithmic gap between the upper and lower bounds for simple polygons. Lemma 8 rules out any greedy pruning rule, so in the worst case the algorithm must compute a meet or join operation between antichains of size Θ(n). However, it seems difficult to construct a simple polygon in which such expensive lattice operations occur repeatedly, whereas this is easy for self-overlapping inputs. This implies that simplicity may limit the number of costly lattice operations. Even if this intuition is correct, a binary-search based implementation still incurs O(nlogn) time. To obtain an O(n)-algorithm, one likely needs a linear-scan procedure, similar to that of Boldi and Vigna [7], together with an amortized analysis of the total cost of all lattice operations.

References

  • [1] Mikkel Abrahamsen, Joakim Blikstad, André Nusser, and Hanwen Zhang. Minimum star partitions of simple polygons in polynomial time. In Proc. 56th Annual ACM Symposium on Theory of Computing (STOC), pages 904–910. Association for Computing Machinery, 2024. doi:10.1145/3618260.3649756.
  • [2] Mikkel Abrahamsen and Nichlas Langhoff Rasmussen. Partitioning a polygon into small pieces. In Proc. 2025 Annual ACM-SIAM Symposium on Discrete Algorithms (SODA), pages 3562–3589. Society for Industrial and Applied Mathematics, 2025. doi:10.1137/1.9781611978322.118.
  • [3] Mikkel Abrahamsen and Jack Stade. Hardness of packing, covering and partitioning simple polygons with unit squares. In Proc. 65th IEEE Symposium on Foundations of Computer Science (FOCS), pages 1355–1371. IEEE, 2024. doi:10.1109/FOCS61266.2024.00087.
  • [4] Sanjeev Arora and Boaz Barak. Computational Complexity: A Modern Approach. Cambridge University Press, 2009.
  • [5] Thøger Bang. A solution of the “plank problem”. Proc. American Mathematical Society, 2(6):990–993, 1951.
  • [6] Timothy C. Bell, John G. Cleary, and Ian H. Witten. Text Compression. Prentice-Hall, 1990.
  • [7] Paolo Boldi and Sebastiano Vigna. Efficient optimally lazy algorithms for minimal-interval semantics. Theoretical Computer Science, 648:8–25, 2016. doi:10.1016/J.TCS.2016.07.036.
  • [8] Paolo Boldi and Sebastiano Vigna. On the lattice of antichains of finite intervals. Order, 35(1):57–81, 2018. doi:10.1007/S11083-016-9418-8.
  • [9] Bernard Chazelle. Triangulating a simple polygon in linear time. Discrete & Computational Geometry, 6(3):485–524, 1991. doi:10.1007/BF02574703.
  • [10] Bernard Chazelle and David Dobkin. Decomposing a polygon into its convex parts. In Proc. 11th Annual ACM Symposium on Theory of Computing (STOC), pages 38–48. Association for Computing Machinery, 1979. doi:10.1145/800135.804396.
  • [11] Jaehoon Chung, Kazuo Iwama, Chung-Shou Liao, and Hee-Kap Ahn. Minimum Partition of Polygons Under Width and Cut Constraints. In 36th International Symposium on Algorithms and Computation (ISAAC 2025), volume 359 of Leibniz International Proceedings in Informatics (LIPIcs), pages 22:1–22:20. Schloss Dagstuhl – Leibniz-Zentrum für Informatik, 2025. doi:10.4230/LIPIcs.ISAAC.2025.22.
  • [12] Charles L. A. Clarke, G. V. Cormack, and F. J. Burkowski. An algebra for structured text search and a framework for its implementation. The Computer Journal, 38(1):43–56, 1995. doi:10.1093/COMJNL/38.1.43.
  • [13] J. W. S. Hearle. The structural mechanics of fibers. Journal of Polymer Science Part C: Polymer Symposia, 20(1):215–251, 1967.
  • [14] Haim Kaplan, László Kozma, Or Zamir, and Uri Zwick. Selection from heaps, row-sorted matrices, and x+y using soft heaps. In Proc. 2nd Symposium on Simplicity in Algorithms (SOSA), pages 5:1–5:21. Schloss Dagstuhl – Leibniz-Zentrum für Informatik, 2019. doi:10.4230/OASIcs.SOSA.2019.5.
  • [15] J. Mark Keil. Decomposing a polygon into simpler components. SIAM Journal on Computing, 14(4):799–817, 1985. doi:10.1137/0214056.
  • [16] Tianhui Lan, Bingze Wang, Junchao Zhang, Hao Wei, and Xu Liu. Utilization of Waste Wind Turbine Blades in Performance Improvement of Asphalt Mixture. Frontiers in Materials, 10:1164693, 2023.
  • [17] Jaegun Lee, Hyojeong An, Hwi Kim, and Hee-Kap Ahn. Monotone partitions of simple polygons. In Proc. 36th International Workshop on Combinatorial Algorithms (IWOCA), pages 72–85, 2025. doi:10.1007/978-3-031-98740-3_6.
  • [18] A. Lingas and V. Soltan. Minimum convex partition of a polygon with holes by cuts in given directions. Theory of Computing Systems, 31(5):507–538, 1998. doi:10.1007/S002240000101.
  • [19] Robin Ru-Sheng Liu. Partitioning Rectilinear Polygons into Simpler Components. PhD thesis, The University of Texas at Dallas, 1985.
  • [20] Arnold Schönhage. On the power of random access machines. In Proc. International Colloquium on Automata, Languages and Programming (ICALP), pages 520–529, 1979. doi:10.1007/3-540-09510-1_42.
  • [21] Peter W. Shor and Christopher J. Van Wyk. Detecting and decomposing self-overlapping curves. Computational Geometry, 2(1):31–50, 1992. doi:10.1016/0925-7721(92)90019-O.