Answer the question
In order to leave comments, you need to log in
How to make an automated scheduling system?
Hello everyone, I am writing a term paper and I need to write an automated scheduling program for a university based on a curriculum.
Therefore, I am interested in what algorithms are there for solving this problem.
Answer the question
In order to leave comments, you need to log in
Briefly - hang yourself, you can read more for example here
Why hang yourself, because the task, to put it mildly, is not an easy one, although it can be solved.
There is no one 100% correct solution, but there are those that give good results.
Since this is just a term paper, you need to delineate and narrow the scope of the task as clearly as possible. It's one thing to "simply" shove students and teachers into classrooms and hours. In real life, for both, it is desirable to minimize the number of "windows", the number of movements between classrooms or at least buildings, more or less evenly distribute the load, etc. In practice, I think that the best result will be given by a combination of automatic compilation of some schedule base with manual fine-tuning / adjustment, most likely in several iterations. But it is unlikely that all this is realizable within the framework of the course work.
Start by setting a task. What objects exist (teachers, groups of students, classrooms) and how many of them, what are the restrictions (for example, you cannot lead two pairs in the same classroom at the same time), which of the restrictions are mandatory, which can be violated. It is desirable to arrange all this in the form of a set of variables, equalities and inequalities between them + introduce the function that we want to optimize.
Do not take any general decision. There is a specific university, and decide for him. Suddenly, you have some features that greatly simplify the task.
After you collect everything and set the task mathematically, you can think about methods.
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question