TimetableSolver.jl: Create a timetable schedule, using ConstraintSolver.jl and JuMP

TimetableSolver.jl

Julia package to create a timetable schedule, using ConstraintSolver.jl and JuMP.

This package can be used to solve a timetable schedule, modelled using simple types. Note that this is not a package for solving scheduling constraints. It assumes that you already have a time schedule but only need to figure out, say, which subject to teach at which period on which day.
The solver assumes groups of students studying together (called divisions) need to study a set number of subjects, within a set number of periods on some days. With different teachers teaching different grades and subjects.

I understand that this may not be useful for a number of situations, for example, when students take different classes based on their will (as in universities). Based on my school experience, this is an appropriate solver for solving small and big schedules, with many divisions, subjects and teachers.

I hope that this solver may be useful to someone else. :grinning:

It may even be used as reference: a simple solver (< 50KB) written using ConstraintSolver.jl and JuMP.

Docs

Docs hosted at sushant-padha.github.io/TimetableSolver.jl.

Features

  • Comprehensive types to express data
  • (decently) Fast performance
  • Documentation
7 Likes