A collection of puzzles and binaries used in the publication Strengthening probabilistic graphical models: the purge-and-merge algorithm
sudoku-champagne-collectionis sourced from Champagne's google drive with a running discussion at enjoysudoku.com. It contains 1000 Sudokus samples from the ph_1910 dataset. The dataset uses the SER rating system and contains the most difficult Sudoku puzzles known to literature.sudoku-sterten-collectionis sources from magictour.free.fr. It contains 95 Sudokus of moderate difficulty.sudoku-gordon-royle-sudoku-17-entries-collectionwere originally available on Royle's website and can be found in the Tdoku dataset. It contains 49151 Sudokus with 17-entries from Royle's 2010 dataset.sumsudoku-krazydad-collectionis sourced from krazydad.com. It contains 40000 Killer Sudoku puzzles, labelled according to five difficulty levels. Note that the purge-and-merge paper sampled the first 2000 from each difficulty level, totaling up to a 10000 puzzles.sumsudoku-dailykillersudoku-collectionis sourced from dailykillersudoku.com. It contains 16615 Sumsudoku puzzles.calcudoku-collectionis sourced from menneske.no. It contains 4597 Calcudoku puzzles.kakuro-collectionis sourced from en.grandgames.net. It contains 6360 Kakuro puzzles.fillapix-collectionis sourced from en.grandgames.net. It contains 2340 Fill-a-pix puzzles.gizmodo-10-hardest-puzzlesis sourced from gizmodo.com. It contains ten puzzles, one of each of the above-mentioned types .
The the purge-and-merge algorithm uses Stellenbosch University's emdw library, which is currently closed source. We are working on bringing the code into the open domain, but for now it is still tied to a licensing agreement. All algorithms used in this paper is therefore shared in binary form and is made available as bin.tar.gz in releases, tested on Ubuntu 20.04.3 LTS.
In order to run the binaries, first install the following dependencies:
sudo apt-get install build-essential liblapack-dev libblas-dev libexpat1-dev zlib1g-dev
Also, remember to add execution privileges to the entry point scripts:
chmod +x run_purge_and_merge
chmod +x run_puzzle_to_uai
chmod +x run_ace_on_uai
Usage: run_purge_and_merge <puzzle-type> <input-puzzle> [<input-puzzle>...]
run_purge_and_merge works only with the -(legacy-format) filetype versions of Sumsudoku and Calcudoku
puzzle-typecan be one of:sudoku,sumsudoku,calcudoku,kakuroorfillapix.input-puzzle...: a list of puzzle filepaths to solve.
For example: ./run_purge_and_merge calcudoku "calcudoku-collection/calcudoku-menneske.no-10.txt"
Usage: run_puzzle_to_uai <puzzle-type> <input-puzzle> <output-file>
run_puzzle_to_uai works only on default filetype versions and not -(legacy-format) versions
puzzle-typecan be one of:sudoku,sumsudoku,calcudoku,kakuroorfillapix.input-puzzle...: Filepath to a puzzle.output-file: Filepath to output file
For example ./run_puzzle_to_uai calcudoku "calcudoku-collection-(legacy-format)/calcudoku-menneske.no-10.txt output.uai"
This will convert any puzzle in this database to a .uai file that can be consumed by ACE.
Usage: run_ace_on_uai <input.uai>
For example ./run_ace_on_uai output.uai
This is a small wrapper over ACE to load a .uai file created from one of the puzzles, compile the puzzle into a circuit, and query all the unknown variables in that circuit.