Simsttab: A timetabling engine for schools



Simsttab stands for Simplistic School Time-Tabler. It is a timetabling engine that can generate timetables satisfying requirements typical for secondary schools in Austria ("Gymnasium"-type), Germany and maybe other European countries.

Source code: simsttab.pl

Video: School Timetabling with Prolog


The code is also available from a public git repository: https://github.com/triska/simsttab/

Simsttab requires a Prolog system that supports CLP(ℤ) and library(reif).

Simsttab uses constraint logic programming over integers to compute solutions.

Try the demo: https://www.metalevel.at/prolog/timetabling/


More about Prolog: The Power of Prolog

Quick Start



Prolog facts are used to specify the requirements of the timetable.

An example based on sample requirements that ship with Tablix is available as reqs.pl.

Sample invocation, using Scryer Prolog:
      $ scryer-prolog simsttab.pl reqs.pl
    
Sample query:
      ?- requirements_variables(Rs, Vs),
         labeling([ff], Vs),
         print_classes(Rs).
    
Depending on your Prolog system, you obtain a timetable like timetable.txt within a few seconds or minutes.

Specifying requirements

The input is a sequence of Prolog facts that describe what we want from a solution.

The dimensions of the timetable are specified by: The main requirements are specified by: Additional requirements are specified by:


Main page