A Roundabout Exposition of Circle Packing

By Edward Wibowo

Suppose, rather inconveniently, someone left a handful of unit circles in front of your small abode. Beside the pile was a note, which read: “Please hold on to these circles for an extended period of time.” Begrudgingly, you think about the best way to arrange these circles in such a way that they take up the least amount of space. Do not fret, for this is the problem of circle packing, a well-studied problem under the broader class of packing problems.

An unfortunate situation, with a mathematical solution.

Figure 1. An unfortunate situation, with a mathematical solution.

This post aims to give an overview on circle packing along with some interesting results that have been obtained in this field. We assume no specific prior knowledge of the reader other than a basic understanding of geometry.

At its core, packing problems are an optimization problem. They seek to find the best way to arrange a given set of objects in a given space. The primary measure of success is packing density. That is, the ratio of the total area of the packed objects to the area of the space they are packed in. We are interested in finding the optimal packing that grants the highest packing density.

In this post, we will focus on the problem of identifying the optimal packing of circles in a lattice arrangement. We roughly follow the proof outlined in [1], filling in some elementary details and providing some additional intuition along the way.

1. From Circles to Hexagons: The Optimal Packing

1.1. Building Blocks (or Circles?)

First, we begin with a definition of a lattice.

We note that lattices may be defined in higher dimensions, but for the purposes of this post, we are primarily interested in the two-dimensional case. Specifically, two-dimensional lattices over R2\mathbb{R}^2.

We can essentially think of a lattice as a grid of points that extends infinitely in all directions. Importantly, the points in a lattice are arranged in a regular, repeating pattern. The points on the lattice will serve as the centers of the circles that we will be packing. From this, our problem becomes finding the lattice arrangement that allows us to pack the circles with the highest density.

A lattice with two basis vectors.

Figure 2. Lattice with v1=(1,0)v_1 = (1, 0) and v2=(33,12)v_2 = \left(\frac{\sqrt{3}}{3}, \frac{1}{2}\right).

Suppose we were given a lattice Λ\Lambda and we centered a circle with radius rr at each point in the lattice. What is the largest radius rr such that no two circles overlap?

A lattice with overlapping circles centered at each point.

Figure 3. Lattice with circles centered at each point. The circles overlap, so rr is too large.

Figure 3 clearly shows that if we choose a radius rr that is too large, the circles will overlap. This motivates the idea of a Voronoi cell.

In other words, VΛ\mathcal{V}_\Lambda is the set of points that are closer to OO than to any other point in the lattice Λ\Lambda. We can observe that if we place a circle at OO, we would want all of its points to be contained within VΛ\mathcal{V}_\Lambda. Hence, VΛ\mathcal{V}_\Lambda gives us an upper bound on the area within which we place our circle.

The Voronoi cell around the origin for a hexagonal lattice with its inscribed circle.

Figure 4. The Voronoi cell VΛ\mathcal{V}_\Lambda (blue, shaded) around the origin OO for a hexagonal lattice. The inscribed circle (red, dashed) has radius r(Λ)r(\Lambda).

It turns out that the circle inscribed within VΛ\mathcal{V}_\Lambda is the largest circle that can be placed at OO without overlapping with any other circles centered at other points in the lattice, motivating the following lemma.

Proof. Let Λ\Lambda be a lattice and lΛl \in \Lambda. Let

d=minxΛ{l}xld = \min_{x \in \Lambda \setminus \{l\}} \lVert x - l \rVert

be the distance from ll to its nearest other lattice point. Due to the repeating, grid-like structure of the lattice, dd is the same for every point in the lattice, so we can just consider ll without loss of generality. We note that two circles of radius rr centered at ll and lΛl' \in \Lambda do not overlap if and only if ll2r\lVert l - l' \rVert \geq 2r. Thus, we have an upper bound rll2r \leq \frac{\lVert l - l' \rVert}{2} for every lΛ{O}l' \in \Lambda \setminus \{O\}, which is equivalent to rd2r \leq \frac{d}{2}.

We claim that d2\frac{d}{2} is exactly the in-radius of VΛ\mathcal{V}_\Lambda. The boundary of VΛ\mathcal{V}_\Lambda lies on the perpendicular bisectors of segments from ll to other lattice points lΛl' \in \Lambda; the bisector for ll' is at distance ll2\frac{\lVert l - l' \rVert}{2} from ll. The closest such bisector is therefore at distance d2\frac{d}{2}, which is the in-radius of VΛ\mathcal{V}_\Lambda. Hence, the largest non-overlap radius equals the in-radius of VΛ\mathcal{V}_\Lambda.

Working within Voronoi cells allows us to express the overall packing density of a lattice in terms of the area of the Voronoi cell and the area of the inscribed circle. That is,

Δ(Λ)=area of one circlearea of Voronoi cell.\Delta(\Lambda) = \frac{\text{area of one circle}}{\text{area of Voronoi cell}}.

Calculating the area of a circle is straightforward, but how do we calculate the area of a Voronoi cell? To do so, we employ the concept of fundamental domains.

The parallelogram fundamental domain formed by the basis vectors.

Figure 5. The parallelogram fundamental domain FF (blue) formed by basis vectors v1,v2v_1, v_2.

Proof. We first prove that VΛ\mathcal{V}_\Lambda is Λ\Lambda-covering. Let PR2P \in \mathbb{R}^2 be an arbitrary point. We know that there exists a point lΛl \in \Lambda that is closest to PP. Consider f=Plf = P - l. We claim that fVΛf \in \mathcal{V}_\Lambda. Since ll is the closest point in Λ\Lambda to PP, we have PlPx\lVert P - l \rVert \leq \lVert P - x \rVert for every xΛx \in \Lambda. Then, fO=PlPx=f(xl)\lVert f - O \rVert = \lVert P - l \rVert \leq \lVert P - x \rVert = \lVert f - (x - l) \rVert for every xΛx \in \Lambda. Since xx is an arbitrary point in Λ\Lambda, xlx - l is also an arbitrary point in Λ\Lambda (since Λ\Lambda is closed under addition and negation). Thus, we know fOfx\lVert f - O \rVert \leq \lVert f - x' \rVert for every xΛx' \in \Lambda, which means fVΛf \in \mathcal{V}_\Lambda. Since we started with f=Plf = P - l, we can rewrite this as P=l+fP = l + f where lΛl \in \Lambda and fVΛf \in \mathcal{V}_\Lambda, proving that VΛ\mathcal{V}_\Lambda is Λ\Lambda-covering.

Next, we prove that VΛ\mathcal{V}_\Lambda is Λ\Lambda-packing. Note that for lΛl \in \Lambda we have

l+VΛ={l+f:fVΛ}.l + \mathcal{V}_\Lambda = \{ l + f : f \in \mathcal{V}_\Lambda \}.

Let l1,l2Λl_1, l_2 \in \Lambda with l1l2l_1 \neq l_2, and suppose x(l1+VΛ)(l2+VΛ)x \in (l_1 + \mathcal{V}_\Lambda) \cap (l_2 + \mathcal{V}_\Lambda). Then xl1VΛx - l_1 \in \mathcal{V}_\Lambda and xl2VΛx - l_2 \in \mathcal{V}_\Lambda. Applying the defining inequality of VΛ\mathcal{V}_\Lambda to xl1x - l_1 with the lattice point l2l1Λl_2 - l_1 \in \Lambda:

xl1=(xl1)O(xl1)(l2l1)=xl2.\lVert x - l_1 \rVert = \lVert (x - l_1) - O \rVert \leq \lVert (x - l_1) - (l_2 - l_1) \rVert = \lVert x - l_2 \rVert.

Symmetrically, applying it to xl2x - l_2 with the lattice point l1l2Λl_1 - l_2 \in \Lambda:

xl2xl1.\lVert x - l_2 \rVert \leq \lVert x - l_1 \rVert.

Combining, xl1=xl2\lVert x - l_1 \rVert = \lVert x - l_2 \rVert, meaning xx lies on the perpendicular bisector of the segment l1l2\overline{l_1 l_2} which is a line in R2\mathbb{R}^2, hence a set of 2-dimensional Lebesgue measure zero. Therefore (l1+VΛ)(l2+VΛ)(l_1 + \mathcal{V}_\Lambda) \cap (l_2 + \mathcal{V}_\Lambda) has measure zero.

Henceforth, we have shown that VΛ\mathcal{V}_\Lambda is both Λ\Lambda-covering and Λ\Lambda-packing, so VΛ\mathcal{V}_\Lambda is a fundamental domain for Λ\Lambda.

It turns out that all fundamental domains of a lattice have the same area [2]. Since both a Voronoi cell and FparF_\text{par} from Example 1 are fundamental domains for Λ\Lambda, they must have the same area. Thus, we can prove Lemma 3 which gives us a way to calculate the area of a Voronoi cell.

Proof. From Theorem 8 in [2], we know that all fundamental domains of a lattice have the same area. Since both VΛ\mathcal{V}_\Lambda and FparF_\text{par} are fundamental domains for Λ\Lambda, they have the same area.

Hence, we can express the packing density of a lattice Λ\Lambda as

Δ(Λ)=πr(Λ)2det(Λ)\Delta(\Lambda) = \frac{\pi r(\Lambda)^2}{\lvert \det(\Lambda) \rvert}

where r(Λ)r(\Lambda) is the radius of the inscribed circle of VΛ\mathcal{V}_\Lambda. Our goal then becomes identifying the lattice Λ\Lambda that maximizes Δ(Λ)\Delta(\Lambda).

Our overall proof strategy to optimizing Δ(Λ)\Delta(\Lambda) is as follows:

  1. Reduce all lattices to WR lattices (explained in the next section). For any lattice Λ\Lambda, we can construct ΛWR\Lambda_\text{WR} such that Δ(ΛWR)Δ(Λ)\Delta(\Lambda_\text{WR}) \geq \Delta(\Lambda).
  2. Optimize over the space of WR lattices. We show that the formula for Δ(Λ)\Delta(\Lambda) simplifies significantly for WR lattices, allowing for easy optimization. The subsequent solution is thus the optimal lattice packing of circles.

1.2. Rounding out the Lattices

The core of our proof relies on the concept of Well-Rounded (WR) Lattices. These are a special kind of lattice that satisfy a certain “roundness” condition. In prose, a WR lattice is a lattice such that if we were to draw a circle centered at the origin and gradually increase its radius until it hits any lattice point, the circle would not stop at just one lattice point, but it would stop at two (linearly independent) lattice points at the same time. We shall formalize this intuition with the following definition.

In other words, λi(Λ)\lambda_i(\Lambda) is the smallest radius such that the circle of that radius centered at the origin contains ii non-zero, linearly independent lattice point(s).

Circles with radius of the successive minima of a lattice.

Figure 6. Circles with radius of successive minima λ1\lambda_1 (blue) and λ2\lambda_2 (red). The circle of radius λ1\lambda_1 first touches a lattice point x1x_1; the circle of radius λ2\lambda_2 first contains a second linearly independent point x2x_2.

It should be clear that for any Λ\Lambda, we must have λ1(Λ)λ2(Λ)\lambda_1(\Lambda) \leq \lambda_2(\Lambda). Furthermore, throughout this post, given x1,x2x_1, x_2 corresponding to successive minima, we replace x2x_2 with x2-x_2 if necessary to ensure that the angle between x1x_1 and x2x_2 is θ[0,π2]\theta \in [0, \frac{\pi}{2}].

We are specifically interested in the case where λ1(Λ)=λ2(Λ)\lambda_1(\Lambda) = \lambda_2(\Lambda); the lattices that satisfy this condition are called WR lattices.

We can also use the notion of successive minima defined in Definition 4 to express the packing density Δ(Λ)\Delta(\Lambda) in terms of λ1(Λ)\lambda_1(\Lambda). That is, the radius of the inscribed circle of VΛ\mathcal{V}_\Lambda is given by λ1(Λ)2\frac{\lambda_1(\Lambda)}{2}. Hence, r(Λ)=λ1(Λ)2r(\Lambda) = \frac{\lambda_1(\Lambda)}{2} and it follows,

Δ(Λ)=πr(Λ)2det(Λ)=πλ1(Λ)24det(Λ).\Delta(\Lambda) = \frac{\pi r(\Lambda)^2}{\lvert \det(\Lambda) \rvert} = \frac{\pi \lambda_1(\Lambda)^2}{4 \lvert \det(\Lambda) \rvert}.

Of course, not all lattices are WR lattices. So, the next thing we want to do is find a way to “round out” any lattice Λ\Lambda into a WR lattice. To do so, we must make the observation that the corresponding successive minima vectors x1,x2x_1, x_2 of some lattice Λ\Lambda form a basis for Λ\Lambda. This result was proven in [1, Lemma 3.3] which we restate as Lemma 4.

Also proved in [1] is the following result.

Lemma 5 gives us a concrete way to transform any lattice Λ\Lambda into a WR lattice ΛWR\Lambda_\text{WR}. Importantly for our purposes, ΛWR\Lambda_\text{WR} has the same first successive minimum as Λ\Lambda. This leads us to our next lemma.

Proof. Let Λ\Lambda be a lattice with successive minima λ1(Λ)\lambda_1(\Lambda) and λ2(Λ)\lambda_2(\Lambda) and corresponding basis vectors x1,x2x_1, x_2, respectively. By Lemma 4, we know that x1,x2x_1, x_2 form a basis for Λ\Lambda. Then, we apply the transformation given in Lemma 5 with x1x_1 and x2x_2 as basis to obtain a WR lattice ΛWR\Lambda_\text{WR} such that λ1(ΛWR)=λ1(Λ)\lambda_1(\Lambda_\text{WR}) = \lambda_1(\Lambda). Let y1,y2y_1, y_2 be the corresponding successive minima vectors for ΛWR\Lambda_\text{WR} (and also basis by Lemma 4 of ΛWR\Lambda_\text{WR}).

We note that the transformation preserves the directions of the basis vectors; y1y_1 is just x1x_1 and y2y_2 is just a scaled version of x2x_2 and λ1(Λ)λ2(Λ)\frac{\lambda_1(\Lambda)}{\lambda_2(\Lambda)} is positive. Hence, the angle θ\theta between x1x_1 and x2x_2 is the same as the angle between y1y_1 and y2y_2.

It follows,

Δ(Λ)=πλ1(Λ)24det(Λ)=πx124det(Λ)[By Definition 4]=πx124x1x2sinθ=x1x2π4sinθ.\begin{aligned} \Delta(\Lambda) &= \frac{\pi \lambda_1(\Lambda)^2}{4 \lvert \det(\Lambda) \rvert} \\ &= \frac{\pi \lVert x_1 \rVert^2}{4 \lvert \det(\Lambda) \rvert} && \text{[By Definition 4]} \\ &= \frac{\pi \lVert x_1 \rVert^2}{4 \lVert x_1 \rVert \lVert x_2 \rVert \sin\theta} \\ &= \frac{\lVert x_1 \rVert}{\lVert x_2 \rVert} \cdot \frac{\pi}{4 \sin\theta}. \end{aligned}

It also follows,

Δ(ΛWR)=πλ1(ΛWR)24det(ΛWR)=πy124det(ΛWR)[By Definition 4]=πy124y1y2sinθ[θ is the angle between y1,y2]=πy124y12sinθ[ΛWR is WR, so y1=y2]=π4sinθ.\begin{aligned} \Delta(\Lambda_\text{WR}) &= \frac{\pi \lambda_1(\Lambda_\text{WR})^2}{4 \lvert \det(\Lambda_\text{WR}) \rvert} \\ &= \frac{\pi \lVert y_1 \rVert^2}{4 \lvert \det(\Lambda_\text{WR}) \rvert} && \text{[By Definition 4]} \\ &= \frac{\pi \lVert y_1 \rVert^2}{4 \lVert y_1 \rVert \lVert y_2 \rVert \sin\theta} && [\theta \text{ is the angle between } y_1, y_2] \\ &= \frac{\pi \lVert y_1 \rVert^2}{4 \lVert y_1 \rVert^2 \sin\theta} && [\Lambda_\text{WR} \text{ is WR, so } \lVert y_1 \rVert = \lVert y_2 \rVert] \\ &= \frac{\pi}{4 \sin\theta}. \end{aligned}

Finally, since by Definition 4 we have λ1(Λ)λ2(Λ)\lambda_1(\Lambda) \leq \lambda_2(\Lambda) and thus x1x2\lVert x_1 \rVert \leq \lVert x_2 \rVert which means x1x21\frac{\lVert x_1 \rVert}{\lVert x_2 \rVert} \leq 1, it follows that

Δ(ΛWR)=π4sinθx1x2π4sinθ=Δ(Λ).\Delta(\Lambda_\text{WR}) = \frac{\pi}{4 \sin\theta} \geq \frac{\lVert x_1 \rVert}{\lVert x_2 \rVert} \cdot \frac{\pi}{4 \sin\theta} = \Delta(\Lambda).

Therefore, we have shown that for any lattice Λ\Lambda, there exists a WR lattice ΛWR\Lambda_\text{WR} such that Δ(ΛWR)Δ(Λ)\Delta(\Lambda_\text{WR}) \geq \Delta(\Lambda).

Proof. Suppose for the sake of contradiction that the optimal packing density is achieved by a lattice Λ\Lambda that is not a WR lattice. By Lemma 6, there exists a WR lattice ΛWR\Lambda_\text{WR} such that Δ(ΛWR)Δ(Λ)\Delta(\Lambda_\text{WR}) \geq \Delta(\Lambda). Since Λ\Lambda achieves the optimal packing density, then we must have Δ(ΛWR)=Δ(Λ)\Delta(\Lambda_\text{WR}) = \Delta(\Lambda). Thus, as shown in the proof of Lemma 6, we have

Δ(ΛWR)=Δ(Λ)    π4sinθ=x1x2π4sinθ    x1=x2\Delta(\Lambda_\text{WR}) = \Delta(\Lambda) \implies \frac{\pi}{4 \sin\theta} = \frac{\lVert x_1 \rVert}{\lVert x_2 \rVert} \cdot \frac{\pi}{4 \sin\theta} \implies \lVert x_1 \rVert = \lVert x_2 \rVert

where x1,x2x_1, x_2 are the corresponding successive minima vectors for Λ\Lambda and θ\theta is the angle between x1x_1 and x2x_2. So, x1=x2    λ1(Λ)=λ2(Λ)\lVert x_1 \rVert = \lVert x_2 \rVert \implies \lambda_1(\Lambda) = \lambda_2(\Lambda), which means Λ\Lambda is a WR lattice, contradicting our initial assumption.

Therefore, we can restrict our search for the optimal packing density to only WR lattices. This benefits us greatly as the formula for Δ(ΛWR)\Delta(\Lambda_\text{WR}) where ΛWR\Lambda_\text{WR} is a WR lattice simplifies to Δ(ΛWR)=π4sinθ\Delta(\Lambda_\text{WR}) = \frac{\pi}{4 \sin\theta} as shown in the proof of Lemma 6. Thus, our task becomes finding the angle θ\theta between the two basis vectors of a WR lattice that minimizes sinθ\sin\theta, which is equivalent to maximizing Δ(ΛWR)\Delta(\Lambda_\text{WR}).

1.3. Optimizing over Well-Rounded Lattices

With θ[0,π2]\theta \in [0, \frac{\pi}{2}], the sinθ\sin\theta term in Δ(ΛWR)=π4sinθ\Delta(\Lambda_\text{WR}) = \frac{\pi}{4 \sin\theta} is minimized when θ\theta is minimized. Thus, we must first place a lower bound on the angle θ\theta between the two basis vectors of a lattice, motivating the following lemma.

Proof. Suppose towards contradiction that θ<π3\theta < \frac{\pi}{3}. Using a standard linear algebra result, we know cosθ=x1x2x1x2\cos\theta = \frac{x_1 \cdot x_2}{\lVert x_1 \rVert \lVert x_2 \rVert}. Since 0θ<π30 \leq \theta < \frac{\pi}{3}, we have cosθ>12\cos\theta > \frac{1}{2}. It follows that

x1x2x1x2>12    2(x1x2)>x1x2.\frac{x_1 \cdot x_2}{\lVert x_1 \rVert \lVert x_2 \rVert} > \frac{1}{2} \implies 2(x_1 \cdot x_2) > \lVert x_1 \rVert \lVert x_2 \rVert.

Continuing, we expand the following

x1x22=(x1x2)(x1x2)=x12+x222(x1x2)<x12+x22x1x2=(x12x1x2)+x22.\begin{aligned} \lVert x_1 - x_2 \rVert^2 &= (x_1 - x_2) \cdot (x_1 - x_2) = \lVert x_1 \rVert^2 + \lVert x_2 \rVert^2 - 2(x_1 \cdot x_2) \\ &< \lVert x_1 \rVert^2 + \lVert x_2 \rVert^2 - \lVert x_1 \rVert \lVert x_2 \rVert = (\lVert x_1 \rVert^2 - \lVert x_1 \rVert \lVert x_2 \rVert) + \lVert x_2 \rVert^2. \end{aligned}

By Definition 4, we have λ1(Λ)λ2(Λ)\lambda_1(\Lambda) \leq \lambda_2(\Lambda) and thus x1x2\lVert x_1 \rVert \leq \lVert x_2 \rVert. Then, x12=x1x1x1x2    x12x1x20\lVert x_1 \rVert^2 = \lVert x_1 \rVert \lVert x_1 \rVert \leq \lVert x_1 \rVert \lVert x_2 \rVert \implies \lVert x_1 \rVert^2 - \lVert x_1 \rVert \lVert x_2 \rVert \leq 0. Thus, it follows

x1x22<x22    x1x2<x2.\lVert x_1 - x_2 \rVert^2 < \lVert x_2 \rVert^2 \implies \lVert x_1 - x_2 \rVert < \lVert x_2 \rVert.

However, we note that this is a contradiction. Since x1x_1 and x2x_2 are distinct and linearly independent, x1x2x_1 - x_2 is a non-zero vector in Λ\Lambda. We also know that x1x2x_1 - x_2 is linearly independent from x1x_1 since x1x_1 and x2x_2 are linearly independent. x1x2<x2\lVert x_1 - x_2 \rVert < \lVert x_2 \rVert tells us then that x1x2x_1 - x_2 is a non-zero vector in Λ\Lambda that is linearly independent from x1x_1 and is shorter than x2x_2, contradicting the fact that x2x_2 realizes the second successive minimum λ2(Λ)\lambda_2(\Lambda), i.e. that x2x_2 is the shortest non-zero vector in Λ\Lambda linearly independent from x1x_1. Therefore, we must have θπ3\theta \geq \frac{\pi}{3}.

We also need a partial converse of Lemma 7: if a basis has equal-length vectors with an angle in [π3,π2][\frac{\pi}{3}, \frac{\pi}{2}], then it already realizes the successive minima. This was proven as Lemma 3.5 in [1], which we restate as Lemma 8.

Next, we can give an example of a WR lattice that achieves the lower bound of θ\theta, motivating the following theorem.

Proof. By Corollary 1, the optimal packing density is achieved by some WR lattice, and the proof of Lemma 6 shows that for any WR lattice ΛWR\Lambda_\text{WR}, Δ(ΛWR)=π4sinθ\Delta(\Lambda_\text{WR}) = \frac{\pi}{4 \sin\theta}, where θ[0,π2]\theta \in [0, \frac{\pi}{2}] is the angle between the two basis vectors. By Lemma 7, θπ3\theta \geq \frac{\pi}{3}, so sinθ32\sin\theta \geq \frac{\sqrt{3}}{2}, with equality (hence Δ\Delta maximized) precisely when θ=π3\theta = \frac{\pi}{3}. We claim Λhex\Lambda_\text{hex} realizes this optimum. Let x1=(1,0)x_1 = (1, 0) and x2=(12,32)x_2 = \left(\frac{1}{2}, \frac{\sqrt{3}}{2}\right).

_Λhex\Lambda_\text{hex} is a WR lattice with basis angle π3\frac{\pi}{3}._ Compute x12=1\lVert x_1 \rVert^2 = 1 and x22=14+34=1\lVert x_2 \rVert^2 = \frac{1}{4} + \frac{3}{4} = 1, so x1=x2=1\lVert x_1 \rVert = \lVert x_2 \rVert = 1. The angle between them satisfies

cosθ=x1x2x1x2=112+03211=12,\cos\theta = \frac{x_1 \cdot x_2}{\lVert x_1 \rVert \lVert x_2 \rVert} = \frac{1 \cdot \frac{1}{2} + 0 \cdot \frac{\sqrt{3}}{2}}{1 \cdot 1} = \frac{1}{2},

so θ=π3[π3,π2]\theta = \frac{\pi}{3} \in [\frac{\pi}{3}, \frac{\pi}{2}]. By Lemma 8, x1,x2x_1, x_2 correspond to the successive minima of Λhex\Lambda_\text{hex}, and Λhex\Lambda_\text{hex} is WR. Therefore

Δ(Λhex)=π4sinπ3=π230.9069,\Delta(\Lambda_\text{hex}) = \frac{\pi}{4 \sin\frac{\pi}{3}} = \frac{\pi}{2\sqrt{3}} \approx 0.9069,

and this is the optimal packing density of circles in a lattice arrangement in R2\mathbb{R}^2.

Therefore, we have shown that the optimal packing density of circles in a lattice arrangement is achieved by the hexagonal lattice, with packing density approximately 0.90690.9069.

The hexagonal lattice with circles centered at each point.

Figure 7. Λhex\Lambda_\text{hex} with circles centered at each point.

2. Concluding Remarks

In this post, we proved the optimal packing density of circles under the restriction of a lattice arrangement. Rather remarkably, it turns out that if we lift the lattice restriction, the optimal packing density of circles in R2\mathbb{R}^2 is still achieved by the hexagonal packing arrangement. While outside of the scope of this post, the proof of this more general result was first published by Axel Thue; however, his proof was considered incomplete and was not widely accepted until László Fejes Tóth published a complete proof in 1942 [4].

The circle packing problem has also been extensively studied across higher dimensions (sphere packing). More recently, the sphere packing problem in 88 and 2424 dimensions was solved by Maryna Viazovska and collaborators, with the optimal packings in these dimensions being the E8E_8 lattice and the Leech lattice, respectively [5, 6].

While, clearly, this post represents only a sliver of the rich literature on packing problems, it illuminates some of the key techniques, terminology, and vocabulary that are commonly used in the field. Furthermore, while particularly useful for packing problems, lattices, Voronoi cells, and fundamental domains are also widely used in other areas of mathematics, such as number theory and cryptography. They find use-cases in more applied fields as well, such as coding theory and communications. Overall, the study of packing problems and the associated mathematical tools is a vibrant area of research with deep connections to many other fields.

References

[1] L. Fukshansky. Revisiting the hexagonal lattice: on optimal lattice circle packing. arXiv:0911.4106, 2009.

[2] D. Dadush and L. Ducas. Mastermath, Intro to Lattice Algorithms & Cryptography, CWI Amsterdam, 2018.

[3] T. Tao. An Introduction to Measure Theory. American Mathematical Society, 2011.

[4] H.-C. Chang and L.-C. Wang. A Simple Proof of Thue’s Theorem on Circle Packing. arXiv:1009.4322, 2010.

[5] M. Viazovska. The sphere packing problem in dimension 8. arXiv:1603.04246, 2017.

[6] H. Cohn, A. Kumar, S. D. Miller, D. Radchenko, and M. Viazovska. The sphere packing problem in dimension 24. arXiv:1603.06518, 2017.

Footnotes

  1. Lebesgue measure zero is a technical condition that essentially means that the intersection of l1+Fl_1 + F and l2+Fl_2 + F is negligible in terms of area [3].