Rooms: An ML Library for Finite-domain Constraint Programming

Martin Henz and Gert Smolka

The Problem

Existing libraries and languages for finite domain constraint programming have backtracking-based depth-first search built-in as the only inference engine. Exceptions are the languages \claire, which supports the programming of backtracking-based engines, and Oz, which allows the programming of copying-based engines. This is achieved through language-specific constructs, which precludes the transfer of programmable inference engines to conventional languages.

Rooms

Rooms is a seminal finite domain library for the sequential functional language ML. The combination of several new design concepts allows to program engines and propagators at a high level in ML itself.

Download

The Rooms library is currently can be downloaded as a single SML file. The library has been tested under Moscow ML.

Download Rooms

Documentation
Paper on Rooms

Feedback

The Rooms library is in an early stage. It is provided as supplement to the above paper. Please let us know if you are making or wanting improvements, or have other comments on the design.


Martin Henz, Gert Smolka