Skip to main content

A general algorithm for convex fair partitions of convex polygons

Abstract

A convex fair partition of a convex polygonal region is defined as a partition on which all regions are convex and have equal area and equal perimeter. The existence of such a partition for any number of regions remains an open question. In this paper, we address this issue by developing an algorithm to find such a convex fair partition without restrictions on the number of regions. Our approach utilizes the normal flow algorithm (a generalization of Newton’s method) to find a zero for the excess areas and perimeters of the convex hulls of the regions. The initial partition is generated by applying Lloyd’s algorithm to a randomly selected set of points within the polygon, after appropriate scaling. We performed extensive experimentation, and our algorithm can find a convex fair partition for 100% of the tested problem. Our findings support the conjecture that a convex fair partition always exists.

1 Introduction

Mass partitions of convex regions satisfying specific properties are common optimization questions that have appeared in several contexts (Roldán-Pensado and Soberón [1]). In this note we are interested in the problem of partitioning a convex polygon into convex regions of equal area and equal perimeter. This problem was firstly proposed by Nandakumar and Ramana Rao [2] where such a partition was coined convex fair partition. The same authors showed that the intermediate value theorem implies that a convex fair partition for two regions always exists and gave a general argument on how to show that a convex fair partition for \(n=2^{k}\) regions always exists. Bárány et al. [3] gave a proof of the existence of a convex fair partition for three regions using equivariant topological properties of the space of 3-fans in \(\mathbb{R}^{2}\), and later, Blagojević and Ziegler [4] and Karasev et al. [5] gave proofs of the existence of convex fair partitions for \(n=p^{k}\) with p any prime using obstruction theory in equivariant algebraic topology.

The proof of the existence of a convex fair partition for any number of regions seems still unresolved; although the recent preprint of Akopyan et al. [6] claims to have shown its existence by applying a recursive argument on the proofs presented in (Blagojević and Ziegler [4]) and (Karasev et al. [5]).

All the works presented above tackle the existence problem using topological arguments generalizing the well-known Borsuk–Ulam theorem [7]. But none of them focuses on the practical question of finding such a partition for a given convex polygonal region and a given number of regions. The only algorithm that has appeared in the literature has been provided by Armaselu and Daescu [8], and they show how to implement a procedure to find a convex fair partition of a convex polygonal region into \(n=2^{k}\) regions by iterating the original idea of Nandakumar and Ramana Rao [2].

Our work presents a novel, simple yet practical algorithm designed to find a convex fair partition of any convex polygon into any number of regions, if such a partition exists. It is based on the generalization of Newton’s method denoted normal flow algorithm that finds zeros of under-determined systems of equations [9, 10]. The convergence theory for the proposed algorithm uses the assumption that there exists a convex starting partition of the polygon such that the areas and perimeters are sufficiently close. We use the centroidal Voronoi partitions [11, 12] (using the well-known Lloyd’s algorithm), as well as a scaling of the polygonal region, to find this starting partition. This is key to the practicality of the method because of the large number of configurations that must be considered for a general procedure. When applying the normal flow algorithm, the convexity is preserved by using the area of the convex hull instead of the area function. Our extensive experiments show that convergence of the proposed algorithm is reached, no matter the choice of the number of regions or the polygon considered.

In Sect. 2 we describe our general algorithm, in Sect. 3 we provide the theoretical background that explains the different choices that appear in our algorithm, and in Sect. 4 we provide numerical evidence of efficacy of our algorithm and discuss the properties that centroidal Voronoi partitions have. We end with Sect. 5 with some conclusions and further ideas that could be addressed. We have added an appendix where we present convex fair partitions of an equilateral triangle, a square, and a pentagon into different regions.

2 Method

Along the paper we denote by \({\mathbb{K}}\) the convex polygon to be considered for a convex fair partition. The main algorithm that we are presenting in this work is the following.

The key new idea underlying the algorithm is the following. Fix a convex partition of the convex polygon \({\mathbb{K}}\) and look at the vertices the partition describes (see Fig. 1(e). These vertices are located on the interior of the polygon \({\mathbb{K}}\), on the boundary of the polygon \({\mathbb{K}}\), or are vertices of the polygon \({\mathbb{K}}\). The internal and boundary vertices, together with the edges of the regions the partition describes, define a combinatorial graph. Perturbing the coordinates of these internal and boundary vertices but keeping the combinatorial way on which they are attached to one another defines a new geometrical partition of the polygon \({\mathbb{K}}\). The total dimension of the perturbations that can be carried out this way is the number of boundary vertices (they can only be perturbed on the boundary of the polygon where they are located) plus twice the number of internal vertices (they may move freely around their position). This total dimension is always greater than or equal to the number of equations needed to solve the convex fair partition problem; moreover, the extra dimensions are equal to the number of internal vertices. So, if the fixed partition that we start with is located close to the solution, a generalized Newton’s method such as the normal flow algorithm (Ben-Israel [9], Walker and Watson [10]) can find the desired partition (see Fig. 1(f)). The method is applied to the excess areas and perimeter functions, namely the difference between the area and perimeters from their means, and to achieve convexity, we take the area of the convex hull of the region. The zeroes of these functions provide a partition that is fair and convex.

To obtain a partition that is close to the solution, and that brings as many extra dimensions as possible for the normal flow algorithm, we proceed to using Lloyd’s algorithm for obtaining a centroidal Voronoi partition (Lloyd [11], Du et al. [12]). Centroidal Voronoi partitions provide balanced Voronoi partitions where the centroids of the regions agree with the Voronoi centers (see Fig. 1(d)). The areas and perimeters of centroidal Voronoi partitions do not differ by much, and therefore they provide a good starting point for the normal flow algorithm. But when the polygonal region \({\mathbb{K}}\) is too thin, the centroidal Voronoi partition may include very few internal vertices, and therefore the partition may not be the best choice for a starting point of the normal flow algorithm. To overcome this difficulty, we linearly scale the region of the polygon \({\mathbb{K}}\) on the direction perpendicular to the diameter in such a way that the new height equals the diameter (see Fig. 1(b)). On the scaled polygon the centroidal Voronoi partition always includes several vertices on the interior (see Fig. 1(d)), and then we scale back to the polygon \({\mathbb{K}}\) the whole partition (see Fig. 1(e)). This partition will be the starting point for the normal flow algorithm.

3 Theory

We start by describing the nonlinear equations problem once we have a convex partition of polygon \({\mathbb{K}}\). Then we describe the procedure that we propose to generate a convex partition of \({\mathbb{K}}\), which is close to the fair convex one.

Throughout the paper we denote by \(|.|\) the Euclidean and the Frobenius norm (for vectors and matrices, respectively), unless otherwise specified. If \({\mathcal{S}}\) is an index set, denote by \(|{\mathcal{S}}|\) its cardinality.

3.1 Excess convex area and perimeter function

Let us fix a convex polygon \({\mathbb{K}}\) and let us fix a convex partition of the polygon into n regions. We want to move the coordinates of the interior and boundary vertices of the partition to find a fair and convex one. This will be an optimization problem that we will set up in this section.

Enumerate all vertices of the partition, starting with the vertices of the polygon \({\mathbb{K}}\), then the ones that lie on the boundary, and then the interior ones.

Make the following definitions and notations (as an example see Fig. 2):

  • n: number of regions of the partition.

  • \(q_{r}=(x_{r},y_{r})\): coordinates of the rth vertex of the partition.

  • X: list of indices of vertices of the polygon \({\mathbb{K}}\).

  • B: list of indices of vertices lying on the boundary of the polygon \({\mathbb{K}}\).

  • I: list of indices of vertices lying on the interior of the polygon \({\mathbb{K}}\).

  • \(V_{k}\): list of indices of the vertices lying on the kth region, cyclicly ordered (counter clockwise).

  • \(E_{k}\): list of pairs of indices \((r,s)\) such that the oriented segment from \(q_{r}\) to \(q_{s}\) is an edge on the k-region (with counter clockwise orientation).

The area and perimeter functions of the kth region, in terms of the coordinates of its vertices, are defined as follows:

$$ A_{k} : = \frac{1}{2}\sum _{(r,s) \in E_{k}} (y_{s}x_{r}-y_{r}x_{s}),\qquad P_{k} : = \sum_{(r,s) \in E_{k}} \vert q_{s}-q_{r} \vert . $$
(1)

Since we are interested in finding equal areas and equal perimeters, we may subtract the average of the areas and of the perimeters respectively:

$$ \overline{A}_{k} : = A_{k} - \frac{\text{Area of polygon}}{n},\qquad \overline{P}_{k} : = P_{k} - \frac{1}{n} \Biggl( \sum _{j=1}^{n} P_{j} \Biggr). $$
(2)

Bundle up these excess areas and perimeters into a functional

$$ f: \mathbb{R}^{2(|I|+|B|+|X|)} \to \mathbb{R}^{2n},\qquad f:= \langle \overline{A}_{1}, \dots , \overline{A}_{n}, \overline{P}_{1}, \dots , \overline{P}_{n} \rangle ^{T}, $$
(3)

and note that fair partitions are exactly the zeroes of this functional f. The domain of the partition problem for the excess areas and perimeters is determined by the free variables of the optimization problem. The internal vertices may roam free on the interior of the polygon, while the boundary vertices are restricted to move along the edge of the polygon where lie. Let us add the following notations and conventions:

  • \(q^{0}_{r}=(x^{0}_{r},y^{0}_{r})\): fixed coordinates of the vertex r of the fixed partition; \(r \in I \cup B \cup X\).

  • \({\mathbf{{q}}}^{0}_{I}=(q^{0}_{r})_{r \in I} \in (\mathbb{R}^{2})^{|I|}\), \({\mathbf{{q}}}^{0}_{B}=(q^{0}_{s})_{s \in B} \in (\mathbb{R}^{2})^{|B|}\), \({\mathbf{{q}}}^{0}_{X}=(q^{0}_{u})_{u \in X} \in (\mathbb{R}^{2})^{|X|}\): fixed coordinates of interior, boundary, and exterior vertices respectively.

  • \({\mathbf{{q}}}_{I}=(q_{r})_{r \in I} \in (\mathbb{R}^{2})^{|I|}\), \({\mathbf{{q}}}_{B}=(q_{s})_{s \in B} \in (\mathbb{R}^{2})^{|B|}\): coordinates of interior and boundary vertices respectively.

  • \({\mathbf{{v}}}=(v^{s})_{s \in B} \in (\mathbb{R}^{2})^{|B|}\): unitary vector of the edge of the polygon where the vertex \(q_{s}\) lies, taken in the counter clockwise direction; only for \(s \in B\).

  • \({\mathbf{{t}}}=(t_{s})_{ s \in B} \in \mathbb{R}^{|B|}\): variables that parametrize perturbations of the boundary vertices.

  • \({\mathbf{{p}}}=(p_{r})_{r \in I} \in (\mathbb{R}^{2})^{|I|}\): variables that parametrize perturbations of the interior vertices.

Therefore we may consider the parametrization map

$$\begin{aligned}& \iota : \mathbb{R}^{2|I|+|B|} \to \mathbb{R}^{2(|I|+|B|+|X|)} \\& ({\mathbf{{p}}},{\mathbf{{t}}}) \mapsto \bigl({\mathbf{{q}}}^{0}_{I}+{ \mathbf{{p}}}, {\mathbf{{q}}}^{0}_{B}+{ \mathbf{{t}}} { \mathbf{{v}}},{\mathbf{{q}}}^{0}_{X}\bigr), \end{aligned}$$
(4)

which parametrizes perturbations of the internal vertices and boundary vertices

$$ {\mathbf{{q}}}_{I}={\mathbf{{q}}}^{0}_{I}+{ \mathbf{{p}}} \quad \text{and} \quad {\mathbf{{q}}}_{B} = { \mathbf{{q}}}^{0}_{B}+{\mathbf{{t}}} {\mathbf{{v}}} $$
(5)

respectively. Here tv will denote \((t_{s} v^{s})_{s \in B} \in (\mathbb{R}^{2})^{|B|}\).

Definition 1

Composing the parametrization ι with the excess areas and perimeters functional f, we obtain \(F: = f \circ \iota \)

$$\begin{aligned}& F : \mathbb{R}^{2|I|+|B|} \to \mathbb{R}^{2n} \\& F({\mathbf{{p}}},{\mathbf{{t}}}) := f \bigl({\mathbf{{q}}}^{0}_{I}+{ \mathbf{{p}}}, {\mathbf{{q}}}^{0}_{B}+{ \mathbf{{t}}} { \mathbf{{v}}},{\mathbf{{q}}}^{0}_{X} \bigr). \end{aligned}$$
(6)

The function F will be called excess area and perimeter function.

A solution of \(F=0\) will provide the coordinates of a partition, which is fair, but we moreover need it to be convex.

To address the convexity of the iteration procedure on the normal flow algorithm, we modify the excess area and perimeter function to one that solves both issues at the same time. Let us elaborate.

Recall that the convex hull of a region consists of all points lying in the interior of line segments defined by any two points of the region. The convex hull of a polygonal region is also a polygonal region, and its vertices form a subset of the set of the original vertices.

Definition 2

Let \(V_{k}\), \(E_{k}\), and \(A_{k}\) denote the vertices, the edges, and the area of the kth region of the partition. Define by \(V_{k}^{c}\), \(E_{k}^{c}\), and \(A_{k}^{c}\) the vertices, edges, and area of the convex hull of the region.

The area of the convex hull is defined as in equation (1), and its formula is

$$ A_{k}^{c} : = \frac{1}{2}\sum _{(r,s) \in E_{k}^{c}} (y_{s}x_{r}-y_{r}x_{s}). $$
(7)

Therefore we get the following straightforward result.

Lemma 1

\(V_{k}^{c} \subseteq V_{k}\), \(A_{k}^{c} \geq A_{k}\) and the equalities are reached if and only if the region is convex. Hence, the partition is convex if and only if

$$ \sum_{k=1}^{n} A_{k}^{c} = \textit{Area of polygon}. $$
(8)

By the previous lemma we see that a solution of the equations

$$ A_{k}^{c} - \frac{\text{Area of polygon}}{n} =0 $$
(9)

implies on the one hand equation (8), and therefore the convexity of the partition, and on the other hand that all regions have equal area. Therefore we may modify our objective function as follows.

Definition 3

Let

$$ \overline{A}_{k}^{c} : = A_{k}^{c} - \frac{\text{Area of polygon}}{n} $$
(10)

be the excess convex area of the kth region, define the functional

$$ f^{c}: \mathbb{R}^{2(|I|+|B|+|X|)} \to \mathbb{R}^{2n},\qquad f:= \bigl\langle \overline{A}_{1}^{c}, \dots , \overline{A}_{n}^{c}, \overline{P}_{1}, \dots , \overline{P}_{n} \bigr\rangle ^{T}, $$
(11)

and define the excess convex area and perimeter function \(F^{c}\) as the new nonlinear function

$$\begin{aligned} F^{c} : \mathbb{R}^{2|I|+|B|} \to \mathbb{R}^{2n},\qquad F^{c}({\mathbf{{p}}},{\mathbf{{t}}}) := f^{c} \bigl({ \mathbf{{q}}}^{0}_{I}+{\mathbf{{p}}}, { \mathbf{{q}}}^{0}_{B}+{ \mathbf{{t}}} {\mathbf{{v}}},{\mathbf{{q}}}^{0}_{X} \bigr). \end{aligned}$$

Remarks 1

Several remarks are in order:

  • The excess functions F and \(F^{c}\) agree on convex partitions. In particular on the initial scaled centroidal Voronoi partition.

  • A solution of the equation \(F^{c}=0\) is also a solution of \(F=0\). Hence a partition of equal areas and equal perimeters.

  • A solution of the equation \(F^{c}=0\) defines a convex partition.

  • All the bounds for the first and second derivatives of F apply also to the first and second derivatives of \(F^{c}\).

On the fifth step of our main Algorithm 1, we use the excess convex area and perimeter function \(F^{c}\) and apply the normal flow algorithm as will be outlined in the following Sect. 3.2.

Algorithm 1
figure a

Convex fair partition algorithm

Figure 1
figure 1

Steps of Algorithm 1 on the prescribed convex polygon \({\mathbb{K}}\) presented in (a). The region \({\mathbb{K}}\) is scaled in (b) to match the diameter with the height. Random Voronoi centers are chosen in (c) to start with a random convex partition. Lloyd’s algorithm is performed in (d) to obtain a centroidal Voronoi partition. The polygon, together with the centroidal Voronoi partition, is scaled back in (e) to the fit the polygon \({\mathbb{K}}\). Finally, the normal flow algorithm is used in the interior and boundary vertices of the partition in (e) to obtain a fair partition in (f)

3.2 Normal flow algorithm

A widely used method for finding zeroes of functions \(G: \mathbb{R}^{\overline{m}} \to \mathbb{R}^{m}\) with \(\overline{m} \geq m\) is a generalization of Newton’s algorithm called normal flow algorithm. The normal flow algorithm was first introduced by Ben-Israel (Ben-Israel [9]) for solving nonlinear system of equations when the derivative matrix is not square.

The algorithm is the following.

Here \(G'(\overline{x})\) denotes the derivative matrix and \(G'(\overline{x})^{+}\) is its pseudo-inverse. That is, for \(b \in \mathbb{R}^{n}\), \(G'(\overline{x})^{+}b \in \mathbb{R}^{\overline{m}}\) is the solution of \(G'(\overline{x}) \overline{s}=b\) having minimal Euclidean norm.

Walker and Watson (Walker and Watson [10]) proved local convergence of the normal flow algorithm under the following hypotheses (see (Walker and Watson [10], Thm 2.1)):

  • G is differentiable and \(G' \in \mathbb{R}^{m \times \overline{m}}\) is of full rank m in an open convex set Ω.

  • There exist \(\gamma \geq 0 \) and \(p \in (0,1]\) such that \(|G'(\overline{y}) - G'(\overline{x}) | \leq \gamma | \overline{y} - \overline{x}|^{p}\) for all \(\overline{y}, \overline{x} \in \Omega \).

  • There is a constant μ for which \(|G'(\overline{x})^{+}| \leq \mu \) for all \(\overline{x} \in \Omega \).

  • There is a constant η such that \(\Omega _{\eta}: = \{ \overline{x} \in \Omega \colon | \overline{y} - \overline{x}| < \eta \Rightarrow \overline{y} \in \Omega \}\) is a nonempty open set.

If these hypotheses are met, (Walker and Watson [10], Thm 2.1) assures that there is \(\epsilon >0\) depending on γ, p, μ, and η such that if \(\overline{x}_{0} \in \Omega _{\eta}\) and \(|G(\overline{x}_{0})|< \epsilon \), then the iterates \(\{\overline{x}_{k}\}_{k=0,1,\ldots}\) determined by the normal flow algorithm converge to a point \(\overline{x}^{*} \in \Omega \) such that \(G(\overline{x}^{*})=0\). Furthermore, it shows that there is a constant β for which \(|\overline{x}_{k+1}-\overline{x}^{*}| \leq \beta |\overline{x}_{k}- \overline{x}^{*}|^{1+p}\).

3.3 Properties of the excess convex area and perimeter function

Because of Remark 1, we are going to focus our analysis on the excess area and perimeter function \(F: \mathbb{R}^{2|I|+|B|} \to \mathbb{R}^{2n}\) to determine how suited this function is for the hypothesis presented in the previous section.

First note that the total excess of the area and that of the perimeter are both zero. This simply says that

$$ \sum_{i=1}^{n} \overline{A}_{i} =0, \qquad \sum_{i=1}^{n} \overline{P}_{i} =0. $$
(13)

Therefore the image of the excess area and perimeter function F lands on the \(2(n-1)\) dimensional subspace whose first n-coordinates add to zero, and the second n-coordinates add also to zero.

Proposition 1

The excess area and perimeter function F is differentiable in the open set of points in \(\mathbb{R}^{2|I|+|B|}\) where all induced vertices are different. Its derivative \(F'\) is moreover of full rank \(2(n-1)\) on this open set.

Proof

The derivatives of the area and perimeter functions are the following. With respect to vertex \(q_{r}=(x_{r},y_{r})\), with \(r \in V_{k}\) and \((s,r)\), \((r,u) \in E_{k}\):

$$\begin{aligned} &\frac{\partial A_{k}}{\partial x_{r}}= \frac{1}{2}(y_{s} - y_{u}) \qquad \frac{\partial A_{k}}{\partial y_{r}}= \frac{1}{2}(x_{u} - x_{s}) \end{aligned}$$
(14)
$$\begin{aligned} &\frac{\partial P_{k}}{\partial x_{r}}= \frac{x_{r}-x_{s}}{ \vert q_{r}-q_{s} \vert }+\frac{x_{r}-x_{u}}{ \vert q_{r}-q_{u} \vert } \qquad \frac{\partial P_{k}}{\partial y_{r}}= \frac{y_{r}-y_{s}}{ \vert q_{r}-q_{s} \vert }+\frac{y_{r}-y_{u}}{ \vert q_{r}-q_{u} \vert }. \end{aligned}$$
(15)

Whenever \(r \notin V_{k}\), the vertex \(q_{r}\) is not a vertex of the kth region, and therefore the partial derivatives of \(A_{k}\) and \(P_{k}\) with respect to \(x_{r}\) and \(y_{r}\) vanish.

With respect to the variables \(t_{s}\), parametrizing the boundary vertices with \(s \in B\) and \(s \in V_{i} \cap V_{k}\), we have

$$\begin{aligned} &\frac{\partial A_{i}}{\partial t_{s}} = \biggl\langle \frac{\partial A_{i}}{\partial x_{s}}, \frac{\partial A_{i}}{\partial y_{s}} \biggr\rangle \cdot \nu ^{s} \qquad \frac{\partial P_{i}}{\partial t_{s}} = \biggl\langle \frac{\partial P_{i}}{\partial x_{s}}, \frac{\partial P_{i}}{\partial y_{s}} \biggr\rangle \cdot \nu ^{s}. \end{aligned}$$
(16)

Note that \(\frac{\partial A_{i}}{\partial t_{s}} + \frac{\partial A_{k}}{\partial t_{s}} =0\).

The derivatives of the excess area and perimeter functions are the following. With respect to the internal vertex \(q_{r}\) with \(r \in V_{i} \cap V_{j} \cap V_{k}\), we have (\(q_{r}\) is the common vertex of the regions i, j and k):

$$\begin{aligned} &\frac{\partial \overline{A}_{k}}{\partial x_{r}}= \frac{\partial A_{k}}{\partial x_{r}} \qquad \frac{\partial \overline{A}_{k}}{\partial y_{r}}= \frac{\partial A_{k}}{\partial y_{r}} \end{aligned}$$
(17)
$$\begin{aligned} &\frac{\partial \overline{P}_{k}}{\partial x_{r}}= \frac{n-1}{n} \frac{\partial P_{k}}{\partial x_{r}} -\frac{1}{n} \biggl( \frac{\partial P_{i}}{\partial x_{r}} + \frac{\partial P_{j}}{\partial x_{r}} \biggr) \qquad \frac{\partial \overline{P}_{k}}{\partial y_{r}}= \frac{n-1}{n} \frac{\partial P_{k}}{\partial y_{r}} - \frac{1}{n} \biggl( \frac{\partial P_{i}}{\partial y_{r}} + \frac{\partial P_{j}}{\partial y_{r}} \biggr). \end{aligned}$$
(18)

Here we are using that the total area of the partition is constant. Therefore the derivatives of the areas and the excess areas are the same.

The derivatives for the excess areas and perimeters with respect to \(t_{s}\) with \(s \in B\) and \(s \in V_{i} \cap V_{k}\) are:

$$\begin{aligned} &\frac{\partial \overline{A}_{i}}{\partial t_{s}}= \frac{\partial A_{i}}{\partial t_{s}} \qquad \frac{\partial \overline{P}_{i}}{\partial t_{s}}= \frac{n-1}{n} \frac{\partial P_{i}}{\partial t_{s}} - \frac{1}{n} \frac{\partial P_{k}}{\partial t_{s}}. \end{aligned}$$
(19)

All derivatives of the excess area and the excess perimeter are continuous and differentiable as long as the denominators of the expressions in (15) are not zero. This simply says that the excess areas and perimeters are \(C^{\infty}\)-functions on the open set of parameters that induce partitions without overlapping vertices.

Now let us show that \(F'\) is of maximal rank. Denote by \(\nabla \overline{A}_{i}\) the vector of partial derivatives of \(\overline{A}_{i}\) with respect to the free variables \(x_{r}\), \(y_{r}\), and \(t_{s}\) for \(r \in I\) and \(s \in B\); define similarly \(\nabla \overline{P}_{j}\). Note that the vectors \(\nabla \overline{A}_{i}\) and \(\nabla \overline{P}_{j}\) are precisely the rows of the derivative matrix \(F'\).

Let us assume that there is a linear relation among the rows of the derivative matrix \(F'\):

$$ \sum_{i =1}^{n} \alpha _{i} \nabla \overline{A}_{i} + \sum _{j=1}^{n} \beta _{j} \nabla \overline{P}_{j}=0. $$
(20)

We will show that this implies that all αs are equal and all βs are also equal. Hence we would have that the rank of the derivative matrix \(F'\) is \(2(n-1)\) in all the open set where the vertices do not overlap.

Equation (20) may be restricted to the coordinate \(x_{r}\) for \(r \in I\). In this case we obtain the equation

$$ \alpha _{i} \frac{\partial {A}_{i}}{\partial x_{r}} + \alpha _{j} \frac{\partial {A}_{j}}{\partial x_{r}} +\alpha _{k} \frac{\partial {A}_{k}}{\partial x_{r}} + \beta _{i} \frac{\partial \overline{P}_{i}}{\partial x_{r}} + \beta _{j} \frac{\partial \overline{P}_{j}}{\partial x_{r}} + \beta _{k} \frac{\partial \overline{P}_{k}}{\partial x_{r}} =0 $$
(21)

with \(r \in V_{i} \cap V_{j} \cap V_{k}\). Denoting by u, s, w the indices of the vertices joining \(q_{r}\) in the counter clockwise order and assuming without loss of generality that \(u \in V_{j} \cap V_{k}\), \(s \in V_{k} \cap V_{i}\), and \(w \in V_{i} \cap V_{j}\), we may replace equations (17), (18), and (19) in equation (21) to obtain the following equation:

$$ \begin{aligned} &\frac{1}{2} \bigl(y_{u}( \alpha _{j} -\alpha _{k}) + y_{s}(\alpha _{k} - \alpha _{i})+y_{w}(\alpha _{i} -\alpha _{j}) \bigr) + \frac{x_{r}-x_{u}}{ \vert q_{r}-q_{u} \vert }(\beta _{j} + \beta _{k} -2 \overline{\beta}) & \\ &\quad {}+ \frac{x_{r}-x_{s}}{ \vert q_{r}-q_{s} \vert }(\beta _{k} + \beta _{i} -2 \overline{\beta}) + \frac{x_{r}-x_{w}}{ \vert q_{r}-q_{w} \vert }(\beta _{i} + \beta _{j} -2\overline{\beta})=0,& \end{aligned} $$
(22)

where \(\overline{\beta} = \frac{1}{n}\sum_{l=1}^{n} \beta _{l}\). Whenever any of the coordinates \(y_{*}\) or \(x_{*}\) vary, the associated coefficient must vanish.

Since any common edge of a pair of adjacent regions sharing an internal vertex cannot be attached to an external vertex, the variables \(x_{*}\), \(y_{*}\) vary. Hence all coefficients in the equation must vanish. In particular, this implies that \(\alpha _{i} = \alpha _{j}= \alpha _{k}\) and \(\beta _{i} = \beta _{j}= \beta _{k} = \overline{\beta}\).

Therefore, for every internal vertex, the values of the αs and the βs of the regions that touch this vertex are equal.

Now let us see what happens whenever we restrict equation (20) to a coordinate \(t_{s}\) representing a vertex on the boundary. In this case we obtain equation

$$ \alpha _{i} \frac{\partial {A}_{i}}{\partial t_{s}} + \alpha _{j} \frac{\partial {A}_{j}}{\partial t_{s}} +\beta _{i} \frac{\partial \overline{P}_{i}}{\partial t_{s}} + \beta _{j} \frac{\partial \overline{P}_{j}}{\partial t_{s}} =0 $$
(23)

with \(s \in B \cap V_{i} \cap V_{j}\). On the one hand, we get that \((\alpha _{i} - \alpha _{j}) \frac{\partial A_{i}}{\partial t_{s}}=0\) because \(\frac{\partial A_{i}}{\partial t_{s}} + \frac{\partial A_{j}}{\partial t_{s}} =0\); on the other hand, we get that \((\beta _{i} - \beta _{j}) \frac{\partial P_{i}|_{(s,r)}}{\partial t_{s}}=0\) where \(P_{i}|_{(s,r)}\) denotes the perimeter of the ith region restricted to the edge \((r,s)\) where \(r \in B \cap V_{i}\), in other words, the length of the side of the i-region lying on the boundary of the polygon with one vertex with index s. From both equations we also obtain that \(\alpha _{i}=\alpha _{j}\) and \(\beta _{i} = \beta _{j}\).

We have shown that adjacent regions in the partition have equal αs and equal βs, and since the adjacency graph induced by the regions of the partition is connected, we conclude that all αs are equal and all βs are equal. Therefore the rank of the derivative \(F'\) is always \(2(n-1)\) as claimed. □

By Proposition 1 we know that \(\operatorname{dim}(\operatorname{Ker}(F'))=2|I|+|B|-2(n-1)\). Let us now see that these numbers equal the number of internal vertices.

Proposition 2

The dimension of the kernel of the derivative excess area and perimeter equals the number of internal vertices, i.e.,

$$ \operatorname{dim}\bigl(\operatorname{Ker}\bigl(F'\bigr)\bigr)= \vert I \vert . $$
(24)

Proof

The partition has \(|I|+|B|+|X|\) vertices, n regions, and twice the number of edges equals the sum of the valences of all vertices. Since the valence of internal and boundary edges is three, and the valence of external vertices is two, by the Euler characteristic formula we obtain

$$ \bigl( \vert I \vert + \vert B \vert + \vert X \vert \bigr) - \frac{1}{2} \bigl( 3 \vert I \vert + 3 \vert B \vert +2 \vert X \vert \bigr) +n=1. $$
(25)

We have therefore that the number of internal and boundary vertices equals twice the number of regions minus two:

$$ \vert I \vert + \vert B \vert =2n-2. $$
(26)

Therefore we conclude

$$ \operatorname{dim}\bigl(\operatorname{Ker}\bigl(F'\bigr)\bigr) = 2 \vert I \vert + \vert B \vert -2(n-1) = \vert I \vert . $$
(27)

 □

Since we have just shown that the excess area and perimeter function is differentiable, by the implicit function theorem we obtain the following corollary.

Corollary 1

If the solution set \(F=0\) is nonempty and lies inside the open set where F is differentiable, then the solution set is a differentiable manifold whose dimension equals the number of internal vertices of the original partition.

Hence, the more internal points the original partition has, the better for the optimization problem.

Now let us bound the norm of the first and second derivatives of the excess area and perimeter function, and let us address the Lipschitz condition for the first derivative that appears in the hypothesis list.

Consider the open set

$$ \Omega =\mathrm{Interior} \bigl\{ ({\mathbf{{p}}},{\mathbf{{t}}}) \in \mathbb{R}^{2|I|+|B|} \colon \iota ({\mathbf{{p}}},{\mathbf{{t}}}) \in \text{ConvexHull(Polygon)} \bigr\} $$
(28)

consisting of all parametrizations of configurations where the interior points roam inside the polygonal region and the boundary points roam on the side of the polygon where they lie.

Take any \(\delta >0\) and define the open set

$$ \Omega (\delta )= \bigl\{ ({\mathbf{{p}}},{\mathbf{{t}}}) \in \Omega \colon \vert q_{s}-q_{u} \vert > \delta \text{ for all } s \in I \cup B \text{ \& for all } u \in (I \cup B \cup X) \bigr\} $$
(29)

of parametrizations of configurations where the distance between any pair of adjacent vertices in the partition is bounded below by δ. Here we are not taking into account adjacent polygonal vertices that are still adjacent after the partition.

On the open set \(\Omega (\delta )\) we may bound the first and second derivatives of F. Let us first calculate the second derivatives of the areas and the perimeters.

Let \((s,r), (r,u) \in E_{k}\), then

$$\begin{aligned}& \frac{\partial ^{2} P_{k}}{\partial y_{s}\partial y_{r}}= - \frac{1}{ \vert q_{r}-q_{s} \vert } +\frac{(y_{r}-y_{s})^{2}}{ \vert q_{r}-q_{s} \vert ^{3}} \qquad \frac{\partial ^{2} A_{k}}{\partial y_{r} \partial x_{s}}= - \frac{1}{2} \end{aligned}$$
(30)
$$\begin{aligned}& \frac{\partial ^{2} P_{k}}{\partial x_{s}\partial x_{r}}= - \frac{1}{ \vert q_{r}-q_{s} \vert }+\frac{(x_{r}-x_{s})^{2}}{ \vert q_{r}-q_{s} \vert ^{3}} \qquad \frac{\partial ^{2} A_{k}}{\partial y_{s}\partial x_{r}}= \frac{1}{2} \end{aligned}$$
(31)
$$\begin{aligned}& \frac{\partial ^{2} P_{k}}{\partial y_{r} \partial x_{r}}= - \frac{(x_{r}-x_{s})(y_{r}-y_{s})}{ \vert q_{r}-q_{s} \vert ^{3}} - \frac{(x_{r}-x_{u})(y_{r}-y_{u})}{ \vert q_{r}-q_{u} \vert ^{3}} \end{aligned}$$
(32)
$$\begin{aligned}& \frac{\partial ^{2} P_{k}}{\partial y_{s} \partial x_{r}}= \frac{(x_{r}-x_{s})(y_{r}-y_{s})}{ \vert q_{r}-q_{s} \vert ^{3}} \end{aligned}$$
(33)
$$\begin{aligned}& \frac{\partial ^{2} P_{k}}{ \partial x_{r}^{2}}= \frac{1}{ \vert q_{r}-q_{s} \vert } + \frac{1}{ \vert q_{r}-q_{u} \vert } - \frac{(x_{r}-x_{s})^{2}}{ \vert q_{r}-q_{s} \vert ^{3}} - \frac{(x_{r}-x_{u})^{2}}{ \vert q_{r}-q_{u} \vert ^{3}} \end{aligned}$$
(34)
$$\begin{aligned}& \frac{\partial ^{2} P_{k}}{ \partial y_{r}^{2}}= \frac{1}{ \vert q_{r}-q_{s} \vert } + \frac{1}{ \vert q_{r}-q_{u} \vert } - \frac{(y_{r}-y_{s})^{2}}{ \vert q_{r}-q_{s} \vert ^{3}} - \frac{(y_{r}-y_{u})^{2}}{ \vert q_{r}-q_{u} \vert ^{3}}. \end{aligned}$$
(35)

If we denote by D the maximum width of the polygon, then δ, \(x_{r}-x_{s}\) and \(y_{r}-y_{s}\) are all smaller than D, and therefore we may bound all second derivative as follows:

$$ \biggl\vert \frac{\partial ^{2} P_{k}}{\partial x_{r}^{2}} \biggr\vert , \biggl\vert \frac{\partial ^{2} P_{k}}{\partial y_{r}^{2}} \biggr\vert , \biggl\vert \frac{\partial ^{2} P_{k}}{\partial x_{r}\partial y_{r}} \biggr\vert , \biggl\vert \frac{\partial ^{2} P_{k}}{\partial x_{s}\partial x_{r}} \biggr\vert , \biggl\vert \frac{\partial ^{2} P_{k}}{\partial y_{s}\partial x_{r}} \biggr\vert , \biggl\vert \frac{\partial ^{2} P_{k}}{\partial y_{s}\partial y_{r}} \biggr\vert < \frac{2}{\delta} + \frac{2D^{2}}{\delta ^{3}} < \frac{4D^{2}}{\delta ^{3}}. $$
(36)

By the calculations of the derivatives of the excess perimeter functions \(\overline{P}_{k}\) done in equations (18), we see that the second derivatives of the excess perimeter functions are also bounded. Hence, on the open set \(\Omega (\delta )\) the second derivative of F is bounded. So we obtain the following result.

Proposition 3

For sufficiently small δ, the second derivative of the excess area and perimeter function is bounded in \(\Omega (\delta )\). Therefore there exists γ such that for all points \(({\bar{{\mathbf{p}}}},{\bar{{\mathbf{t}}}}),({\mathbf{{p}}},{\mathbf{{t}}}) \in \Omega ( \delta )\) the following Lipschitz condition holds:

$$ \bigl\vert F'({\bar{{\mathbf{p}}}},{\bar{{\mathbf{t}}}})- F'({\mathbf{{p}}},{\mathbf{{t}}}) \bigr\vert < \gamma \bigl\vert ({ \bar{{\mathbf{p}}}},{\bar{{\mathbf{t}}}})-({\mathbf{{p}}},{\mathbf{{t}}}) \bigr\vert . $$
(37)

Proof

We just need to show that \(\Omega (\delta )\) is path connected for sufficiently small δ. But this follows from the fact that one can construct a path in \(\mathbb{R}^{2}\) joining two points with other two points, keeping their distance bounded from below.

By the mean value theorem and the Cauchy–Schwarz inequality, we have that

$$ \bigl\vert F'({\bar{{\mathbf{p}}}},{\bar{{\mathbf{t}}}})- F'({\mathbf{{p}}},{\mathbf{{t}}}) \bigr\vert \leq \bigl\vert F''({ \hat{{\mathbf{p}}}},{\hat{{\mathbf{t}}}}) \bigr\vert \bigl\vert ({\bar{{\mathbf{p}}}},{\bar{{\mathbf{t}}}})-({ \mathbf{{p}}},{\mathbf{{t}}}) \bigr\vert $$
(38)

for some point \(({\hat{{\mathbf{p}}}},{\hat{{\mathbf{t}}}}) \in \Omega (\delta )\). Then we may take the bound of \(|F''|\) inside \(\Omega (\delta )\) as the desired γ. □

Now let us choose an appropriate value of δ:

$$\begin{aligned} \delta =& \frac{1}{5} \min \bigl\{ \bigl\vert q^{0}_{r}-q^{0}_{s} \bigr\vert \colon (r,s) \\ &{} \text{runs over the edges of the original partition with } (r,s) \notin X \times X\bigr\} . \end{aligned}$$
(39)

That is, 5δ is the minimum length among all edges of the original partition not including the sides of the polygon without boundary vertices.

It is then easy to see that the product of the balls of radius δ around each internal and boundary vertex is an open subset of \(\Omega (\delta )\):

$$ \prod_{r \in I} B^{2}_{\delta}(0) \times \prod_{s \in B} B^{1}_{ \delta}(0) \subset \Omega (\delta ), $$
(40)

and therefore the distance between adjacent points will be always bigger than δ (see Fig. 2 (c). Here \(B^{2}_{\delta}(0)\) and \(B^{1}_{\delta}(0)\) denote respectively the 2-dimensional and 1-dimensional balls of radius δ around zero.

Figure 2
figure 2

(a) Convex partition with numbered regions and vertices. In this case the indices of the external vertices are \(X=[0,1,2,3,4]\), of the boundary vertices are \(B=[5,6,7,8,9,10,11]\), and of the interior vertices are \(I= [12,13,14,15,16]\). For region 4, we have \(V_{4} =[11,14,13,15,7]\) and \(E_{4}=[(11,14),(14,13),(13,15),(15,7),(7,11)]\). (b) The partition in broken lines is a perturbation of the original partition in solid lines. The internal vertices may roam free, while the boundary vertices only move on the respective side of the polygon. (c) Neighborhoods of equal radius for the interior and boundary vertices. Perturbing the coordinates of the vertices inside those neighborhoods produces a new partition of the polygon where there are neither overlapping of vertices nor of edges. In this case the radius is two fifths of the minimal length of all edges of the partition

Now let us bound the pseudo-inverse \((F')^{+}\). For this we will reduce our original open set \(\Omega (\delta )\) to a subset where the pseudo-inverse \(|(F')^{+}|\) is bounded, and it includes the origin.

Since the norm of the pseudo-inverse is not zero at the origin, and since \(|F'(({\mathbf{{p}}},{\mathbf{{t}}}))^{+}|\) is continuous on \(\Omega (\delta )\), by local compactness around the origin inside \(\Omega (\delta )\), there must exist a radius \(\xi \leq \delta \) such that

$$ \bigl\vert F'({\mathbf{{p}}},{\mathbf{{t}}})^{+} \bigr\vert < \mu\quad \text{for all } ({\mathbf{{p}}},{ \mathbf{{t}}}) \in \prod _{r \in I} B^{2}_{\xi}(0) \times \prod _{s \in B} B^{1}_{ \xi}(0). $$
(41)

Then let us consider

$$ \overline{\Omega} : =\prod_{r \in I} B^{2}_{\xi}(0) \times \prod_{s \in B} B^{1}_{\xi}(0) \subset \Omega (\delta ) $$
(42)

and note that on Ω̅ the Lipschitz condition for \(F'\) holds and \(|F'|\), \(|F''|\), and \(|(F')^{+}|\) are all bounded.

Defining

$$ \overline{\Omega}_{\eta }= \bigl\{ ({\mathbf{{p}}},{\mathbf{{t}}}) \in \overline{\Omega} \colon \bigl\vert ({\bar{{\mathbf{p}}}},{\bar{{\mathbf{t}}}})-({\mathbf{{p}}},{ \mathbf{{t}}}) \bigr\vert < \eta \Rightarrow ({ \bar{{\mathbf{p}}}},{\bar{{\mathbf{t}}}}) \in \overline{\Omega} \bigr\} $$
(43)

and taking \(\eta = \xi /2\), we see by the triangle inequality that

$$ \prod_{r \in I} B^{2}_{\xi /2}(0) \times \prod_{s \in B} B^{1}_{ \xi /2}(0) \subset \overline{\Omega}_{\xi /2}. $$
(44)

Therefore we can conclude the following.

Theorem 1

Let 5δ be the minimum length of the edges of the original partition without including edges between vertices of the polygon, and let \(\xi \leq \delta \) be such that \(|F'|\), \(|F''|\), and \(|(F')^{+}|\) are all bounded on the open set

$$ \overline{\Omega} : =\prod_{r \in I} B^{2}_{\xi}(0) \times \prod_{s \in B} B^{1}_{\xi}(0) \subset \Omega (\delta ). $$
(45)

Then the origin is an interior point of \(\overline{\Omega}_{\xi /2}\), and we have the following open set around the origin:

$$ \prod_{r \in I} B^{2}_{\xi /2}(0) \times \prod_{s \in B} B^{1}_{ \xi /2}(0) \subset \overline{\Omega}_{\xi /2}. $$
(46)

Moreover, since all the hypotheses presented in Sect3.2of (Walker and Watson [10], Thm 2.1) are met, there exists \(\epsilon >0\) such that whenever the initial partition parametrized by \(({\mathbf{{p}}},{\mathbf{{t}}})\) belongs to \(\overline{\Omega}_{\xi /2}\) and \(|F({\mathbf{{p}}},{\mathbf{{t}}})|<\epsilon \), the iterates of the normal flow algorithm converge to a partition \(({\mathbf{{p^{*}}}},{\mathbf{{t^{*}}}})\) of equal areas and equal perimeters.

The following remark is in order. Considering the first derivative matrix in vector form, the infinity norm for the matrix \(F''\) (and therefore the Lipschitz constant γ) is bounded by \(\frac{8nD^{2}}{\delta ^{3}}\). The larger this value is, the smaller (at least theoretically) is the region of convergence for the normal flow algorithm. Hence, the minimum distance between contiguous vertices may affect the performance of the algorithm, specially when n is large.

3.4 Starting point: scaled centroidal Voronoi partitions

To apply the normal flow algorithm (Algorithm 2) to the excess area and perimeter function described in the previous section, we need to show the procedure that provides a starting convex partition that is close enough to a fair partition. Our proposal for this task is presented in the first four steps of our Algorithm 1, and it is a composition of a scaling of the polygon \({\mathbb{K}}\) with the use of Lloyd’s algorithm to find a centroidal Voronoi partition.

Algorithm 2
figure b

Normal flow algorithm

Lloyd’s original algorithm to find Voronoi partitions whose centroids match the Voronoi centers is as follows (Lloyd [11]). Start with a set of points inside a convex and compact region. Find the Voronoi partition that these points define and calculate the centroids of the regions in the partition. Take the centroids as Voronoi centers and iterate the procedure. Lloyd’s algorithm converges to a centroidal Voronoi partition and it is extensively used because of its simplicity (Lloyd [11], Du et al. [12]). The naive k-means clustering algorithm is nothing else as the discrete version of Lloyd’s algorithm.

Centroidal Voronoi partitions provide subdivisions of the polygon, which minimizes the sum of the polar second moment of area of all regions. Hence they all try to be very symmetrical with respect to the centroid; in some sense they are very round. The areas and perimeters of centroidal Voronoi partitions are not so different, and therefore they provide clear candidates for the starting partition of the normal flow algorithm (Algorithm 2). In Sect. 4.1 we provide numerical evidence of the proximity of the centroidal Voronoi partitions to the fair ones.

Since centroidal Voronoi partitions tend to be round, in thin regions the number of internal vertices might be very small (compare the centroidal Voronoi partition of Fig. 3(g) with the scaled centroidal Voronoi partition of Fig. 3(h)). By Corollary 1 we know that the number of internal vertices matches the number of free dimensions that the optimization problem has, and the number of internal vertices is bounded by the inequalities \(0 \leq |I| \leq 2(n-1)\) since we have shown that \(|I|+|B|=2(n-1)\).

Figure 3
figure 3

Lloyd’s algorithm can be seen graphically in panels (a) through (d). (a) Random points (in red) are chosen in the interior of the polygon and the centroid of each region in the partition of Voronoi is calculated (in green). (b) The centroids of (a) are taken as centers for the Voronoi partition and the centroids of the regions are calculated. The same procedure is iterated in (c), and (d) shows the final configuration of a centroidal Voronoi partition. On (e) a thin region is drawn and on (f) the scaling is presented. The diameter of (e) is the maximum distance between points in the region, and the linear scaling happens on the direction perpendicular to the diameter. On (f) the polygon \({\mathbb{K}}\) is drawn in red and the scaled one is in blue. The height (with respect to the diameter) and the diameter are equal on the scaled region. Lloyd’s algorithm is performed on the thin region delivering the partition shown in (g). Lloyd’s algorithm is performed on the scaled region and the partition is shown in (d). Scaling the partition to the polygon \({\mathbb{K}}\) produces (h). Note that the number of internal vertices is bigger in (h) than in (g). The dimension of the solution set \(F_{c}=0\) in (g) is 2 and in (h) is 5

To find a starting partition that is close to the solution and with many internal vertices, we proceed to applying Lloyd’s algorithm to a scaled polygon, which is also somewhat round.

The scaling of the polygon procedure goes as follows. Take the diameter of the polygon, namely the longest distance on the hull of the region. Measure the longest heights on each side of the diameter, add them up, and call this number the height of the polygon. Scale the polygon linearly on the direction perpendicular to the diameter such that in the scaled polygon the height equals the diameter. In Fig. 3(e) the diameter and the two heights of the thin region are drawn in broken black lines. In Fig. 3(f) the scaled region is drawn using a solid line and its height matches the diameter of \({\mathbb{K}}\).

The scaled region is not thin anymore, and Lloyd’s algorithm provides a centroidal Voronoi partition, which has more internal vertices than the centroidal Voronoi partition of the thin polygon \({\mathbb{K}}\). Scale back to \({\mathbb{K}}\) and notice that the induced partition provides more room to maneuver for the normal flow algorithm (see Fig. 3(g) and Fig. 3(h)).

Our Algorithm 1 performs pretty well with the scaling, while some thin polygons \(\mathbb{K}\) cannot be solved by Algorithm 1 if the scaling is not performed. This is the main reason we included the scaling in the algorithm.

4 Numerical results

We have written a script in Python that carries out Algorithm 1 on any given convex polygonal region.

After several trials, we have noticed that two pieces of information that we have added to the script have made the algorithm more effective. Effective in terms of finding the convex fair partition in less trials. These two amendments are on the iteration of the normal flow algorithm (Algorithm 2) applied to \(F^{c}\):

  • The first ten iterations of the normal flow algorithm (Algorithm 2) shorten the size of the step by \(1/10\) on the first iteration, by \(1/9\) on the second, and so on, until the tenth iteration where the step is not modified anymore.

  • Whenever the iteration sends any internal or boundary vertex outside the polygonal region, the step is shortened by half.

The first procedure avoids that the first steps change dramatically the convexity, therefore turning on the convex area functions of \(F^{c}\), and the second restricts the internal and boundary vertices abandon the polygonal region.

Our convergence stopping criterion for the algorithm is \(|\% F^{c}| \leq 10^{-6}\) with \(|\% F^{c}|\) being the relative measure for the excess convex area and perimeter function, that is,

$$ \bigl\vert \% F^{c} \bigr\vert ^{2} = \sum _{k=1}^{n} \biggl( \frac{A_{k}^{c}-\frac{1}{n}\sum_{i=1}^{n} A_{i}}{\frac{1}{n}\sum_{i=1}^{n} A_{i}} \biggr) ^{2} + \sum_{k=1}^{n} \biggl( \frac{P_{k}-\frac{1}{n}\sum_{i=1}^{n} P_{i}}{\frac{1}{n}\sum_{i=1}^{n} P_{i}} \biggr)^{2}. $$
(47)

This says that all areas and all perimeters have a portion of excess of at most 10−6 times the mean area or the mean perimeter respectively. In this case we say that the algorithm converges.

Now, by Theorem 1 we know that the normal flow algorithm will find a solution whenever the starting partition is close enough to the solution. Unfortunately, the scaled centroidal Voronoi partition that we propose to start the normal flow algorithm (Algorithm 2) may not always provide an initial configuration where Theorem 1 applies. Therefore our algorithm may not find the solution on only one run. Therefore the script is also stopped when the maximum number of iterations reaches the value of 100. In this case, Algorithm 1 is run again for the same polygon but with a different initial random point. We follow this strategy at most 30 times. If the algorithm never reaches the convergence stopping criterion, we say that the algorithm failed to succeed.

4.1 Experiments and discussion

For a number of regions n from 6 to 50, we have applied our Algorithm 1 to 500 random polygons. The random polygon is obtained by taking the convex hull of eight random points in the square \([-10,10]\times [-10,10]\) using a normal distribution on each variable. The results of Fig. 4 show the percentage of polygons where our Algorithm 1 succeeded in one run, in two runs, in three runs, and in less than ten runs. In all cases the algorithm found a convex fair partition in less than ten runs, and in 99.5% of cases, in three runs the convex fair partition was found.

Figure 4
figure 4

We have tested our Algorithm 1 in 500 random convex polygons. For every number of regions between 6 and 50, we have counted the number of times our algorithm solves the convex fair partition problem in one run, in two runs, in three runs, and in less than 10 runs. The lines correspond to the percentage of random polygons solved in as many runs. In all cases a convex fair partition was found in less than ten runs of the algorithm

This is strong evidence that our Algorithm 1 indeed finds a convex fair partition for polygonal regions.

We have also carried out an analysis on how far centroidal Voronoi partitions are to convex fair ones.

In Fig. 5 we have plotted the distribution of the squared norm of the percentage of the excess of the areas and perimeters \(|\%F^{c}|^{2} \) for the centroidal Voronoi partitions, with respect to the number of regions on which a polygon is divided. We have done this calculation on 30 random polygons for a number of regions between 6 and 50. We see a linear correlation between \(|\%F^{c}|^{2}\) and the number of regions n with slope 0.00465. This shows that the squares of the percentage of the excess of the areas and the perimeters are close to each other, independently of the number of regions.

Figure 5
figure 5

For 30 different random polygons, we have found a centroidal Voronoi partition and we have calculated the squared of Euclidean norm of the percentage of the excess of the areas and the perimeters \(|\%F^{c}|^{2} \). For every number of regions on which the polygon is divided, we have the plotted the boxplot of the norm of the percentage excess. The box extends from the first quartile to the third quartile, with a line at the median. A linear regression was carried out between \(|\%F^{c}|^{2} \) and the number of regions n giving a slope of 0.00465. This linear relation implies that, independently of the number of regions, the percentage of excess of the areas and the perimeters are similar to one another

One way to interpret this linear correlation is via the following argument. Take a polygon and find a centroidal Voronoi partition of nm regions. Compare it with the partition obtained first by finding the centroidal Voronoi partition of n regions, and then partitioning each one of them into m by Lloyd’s algorithm. Both may have similar geometrical shapes, and therefore they may have similar percentage of excess in the areas and the perimeters.

The closeness of the centroidal Voronoi partitions to the convex fair ones is the reason we decided to start the normal flow algorithm (Algorithm 2) on them.

A shortcoming of our algorithm has appeared whenever the polygonal region \(\mathbb{K}\) is too thin. After many numerical experiments we conclude that too thin means that the height is smaller than one twentieth of the diameter. In those cases the steps of the normal flow algorithm (Algorithm 2) tries to send the internal vertices out of the polygon and our script does not in general converge. A better suited partition to start the normal flow algorithm might be necessary in these cases. On the other hand, the convergence rate of Lloyd’s algorithm for the centroidal Voronoi partition is affected by the number of regions considered. Its linear convergence rate of \(1-{\mathcal{O}}(h^{2})\), where h is the minimum diameter of the regions (Hateley et al. [13]), is slow when the number of regions is large. Therefore, better algorithm options for its implementation may be used for increasing efficiency when a large number of partitions is required (Hateley et al. [13]). We leave these questions open.

5 Conclusions

We have proposed an algorithm for finding a convex fair partition to any convex polygon into any number of regions. The algorithm is based on finding a centroidal Voronoi partition on a scaled region of the given polygon and on iterating the normal flow algorithm for the associated excess convex area and perimeter function. Our algorithm is the first one to appear in the literature designed to solve the convex fair partition problem without any restriction. The algorithm successfully identified the desired partition across a large and wide variety of tests. This outcome appears to support the conjecture that a convex fair partition exists for any convex polygon and any number of regions.

Data availability

Not applicable.

References

  1. Roldán-Pensado, E., Soberón, P.: A survey of mass partitions. Bull. Am. Math. Soc. (N.S.) 59, 227–267 (2022). https://doi.org/10.1090/bull/1725

    Article  MathSciNet  Google Scholar 

  2. Nandakumar, R., Ramana Rao, N.: Fair partitions of polygons: an elementary introduction. Proc. Indian Acad. Sci. Math. Sci. 122, 459–467 (2012). https://doi.org/10.1007/s12044-012-0076-5

    Article  MathSciNet  Google Scholar 

  3. Bárány, I., Blagojević, P., Szűcs, A.: Equipartitioning by a convex 3-fan. Adv. Math. 223, 579–593 (2010). https://doi.org/10.1016/j.aim.2009.08.016

    Article  MathSciNet  Google Scholar 

  4. Blagojević, P.V.M., Ziegler, G.M.: Convex equipartitions via equivariant obstruction theory. Isr. J. Math. 200, 49–77 (2014). https://doi.org/10.1007/s11856-014-1006-6

    Article  MathSciNet  Google Scholar 

  5. Karasev, R., Hubard, A., Aronov, B.: Convex equipartitions: the spicy chicken theorem. Geom. Dedic. 170, 263–279 (2014). https://doi.org/10.1007/s10711-013-9879-5

    Article  MathSciNet  Google Scholar 

  6. Akopyan, A., Avvakumov, S., Karasev, R.: Convex fair partitions into an arbitrary number of pieces (2018). https://arxiv.org/abs/1804.03057. https://doi.org/10.48550/ARXIV.1804.03057

  7. Borsuk, K.: Drei Sätze über die n-dimensionale euklidische Sphäre. Fundam. Math. 20, 177–190 (1933). https://doi.org/10.4064/fm-20-1-177-190

    Article  Google Scholar 

  8. Armaselu, B., Daescu, O.: Algorithms for fair partitioning of convex polygons. Theor. Comput. Sci. 607, 351–362 (2015). https://doi.org/10.1016/j.tcs.2015.08.003

    Article  MathSciNet  Google Scholar 

  9. Ben-Israel, A.: A Newton-Raphson method for the solution of systems of equations. J. Math. Anal. Appl. 15, 243–252 (1966)

    Article  MathSciNet  Google Scholar 

  10. Walker, H.F., Watson, L.T.: Least-change secant update methods for underdetermined systems. SIAM J. Numer. Anal. 27, 1227–1262 (1990). https://doi.org/10.1137/0727071

    Article  MathSciNet  Google Scholar 

  11. Lloyd, S.P.: Least squares quantization in PCM. IEEE Trans. Inf. Theory 28, 129–137 (1982). https://doi.org/10.1109/TIT.1982.1056489

    Article  MathSciNet  Google Scholar 

  12. Du, Q., Emelianenko, M., Ju, L.: Convergence of the Lloyd algorithm for computing centroidal Voronoi tessellations. SIAM J. Numer. Anal. 44, 102–119 (2006). https://doi.org/10.1137/040617364

    Article  MathSciNet  Google Scholar 

  13. Hateley, J., Wei, H., Chen, L.: Fast methods for computing centroidal Voronoi tessellations. J. Sci. Comput. 63, 185–212 (2015). https://doi.org/10.1007/s10915-014-9894-1

    Article  MathSciNet  Google Scholar 

Download references

Funding

B.U. acknowledges the support of the Max Planck Institute for Mathematics at Bonn, of the Alexander Von Humboldt Foundation, and of the ICTP through the Associates Programs.

Funding: This work was partially supported by CONACyT Mexico [Grant Number CB-2017-2018-A1-S-30345-F-3125].

Author information

Authors and Affiliations

Authors

Contributions

M.C.: Software, Validation, Investigation, Data Curation, Visualization. M.G-L.: Conceptualization, Methodology, Formal analysis, Writing - Review - Editing. B. U: Conceptualization, Methodology, Software, Validation, Formal analysis, Investigation, Data Curation, Writing - Review - Editing, Visualization, Supervision.

Corresponding author

Correspondence to Maria D. Gonzalez-Lima.

Ethics declarations

Ethics approval and consent to participate

Not applicable.

Consent for publication

Not applicable.

Competing interests

The authors declare no competing interests.

Additional information

Publisher’s Note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Appendix

Appendix

To have a graphical idea of how convex fair partitions look like on known polygonal regions, in Figs. 6, 7, and 8 we have used our Algorithm 1 to calculate convex fair partitions on an equilateral triangle, on a square, and on a pentagon respectively. Note that the partitions of the square into 4, 6, 8, 9, and 16 regions are configurations that are very symmetrical.

Figure 6
figure 6

Convex fair partitions for an equilateral triangle

Figure 7
figure 7

Convex fair partitions for a square

Figure 8
figure 8

Convex fair partitions for a pentagon

Rights and permissions

Open Access This article is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License, which permits any non-commercial use, sharing, distribution and reproduction in any medium or format, as long as you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons licence, and indicate if you modified the licensed material. You do not have permission under this licence to share adapted material derived from this article or parts of it. The images or other third party material in this article are included in the article’s Creative Commons licence, unless indicated otherwise in a credit line to the material. If material is not included in the article’s Creative Commons licence and your intended use is not permitted by statutory regulation or exceeds the permitted use, you will need to obtain permission directly from the copyright holder. To view a copy of this licence, visit http://creativecommons.org/licenses/by-nc-nd/4.0/.

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Campillo, M., Gonzalez-Lima, M.D. & Uribe, B. A general algorithm for convex fair partitions of convex polygons. Fixed Point Theory Algorithms Sci Eng 2024, 13 (2024). https://doi.org/10.1186/s13663-024-00769-y

Download citation

  • Received:

  • Accepted:

  • Published:

  • DOI: https://doi.org/10.1186/s13663-024-00769-y

Mathematics Subject Classification

Keywords