# Independent Set of Convex Polygons: From \(n^{\epsilon }\) to \(1+\epsilon \) via Shrinking

## Abstract

In the Independent Set of Convex Polygons problem we are given a set of weighted convex polygons in the plane and we want to compute a maximum weight subset of non-overlapping polygons. This is a very natural and well-studied problem with applications in many different areas. Unfortunately, there is a very large gap between the known upper and lower bounds for this problem. The best polynomial time algorithm we know has an approximation ratio of \(n^{\epsilon }\) and the best known lower bound shows only strong \(\mathsf {NP}\)-hardness.

In this paper we close this gap completely, assuming that we are allowed to shrink the polygons a little bit, by a factor \(1-\delta \) for an arbitrarily small constant \(\delta >0\), while the compared optimal solution cannot do this (resource augmentation). In this setting, we improve the approximation ratio from \(n^{\epsilon }\) to \(1+\epsilon \) which matches the above lower bound that still holds if we can shrink the polygons.

## 1 Introduction

Maximum Weight Independent Set of Convex Polygons (MWISCP) is a natural but algorithmically very challenging problem. We are given a set of weighted convex polygons \(\mathcal {P}\) in the plane and our goal is to select a subset \(\mathcal {P}'\subseteq \mathcal {P}\) such that the polygons in \(\mathcal {P}'\) are pairwise non-overlapping. The objective is to maximize the total weight of the selected polygons. The problem and its special cases arise in many settings such as map labeling [5, 12, 23], cellular networks [11], unsplittable flow [6, 8], chip manufacturing [18], or data mining [16, 20, 21].

On the one hand, the best known polynomial time approximation algorithm for the problem has an approximation ratio of \(n^{\epsilon }\) [15]. On the other hand, the best complexity result shows only strong \(\mathsf {NP}\)-hardness [14, 19] which leaves an enormous gap. Even more, there is a QPTAS [3, 17] which suggests that much better polynomial time approximation results are possible.

When dealing with a very difficult problem it is useful to first study simplified settings or relaxations of the original question in order to gain understanding. In this paper, we consider a relaxation of MWISCP in which we are allowed to shrink the input polygons slightly while the compared optimal solution cannot do this: we assume that there is a small constant \(\delta >0\) such that we can shrink each polygon by a factor \(1-\delta \) and the new polygon lies in the center of the original one (see Fig. 1). The reader may think of editing the polygons in a vector graphics program like Adobe InDesign or Inkscape and shrinking them by dragging two opposite corners of their respective bounding boxes slightly towards the center point. This yields the Maximum Weight Independent Set of \(\delta \)-Shrinkable Convex Polygons problem (\(\delta \)-MWISCP).

We believe that allowing to shrink the input polygons does not change the nature of the problem very much and, thus, insights for \(\delta \)-MWISCP can be useful for the general case as well. Also, in many applications it is justified to shrink the input objects slightly without losing much benefit, e.g., in map labeling.

### 1.1 Our Contribution

We present a \((1+\epsilon )\)-approximation algorithm for \(\delta \)-MWISCP. This generalizes a previous result for the special case of axis-parallel rectangles [1] to the much larger class of arbitrary convex polygons. Thus, we show that if we are allowed to shrink the input polygons by a little bit then we can improve the best known approximation ratio from \(n^{\epsilon }\) to \(1+\epsilon \). This is the best possible result since \(\delta \)-MWISCP is \(\mathsf {NP}\)-hard, even for unit squares [1].

Core of our reasoning is that there exists a \((1+\epsilon )\)-approximative shrunk solution for which there is a special cut sequence. This sequence recursively cuts the input plane into smaller and smaller pieces until each piece either coincides with a polygon from the solution (i.e., the polygon is “cut out”) or it has empty intersection with all polygons from this solution. Importantly, each piece arising in this sequence and each recursive cut has only constant complexity, i.e., a constant number of vertices and edges. This allows us to design a dynamic program that recursively guesses the above cut sequence and then outputs the corresponding \((1+\epsilon )\)-approximative shrunk solution.

### 1.2 Other Related Work

Many cases of geometric independent set have been studied, being distinguished by the types of the arising input objects. For axis-parallel squares of arbitrary sizes there is a PTAS due to Erlebach et al. [13]. For axis-parallel rectangles Chan and Har-Peled presented a \(O(\log n/\log \log n)\)-approximation algorithm [10], improving on several previously known \(O(\log n)\)-approximation algorithms [5, 7, 20, 22]. In the unweighted case there is even a \(O(\log \log n)\)-approximation by Chalermsook and Chuzhoy [9]. For arbitrary curves in the plane Fox and Pach give an \(n^{\epsilon }\)-approximation, assuming that any two curves intersect only *O*(1) times [15]. This improves and generalizes an earlier \(n^{1/2+o(1)}\)-approximation due to Agarwal and Mustafa for straight line segments [4].

Going beyond polynomial time results, for independent set of arbitrary polygons there is a QPTAS [3, 17], i.e., a \((1+\epsilon )\)-approximation with a running time of \(n^{(\log n)^{O_{\epsilon }(1)}}\), building on an earlier QPTAS for axis-parallel rectangles [2]. This implies that all the above problems are not \(\mathsf {APX}\)-hard, unless it is true that \(\mathsf {NP}\subseteq \mathsf {DTIME}(n^{\mathrm {poly}(\log n)})\).

## 2 Shrinking Model and Preliminaries

We assume that there is a value \(N\in \mathbb {N}\) such that each of the *n* given input polygons \(P_{i}\in \mathcal {P}\) is specified by vertices \(v_{i,1},v_{i,2},...\in \{0,...,N\}^{2}\) and a weight \(w_{i}\in \mathbb {N}\). For each polygon \(P\in \mathcal {P}\) we define its *midpoint*\(\mathrm {mid}(P)\) to be the centroid of its rectangular bounding box, see Fig. 1. For any two points \(p,p'\) we define by \(\ell (p,p')\) the line segment connecting *p* and \(p'\) and we define \(\mathrm {dist}(p,p'):=\left\| \ell (p,p')\right\| _{2}\). In our shrinking model for each polygon \(P_{i}\in \mathcal {P}\) we define a new polygon \(\mathrm {sr}(P_{i})\) defined by vertices \(v'_{i,1},v'_{i,2},...\) such that \(v'_{i,k}\in \ell (v_{i,k},\mathrm {mid}(P))\) for each *k* and such that \(\mathrm {dist}(\mathrm {mid}(P),v'{}_{i,k})=(1-\delta )\mathrm {dist}(\mathrm {mid}(P),v{}_{i,k})\). Observe that if *P* is convex then \(\mathrm {sr}(P)\subseteq P\) and also \(\mathrm {sr}(P)\) is convex.

In \(\delta \)-MWISCP our task is to compute a set of polygons \(\mathcal {P}'\subseteq \mathcal {P}\) such that for any two polygons \(P,P'\in \mathcal {P}'\) we have that \(\mathrm {sr}(P)\) and \(\mathrm {sr}(P')\) are disjoint. We compare the value of our (almost feasible) solution to the value of an optimal feasible solution \(\mathrm {OPT}(\mathcal {P})\subseteq \mathcal {P}\) which can *not *shrink the polygons, i.e., with the property that \(P\cap P'=\emptyset \) for any two polygons \(P,P'\in \mathrm {OPT}(\mathcal {P})\). Thus, an \(\alpha \)-approximation algorithm for \(\delta \)-MWISCP computes a solution \(\mathcal {P}'\subseteq \mathcal {P}\) such that \(w(\mathcal {P}')\ge \alpha ^{-1}\cdot w(\mathrm {OPT}(\mathcal {P}))\) and \(\mathrm {sr}(P)\cap \mathrm {sr}(P')=\emptyset \) for all \(P,P'\in \mathcal {P}'\), where for any set of polygons \(\mathcal {P}''\) we define \(w(\mathcal {P}''):=\sum _{P_{i}\in \mathcal {P}''}w_{i}\).

Note that for a non-convex polygon *P* we cannot guarantee that \(\mathrm {sr}(P)\subseteq P\). Thus, for arbitrary polygons we no longer obtain a relaxation to the original problem. In particular, the optimal solution for the shrunk polygons might be worse than the optimal solution for the original polygons. Therefore, in this paper we allow only convex polygons.

For technical reasons we assume w.l.o.g. that the width of the rectangular bounding box of each input polygon is larger than its height. This can be ensured by stretching the input plane horizontally. Note that also in our shrinking model this yields an equivalent instance.

## 3 Preprocessing and Shrinking

In this section we describe preprocessing steps in which we remove some of the input polygons and shrink the remaining ones. While doing this, we lose at most a factor \(1+\epsilon \) in our approximation ratio. Also, we ensure that the shrunk polygons are “well-behaved” so that our main algorithm (described in the next section) has an easier task.

Let \(\epsilon >0\) and \(\delta >0\). First, we ensure that each polygon has only few, i.e., constantly many vertices (and thus also constantly many edges).

**Lemma 1**

There exists a constant \(K=O_{\delta }(1)\) such that for each polygon *P* we can compute a polygon \(P'\) with at most *K* vertices such that \(\mathrm {sr}(P)\subseteq P'\subseteq P\).

We group the polygons according to their diameters. For each polygon *P* denote by \(\mathrm {diam}(P)\) its diameter, i.e., the largest distances between two vertices of *P*. We do our grouping to achieve two goals: we want that within each group the diameters of the polygons differ by at most a factor \(O_{\delta ,\epsilon }(1)\) and for two different groups they differ by at least a factor \(\sin (\epsilon /K^{2})\frac{1}{\epsilon \delta }\).

**Lemma 2**

\(\mu '_{i}\le \mathrm {diam}(P)<\mu _{i}\ \) for each \(P\in \mathcal {P}_{i}\) and

\(\delta \epsilon \cdot \sin (\epsilon /K^{2})\cdot \mu '_{i}=\mu _{i+1}\) and \(\mu _{i}/\mu '_{i}=\left( \frac{1}{\delta \epsilon \cdot \sin (\epsilon /K^{2})}\right) {}^{1/\epsilon }\) for each

*i*.

### 3.1 Hierarchical Grids

We define a family of vertical grids \(G_{0},G_{1},...,G_{m}\) with \(m=O(\log N)\). They are used in a similar way as in [1]. For each \(i\in \{0,...,m\}\) we define \(G_{i}:=\{\{x\}\times \mathbb {R}|\exists k\in \mathbb {N}\,\mathrm {s.t.}\, x=k\cdot g_{i}\}\) with \(g_{i}:=\frac{\delta }{4}\cdot \sin (\epsilon /K^{2})\cdot \mu '_{i}\). Observe that the grids are hierarchical, i.e., each grid line of \(G_{i}\) is also grid line of \(G_{i'}\) for each \(i'>i\). We give these grids a random rotation such that the lines of all grids have exactly the same angle. This angle is drawn uniformly at random from the range \([\pi /4,\pi /2]\), measured with respect to the *x*-axis. Let \(\ell \) be a line of the grids. We are interested in the angle between \(\ell \) and the edges of the polygons. We say that \(\ell \) and a line segment \(\ell '\) have a *good angle *if the angle between \(\ell \) and the line containing \(\ell '\) have an angle of at least \(\epsilon /K^{2}\) and at most \(\frac{\pi }{2}-\epsilon /K^{2}\), otherwise we say that they have a *bad* angle.

**Lemma 3**

Let \(P\in \mathcal {P}\). With probability at least \(1-O(\epsilon )\) all line segments connecting two vertices of *P* and all line segments connecting \(\mathrm {mid}(P)\) with a vertex of *P* have a good angle with all grid lines.

We delete each polygon *P* that has two vertices \(v,v'\) such that \(\ell (v,v')\) or \(\ell (v,\mathrm {mid}(P))\) has a bad angle with the grid lines. By Lemma 3 this costs only a factor \(1+O(\epsilon )\) in the objective. Next, we give the grids a random shift upwards, drawn uniformly at random from the range \([0,g_{0})\), without changing their angles.

**Lemma 4**

Let \(P\in \mathcal {P}_{i+1}\). Then *P* intersects a grid line of \(G_{i}\) with probability at most \(2\epsilon \).

For each \(i\in \mathbb {N}\) we delete all polygons \(P\in \mathcal {P}_{i+1}\) that intersect a grid line of \(G_{i}\). Due to Lemma 4 this costs at most a factor of \(1+O(\epsilon )\) in the objective. Since the grids are hierarchical, if a polygon \(P\in \mathcal {P}_{i+1}\) does not intersect a grid line of \(G_{i}\) then it does not intersect a grid line of \(G_{i'}\) for any \(i'\ge i\).

### 3.2 Shrinking

Next, we want to shrink the polygons. For each polygon \(P\in \mathcal {P}_{i}\) let \(v^{\uparrow }(P)\) and \(v^{\downarrow }(P)\) denote top-most and bottom-most vertices “relative to the grid lines”. Formally, we define \(v^{\uparrow }(P)\) and \(v^{\downarrow }(P)\) to be two vertices of *P* for which there exists a line \(\ell \) with the same angle as the grid lines that intersects \(v^{\uparrow }(P)\) (intersects \(v^{\downarrow }(P)\)) and no point in the interior of *P*.

We shrink *P* to a polygon \(P'\) such that \(v^{\uparrow }(P')\) and \(v^{\downarrow }(P')\) lie on grid lines of \(G_{i}\). The next lemma shows that this is indeed possible by shrinking *P* by at most a factor \(1-\delta \). Heart of this reasoning is that there are at least \(1/\delta \) grid lines of \(G_{i}\) between \(v^{\uparrow }(P)\) and \(v^{\downarrow }(P)\). We do this operation with all input polygons.

**Lemma 5**

Let \(P\in \mathcal {P}_{i}\). In polynomial time we can compute a polygon \(P'\) with at most \(K+2\) edges such that \(\mathrm {sr}(P)\subseteq P'\subseteq P\) and \(v^{\uparrow }(P')\) and \(v^{\downarrow }(P')\) lie on grid lines of \(G_{i}\). Furthermore, all edges of \(P'\) crossing a grid line of \(G_{i}\) in a non-zero angle have a good angle with this grid line.

### 3.3 Horizontal Grids

From now on we do not shrink the polygons any further. Let us assume w.l.o.g. that the grid lines are exactly vertical and that there is an integer \(N'\) such that the input polygons are contained in the area \([0,N']\times [0,N']\) for some integer \(N'=O(N)\). We add a hierarchical family of horizontal grids \(\bar{G}_{0},\bar{G}_{1},...,\bar{G}_{m}\) to the vertical grids \(G_{0},G_{1},...,G_{m}\). For each \(i\in \{0,...,m\}\) we define \(\bar{G}_{i}:=\{\mathbb {R}\times \{y\}|\exists k\in \mathbb {N}\,\mathrm {s.t.}\, y=k\cdot g_{i}\}\) with as before \(g_{i}=\frac{\delta }{2}\cdot \sin (\epsilon /K^{2})\cdot \mu '_{i}\). Thus, for each *i* the grid \(\bar{G}_{i}\) has exactly the same spacing as \(G_{i}\). We give the horizontal grids \(\bar{G}_{i}\) a random shift upwards, drawn uniformly at random from the range \([0,g_{0})\). Then, for each \(i\in \{0,...,m\}\) we delete all remaining polygons from \(\cup _{j>i+1}\mathcal {P}{}_{i}\) that intersect a grid line in \(\bar{G}_{i}\). The following lemma can be proven similarly as Lemma 4.

**Lemma 6**

Let \(P\in \mathcal {P}{}_{i+1}\). Then *P* intersects a grid line of \(\bar{G}_{i}\) with probability at most \(2\epsilon \).

Denote by \(\mathcal {P}'\) the resulting set of shrunk polygons. For each integer *i* we define \(\mathcal {P}'_{i}\) to be the sets of polygons that we obtain when we shrink each polygon in \(\mathcal {P}_{i}\). Note that we lost only a factor of \((1+O(\epsilon ))\) in our approximation ratio (see Lemmas 2, 4 and 6).

## 4 Dynamic Program

Our algorithm is a geometric divide-and-conquer algorithm similar to the algorithm used in [1, 3]. It recursively divides the area containing the input polygons into smaller and smaller pieces. When it makes a recursive call for a piece \(A\subseteq [0,N']^{2}\) then it computes a (near-optimal) solution to the subproblem given by all input polygons that are contained in *A*. To do this, it tries all possibilities to partition *A* into at most \(k=O_{\delta ,\epsilon }(1)\) subpieces such that the boundary of each of them consists of at most *k* line segments out of a suitable set \(\mathcal {L}\) defined below. Then, it makes a recursive call on each of these subpieces and obtains a (near-optimal) solution for each of those. By putting them together, it obtains a candidate solution for the original piece *A*. Additionally, it checks what profit it can obtain by selecting only one polygon that is contained in *A*. Eventually, it returns the best solution out of all candidate solutions stemming from all partitions of *A* and all single polygons contained in *A*. We will show that if the parameter *k* is sufficiently large then our algorithm will output a set that is at least as profitable as the optimal solution for \(\mathcal {P}'\).

*k*lines segments such that

each line segment is a subset of an edge of a polygon in \(\mathcal {P}'\) or a subset of a grid line in \(\mathcal {G}:=\cup _{i=0}^{m}G_{i}\cup \bar{G}_{i}\) and

- the endpoint of each line segment is
the vertex of a polygon in \(\mathcal {P}'\), or

the intersection of an edge of a polygon in \(\mathcal {P}'\) with a grid line in \(\mathcal {G}\), or

the intersection of two grid lines in \(\mathcal {G}\).

Denote by \(\mathcal {L}\) the set of all line segments that arise on the boundaries of the pieces defined above, see Fig. 2 for an example. Denote by GEO-DP our overall algorithm. As the following lemma shows, it has pseudo-polynomial running time. We will explain later how to improve this to polynomial time.

**Lemma 7**

The number of DP-cells is bounded by \((n+N)^{O_{\delta ,\epsilon }(k)}\). If \(k=O_{\epsilon ,\delta }(1)\) then the overall running time of GEO-DP is bounded by \((n+N)^{O_{\delta ,\epsilon }(1)}\).

There is a piece containing all input polygons whose subproblem corresponds to the original problem we want to solve. We want to show that GEO-DP outputs a solution that is at least as profitable as the optimal solution for \(\mathcal {P}'\). In order to show this we can assume w.l.o.g. that the input to GEO-DP consists only of this optimal solution. We denote it by \(\mathcal {P}''\). We define \(\mathcal {P}''_{i}:=\mathcal {P}'_{i}\cap \mathcal {P}''\) for each *i*.

### 4.1 Cutting Sequence

*k*smaller pieces. Formally, we describe the above sequence of cuts by a tree

*T*where each node

*v*is associated with a piece \(A_{v}\) in the plane. We say that a tree

*T*is a \((k,\mathcal {P}'')\)-

*region decomposition*if the following holds:

For each node

*v*in*T*and each polygon \(P\in \mathcal {P}''\) we have that if*P*does not coincide with \(A_{v}\), i.e., \(P\ne A_{v}\), then either*P*is contained in \(A_{v}\) or*P*is disjoint from \(A_{v}\).For tree nodes

*u*and*v*such that*v*is a parent of*u*we have that \(A_{u}\subseteq A_{v}\). Each node \(v\in T\) has at most \(k'\le k\) children \(u_{1},...,u_{k'}\) in*T*and \(\bigcup _{i=1}^{k'}A_{u_{i}}=A_{v}\).For each leaf node

*v*of*T*the piece \(A_{v}\) contains at most one polygon in \(\mathcal {P}''\) and it has empty intersection with all other polygons in \(\mathcal {P}''\).For each node

*v*in*T*the area \(A_{v}\) is connected and its boundary can be described by at most*k*line segments from \(\mathcal {L}\).

**Lemma 8**

If there exists a \((k,\mathcal {P}'')\)-region decomposition then GEO-DP will output a solution of weight at least \(w(\mathcal {P}'')\) when it is parametrized by *k*.

### 4.2 Existence of Region Decomposition

*levels*with one level for each grid \(G_{i}\cup \bar{G}_{i}\). We describe it inductively. Our induction hypothesis is that we are given a vertex \(v\in T\) whose piece \(A_{v}\) is described as follows: there is a cell

*C*of the grid \(G_{i-1}\cup \bar{G}_{i-1}\) and up to two polygons \(P_{1},P_{2}\in \cup _{j=0}^{i-1}\mathcal {P}''_{j}\) such that each of them intersects both the left and the right grid line of

*C*. Then, \(A_{v}\) is the connected component of \(C\setminus \{P_{1},P_{2}\}\) that is adjacent to \(P_{1}\) and \(P_{2}\) (see Fig. 3 for a sketch). Note that there exists a DP-cell for \(A_{v}\). Assume w.l.o.g. that \(P_{1}\) crosses the left and right grid lines of

*C*below \(P_{2}\). One or both polygons \(P_{1}\) and \(P_{2}\) might be undefined and in this case the bottom and/or the top boundary of

*C*takes the role of \(P_{1}\) and/or \(P_{2}\). For the base case, we can assume that there is one cell of an (artificial) grid \(G_{-1}\cup \bar{G}_{-1}\) that contains all input polygons. We assume by induction that \(A_{v}\) does not intersect any polygon in \(\cup _{j=0}^{i-1}\mathcal {P}''_{j}\).

Suppose now that we are given a piece \(A_{v}\) as defined above. We define a cut through \(A_{v}\). Let \(\ell _{1}\) be a grid line of \(G_{i}\) such that \(\ell _{1}\) intersects the interior of \(A_{v}\). Let *p* be the bottom-most point of \(\ell _{1}\cap A_{v}\). Note that at this point \(\ell _{1}\) intersects the boundary of \(P_{1}\). Our cut starts in *p* and moves up along \(\ell _{1}\). If we do not hit any polygon of \(\mathcal {P}''\) contained in \(A_{v}\) on the way up then we are done with our cut. Otherwise, suppose that we hit an edge *e* of a polygon *P*. Let \(p'\) denote the point on *e* that is hit by \(\ell _{1}\). Due to Lemma 3 we know that *e* has a good angle with \(\ell _{1}\). Also, \(P\in \mathcal {P}''_{i}\) since otherwise it would have been deleted before as it intersects a grid line of \(G_{i}\). Our cut moves along *e* in the direction that goes up. We continue along the boundary of *P* in the same direction until we arrive at a leftmost or rightmost vertex of *P*. Let \(p''\) denote this point. Due to our shrinking, \(p''\) lies on a grid line \(\ell '\) of \(G_{i}\). See Fig. 3 for a sketch. Since all edges of *P* have a good angle with the grid, we can prove the following lemma.

**Lemma 9**

When moving from \(p'\) to \(p''\) along the edge of *P*, we move up by at least \(\sin (\epsilon ^{2}/K)\cdot g_{i}=\Omega _{\delta ,\epsilon }(1)\cdot g_{i}\) units.

*Proof*

Since all edges of *P* have a good angle with the grid lines, each of these angles is at least \(\epsilon ^{2}/K\). Therefore, when we move from \(p'\) to \(p''\) we move up by at least \(\mathrm {dist}(p',p'')\cdot \sin (\epsilon ^{2}/K)\ge \sin (\epsilon ^{2}/K)\cdot g_{i}\) units. \(\square \)

Note that the constructed path from *p* via \(p'\) to \(p''\) consists of at most \(K+1\le O_{\delta ,\epsilon }(1)\) line segments. We continue iteratively where now \(p''\) takes the role of *p*. We stop when we hit the upper boundary of \(A_{v}\) (defined by \(P_{2}\) or the top boundary of *C*). Denote by *Q* the constructed path. The height of *C* is bounded by \(g_{i-1}=O_{\delta ,\epsilon }(g_{i})\). In every iteration we move up by at least \(\Omega _{\delta ,\epsilon }(1)\cdot g_{i}\) units. Thus, there are at most \(O_{\delta ,\epsilon }(1)\) iterations and *Q* can be described with \(O_{\delta ,\epsilon }(1)\cdot (K+1)\) line segments. Observe that we cut only along edges of polygons and along grid lines of \(G_{i}\). Thus, we did not intersect any polygon from \(\mathcal {P}''\).

Our path *Q* splits \(A_{v}\) into two smaller pieces. Each of the two sides of \(A_{v}\setminus Q\) defines a piece and for each of them we append a child node \(u_{i}\) to *v* such that \(A_{u_{i}}\) equals this piece. Importantly, each such piece is described by only \(P_{1},P_{2}\) and *Q* and thus its boundary has only \(O_{\delta ,\epsilon }(1)\) line segments.

We continue with each component \(A_{u_{i}}\). Assume that there is a grid line \(\ell _{2}\) of \(G_{i}\) such that \(\ell _{2}\) intersects the boundary of \(P_{1}\) at a point \(\bar{p}\) that lies on the boundary of \(A_{u_{i}}\). Then \(\bar{p}\) takes the role of *p* above and we find a path \(Q'\) that split \(A_{u_{i}}\) into two pieces. We append these pieces in *T* as child nodes of \(u_{i}\). Each such piece is then described by \(P_{1},P_{2},Q\) and \(Q'\) and thus its boundary has at most \(O_{\delta ,\epsilon }(1)\) edges.

Consider a child node \(\bar{u}_{j}\) of \(u_{i}\). Similarly as before, assume that there is a grid line \(\ell _{3}\) of \(G_{i}\) such that \(\ell _{3}\) intersects the boundary of \(P_{1}\) at a point that lies on the boundary of \(A_{\bar{u}_{j}}\). We compute a path \(Q''\) through \(A_{\bar{u}_{j}}\) as above. Now, each connected component of \(A_{\bar{u}_{j}}\setminus Q''\) can be described by \(P_{1},P_{2}\) and at most *two* of the paths \(Q,Q',Q''\). Similarly, when we continue further like above in the recursion each resulting piece can be described by \(P_{1},P_{2}\) and two paths \(Q_{1},Q_{2}\) through \(A_{v}\) where each of the latter can be described with only \(O_{\delta ,\epsilon }(1)\) line segments.

We can apply the above reasoning as long as there is a grid line \(\ell _{k}\) of \(G_{i}\) such that the boundary of \(P_{1}\) intersects \(\ell _{k}\) at a point that lies on the boundary of the considered piece. Suppose now that this is not possible, i.e., we have a piece \(A_{\tilde{v}}\subseteq A_{v}\) such that at the boundary of \(A_{\tilde{v}}\) there is no grid line of \(G_{i}\) that intersects \(P_{1}\). As the next lemma shows, this piece \(A_{\tilde{v}}\) can then be partitioned into two smaller pieces \(A_{1},A_{2}\) and one polygon \(P'_{1}\), see Fig. 3. When we continue, for the piece \(A_{1}\) the polygon \(P'_{1}\) takes the role of \(P_{2}\), and for the piece \(A_{2}\) the polygon \(P'_{1}\) takes the role of \(P_{1}\).

**Lemma 10**

the boundary of \(A_{1}\) consists of two upward monotone paths \(Q_{1}^{(1)},Q_{1}^{(2)}\) with at most \(O_{\delta ,\epsilon }(1)\) edges each that both connect \(P_{1}\) and \(P'_{1}\), and

the boundary of \(A_{2}\) consists of two upward monotone paths \(Q_{2}^{(1)},Q_{2}^{(2)}\) with at most \(O_{\delta ,\epsilon }(1)\) edges each that both connect \(P'_{1}\) and \(P_{2}\).

*Proof*

Assume that \(A_{\tilde{v}}\) is not contained in a grid column of \(G_{i}\) since otherwise there is nothing to show. By construction \(A_{\tilde{v}}\) is described by two paths \(Q_{1},Q_{2}\) that both connect \(P_{1}\) and \(P_{2}\). There is no point on the boundary of \(A_{\tilde{v}}\) in which a grid line of \(G_{i}\) intersects \(P_{1}\). Thus, for the points \(p_{1}\) and \(p_{2}\) on which the paths \(Q_{1}\) and \(Q_{2}\) start, there must be two consecutive grid lines \(\ell ^{(1)},\ell ^{(2)}\) of \(G_{i}\) such that \(\ell ^{(1)}\) intersects \(P_{1}\) on \(p_{1}\) and \(\ell ^{(2)}\) intersects \(P_{1}\) on \(p_{2}\), see Fig. 3. Assume that \(\ell ^{(1)}\) is on the left of \(\ell ^{(2)}\). Since \(A_{\tilde{v}}\) is not contained in a grid column of \(G_{i}\) one of the paths \(Q_{1},Q_{2}\) is not completely vertical.

Assume that both paths are not completely vertical (the other case can be proven with similar arguments). Let \(p'_{1},p'_{2}\) be the points on which \(Q_{1}\) and \(Q_{2}\) deviate from being only vertical. Assume w.l.o.g. that the *y*-coordinate of \(p'_{1}\) is not larger than the *y*-coordinate of \(p'_{2}\).

Assume that on \(p'_{1}\) the path \(Q_{1}\) turns left. Then on \(p'_{1}\) the path \(Q_{1}\) hits a polygon \(P\in \mathcal {P}''_{i}\). Thus, the boundary of *P* must intersect \(\ell ^{(2)}\) at a point *p*. Then the *y*-coordinate of this point *p* must be lower than the *y*-coordinate of \(p'_{2}\) (since \(Q_{1}\) goes monotonously upwards). Then we set \(P'_{1}:=P\) and \(A_{1}\) consists of the quadrilateral described by \(p_{1},p'_{1},p,p_{2}\), and \(A_{2}=A_{\tilde{v}}\setminus \{A_{1},P\}\). The paths \(Q_{1}^{(1)},Q_{1}^{(2)},Q_{2}^{(1)},Q_{2}^{(2)}\) consist of the parts of \(Q_{1}\) and \(Q_{2}\) surrounding \(A_{1}\) and \(A_{2}\), respectively.

Assume now that on \(p'_{1}\) the path \(Q_{1}\) turns right after hitting a polygon \(P'\). Then \(Q_{1}\) must cross \(\ell ^{(2)}\) at a point \(p'\). If the *y*-coordinate of \(p'\) is smaller than the *y*-coordinate of \(p'_{2}\) then we define \(P'_{1}:=P'\) and we define the pieces \(A_{1},A_{2}\) and the paths \(Q_{1}^{(1)},Q_{1}^{(2)},Q_{2}^{(1)},Q_{2}^{(2)}\) similarly as in the previous case. Finally, suppose that the *y*-coordinate of \(p'\) is not smaller than the *y*-coordinate of \(p'_{2}\). Then on \(p'_{2}\) the path \(Q_{2}\) hits a polygon \(P''\) and it must turn right (since otherwise \(P'\cap P''\ne \emptyset \)). Then the polygon \(P''\) must cross \(\ell ^{(1)}\) underneath \(p'_{1}\) and we define \(P'_{1}:=P''\) and the pieces \(A_{1},A_{2}\) and the paths \(Q_{1}^{(1)},Q_{1}^{(2)},Q_{2}^{(1)},Q_{2}^{(2)}\) accordingly. \(\square \)

We continue until we obtain pieces that are contained in a grid column of \(G_{i}\). Let \(A_{v'}\) be such a piece. It might not fulfill the induction hypothesis yet since it might still span many grid cells of \(G_{i}\cup \bar{G}_{i}\). We know that each polygon \(P\in \mathcal {P}''_{i}\) intersects at least two grid columns of \(G_{i}\). Thus, there can be no polygon \(P\in \mathcal {P}''_{i}\) with \(P\subseteq A_{v'}\). Thus, the boundary of \(A_{v'}\) consists of two consecutive grid lines in \(G_{i}\) and (parts of) the boundary edges of at most two polygons of \(\cup _{j=0}^{i}\mathcal {P}''_{j}\), defining the upper and lower boundary of \(A_{v'}\).

As long as \(A_{v'}\) is not contained in a grid cell of \(G_{i}\cup \bar{G}_{i}\) there must be a grid row *r* of \(\bar{G}_{i}\) such that *r* has non-empty intersection with the interior of \(A_{v'}\). Note that *r* does not intersect any of the remaining polygons in \(\cup _{j\ge i+1}\mathcal {P}''_{j}\) since we have removed such polygons before already. We split \(A_{v'}\) along *r* into two pieces \(A_{v''},A_{v'''}\) and add the corresponding vertices \(v''\) and \(v'''\) to *T* as children of \(v'\). We continue this process until each piece is contained in a grid cell of \(G_{i}\). Thus, our resulting pieces fulfill the induction hypothesis. The above reasoning proves the following lemma.

**Lemma 11**

There exists a universal constant \(k=O_{\delta ,\epsilon }(1)\) such that a \((k,\mathcal {P}'')\)-region decomposition exists.

For our main result we parametrize GEO-DP by the constant \(k=O_{\delta ,\epsilon }(1)\) due to Lemma 11. Then together with Lemma 8 this implies that GEO-DP outputs a solution of weight at least \(w(\mathcal {P}'')\). Due to our reasoning in Sect. 3 we have that \(w(\mathcal {P}'')\ge (1-O(\epsilon ))\cdot \mathrm {OPT}(\mathcal {P})\).

It remains to address the fact that in the above form our algorithm has a running time that might be exponential in the input size (since *N* might be exponential). We argue similarly as in [1]. First observe that there are only \(O(\log N)\) recursion levels, which is polynomial in the length of the input encoding. In each level of the grids, it suffices to introduce only grid cells *C* for which there exists a polygon \(P\in \mathcal {P}'\) with \(P\subseteq C\). There can be only *n* such grid cells for each grid \(G_{i}\cup \bar{G}_{i}\) and thus in total there are only \(O(n\cdot \log N)\) such cells. Hence, the total number of grid lines is also bounded by \(O(n\cdot \log N)\). This reduces our running time to \((n+\log N)^{O_{\delta ,\epsilon }(1)}\).

**Theorem 1**

For any constants \(\epsilon ,\delta >0\) there is a polynomial time \((1+\epsilon )\)-approximation algorithm for the maximum independent set of \(\delta \)-shrinkable convex polygons problem.

## Notes

### Acknowledgments

The author would like to thank Parinya Chalermsook for helpful discussions on the topic of this paper.

### References

- 1.Adamaszek, A., Chalermsook, P., Wiese, A.: How to tame rectangles: solving independent set and coloring of rectangles via shrinking. In: Approximation, Randomization, and Combinatorial Optimization. Algorithms and Techniques (APPROX/RANDOM). Leibniz International Proceedings in Informatics (LIPIcs), vol. 40, pp. 43–60. Schloss Dagstuhl-Leibniz-Zentrum für Informatik, Dagstuhl (2015)Google Scholar
- 2.Adamaszek, A., Wiese, A.: Approximation schemes for maximum weight independent set of rectangles. In: Proceedings of the 54th Annual IEEE Symposium on Foundations of Computer Science (FOCS ), pp. 400–409. IEEE (2013)Google Scholar
- 3.Adamaszek, A., Wiese, A.: A QPTAS for maximum weight independent set of polygons with polylogarithmically many vertices. In: Proceedings of the Twenty-Fifth Annual ACM-SIAM Symposium on Discrete Algorithms (SODA), pp. 645–656. SIAM (2014)Google Scholar
- 4.Agarwal, P.K., Mustafa, N.H.: Independent set of intersection graphs of convex objects in 2D. Comput. Geom.
**34**(2), 83–95 (2006)MathSciNetCrossRefMATHGoogle Scholar - 5.Agarwal, P.K., van Kreveld, M., Suri, S.: Label placement by maximum independent set in rectangles. Comput. Geom.
**11**, 209–218 (1998)MathSciNetCrossRefMATHGoogle Scholar - 6.Anagnostopoulos, A., Grandoni, F., Leonardi, S., Wiese, A.: Constant integrality gap LP formulations of unsplittable flow on a path. In: Goemans, M., Correa, J. (eds.) IPCO 2013. LNCS, vol. 7801, pp. 25–36. Springer, Heidelberg (2013)CrossRefGoogle Scholar
- 7.Berman, P., DasGupta, B., Muthukrishnan, S., Ramaswami, S.: Efficient approximation algorithms for tiling and packing problems with rectangles. J. Algor.
**41**(2), 443–470 (2001)MathSciNetCrossRefMATHGoogle Scholar - 8.Bonsma, P., Schulz, J., Wiese, A.: A constant factor approximation algorithm for unsplittable flow on paths. In: Proceedings of the 52th Annual IEEE Symposium on Foundations of Computer Science (FOCS ), pp. 47–56 (2011)Google Scholar
- 9.Chalermsook, P., Chuzhoy, J.: Maximum independent set of rectangles. In: Proceedings of the 20th Annual ACM-SIAM Symposium on Discrete Algorithms (SODA 2009), pp. 892–901. SIAM (2009)Google Scholar
- 10.Chan, T.M., Har-Peled, S.: Approximation algorithms for maximum independent set of pseudo-disks. Discrete & Comput. Geom.
**48**(2), 373–392 (2012)MathSciNetCrossRefMATHGoogle Scholar - 11.Clark, B.N., Colbourn, C.J., Johnson, D.S.: Unit disk graphs. Discrete Math.
**86**(1), 165–177 (1990)MathSciNetCrossRefMATHGoogle Scholar - 12.de Floriani, L., Magillo, P., Puppo, E.: Applications of computational geometry to geographic information systems. In: Handbook of Computational Geometry, pp. 333–388. North Holland (2000)Google Scholar
- 13.Erlebach, T., Jansen, K., Seidel, E.: Polynomial-time approximation schemes for geometric intersection graphs. SIAM J. Comput.
**34**(6), 1302–1323 (2005)MathSciNetCrossRefMATHGoogle Scholar - 14.Fowler, R.J., Paterson, M.S., Tanimoto, S.L.: Optimal packing and covering in the plane are NP-complete. Inf. Process. Lett.
**12**(3), 133–137 (1981)MathSciNetCrossRefMATHGoogle Scholar - 15.Fox, J., Pach, J.: Computing the independence number of intersection graphs. In: Proceedings of the Twenty-Second Annual ACM-SIAM Symposium on Discrete Algorithms (SODA), pp. 1161–1165. SIAM (2011)Google Scholar
- 16.Fukuda, T., Morimoto, Y., Morishita, S., Tokuyama, T.: Data mining with optimized two-dimensional association rules. ACM Trans. Database Syst. (TODS)
**26**(2), 179–213 (2001)CrossRefMATHGoogle Scholar - 17.Har-Peled, S.: Quasi-polynomial time approximation scheme for sparse subsets of polygons. In: Proceedings of the Thirtieth Annual Symposium on Computational Geometry (SoCG), pp. 120–129. ACM (2014)Google Scholar
- 18.Hochbaum, D.S., Maass, W.: Approximation schemes for covering and packing problems in image processing and VLSI. J. ACM
**32**, 130–136 (1985)MathSciNetCrossRefMATHGoogle Scholar - 19.Imai, H., Asano, T.: Finding the connected components and a maximum clique of an intersection graph of rectangles in the plane. J. Algor.
**4**(4), 310–323 (1983)MathSciNetCrossRefMATHGoogle Scholar - 20.Khanna, S., Muthukrishnan, S., Paterson, M.: On approximating rectangle tiling and packing. In: Proceedings of the 9th Annual ACM-SIAM Symposium on Discrete Algorithms (SODA), pp. 384–393. SIAM (1998)Google Scholar
- 21.Lent, B., Swami, A., Widom, J.: Clustering association rules. In: Proceedings of the 13th International Conference on Data Engineering, pp. 220–231. IEEE (1997)Google Scholar
- 22.Nielsen, F.: Fast stabbing of boxes in high dimensions. Theor. Comp. Sc.
**246**, 53–72 (2000)MathSciNetCrossRefMATHGoogle Scholar - 23.Verweij, B., Aardal, K.: An optimisation algorithm for maximum independent set with applications in map labelling. In: Nešetřil, J. (ed.) ESA 1999. LNCS, vol. 1643, pp. 426–437. Springer, Heidelberg (1999)Google Scholar