Solving General Lattice Puzzles
In this paper we describe implementations of two general methods for solving puzzles on any structured lattice. We define the puzzle as a graph induced by (finite portion of) the lattice, and apply a back-tracking method for iteratively find all solutions by identifying parts of the puzzle (or transformed versions of them) with subgraphs of the puzzle, such that the entire puzzle graph is covered without overlaps by the graphs of the parts. Alternatively, we reduce the puzzle problem to a submatrix-selection problem, and solve the latter problem by using the “dancing-links” trick of Knuth. A few expediting heuristics are discussed, and experimental results on various lattice puzzles are presented.
Unable to display preview. Download preview PDF.
- [Br71]De Bruijn, N.G.: Programmeren van de pentomino puzzle. Euclides 47, 90–104 (1971–1972)Google Scholar
- [Du08]Dudeney, H.E.: 74.—The broken chessboard. In: The Canterbury Puzzles, 90–92 (1908)Google Scholar
- [Go65]Golomb, S.W.: Polyominoes, Scribners, New York (1965); 2nd edn. Princeton University Press, Princeton (1994)Google Scholar
- [HH60]Haselgrove, C.B., Haselgrove, J.: A computer program for pentominoes. Eureka 23, 16–18 (1960)Google Scholar
- [Ha74]Haselgrove, J.: Packing a square with Y-pentominoes. J. of Recreational Mathematics 7, 229 (1974)Google Scholar
- [Le78]Lewis, H.R.: Complexity of solvable cases of the decision problem for the predicate calculus. In: 19th Ann. Symp. on Foundations of Computer Science, Ann Arbor, MI, pp. 35–47 (1978)Google Scholar
- [Sc58]Scott, D.S.: Programming a combinatorial puzzle, Technical Report 1, Dept. of Electrical Engineering, Princeton University (June 1958)Google Scholar