1 x 1 Rush Hour with Fixed Blocks is PSPACE-complete
Josh Brunner, Lily Chung, Erik D. Demaine, Dylan Hendrickson, Adam Hesterberg, Adam Suhl, Avi Zeff
11 × Josh Brunner ∗ Lily Chung ∗ Erik D. Demaine ∗ Dylan Hendrickson ∗ Adam Hesterberg ∗ Adam Suhl † Avi Zeff ∗ Abstract
Consider n − n × n square board, where each block is labeled asmovable horizontally (only), movable vertically (only), or immovable — a variation of Rush Hourwith only 1 × × × In a sliding block puzzle , the player moves blocks (typically rectangles) within a box (often arectangle) to achieve a desired configuration. Such puzzles date back to the 15 Puzzle, inventedby Noyes Chapman in 1874 and popularized by Sam Loyd in 1891 [SS06], where the blocks areunit squares. One of the first puzzles to use rectangular pieces is the Pennant Puzzle by L. W.Hardy in 1909, popularized under the name Dad’s Puzzle from 1926, whose 10 pieces require awhopping 59 moves to solve [Gar71]. In general, such puzzles are PSPACE-complete to solve, evenfor 1 × × Rush Hour in 1996, where a driver named Joe is “figuring things out on their way to theAmerican Dream” [Thi18]. The physical game design led to a design patent [Wag98] and manyvariations by ThinkFun since [Thi18]. Computer implementations of the game at one point led toa lawsuit against Apple and an app developer [Pat11]. ∗ MIT Computer Science and Artificial Intelligence Laboratory, 32 Vassar St., Cambridge, MA 02139, USA. { brunnerj,ikdc,edemaine,dylanhen,achester,avizeff } @mit.edu † Algorand, Boston, MA, USA Sadly, to our knowledge, Rush Hour the puzzle was not an inspiration for Rush Hour the 1998 buddy cop filmstarring Jackie Chan and Chris Tucker. a r X i v : . [ c s . CC ] M a y he complexity of Rush Hour was first analyzed by Flake and Baum in 2002 [FB02]. Theyproved that the game is PSPACE-complete with the original piece types — 1 × × × × × Unlike 1 × × raised a curious open problem:might 1 × × × × Rush Hour problem behavesfundamentally differently: deciding whether a specified car can move at all is polynomial time[HD05, HD09, TC05], whereas the analogous questions for 1 × × × × × fixed blocks by analogy with pushing block puzzles [DHH02], as potentiallyeasier to prove hard.In this paper, we settle the latter open problem by Tromp and Cilibrasi [TC05] by proving that1 × × × First we precisely define the problems introduced above. Solovey and Halperin [SH16] state their result in terms of unit-square cars amidst polygonal obstacles, butcrucially allow the cars to be shifted by half of the square unit. Phrased as cars aligned on a unit grid, these cars areeffectively 2 × The open problem was first stated in the ICALP 2002 version of [HD05], based on discussions with John Tromp,as mentioned in [TC05], which is cited in the journal version of [HD05]. Tromp and Cilibrasi [TC05] refer to 1 × efinition 2.1. In Rush Hour , we are given a square grid containing nonoverlapping cars , whichare rectangles with a specified orientation, either horizontal or vertical. A legal move is to move acar one square in either direction along its orientation, provided that it remains within the squareand does not intersect another car. The goal is for a designated special car to reach the left edgeof the board. We also allow fixed blocks , which are spaces cars cannot occupy.
Definition 2.2. 1 × Rush Hour is the special case of Rush Hour where each car is 1 × Definition 2.3. In Subway Shuffle , we are given a planar undirected graph where each edgeis colored and some vertices contain a colored token. A legal move is to move a token across anedge of the same color to an empty vertex. The goal is for a designated special token to reach adesignated target vertex.
Definition 2.4. In oriented Subway Shuffle , we are given a planar directed graph where eachedge is colored and some vertices contain a colored token. A legal move is to move a token across anedge of the same color, in the direction of the edge, to an empty vertex, and then flip the directionof the edge. The goal is for a designated special token to reach a designated target vertex. Lemma 2.5.
Subway Shuffle, oriented Subway Shuffle, and Rush Hour are in PSPACE.Proof.
We can solve these problems in nondeterministic polynomial space by guessing each move,and accepting when the special car or token reaches its goal. So all three problems are containedin NPSPACE, and by Savitch’s theorem [Sav70] they are in PSPACE.
In this section, we show that 2-color oriented Subway Shuffle is PSPACE-complete. To do so, wereduce from nondeterministic constraint logic, which is PSPACE-complete [HD09]. Our reductionis an adaption of the proof in [DBO15] in which the gadgets use only two colors (instead of four)and work in the oriented case.We actually prove a slightly stronger result in Theorem 3.1: that 2-color oriented SubwayShuffle is PSPACE-complete even with a restricted vertex set, and with a single unoccupied vertex.A vertex is valid if it has degree at most 3, and has at most 2 edges of a single color attached to it;these vertices are shown in Figure 1. Our proof of PSPACE-hardness will only use valid vertices.Figure 1: The valid Subway Shuffle vertices with degree 3. Every vertex with degree 1 or 2 is valid.
Theorem 3.1.
Containment in PSPACE is given by Lemma 2.5. To show hardness, we reduce from planarNCL with AND and protected OR vertices. 3n constraint logic, a protected OR vertex is an OR vertex (one with three blue edges)such that two edges, due to global constraints, cannot simultaneously point towards the vertex.NCL is still PSPACE-complete when every OR vertex is protected [HD09]. Because of this globalconstraint, there are only five possible states that a protected OR vertex can be in. In particular,there are only four possible transitions between the states of a protected OR vertex. Our OR gadgetonly allows these four transitions; in particular it does not allow the transition between only theleftmost edge pointing inward and only the rightmost edge pointing inward, which is the definingtransition that a protected OR vertex does not have compared to a normal OR vertex.The Subway Shuffle instance we construct will have only a single empty vertex (other than thetarget vertex), called the bubble , which moves around the graph opposite the motion of tokens.Our vertex and edge gadgets work by having the bubble enter them, move around a cycle, and thenexit at the same vertex. The effect is that each edge in the cycle flips and each token in the cyclemoves across one edge, except that one token by the entrance moves twice.The general structure of the reduction is as follows. First, we choose any rooted spanning treeon the dual graph of the constraint logic graph. This rooted spanning tree will determine thepath the bubble takes to get from one vertex or edge to another. For each edge and vertex in theconstraint logic graph, we will replace it with a subway shuffle gadget. The constraint logic edgeswhich are part of our spanning tree will have a path for the bubble to cross through them. Eachface of the CL graph has paths connecting vertex gadgets and edge gadgets as necessary to allowthe bubble to visit each gadget.When playing the constructed Subway Shuffle instance, the bubble begins at the root of thespanning tree. The bubble can move down the tree by crossing edge gadgets until reaching a desiredface. It then enters a vertex or edge gadget, goes around a cycle, and exits. A sequence of moves ofthis form corresponds to flipping a constraint logic edge or reconfiguring a vertex (that is, changingwhich constraint logic edge(s) are used to satisfy that vertex and therefore are locked from beingflipped away from it). The bubble can always travel back up the spanning tree to the root, andfrom there visit any face and then any CL vertex or edge.Now we will describe the various gadgets that implement constraint logic in Subway Shuffle.Many places in the gadget figures have an empty vertex attached to them; this represents wherethe gadget is connected to the spanning tree. Entering through these vertices is the only way thebubble can interact with a gadget.The edge gadget is shown in Figure 2. The two vertices and edge at the bottom and top ofthe edge gadget (in a gray box in the figure) are shared with the connecting vertex gadget. Theedge gadget consists of five interlocking cycles. The edge can be flipped by rotating each of the fivecycles in order, as shown in Figure 3. The bubble rotates a cycle by entering at the appropriatewhite vertex, and then moving around the cycle, and finally exiting where it entered.If the edge is in the spanning tree, we include the rightmost vertex called the exit , which allowsthe bubble to visit the edge gadget and pass through to face on the other side of the edge. Weplace the edge gadget in the orientation so that the entrance is on the face closer to the root of thespanning tree of the dual graph.There are two kinds of edges in constraint logic: red and blue edges. The only difference is thatthey have different weights for the constraint logic constraints. Blue edges are as shown in Figure 2(and can be rotated); red edges are the same gadget, but reflected.Edge gadgets connect to vertex gadgets by sharing the two vertices and edge marked in a graybox. In the edge gadget, when the vertex colors and edge direction are as shown in the edge gadgetfigure, the edge is unlocked , which means that the bubble is free to flip the direction of that edge.The vertex gadget’s colors take precedence for the shared edges and vertices. When they do notmatch those shown in the edge gadget figure, we say the edge is locked . When this happens, it4ecomes impossible for the bubble to rotate first cycle, and thus prevents the bubble from flippingthe edge. This mechanism is what allows the gadgets to enforce the constraints of the vertices inthe constraint logic graph. Edges are only ever locked while pointing into a vertex because all ofthe constraints in constraint logic only give lower bounds on the number of inward pointing edges.When an edge is pointing away from a vertex, some of the cycles in the vertex will be impossibleto rotate, preventing the bubble from unlocking other edges. vertexgadgetvertexgadget (a) vertexgadgetvertexgadget (b) vertexgadgetvertexgadget (c) vertexgadgetvertexgadget (d)
Figure 2: The edge gadget for 2-color oriented Subway Shuffle, shown (a) directed down andunlocked, (b) directed up and unlocked, (c) directed down after the bubble has passed through,and (d) directed up after the bubble has passed through. This gadget is based on the edge gadgetin [DBO15].The AND vertex gadget is shown in Figure 4. Whenever the bubble is not visiting the vertexgadget, either the blue (weight 2) edge or both red (weight one) edges are locked to point towardsthe vertex. If all three edges are pointing towards the vertex, the bubble can visit the vertex gadget(at the top entrance) and go around the cycle to switch which edges are locked. This implementsthe constraints on a NCL AND vertex.Our protected OR vertex gadget is shown in Figure 5. The two protected edges are the leftmostand rightmost edges, so we can assume that they never both point towards the vertex. The gadgethas three entrances. The gadget can be in five possible states corresponding to the five possiblestates of a CL protected OR. In each state, the edges which are locked in correspond to the set ofedges that are pointing inward in the corresponding state of a CL protected OR. In the first state,the left edge is locked, and the other two are free. In the second state, the middle edge is also5 ertexgadgetvertexgadget (a) vertexgadgetvertexgadget (b) vertexgadgetvertexgadget (c) vertexgadgetvertexgadget (d) vertexgadgetvertexgadget (e)
Figure 3: The five cycles that the bubble rotates to flip the orientation of an edge gadget. Foreach cycle, the bubble enters at the white vertex, goes around the dotted cycle, and leaves whereit entered. Note that the colors and orientation of the edge and vertices that connect to the vertexgadget will not always match what is shown in this figure. When they do not, we say the edge is locked by the corresponding vertex gadget, and it is not possible to rotate the dotted cycle.locked. In the third state, only the middle edge is locked. In the fourth state, both the middle andright edges are locked. Finally, in the fifth state, only the right edge is locked. To get from onestate to the next, the bubble rotates a single cycle. The fives states and the transitions betweenthem are shown in Figure 5. The only transitions between states are to the next and previousstates. To transition from one state to the next, the bubble goes around the cycle indicated by thedotted edges.Our last gadget is the win gadget, shown in Figure 6. It is placed attached to the edge gadgetcorresponding to the target edge in the constraint logic instance, and allows the player to win theSubway Shuffle instance when that edge can be flipped.In the first state shown, the target edge is pointing away. If the bubble arrives at the wingadget, it cannot accomplish anything. If the target edge is flipped so it now points toward thewin gadget, we will be in the second state. Then the bubble can enter the win gadget at the topentrance and go around the indicated cycle, moving the special token one to the left. Finally, thebubble can enter at the bottom entrance to move the special token across to the target vertex.To allow the bubble to reach every gadget, we connect the entrances and exits of gadgets whichare on the same face of the CL graph. This simply requires a tree connecting these vertices for eachface. Each face other than the root of the spanning tree has exactly one edge exit on it; we orientthe edges on that face to point towards this exit. The color of these edges does not matter, provided6 a) All edges oriented in, with the blue edgelocked. (b) All edges oriented in, with both rededges locked.
Figure 4: The AND vertex gadget for 2-color oriented Subway Shuffle. This gadget is based on theAND vertex gadget in [DBO15].all vertices are valid and the token at the tail of an edge is the same color. For the face which isthe root of the spanning tree, the tree connecting entrances has one vertex without a token, andthe edges point towards it; this is where the bubble starts.Now we show how the gadgets prevent any moves other than the moves outlined above thatsimulate the NCL instance. First we consider the edge gadget. It is easy to check that whilerotating any of the dotted cycles in an edge gadget, there are only two legal moves other thancontinuing the cycle. The first one is leaving through the exit vertex during the third cycle. Thisis equivalent to the bubble just using the throughway in the edge gadget to reach the rest of thespanning tree after turning only the first two cycles. By Lemma 3.3, this is never useful. The otherlegal move is while turning the first, fourth, or fifth cycle, it is possible for the bubble to move intothe connecting vertex gadget through the shared vertices. We will show that nothing useful can beaccomplished here when we consider the vertex gadgets. Similarly, it will also be possible for thebubble to come from a vertex and enter the edge gadget through the shared vertices. We show thisis not useful in Lemma 3.2.
Lemma 3.2.
It is never useful for the bubble to enter an edge gadget directly from a vertex gadgetthrough the shared vertices.Proof.
We need to check the up, down, up traversed, and down traversed configurations.In most configurations, there are no legal moves to enter the edge gadget from the sharedvertices. The only configuration where this is possible is from the orange token on the top left ofthe upward pointing edge gadget. From here, it can move through a path of three tokens before itgets stuck. At that point, the only legal move is to undo the last three moves and exit the sameway it entered.
Lemma 3.3.
It is never useful to turn some of the cycles in an edge gadget without turning all ofthem. a) State 1: The left edge is locked. The middle edgeis unlocked and pointing in. The right edge is point-ing out. (b) State 2: The left and middle edges are locked.The right edge is pointing out.(c) State 3: The left edge is pointing out. The mid-dle edge is locked. The right edge is unlocked andpointing in. (d) State 4: The left edge is pointing out. The middleand right edges are locked.(e) State 5: The left and middle edges are pointingout. The right edge is locked. Figure 5: The five states of the protected OR vertex. The dotted edges show the cycle that isrotated to transition to the next state. Note that each state is defined only by which edged arelocked in; the other unlocked edges can be either pointing in or out in each state.
Proof.
If you turn some of the cycles, but not all of them, then both ends of the edge gadget will bein the pointing outward configuration. For all of the vertex gadgets, there are no transitions thatrequire the outward pointing configuration, so the edge gadget being in this configuration neverlets you make a move that you could not make if you finished turning all of the cycles in an edgegadget.We also need to make sure that turning only some cycles, and then entering an edge gadgetfrom a vertex gadget (as in Lemma 3.2), does not allow you to do anything. If we look at all ofthe partial edge configurations as shown in Figure 3, there is no way to access anything from any8 a) The locked win gadget. The bubble can-not do anything here. (b) The unlocked win gadget. Now thatthe blue edge is pointing into the gadget,the indicated cycle can be rotated.
Figure 6: The win gadget for 2-color oriented Subway Shuffle. The target edge starts pointing away.If it is flipped, the bubble can enter the win gadget once at each entrance to move the (bottomright) purple special token to the (bottom left, green) target vertex. This gadget is based on theFINAL gadget in [DBO15].of these configurations. We also need to check the configurations that arise from partially rotatingan edge and then traversing it. Since it is not possible to reach the traverse paths from enteringfrom a vertex gadget, these configurations also do not let the bubble do anything else useful.Now we consider the AND gadget. Since the entire gadget is a single cycle, there is nothing thebubble can do within the gadget while turning the cycle. While turning the cycle, the bubble cantry to enter an edge gadget through one of the shared vertices; however, we have already shownthat the this is never useful in Lemma 3.2.We also need to consider if the bubble enters the vertex gadget from an edge on one of theshared vertices. It will never be able to move around the entire cycle because the orange vertex atthe top will not be accessible. The only other thing the bubble can do is try to enter a differentedge gadget, but we already showed this is not useful in Lemma 3.2.Now we consider the OR gadget. First we look at each of the four cycles. While turning thefirst cycle, the only legal move that is not continuing the cycle is moving the purple token justto the right of the cycle. However, from here, the only moves lead to dead ends so there is notanything useful for the bubble to do besides immediately return to the cycle. There are no otherlegal moves while turning the second cycle. While rotating the third cycle, it is possible for thebubble to reach the shared vertices of the leftmost edge gadget, but by Lemma 3.2 this does nothelp. While rotating the fourth cycle, it is possible for the bubble to reach the shared vertices ofthe rightmost edge gadget, but again this does not help.Now we consider when the bubble enters the OR vertex gadget from an edge gadget throughone of the shared vertices. In the first state, there are no legal moves after entering from the top9r right edges. In the second state, from either the top or left edges it can enter and traverse mostof the gadget but cannot complete any loop and thus cannot make progress by Lemma 3.4. In thethird state, the bubble has no legal moves after entering from the left or top edge. From the rightedge it can traverse most of the gadget but cannot complete any loops. From the fourth state,again, while the bubble can traverse most of the gadget after entering from the top edge, it doesnot complete any loops so it has no effect. In the fifth state, there are no legal moves after enteringthe vertex gadget.
Lemma 3.4.
If the bubble takes any path from any vertex to the same vertex which does notcomplete a nontrivial loop, then the state of the Subway Shuffle instance must not have changed.Proof.
If the bubble never completed a loop, then the only way for it to get back to where it startedis to take the same path in reverse. By the definition of Subway Shuffle moves, this exactly undoesthese moves returning the instance back to its original state.Finally, we check the win gadget. While using the win gadget, there are no legal moves otherthan completing the one loop. There is only one edge connected to the win gadget. If the bubbletries to enter the win gadget here, it cannot leave anywhere else or complete any loops, so byLemma 3.4 it must return with no effect.Since the constraint logic graph is planar, the reduction yields a planar graph for 2-color ori-ented Subway Shuffle. Since the constructed instance Subway Shuffle is winnable exactly whenthe constraint logic instance is, and the reduction can clearly be done in polynomial time, thisshows 2-color oriented Subway Shuffle is PSPACE-hard. All of the gadgets used, including thetrees connected gadget entrances, use only valid vertices, so it is still PSPACE-hard with only validvertices. × In this section, we show that 1 × × bubble which is asingle empty space that moves around as cars move into that space.We replace each vertex in our Subway Shuffle instance with a single car which is vertical if thereis an orange token there, and horizontal if a purple token is there. Orange edges leading from avertex attach to it as vertical rows of cars, and purple edges attach to a vertex as horizontal rows ofcars. A degree-4 vertex with a purple token is depicted in Figure 7. Valid vertices can be embeddedthis way, with fixed blocks on the unused sides for lower degree vertices.A Subway Shuffle edge is simulated by a path of cars which can make right-angle turns, allowingus to embed an arbitrary planar Subway Shuffle graph. The direction of a car at a turn in an edgedefines which way the Subway Shuffle edge is oriented. A purple edge which points right is depictedin Figure 8. In order to maintain the directionality of edges, each edge must be simulated by apath with at least one turn.To make a move, suppose the bubble is currently at a vertex. To move a token in from anadjacent vertex, a car from the connecting edge is moved in. Then cars from that edge are all10igure 7: A degree-4 Subway Shuffle vertex embedded in Rush Hour. Note that, while this is not avalid Subway Shuffle vertex, all valid vertices are subsets of this vertex. Individual dashes representcars. A line of cars of one color represents a Subway Shuffle edge of that color. The center boxedcar represents the Subway Shuffle vertex.Figure 8: A Rush Hour simulation of a Subway Shuffle edge. This is a purple edge which pointsright.moved one space toward the initial vertex, until finally we can move the car in the second vertexout. Note that this process reverses the orientation of the edge as desired. If the edge was pointedin the correct direction, then this process will succeed; if the edge is oriented in the wrong direction,then this process will fail when we try to turn a corner in the edge. Similarly it is impossible tomove a token along an edge of the opposite color, because it will be unable to move out of itsvertex. An example of a single Subway Shuffle move where an orange token is moved up along anorange edge embedded in Rush Hour is shown in Figure 9.No other useful actions can be taken. If the bubble is not currently at a vertex, then there areat most two possible moves. One of them would just be undoing the previous move, and the otherwould be continuing the process of moving a token along an edge. When the bubble is at a vertex,moving any adjacent car into the vertex is the same as starting the process of moving a SubwayShuffle token along the corresponding edge.The win condition of a Rush Hour instance is allowing the marked car to escape the grid. Thewin gadget needs to be specified more precisely because Subway Shuffle tokens do not correspondexactly to Rush Hour cars. Also, we want to make sure that everything can fit within a grid so ourwin condition is actually located near the edge.Our win gadget is depicted in Figure 10. The win condition is the circled car reaching the11 a) Before moving the orange to-ken up. (b) After moving the orange to-ken up. Figure 9: Moving a single orange token in Subway Shuffle when simulated by Rush Hour in Figure 8.Figure 10: The cycle of the subway shuffle win gadget embedded in Rush Hour. The goal is toget the circled car to the star. The boxed cars are the vertices in the Subway Shuffle win gadget.The two lines of purple cars extending upward are the purple edges of the connected edge gadget.Everything inside the solid black line is part of the connecting edge gadget.star. The boxed cars represent Subway Shuffle vertices. In order to win, first the boxed orangecar directly in front of the circle car must leave by rotating this cycle. This represents the markedtoken in the Subway Shuffle vertex moving to the middle vertex along the bottom of the win gadget.Then, the leftmost orange line must be moved down one space, clearing the way for the markedcar to leave.In Rush Hour, because winning requires a car leaving the grid, we must also take care to makesure that the win gadget is at the boudary of our construction, and not somewhere buried in themiddle. To do this, we conisder the CL edge which is part of the win gadget. Since the CL graph isplanar, we can consider one of the faces that this edge is a part of, and make this face the “outside”12ace. Now our win gadget is at the boundary, which is what we needed.
In this paper, we have shown that 1 × accessible if the bubble can ever reach that space. By Theorem 5.1, the accessibleregion is always a rectangle. Since we can ignore anything inaccessible, we can just assume thateverywhere in the entire Rush Hour grid is accessible. Because the bubble can get everywhere, itseems impossible to modify the gadgets in our proof in any simple way to constrain the bubblefrom wandering freely inside and between the cycles in gadgets. Theorem 5.1.
In any × Rush Hour instance with no fixed blocks with only a single “bubble,”the set of accessible spaces is a rectangle.Proof.
The accessible region is clearly connected. If it is not a rectangle, there must be a corneron the boundary of the accessible region where two accessible spaces are adjacent to the sameinaccessible space, as in Figure 11. Then regardless of its orientation, the car in this inaccessiblespace must be able to move into one of these two accessible spaces, and thus is also accessible. Thisis a contradiction, so the accessible region must be a rectangle.Figure 11: Let the gray area be accessible by the bubble. Then the boxed car is at the corner ofthe boundary of the accessible region, and regardless of its orientation it must also be accessibleby the the bubble.
Acknowledgments
We thank the many colleagues over the years for their early collaborations in trying to resolvethe 1 × References
Proceedings of the 14th Canadian Conference on Computational Geometry(CCCG 2002) , pages 31–35, Lethbridge, Alberta, Canada, August 12–14 2002.[DR18] Erik D. Demaine and Mikhail Rudoy. A simple proof that the ( n − Theoretical Computer Science , 732:80–84, July 2018.[FB02] Gary William Flake and Eric B. Baum. Rush Hour is PSPACE-complete, or “Why youshould generously tip parking lot attendants”.
Theoretical Computer Science , 270(1–2):895–911, 2002.[Gar71] Martin Gardner. Sliding-block puzzles. In
Martin Gardner’s Sixth Book of MathematicalDiversions from Scientific American . W. H. Freeman and Company, 1971. Republishedby MAA, 2001.[HD05] Robert A. Hearn and Erik D. Demaine. PSPACE-completeness of sliding-block puzzlesand other problems through the nondeterministic constraint logic model of computation.
Theoretical Computer Science , 343(1–2):72–96, October 2005. Originally appeared atICALP 2002.[HD09] Robert A. Hearn and Erik D. Demaine.
Games, Puzzles, and Computation . AK Pe-ters/CRC Press, 2009.[Hea06] Robert A. Hearn.
Games, Puzzles, and Computation n − Journal of Symbolic Computation , 10:111–137, 1990.[Sav70] Walter J. Savitch. Relationships between nondeterministic and deterministic tape com-plexities.
Journal of Computer and System Sciences , 4(2):177–192, 1970.[SH16] Kiril Solovey and Dan Halperin. On the hardness of unlabeled multi-robot motion plan-ning.
The International Journal of Robotics Research , 35(14):1750–1759, November 2016.[SS06] Jerry Slocum and Dic Sonneveld.
The 15 Puzzle ∼ storer/JimPuzzles/ZPAGES/zzzTokyoParking.html.14TC05] John Tromp and Rudi Cilibrasi. Limits of Rush Hour Logic complexity. arXiv preprintcs/0502068arXiv preprintcs/0502068