A knight’s tour is a series of moves made by a knight visiting every square of an n x n chessboard exactly once. The knight’s tour problem is the problem of constructing such a tour, given n. A knight’s tour is called closed if the last square visited is also reachable from the first square by a knight’s move, and open otherwise. Define the knight’s graph for an n x n chessboard to be the graph G = (V,E), where V={(i,j) ( 1 d i,j Gn}, and E={((i,j),(k,Q) ( {Ii-kl,Ijt[} = {1,2}}. That is, there is a vertex for every square of the board and an edge between two vertices exactly when there is a knight’s move from one to the other. Then, more formally, an open knight’s tour is defined to be a Hamiltonian path, and a closed knight’s tour is defined to be a Hamiltonian cycle on a knight’s graph. A knight’s graph has n2 vertices and 4n2 12n + 8 edges. The formal study of the knight’s tour problem is said to have begun with Euler [lo] in 1759, who considered the standard 8 x 8 chessboard. Rouse Ball and Coxeter [l] give an interesting bibliography of the history of the problem from this point. Dudeney [8, 91 contains a description of exactly which rectangular chessboards have knight’s tours; in particular, an n x n chessboard has a closed knight’s tour iff n Z 6 is even, ’ and an open knight’s tour iff n 3 5. It is not clear who first proved this fact, but it appears to be part of the folklore of the subject (see, for example, [2]). There exist several independently conceived linear time (i.e. O(n2)) algorithms for constructing knight’s tours (see, for example, [5, 191). Takemji and Lee [22, 231 recently proposed a neural network solution to the knight’s tour problem, although it appears to be of little use in practice (see [ 17, 181). We will describe in this paper a new, simple, and fast algorithm for constructing knight’s tours on square boards.
Read full abstract