A number of data structures to represent and allow the manipulation of standard combinatorial problems, used as test problems in computer science.
In computer science there are a number of standard test problems that are used for testing algorithms, especially those related to Artificial Intelligence and Operations Research. Online there are a number of repositories for collections of known interesting problems, for example the TSPLIB at http://comopt.ifi.uni-heidelberg.de/software/TSPLIB95/ and the SATLIB at http://www.satlib.org/.
This library seeks to provide implementations of data structures to store these problems, along with functions for manipulating the problems and routines to load problem files from various sources.
At present it supports TSP/TSPLIB, SAT/SATLIB and TIM (format used by the International Timetabling Competition, which has been run twice at current date), however it is hoped that the loading routines can be expanded and the range of problems expanded to cover problems like scheduling and more general timetabling. The internal data structures make heavy use of the Data.Map
library and Data.Array
. It is not currently using unboxed values. The library does not use the bytestring
library for loading and saving data either, which will probably need to be changed later.