set-cover: Solve exact set cover problems like Sudoku, 8 Queens, Soma Cube, Tetris Cube

[ algorithms, bsd3, library, math ] [ Propose Tags ]

Solver for exact set cover problems. Included examples: Sudoku, Nonogram, 8 Queens, Domino tiling, Mastermind, Soma Cube, Tetris Cube, Cube of L's, Logika's Baumeister puzzle. The generic algorithm allows to choose between slow but flexible Set from containers package and fast but cumbersome bitvectors.

For getting familiar with the package I propose to study the Queen8 example along with Math.SetCover.Exact.

Build examples with cabal install -fbuildExamples.

The package needs only Haskell 98.

Versions [faq] 0.0, 0.0.1, 0.0.2, 0.0.3, 0.0.4, 0.0.5,, 0.0.6, 0.0.7, 0.0.8, 0.0.9, 0.1, 0.1.1
Change log
Dependencies array (>=0.1 && <0.6), base (==4.*), containers (>=0.4 && <0.7), enummapset (>=0.1 && <0.7), haha (>=0.3.1 && <0.4), non-empty (>=0.2 && <0.4), pooled-io (==0.0.*), psqueues (==0.2.*), random (>=1.0 && <1.2), semigroups (>=0.1 && <1.0), set-cover, transformers (>=0.2 && <0.6), unicode (==0.0.*), utility-ht (>=0.0.12 && <0.1) [details]
License BSD-3-Clause
Author Henning Thielemann, Helmut Podhaisky
Maintainer Henning Thielemann <>
Revised Revision 2 made by HenningThielemann at 2019-01-08T19:51:41Z
Category Math, Algorithms
Home page
Source repo this: darcs get --tag 0.0.9
head: darcs get
Uploaded by HenningThielemann at 2018-02-17T13:14:10Z
Distributions NixOS:0.1.1, Stackage:0.0.9
Executables pangram, mastermind, nonogram, domino, alphametics, lonpos-pyramid, baumeister, lcube, sudoku-setcover, queen8, soma-cube, tetris-cube
Downloads 7618 total (238 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Hackage Matrix CI
Docs available [build log]
Last success reported on 2018-02-17 [all 1 reports]





Build example executables


Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info


Note: This package has metadata revisions in the cabal description newer than included in the tarball. To unpack the package including the revisions, use 'cabal get'.

Maintainer's Corner

For package maintainers and hackage trustees