IntroductionΒΆ
Ryser is a Python package for modelling latin squares and related combinatorial designs. The author is especially interested in specializations of latin squares, notably Gerechte designs and Sudoku puzzles. Other structures of interest are Room squares and magic squares.
- Several models of these objects in a variety of different domains are provided:
- graph theory
- integer/linear programming
- constraint programming
- polynomial systems
In fact, as well as providing models, and thus exposing the algorithms of those different domains, we also provide direct access to the structures, thus enabling the construction of direct algorithms.
This software package grew out of two of the author’s previous attempts. LSlib, which was exclusively concerned with latin squares, and sudoku.py which was entirely about modelling Sudoku puzzles and was built in collaboration with two of the authors former students at Berea College: Sean Davis and Andrew Smith.