This project generates a time table given a set of inputs and constraints. It encodes constraints of the time tabling problem as a SAT formula in the Conjunctive Normal Form, and then calls a MaxSAT solver to solve the problem.



The following software are prerequisites for this program:

g++ with support for C++11, using the --std=c++11 flag, is required.

Building the project

To make and run tests, use make test, and then run the test executable from the bin/ directory.

Running the Timetabler

To execute the program, the format is

1 $ ./Timetabler fields.yml input.csv custom.txt output.csv


Examples of Configuration files

This contains some examples for providing the fields information, the input, and adding custom constraints to the solver.

The structure of this directory is as follows:

For further details and examples, please refer to the Project Wiki.