Two and a half years ago, I worked for a teaching program at Queen's that could help first year calculus students get extra marks. It was called Math Investigations and its purpose was to show interesting problems that students might not see in a regular class. As a third year math student, I could solve most of them in a brief sitting but one problem called "two ants" eluded us and it just happened to be the first problem we presented.

Finding the shortest distance "as the crow flies" is trivial, but it is harder to find the shortest path among those constrained to the box. The approach favoured by the notes is to unfold the box in a few different ways and compare the lengths of a few different paths you can draw when the box is unfolded. You can get different lengths depending on how you unfold it.
|
|
while the other is
. The notes claim without proof that the path on the right is the shortest path joining the two ants that one can ever find. How many times do we have to unpack the box in order to prove this?
What we are doing is mapping the box onto the plane in a way that preserves distance. A function between different surfaces that preserves distance is called an isometry. Since we know that the shortest path between any two points in a plane is a straight line, we can say that the shortest path between the corresponding points on the surface is simply the image of this straight line under the isometry. Of course, the catch is that we are not using an isometry between the plane and the entire box - there is no such thing. It is the restriction of an unpacking scheme to a subset of the box that is an isometry.
|
|
As a bit of a digression, finding the distinct nets for a polyhedron is not necessarily easy. A 1998 paper counts the number of nets for large polyhedra and polytopes and the procedure is quite involved. There are 11 distinct nets of a cube. We can use this to find out how many distinct nets produce a rectangular prism with a square base. We can start with a cubic net like this one:

|
|

|
|
|
|
. I doubt that anyone in the class considered this many cases. Even if they did, it wouldn't matter because there are an infinite number of ways to unpack a shape! If you draw the 132 nets in the procedure that was just described, you will not get this one:
This is what stumped us during the Math Investigations class. When students warmed up to the idea of unpacking the box in many strange ways, they asked how many times the box would have to be unpacked. We didn't have an answer, and the longer we thought about it, the more we realized that the process would never finish. This is a hard problem so we admitted that there could easily be a path with a length shorter than 40 and we didn't know how to prove it either way. Now that I've come back to the problem, I've thought up a proof that I didn't think of before and it is nice and elementary. Please tell me if you find it as convincing as I do.
Before I get into the proof, I should say that it was inspired by a problem I had to solve in one of my fourth year courses - computational commutative algebra. We were learning the theory of Gröbner bases and for an ideal in a polynomial ring, one traditionally computes the Gröbner basis by first choosing a monomial order and then applying Buchberger's algorithm. I was asked to find all possible Gröbner bases for a particular ideal. This seemed like an impossible task at first since there are an infinite number of monomial orders. However, you don't actually need to know the monomial order in its entirety. You just need to know how it ranks certain monomials and during any step in the algorithm, there are only a finite number of ways in which the monomials can be ranked. So by only choosing as much as I had to, I was able to get the Buchberger algorithm to split into a finite number of child Buchberger algorithms at each step and eventually, all the child processes finished and I got the answer (I was by no means the first person to think of doing this). This divide and conquer technique is amazingly powerful.
You don't have to know what any of this means but the conceptual situation here is similar. Running the algorithm is travelling along a path and keeping track of your distance. The infinitude of cases comes from the fact that there are infinitely many nets. For a given net, the algorithm is guaranteed to finish - we either get to the female ant in record time, or we discover that the path we are on has a length longer than 40 and we quit because we know we cannot be on the shortest path anymore. If we want to find the shortest distance between two points on adjacent faces of the box, this is surely a straight line because a subset of the cube containing only two adjacent faces can be completely mapped onto the plane using an isometry. At any given time, the only boundaries we ever cross are between adjacent faces, so instead of having to specify all unfoldings beforehand, at any given time, our unfolding only needs to be specified enough to accommodate the boundaries we have crossed so far. Without further ado, I will show you this whole process pictorially:

. When discussing angles here, we will let
. We can rotate the line without changing the boundaries we cross until we get to
. Notice how we've only specified the important parts of the net here. The next net is valid for
:
:
:





