## Virtual Teachers

Started by math, August 10, 2022, 02:49:53 PM

0 Members and 1 Guest are viewing this topic.

#### math

I'm currently creating a new schedule for our department and hit one issue that cannot be solved by FET in an ellegant way (at least I don't have an idea how to solve it). Here's the issue:

For each lecture we have a number of exams (e.g. first semester course "Programming 1" has one lecture and ten exercises). Thus I'm creating eleven activities (one for the lecture and one for each exercise). Note that the exercises differ in assigned student groups and room requirements.

For some large courses multiple teachers share the exercises. For the example above, a group of five teachers could share the ten exercises. This means that each teacher would take two exercises. These teachers don't care which group is assigned to them, they only care that it's two exercises in total and that all of her constraints are respected (available times, max hours per day, etc.).

And this makes it difficult for me, because a schedule can only be computed if the constraints of the attached teacher match the general constraints of the activitiy. And there are a number of combinations of assigning teachers to these exercises. If the schedule cannot be computed, I usually try another combination of teachers for these exercises and try again. Until finally I found a combination where the constraints of the assigned teachers match the constraints of the activities and a schedule is generated successfully.

This can be a time consuming process, because we have about a dozen of these courses. So I'm changing combinations again and again, until the schedule generation finally succeeds.

I had the idea of applying the concept of virtual teachers.

A virtual teacher is defined as a list of real teachers, where a real teachers can be added to the list multiple times. When specifying the activities for the ten exercises (in the example above), I could simply assign the virtual teacher to that activity. This virtual teachr is defined as:

Virtual Teacher V = { real teacher A, real teacher A, real teacher B, real teacher B,real teacher C, real teacher C, real teacher D, real teacher D, real teacher E, real teacher E }

Here FET would be allowed to assign each of the real teachers A-E two times in total when virtual teacher V is assigned to an activity. This means that each of the ten exercises would be assigned to one of the teachers A-E, but FET decides which is the best combination.

Obviously the number of real teachers within a virtual teacher cannot be lower than the number of activities that the virtual teacher is assigned to. However, the number can be larger. For instance:

Virtual Teacher V = { real teacher A, real teacher A, real teacher A, real teacher A, real teacher B, real teacher B,real teacher C, real teacher C, real teacher D, real teacher D, real teacher E, real teacher E }

Here, the real teacher A could be assigned up to four times for activities of virtual teacher V. In the case of ten exercises assigned to virtual teacher V this means, that some of the other real teachers would no be assigned two times (because it's only ten activities).

In my (naive) understanding of the schedule generation process, the introduction of virtual teachers would not imply major modifications. It would just need some kind of loop, where all combinations of real teachers to a virtual teacher have to be iterated.

#### Liviu Lalescu

#1
Hello, Matthias,

Virtual teachers are out of question. It is impossible with the algorithm, I think.

I have this idea: Add 10 activities: A1(TA, no students), A2(TA, no students), ..., A10(TE, no students), and another 10 activities A11(St1, no teachers), ..., A20(St10, no teachers). The first 10 activities have activity tag A, the next 10 activities have activity tag B.

Then implement a new type of constraint, two activity tags have same parity in each slot (or should we add 'in the selected slots'?).

I am very tired, not sure how difficult this new constraint would be. But I think it solves your problem.