Papers › Dancing links

Dancing links

15 Nov 2000arXiv:cs/0011047links table onlyarchive 2025-07-28

Donald E. Knuth

The archive published only this paper's code-link row. Authors, date and abstract are from arXiv's metadata (CC0), read from the Kaggle arXiv metadata snapshot of 2026-09-12 where its title matched the archive's; the title is the archive's.

The author presents two tricks to accelerate depth-first search algorithms for a class of combinatorial puzzle problems, such as tiling a tray by a fixed set of polyominoes. The first trick is to implement each assumption of the search with reversible local operations on doubly linked lists. By this trick, every step of the search affects the data incrementally. The second trick is to add a ghost square that represents the identity of each polyomino. Thus puts the rule that each polyomino be used once on the same footing as the rule that each square be covered once. The coding simplifies to a more abstract form which is equivalent to 0-1 integer programming. More significantly for the total computation time, the search can naturally switch between placing a fixed polyomino or covering a fixed square at different stages, according to a combined heuristic. Finally the author reports excellent performance for his algorithm for some familiar puzzles. These include tiling a hexagon by 19 hexiamonds and the N queens problem for N up to 18.

PaperPDFCode

In Syntology Open this paper in Syntology's Atlas, the map of the papers in Syntology's graph and their citations.

Code

29 repositories listed; official and paper-mentioned ones first.

HJackH/sudoku99 mentioned on GitHub report
Kornflex28/iqfit-solver mentioned on GitHub report
Logismos/dlx mentioned on GitHub report
MarhicJeromeGIT/exact_cover mentioned on GitHub report
ThomasKlein18/sudokubot mentioned on GitHubtf report
farhiongit/dancing-links mentioned on GitHub report
iamthaoly/sudoku-ai mentioned on GitHubtf report
james1236/algorithmXTracing mentioned on GitHub report
jlaire/dlx-cpp mentioned on GitHub report
jwg4/Dantz mentioned on GitHub report
jwg4/polyomino mentioned on GitHub report
leonprime/byf mentioned on GitHub report
matklad/dlx mentioned on GitHub report
nate-f/SudokuSolver mentioned on GitHub report
senhorsolar/dlx mentioned on GitHub report
sg2295/Sudoku-Solver mentioned on GitHub report
taylorjg/pentominoes mentioned on GitHub report
taylorjg/pentominoes-cs mentioned on GitHub report
taylorjg/ripple-effect-dlx mentioned on GitHub report
tmetsch/rusty_planner mentioned on GitHub report
tomasmu/sudoku-dlx mentioned on GitHub report
weiz0823/dlx mentioned on GitHub report
yahya-tamur/dlx mentioned on GitHub report
yffbit/PolyominoSolver mentioned on GitHub report
zanicar/dlx mentioned on GitHub report

Repository list and official/mentioned flags are the archive's, frozen 2025-07-28. Reachability, where shown, is from one Syntology probe window (2026-09-16 to 2026-09-18); repositories not probed show nothing. GitHub stars are not tracked.

Code Syntology ran Syntology

Not run by Syntology. Nothing on this page verifies that the listed code works.

Results from the paper archive 2025-07-28

No leaderboard rows for this paper in the archive.

Report a problem or propose a change · a person checks every report against the paper or source before anything changes; decisions are listed on /corrections