I am designing a program to
- allocate faculty to subjects based on their preferences; and then
- allocate hours for each student; based on preferences of each teacher and characteristics of each subject (dont schedule a tough subject for friday afternoon).
It leads to 100k-ish combinations. And there are lots of special cases.
I searched around and saw language-agnostic questions that dealt with raw algorithms.
Algorithm for computing timetable given restrictions
Seating plan software recommendations (does such a beast even exist?)
Question: What is a good mathematical model that can be manipulated by a Python number-crunching package?
I am thinking something straightforward like (for the sake of example only):
A bridge problem > Graph model> A graph package that detects cycles