Need Help with Scheduling 12 Teachers for 122 Course Sessions

0
0
Asked By CuriousCactus123 On

I'm trying to tackle a pretty complex scheduling problem at my university and could really use some help. I need to assign 12 teachers to 122 course sessions that take place over 4 days. Each session has strict requirements that complicate things a lot. Here's the breakdown:

- I have 7 courses: PC102, PC306, PC101, PC305, PC508, PC011, and PC710.
- Each of the 12 instructors has different qualifications and capacity limits.
- The sessions are spread across 17 time slots from Saturday to Tuesday, and I need to run multiple sections for some courses.

There are also some hard constraints:
1. Each course must happen in its fixed timeslot.
2. Each teacher has max capacity limits for the courses they can teach.
3. No teacher can handle multiple classes at the same time.
4. No teaching is allowed on Saturdays for any teacher.
5. Each teacher can take a maximum of 4 teaching periods each day.

For example, PC102 needs 2 sections on Saturday during Period 1 with different teachers assigned. I've tried using standard FET and manual Excel assignments, but they're not cutting it.

So, I'm looking for either a scheduling tool that fits these needs or a coding algorithm—ideally in Python—that can help solve this. I have my data matrix ready in Excel as well if that helps. Anyone dealt with this kind of scheduling before? Any suggestions?

3 Answers

Answered By TimetableWhiz On

You might want to explore Google OR-Tools. It's specifically made for these kinds of scheduling and assignment issues and integrates well with Python. It can handle your fixed timeslots and the various constraints you mentioned. It could save you a lot of manual effort if you’re willing to code a bit.

CuriousCactus123 -

I tried using Google OR-Tools but ran into some issues. I might have to stick with Python + constraint programming for now.

Answered By PythonPalette On

For a Python solution, consider using Z3. It can help with constraint satisfaction problems like yours.

CleverCoderX -

I think CP SAT might be more suited to your needs compared to Z3.

Answered By SchedulerGuru99 On

A constraint programming approach sounds like the way to go for this. I’d recommend trying MiniZinc—it allows for prototyping at a higher level, which can be helpful for experimenting with the problem.

CuriousCactus123 -

Thanks for the suggestion! I checked the MiniZinc docs, but it seems a bit complex for a beginner. Is there a more straightforward alternative using Python?

Related Questions

LEAVE A REPLY

Please enter your comment!
Please enter your name here

This site uses Akismet to reduce spam. Learn how your comment data is processed.