Not every organization is comfortable with letting a computer program, such as OptaPlanner, now continued as Timefold (Java, open source planning engine), optimize their schedules. Let’s take a look why - and how to remedy it - on the course scheduling example.
In course scheduling, we need to assign each lecture to a time and a place. So we’re basically telling teachers and students were to be at what time. In the example schedule below, the Math lecture will be given the Monday morning in room 36:
In the example above, OptaPlanner has come up with a feasible schedule. This means that no room, nor any teacher, nor any student has 2 lectures at the same time.
Despite that the previous schedule is optimized according to the score function (which the boss probably defined in the first place), the boss wants to make some ad hoc changes. The Math lecture should be given on Tuesday morning instead of Monday morning:
The schedule is now infeasible because Geo and Math are now in the same room at the same time. So we ask the computer to make it feasible…
We regularly see this requirement in other OptaPlanner use cases too (such as employee rostering, vehicle routing and equipment scheduling). But hopefully this article has shown that the human is indeed in control. There’s no Skynet or HAL algorithm to disobey us… for now :)
Planned, planning education for real world stuff
Sign up for our monthly newsletter.
Continue reading
Blog
How much fuel can route optimization actually save?
An ROI guide for field service fleets.
Blog
How we upgraded 15 projects to Timefold Solver 2.0 in under 10 minutes
We upgraded 15 Timefold Solver quickstarts to 2.0 in under 10 minutes using an OpenRewrite recipe. Here’s exactly what that migration looked like.
Blog
I vibe-coded an optimization model and my colleagues found all the holes
AI makes it remarkably easy to build things that look right. It’s much less helpful at telling you when they aren’t.