 Research
 Open access
 Published:
A general algorithm for convex fair partitions of convex polygons
Fixed Point Theory and Algorithms for Sciences and Engineering volume 2024, Article number: 13 (2024)
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ánPensado 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 3fans 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 wellknown 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 underdetermined 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 wellknown 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 (BenIsrael [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 kregion (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:
Since we are interested in finding equal areas and equal perimeters, we may subtract the average of the areas and of the perimeters respectively:
Bundle up these excess areas and perimeters into a functional
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
which parametrizes perturbations of the internal vertices and boundary vertices
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 \)
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
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
By the previous lemma we see that a solution of the equations
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
be the excess convex area of the kth region, define the functional
and define the excess convex area and perimeter function \(F^{c}\) as the new nonlinear function
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.
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 BenIsrael (BenIsrael [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 pseudoinverse. 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}^{2I+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
Therefore the image of the excess area and perimeter function F lands on the \(2(n1)\) dimensional subspace whose first ncoordinates add to zero, and the second ncoordinates add also to zero.
Proposition 1
The excess area and perimeter function F is differentiable in the open set of points in \(\mathbb{R}^{2I+B}\) where all induced vertices are different. Its derivative \(F'\) is moreover of full rank \(2(n1)\) 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}\):
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
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):
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:
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'\):
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(n1)\) 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
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:
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
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 iregion 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(n1)\) as claimed. □
By Proposition 1 we know that \(\operatorname{dim}(\operatorname{Ker}(F'))=2I+B2(n1)\). 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.,
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
We have therefore that the number of internal and boundary vertices equals twice the number of regions minus two:
Therefore we conclude
□
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
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
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
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:
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:
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
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 δ:
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 )\):
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 2dimensional and 1dimensional balls of radius δ around zero.
Now let us bound the pseudoinverse \((F')^{+}\). For this we will reduce our original open set \(\Omega (\delta )\) to a subset where the pseudoinverse \((F')^{+}\) is bounded, and it includes the origin.
Since the norm of the pseudoinverse 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
Then let us consider
and note that on Ω̅ the Lipschitz condition for \(F'\) holds and \(F'\), \(F''\), and \((F')^{+}\) are all bounded.
Defining
and taking \(\eta = \xi /2\), we see by the triangle inequality that
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
Then the origin is an interior point of \(\overline{\Omega}_{\xi /2}\), and we have the following open set around the origin:
Moreover, since all the hypotheses presented in Sect. 3.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.
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 kmeans 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(n1)\) since we have shown that \(I+B=2(n1)\).
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,
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.
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.
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
RoldánPensado, 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
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/s1204401200765
Bárány, I., Blagojević, P., Szűcs, A.: Equipartitioning by a convex 3fan. Adv. Math. 223, 579–593 (2010). https://doi.org/10.1016/j.aim.2009.08.016
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/s1185601410066
Karasev, R., Hubard, A., Aronov, B.: Convex equipartitions: the spicy chicken theorem. Geom. Dedic. 170, 263–279 (2014). https://doi.org/10.1007/s1071101398795
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
Borsuk, K.: Drei Sätze über die ndimensionale euklidische Sphäre. Fundam. Math. 20, 177–190 (1933). https://doi.org/10.4064/fm201177190
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
BenIsrael, A.: A NewtonRaphson method for the solution of systems of equations. J. Math. Anal. Appl. 15, 243–252 (1966)
Walker, H.F., Watson, L.T.: Leastchange secant update methods for underdetermined systems. SIAM J. Numer. Anal. 27, 1227–1262 (1990). https://doi.org/10.1137/0727071
Lloyd, S.P.: Least squares quantization in PCM. IEEE Trans. Inf. Theory 28, 129–137 (1982). https://doi.org/10.1109/TIT.1982.1056489
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
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/s1091501498941
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 CB20172018A1S30345F3125].
Author information
Authors and Affiliations
Contributions
M.C.: Software, Validation, Investigation, Data Curation, Visualization. M.GL.: 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
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.
Rights and permissions
Open Access This article is licensed under a Creative Commons AttributionNonCommercialNoDerivatives 4.0 International License, which permits any noncommercial 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/byncnd/4.0/.
About this article
Cite this article
Campillo, M., GonzalezLima, 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/s1366302400769y
Received:
Accepted:
Published:
DOI: https://doi.org/10.1186/s1366302400769y