Inglenook Shunting Puzzles

An inglenook puzzle is a classic shunting (switching) puzzle often found on model railway layouts. A collection of wagons sits in a fan of sidings with a limited length headshunt (lead track). The aim of the puzzle is to rearrange the wagons into a desired order (often a randomly chosen order). This article answers the question: When can you be sure this can always be done? The problem of finding a solution in a minimum number of moves is also addressed.


Introduction
This paper provides an analysis of when an inglenook puzzle can be solved, and how many moves are needed in the worst case. Most of the paper assumes that the reader has a background in discrete mathematics or computer science, but the first part of this introduction provides a summary of the results of the paper for readers who do not necessarily have this background. The remaining parts of this introduction describes some of the previous academic work on related problems, and describes the structure of the rest of the paper.
roading puzzle and The Switch Problem [17] and Dudeney's The Mudville Railway Muddle [10] dating back well over 100 years. Teun Spaans' Just Puzzles website [18] gives an excellent description and brief discussion of these and similar puzzles; Hordern [13] describes these puzzles in the wider context of sliding piece puzzles.
Shunting puzzles (where the aim is to shuffle wagons into particular locations) are, unsurprisingly, popular with railway modellers who design them into layouts for operational interest. The two most famous are Timesaver (created by John Allen and published in 1972) and The Inglenook Sidings (invented by Alan Wright for the Manchester Model Railway Exhibition in 1979). See Adrian Wymann's excellent shunting puzzles website [19] for more information, including the history, construction and operation of such puzzles; also see the inspiring website and books by Carl Arendt [1,2,3,4] for the related concept of a micro layout.
This paper studies the Inglenook Sidings and some generalisations. A classic Inglenook Sidings puzzle is depicted in Figure 1. We have three sidings fanning out from a single track, the headshunt. There are eight wagons, all of the same length, distributed in the sidings. The first two sidings are each long enough for three wagons, and the final siding is long enough for five. The headshunt is long enough for three wagons, plus a shunting engine. Five of the wagons are selected at random (by drawing counters one at a time from a bag, say). The aim is to shunt the wagons so that the five selected wagons lie in the long siding, in the correct order, and the remaining three wagons lie in one of the two remaining sidings. A variation also specifies the order of the three wagons in the shorter siding. We assume that wagons are always left in sidings when not being shunted: they are never parked across points (switches).
Experience tells us that the classic Inglenook Sidings puzzle can always be solved, whatever the initial distribution of wagons. (Not all puzzles have this nice property: try solving a 'puzzle tray' sliding block puzzle after swapping two adjacent tiles!) In fact, the classic puzzle is small enough so that a computer can be programmed to solve the puzzle in all situations, and so we can be sure that the puzzle can always be solved.
So what happens if the sidings on my layout do not have the lengths of the classic puzzle? For example: This paper shows how to answer these kinds of questions. (Answers to the questions above: (a) 12 wagons. (b) You must have a siding of length at least 5. Sidings of length 4, 4 and 5 work. Sidings of length 3, 5 and 5 also work.) The remainder of this introduction gives an intuition as to what is going on. The sections that follow give a formal proof of the results (using terminology from mathematics/computer science). More generally we have w wagons, a headshunt that can contain at most h wagons, and sidings that can contain at most m 1 , m 2 and m 3 wagons respectively. (The classical Inglenook Sidings puzzle will have w = 8, h = m 1 = m 2 = 3, and m 3 = 5.) Let M be the maximum value of h − 1, m 1 , m 2 and m 3 . We will show that the puzzle can always be solved if and only if So, for example, with the classic Inglenook track lengths, we have M = 5 and so (1) tells us that we need 2 + 3 + 3 + 5 ≥ w + 5: we can have at most 8 wagons.
What is the intuition here?
• If (1) is not satisfied, then we can never move the last wagon in the longest siding (or the first wagon in the headshunt if M = h − 1) to a different siding, because by the time we have removed enough wagons for us to move it, all other sidings are too full. For example, suppose we have 9 wagons with classic Inglenook track lengths. To move the last wagon in the longest siding, we can store at most 5 wagons in the shorter sidings (we need a space for the last wagon to move to) and we can store at most 2 wagons in the headshunt (we need a space to pick up the wagon). Adding the last wagon in the longest siding makes 8 wagons in all: there is no good place for that 9 th wagon.
• If (1) is satisfied, then we can move all the wagons. Suppose we have a wagon (say, a banana van) that we want at the end of the longest siding.
To solve the shunting problem, we divide the problem into three phases, which roughly go as follows. In Phase 1, we move the banana van to the near-end of a shorter siding. In Phase 2 we move the last wagon from the longest siding and replace it with the banana van. In Phase 3, we move the remaining wagons into the correct places. In Phase 3, we make sure to never move the last wagon in the longest siding. So this phase is essentially a smaller inglenook problem (one less wagon; one siding shortened), which will be an easier puzzle to solve. The proof in the later sections shows all three phases are possible.
Once we know that a puzzle can be solved, the next question to ask is: What is the minimum number of shunting moves that are needed to solve a puzzle? For the classic Inglenook Sidings, and starting from a position where the eight wagons all lie in two sidings, there are starting positions that require 17 moves to solve (if we only care about the ordering of the five wagons chosen). Here, a 'move' consists of two movements of the shunting engine: into a siding to pick up or drop off wagons, and then back to the headshunt. See Figure 2 for an example with a 17-move solution, where we are asked to move the wagons so that Wagons 4 to 8 lie in the long siding in numerical order and the remaining wagons fill Siding 2 (in any order). In this figure, the wagons in the headshunt are listed from shunting engine to points, and the wagons in each siding are listed from points to buffer stop; each dash indicates a free space. In fact, if we are allowed to start from a position that includes wagons in the headshunt, there are starting positions that need 18 moves to solve: see Figure 3. If we also require the wagons in Siding 2 to be in numerical order, there are some starting points that require 20 moves; Figure 4 gives an example.

Related literature
The academic study of the rearrangement of rail wagons goes back at least as far as 1968: in his Art of Computer Programming, Donald Knuth [16] describes Dijkstra's idea of visualising stack-sorting in terms of reordering wagons. Knuth's characterisation of those permutations that can be sorted using a single stack has been highly influential, in particular leading to the theory of permutation patterns (see, for example, Kitaev [15]) and to the literature on sorting using queues and stacks (see, for example, Bóna [6]).
There is a significant literature on the sorting of wagons; see [9,11,12] for surveys. In contrast to this paper, the literature often formalises sidings as stacks (or replaces sidings by loops that can be accessed from both ends, modelled as double ended queues), and so places no limit to the number of wagons that can be moved into a siding. (A paper by Atkinson, Livesey and Tulley [5] is one significant exception, that considers (in particular) sorting using bounded stacks.) Also, the most common definition of a move is different to that considered in this paper: a move consists of taking the wagons in a fixed siding, drawing them into the headshunt, and then distributing them one at a time (in order, from points to shunting engine) into the sidings. This definition of a move is motivated by hump yards, where there is a low artificial hill, or hump, between the shunting engine and the points. Arriving wagons are pushed just beyond this hill, and then individually roll under gravity into their chosen sidings. To sort wagons, the wagons in a siding are drawn back over the hump, and this process is repeated. Jacob, Márton, Maue and Nunkesser [14] consider the algorithmic complexity of sorting with this formalisation of a hump yard, proving hardness and approximability results for the problem of finding the optimal number of moves required; they consider the case when the length of a siding is bounded, as well as the case where the number of sidings is limited. Dhalhaus, Horak, Miller and Ryan [7] provide results on the number of sidings needed to sort a train in a related model, answering a question of Knuth. Finally, Di Stefano and Koči [8] consider a model motivated by the problem of filling a tram depot at night so that trams may leave the following morning with minimal shunting. Here, the sidings are bounded in number and length, but the moves are different in nature.

Structure of the paper
The remainder of this paper is structured as follows. In Section 2 we provide more precise definitions for the puzzles we consider, and we state our results precisely. We look at a more general situation than that described in Subsection 1.1 above, by not restricting ourselves to the case of three sidings. We also define a simpler (and much duller) puzzle played with piles of cards, and show that the inglenook puzzle can always be solved when the same is true for this card puzzle. In Section 3, we establish exactly when this card puzzle can always be solved (Theorem 3), and this will give the result (Theorem 1) on the solubility of inglenook puzzles we are aiming for. Finally, in Section 4 we provide a result (Theorem 7) on the number of moves needed to solve an inglenook puzzle.

Problem statement and a simpler puzzle
Let w, s, h, m 1 , m 2 , . . . , m s be positive integers with w < h + m 1 + m 2 + · · · + m s . We formally define an inglenook puzzle as follows. We have s sidings of lengths m 1 , m 2 , . . . , m s , with headshunt length h and w wagons. Let W be the set of wagons (so |W | = w).
We think of W 0 as the subset of wagons in the headshunt, ordered from shunting engine to points; and for i > 1, W i as the subset of wagons in Siding i, ordered from points to buffer stop. The above conditions just say: all wagons are in a siding or the headshunt; no wagon is in two sidings, or both a siding and the headshunt; there are no more than m i wagons in Siding i; there are no more than h wagons in the headshunt. In Figure 2, the position after one move is p = ((1, 6), ε, (4, 7, 8), (2, 3, 5)), where ε is the empty ordered set.

Definition 2.
A move is a pair (p 1 , p 2 ) of distinct positions p 1 = (W 0 , W 1 , . . . , W s ) and p 2 = (W 0 , W 1 , . . . , W s ) such that for some r ∈ {1, 2, . . . , s}: An inglenook puzzle is played on the inglenook graph (V, E). A set S ⊂ V of starting positions and a set F ⊆ V of finishing positions is specified. We begin at a vertex p ∈ S, and solve the puzzle by finding a path in the graph to any vertex in E. The puzzle can always be solved if and only if every p ∈ S is contains a finishing position in its connected component (so from every starting position, there is a path in the inglenook graph to a finishing position. The classic Inglenook Sidings puzzle takes S to be the set of positions with the headshunt and Siding 1 empty, with Sidings 2 and 3 containing 3 and 5 wagons respectively; the subset F is chosen to be the subset of S where (for example) wagons 4 to 8 appear in order in Siding 3. The common variant of the inglenook puzzle also mandates an order for the wagons in Siding 2 (wagons 1 to 3 appearing in order, for example): F contains just one position in this case. We write I(w, s, h, m 1 , m 2 , . . . , m s ; S, F ) for this puzzle.
We make two assumptions on the sets S and F . First, we assume that if p ∈ S is a starting position, then the position p obtained from p by permuting the wagons amongst themselves in an arbitrary way is also a starting position (so S is closed under permuting wagons). Second, we assume that for some z ∈ {1, 2, . . . , s}, all the finishing positions F have the same wagon, say wagon ω ∈ W , as the last wagon (nearest the buffer stop) in Siding z. This condition holds, for example, when the ordered subset of wagons in a particular siding are mandated. The assumptions for S and F hold for both the classic Inglenook Sidings puzzle and the variant when the final position of all wagons is specified; if these assumptions hold, we say that F and S are natural and that I(w, s, h, m 1 , m 2 , . . . , m s ; S, F ) is a natural inglenook puzzle. The following theorem characterises when natural inglenook puzzles can always be solved: . . , m s be positive integers with w < h + m 1 + m 2 + · · · + m s . Let S and F be natural starting and finishing sets (see above). The natural inglenook puzzle I(w, s, h, m 1 , m 2 , . . . , m s ; S, F ) (with s sidings of lengths m 1 , m 2 , . . . , m s , with headshunt length h, with w wagons, starting positions S and finishing positions F ) can always be solved when the inequalities w > 1, s > 1, h > 1 and all hold. The inglenook puzzle can always be solved when the conditions w > 1, s > 2, h = 1 and (2) all hold. The inglenook puzzle can also always be solved when w = 1. In all other cases, the puzzle cannot always be solved.
We note that most of these conditions only come into play in extreme cases (fewer than three sidings; a very small headshunt; a very small number of wagons). Away from these cases, the inequality (2) is the only condition that needs to be satisfied. We prove this theorem by analysing a simpler Cards in Piles puzzle (simpler because only one object is moved at once, and because the headshunt and sidings are not distinguished). The puzzle is played using a set W of w cards labelled with different symbols (maybe a picture of a wagon!), and we define it as follows. Let w, s and m 0 , m 1 , . . . , m s be positive integers such that w ≤ s i=0 m i . Definition 4. A position, or state, of the puzzle is a distribution of the w cards into s + 1 piles, with (for i ∈ {0, 1, 2, . . . , s}) Pile i containing between 0 and m i cards. States with cards in a different order in a pile are thought of as different. (More formally, a state is a sequence (P 0 , P 1 , . . . , P s ) of ordered subsets of W , where the subsets P i partition W and |P i | ≤ m i for all i.) Definition 5. A move in the puzzle consists of picking one card from the top of a pile, and placing it on the top of another pile. It is forbidden for Pile i to ever contain more than m i cards, so each move results in another state. (Formally, a move is a pair (p 1 , p 2 ) of states, where p 1 is the state before the card is moved and p 2 is the state that results after the card is moved.) Definition 6. The Cards in Piles graph G(w, s, m 0 , . . . , m s ) is the (undirected) graph with vertex set V equal to the set of states, and edge set E equal to the set of moves.
Define the set S of starting states by S = V (so we start in any state). Define the set F ⊆ V of finishing states to be any subset of size 1. The puzzle begins with the cards in a starting state. The aim of the puzzle is to reach the finishing state. We write C(w, s, m 0 , . . . , m s ; F ) for this puzzle. We see that C(w, s, m 0 , . . . , m s ; F ) can always be solved if and only if the Cards in Piles graph G(w, s, m 0 , . . . , m s ) is connected. There is a simple condition that tells us when this happens: We will prove Lemma 2 in the next section. The following theorem immediately follows from Lemma 2 and the discussion above:

when
But we are more interested in inglenook puzzles: we now show that Theorem 1 also follows from Lemma 2.
Proof of Theorem 1. It is easy to see that I(w, s, h, m 1 , m 2 , . . . , m s ; S, F ) can always be solved when there is only one wagon! So the theorem holds when w = 1. Now assume that w > 1 and s = 1. So we have only one siding. Since our inglenook puzzle is natural, all finishing positions have some wagon ω ∈ W as the last wagon in that siding. We may list the wagons by first listing those in the headshunt from shunting engine to the points, and then listing those in the siding from points to buffer stop. Shunting cannot change the order of the wagons in this list. In particular, the last wagon in the siding cannot be swapped for another. Since w > 1 and our inglenook puzzle is natural, there is a starting position where the last wagon is not ω, so the puzzle cannot always be solved. So the theorem holds when s = 1. Now assume that w > 1, s = 2 and h = 1. We may list the wagons by firstly listing those in the first siding from buffer stop to points, then the wagon (if there is one) in the headshunt, and then listing those in the second siding from points to buffer stop. As before, shunting cannot change the order of the wagons in this list, so the puzzle cannot always be solved. So the theorem holds when h = 1 and s = 2.
We now assume that w > 1 and s > 1 (with no assumption on h). Suppose that Since our puzzle is natural, all finishing positions have the same wagon ω at the end of some siding, say Siding z. First, suppose that max{h − 1, m 1 , m 2 , . . . , m s } = h − 1. Then (3) implies that s i=1 m i < w. But in this case there are not enough spaces in the sidings for all of the wagons; in particular, all positions have a wagon next to the shunting engine, and this wagon can never be changed. So the puzzle cannot always be solved in this case, because there are starting positions with ω adjacent to the shunting engine, and this wagon cannot be moved into Siding z. Second, suppose that max{h − 1, m 1 , m 2 , . . . , m s } = m j for some j > 0. Then (3) implies that h − 1 + i∈{1,2,...,s}\{j} m i < w, and so h + i∈{1,2,...,s}\{j} m i ≤ w. When this inequality is strict, so h + i∈{1,2,...,s}\{j} m i < w, the wagon next to the buffer stop in Siding j cannot be moved, since any position after this wagon is transferred to the headshunt must have no wagons in Siding j, but no such position can exist as there is not enough space in the other sidings and the headshunt to accommodate all wagons. Similarly, when h + i∈{1,2,...,s}\{j} m i = w, this wagon cannot be transferred to another siding, because whenever it is moved into the headshunt all other sidings and the headshunt are full: the only option is to place the wagon back next to the buffer stop in Siding j as the next move. If j = z, the starting positions that do not have ω as the last wagon in Siding j cannot be solved. If j = z, the starting positions that have ω as the last wagon in Siding j cannot be solved. So in either case, the inglenook puzzle cannot always be solved.
To establish the theorem, we show that the puzzle can always be solved in the remaining cases. We may now assume that w > 1, s > 1 and h − 1 + s i=1 m i ≥ w + max{h − 1, m 1 , m 2 , . . . , m s }. If h = 1, we assume that s > 2. It is sufficient to show that the inglenook graph Γ(w, s, h, m 1 , m 2 , . . . , m s ) is connected.
First, assume that h > 1. We say that an inglenook position x is convertible if the headshunt is not full. So x is convertible if and only if the number of wagons in the headshunt is at most h − 1. We note that if x is not convertible, then there is a move to a convertible position (indeed, all moves are to convertible positions, as one or more wagons must be moved from the headshunt to a siding with space before anything else can be done). In particular, in order to prove that Γ (w, s, h, m 1 , m 2  Finally, assume that h = 1 and s > 2. We proceed as we did when h > 1, but observe that the convertible positions in the inglenook graph correspond to states in the Cards in Piles graph G(w, s − 1, m 1 , . . . , m s ) (one fewer pile, since the headshunt is always empty in a convertible position). By Lemma 2, this graph is connected and so the inglenook puzzle can always be solved in this situation. So the theorem follows from Lemma 2, as claimed.

The Cards in Piles graph
The aim of this section is to establish when the Cards in Piles graph is connected.
Proof of Lemma 2. It is easy to see that G(w, s, m 0 , . . . , m s ) is always connected when w = 1. So for the rest of this proof, we assume that w ≥ 2.
We first check that the graph is disconnected in the cases listed in the statement of the lemma.
Suppose that s = 1. If we read Pile 0 from bottom to top, and then Pile 1 from top to bottom, we get an ordering of the cards; any move does not change this order. Since w > 1, there are states with different orderings, and so the graph G(w, s, m 0 , . . . , m s ) is disconnected.
Suppose that s i=0 m i < w + max{m i : 0 ≤ i ≤ s}. Let j ∈ {0, 1, . . . , s} be chosen so that m j is as large as possible, so s i=0 m i < w + m j . This last inequality can be rewritten as i∈{0,1,...,s}\{j} But in this situation, we can never move the card at the bottom of Pile j. (Suppose were able to reach a state where it could be moved. After this move, all w cards must be distributed amongst the other piles, and so w ≤ i∈{0,1,...,s}\{j} m i . This contradicts the inequality above.) Since w > 1, there are states with a different card at the bottom of Pile j, and so the graph is disconnected.
Assume that w > 1, s > 1 and s i=0 m i ≥ w + max{m i : 0 ≤ i ≤ s}. To establish the lemma, we need to show that the graph is connected.
Suppose we are in a state where w i cards are in Pile i. Then at most m i − w i extra cards can be added to the pile: we say that Pile i has m i − w i spaces available. Note that the space of a given pile depends on the state, but the total space across all piles does not. Indeed, in our situation In particular, the total space is positive, and if the total space is 1 then m i = 1 for all i.
We argue that the graph is connected when the total space is 1. In this situation, a state consists of s piles with one card, and one pile with 0 cards. A single move changes the position of a zero pile; three appropriately chosen moves, involving the zero pile, swaps any pair of cards we wish whilst keeping the rest of the cards unchanged. Using these moves (and the fact that any permutation can be written as a composition of transpositions) we see that the graph is connected. Now suppose that the total space is at least 2. We prove that the graph is connected by induction on the number w of cards. When w = 1, this is obvious. So we assume that w > 1 and that the lemma holds for all smaller values of w. If m i = 1 for all i, the graph is connected by a similar argument to the total space 1 case above. So we may assume that m k ≥ 2 for some k ∈ {0, 1, . . . , s}.
Let x and y be two states. We need to show that there is a path in G(w, s, m 0 , . . . , m s ) from x to y.
There is a state y in the neighbourhood of y such that Pile k is not empty (starting at y, move any card into Pile k from another pile if necessary). Let b ∈ W be the card at the bottom of Pile k when in position y .
It is sufficient to find a path in G(w, s, m 0 , . . . , m s ) from x to y . We claim that there is a path from x to a state z such that the card at the bottom of Pile k is equal to b (and so agrees with the card at the bottom of Pile k in y ). We will see how this is possible below. We then find a path from z to y by restricting our moves: we never move the bottom card in Pile k. This is equivalent to playing an instance of the puzzle C(w − 1, s, m 0 , m 1 , . . . , m s ), where (Note that we are using the fact that m k ≥ 2 here: this condition implies that m k is positive.) By the inductive hypothesis, G(w−1, s, m 0 , m 1 , . . . , m s ) is connected and so a path from z to y exists. So our lemma holds once our claim is proved. We now establish our claim. If the bottom card in Pile k in x is b, there is nothing to do. So we assume that b does not lie at the bottom of Pile k.
First, by starting at position x, we may find a path to a state x where b lies in Pile k. We see this as follows. Let b lie in Pile . If = k, there is nothing to do, so suppose that = k. If Pile k has no space, we move a card from Pile k to some other pile. We then transfer the cards above b from Pile to other piles, filling spaces in Pile k last (if at all). Writing w i for the number of cards in Pile i at the start of this process, there are at most w − 1 cards above b in Pile , and the space available in other piles is, using (4), so this is possible, and there is still least one space in Pile k at the end of this process. Since b now lies at the top of a pile, we may transfer b to Pile k to form the state x , as required. If b is now the bottom card in Pile k, we may take z = x and there is nothing more to do. So we may assume that b is not on the bottom of Pile k.
Second, starting at x and transferring a card to Pile k if necessary, we produce a state such that the total space in the remaining piles (in other words, those not equal to Pile k) is at least 2. If necessary, transferring a single card between these remaining piles produces a state x that has the additional property that two of these remaining piles (Pile u and Pile v, say) have non-zero space. (We are using the fact that s ≥ 2 here.) Third, starting at state x we transfer all cards above b from Pile k to other piles, in such a way that Pile u and Pile v still both have space. This is possible since, writing w i for the number of cards in Pile i in x , there are at most w k − 2 cards above b (as b is not the bottom card in its pile) and since i =k (m i − w i ) ≥ w k by (5). We write x for the state that results.
Fourth, starting at state x we transfer b to Pile u, and then transfer the remaining cards from Pile k. This is done so that b remains on the top of a pile after this process is complete: transferring b from Pile u to (the top of) Pile v if v has one space remaining at any point ensures this property. Finally, once Pile k is empty we transfer b to the bottom of Pile k. This is the state z, as required, and our claim is established. The lemma then follows.

How many moves are needed?
This section contains results about the maximum number of moves we need, provided the puzzle can always be solved. We begin by considering the Cards in Piles puzzle, and then apply these results to inglenook puzzles.
For a connected graph G, recall that the diameter of G is the largest distance between any pair of vertices. Write f (w) for the largest diameter of the graph G(w, s, m 0 , . . . , m s ), where s, m 0 , . . . , m s are arbitrary subject to the graph being connected.
Lemma 4. Define f (w) as above. Then Proof. The proof of Lemma 2 shows that for w > 1 Since f (1) = 1, we find that f (w) ≤ w 2 + 6w − 6 using induction on w. So the lemma follows. Proof. Let X be the set of all sequences x = (x 1 , x 2 , . . . , x w ) over W of length w with all entries distinct, so X may be thought of as the set of all orderings of the elements of W . Let x, y ∈ X be sequences with x = (x 1 , x 2 , . . . , x w ) and y = (y 1 , y 2 , . . . , y w ). For a card ω ∈ W , there exist unique i, j ∈ {1, 2, . . . , w} such that x i = y j = ω. We write d ω (x, y) = |i − j|, and we define the distance from x to y to be It is not hard to see that this notion of distance is a metric on X.
Consider the subset H of states in G(w, 2, w − 1, w − 1, 1) with Pile 2 empty. Define a map φ : H → X by, for z ∈ H, setting φ(z) to be the ordering of W determined by the cards in Piles 0 and 1, ordering Pile 0 from bottom to top, and then Pile 1 from top to bottom.
Choose a state z ∈ H, and write φ(z) = (x 1 , x 2 , . . . , x w ). Let z ∈ H be chosen so that φ(z ) = (x w , x w−1 , . . . , x 1 ) (so the ordering of cards is reversed compared to z ∈ H). We have that Fix a shortest path from z to z , and let z 0 , z 1 , . . . , z be the elements on this path that lie in H, in order. So z 0 = z and z = z . Consider the segment of the path between z j and z j+1 for some fixed integer j. Let x = φ(z j ) and y = φ(z j+1 ).
We claim that the length of the segment of the path from z j to z j+1 is at least d(x, y)/2. This is sufficient to prove the lemma, since then the length of the path is at least Since the path was as short as possible, the diameter of the graph is at least (w 2 − 1)/4, as required.
We now aim to prove our claim. If z j and z j+1 are consecutive elements in the path, the move from z j to z j+1 transfers cards between Piles 0 and 1 and so x = y. In particular, d(x, y) = 0 and so the claim follows trivially in this case. Now suppose that z j and z j+1 are not consecutive. The segment of the path from z j to z j+1 begins and ends with a transfer to and from Pile 2, but the remaining moves transfer cards between Piles 0 and 1, and so do not affect the order of the cards in those piles. The net result of this process is that one card is removed from the sequence x and placed in a different position to form y. So there exist u, v ∈ {1, 2, . . . , w} such that u < v and either In either case, we see that d(x, y) = 2(v − u), since one card moves v − u positions in the ordering, and v − u cards move 1 position in the ordering. But there are at least (v −u) edges in the segment of the path between z j and z j+1 in G(w, 2, w − 1, w − 1, 1). To see this, first suppose x u is the card that is moved to Pile 2 as the first move in the segment. Then x u is at the top of either Pile 0 or Pile 1 in z j (otherwise it cannot be moved) and so there are u − 1 cards in Pile 0 after the first move. Similarly, there must be v − 1 cards in Pile 0 before the last move in the segment. So there must be at least moves in the segment that transfer a card between Piles 0 and 1, and our claim follows in this case. Similarly if x v is the card that is moved at the start of the segment between z j and z j+1 , there are v − 1 cards in Pile 0 after this move, and u − 1 cards in Pile 0 before the last move in the segment. So there are at least (v −1)−(u−1) = v −u = 1 2 d(x, y) moves in the segment in this case also, and our claim follows.
The following corollary follows immediately from Lemmas 4 and 5: Corollary 6. When it can be always be solved, the Cards in Piles puzzle with w cards can be solved using at most w 2 + 6w − 6 moves. There are puzzles using w cards that require at least (w 2 − 1)/4 moves to solve. Theorem 7. A natural inglenook puzzle with w wagons can be solved in at most 2w 2 + 12w − 10 moves, provided the puzzle can always be solved. There are starting positions for natural inglenook puzzles that require at least (w 2 − 1)/2 moves to solve.
Proof. Each position in an inglenook graph has a convertible position in its neighbourhood, and an edge in the associated Cards in Piles graph corresponds to at most 2 moves in the inglenook graph. So the diameter of the inglenook graph is at most 2f (w) + 2. Thus (provided the puzzle is always solvable) a natural inglenook puzzle can be solved in at most 2w 2 + 12w − 10 moves, by Lemma 4.
Lemma 5 shows that there are states z, z in the Cards in Piles graph G(w, 2, w − 1, w − 1, 1) that have no paths of length less than (w 2 − 1)/4 between them. Consider an inglenook puzzle with three sidings of lengths w − 1, w − 1 and 1 respectively, and a headshunt of length 1. Let x and x be the convertible positions in the inglenook graph Γ(w, 3, 1, w − 1, w − 1, 1) that correspond to z, z ∈ G(w, 2, w − 1, w − 1, 1). Let F = {x } and S = Γ(w, 3, 1, w − 1, w − 1, 1). It is sufficient to show that the inglenook puzzle I(w, 3, 1, w−1, w−1; S, F ) requires at least (3w 2 +w)/2 moves to solve, when we are given the starting position x ∈ S. To see this, note that (because the headshunt can contain only one wagon) there is a one-to-one correspondence between edges in the Cards in Piles graph and pairs of consecutive moves starting (and finishing) at convertible positions in the inglenook graph. Thus paths between convertible positions in Γ(w, 3, 1, w − 1, w − 1, 1) are twice the length of the corresponding paths in G(w, 2, w −1, w −1, 1). If we could solve the inglenook puzzle in fewer than (w 2 −1)/2 moves, there is a path of length less than (w 2 − 1)/2 between positions x and x in Γ(w, 3, 1, w − 1, w − 1, 1): the corresponding path between states z and z in G(w, 2, w − 1, w − 1, 1) would have length less than (w 2 − 1)/4, contradicting our choice of z, z . So we cannot solve the inglenook puzzle in fewer than (w 2 − 1)/2 moves, and the theorem follows.
It would be very interesting to give more precise results on the maximum number of moves needed for an inglenook puzzle. For the classic Inglenook Sidings puzzle, the above argument shows that at most 214 moves are needed, but we can actually get by with just 20 moves (even if we require all wagons to be in a fixed order). So there is scope for improvement. However, the argument above does show that this strategy of 'working from the back wagons forwards' is reasonably efficient, even though there is no reason for it to be optimal. Are there better general methods for solving a natural inglenook puzzle? In particular, what is the smallest value c such that we can always solve the puzzle in cw 2 + o(w 2 ) moves?