Will Skynet control our schedule if the computer optimizes it for us?
Not every organization is comfortable with letting a computer program, such as OptaPlanner (Java, open source planning engine), optimize their schedules. Let’s take a look why - and how to remedy it - on the course scheduling example.
Course scheduling introduction
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.
The boss wants to do it differently
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…
“I’m sorry Dave, I’m afraid I can’t do that”
... and the first thing the computer does is change the Math
lecture to another time and place:
The boss is unhappy because his commands are ignored. Let’s fix that.
Immovable lecture
We lock the Math
lecture in place, making it immovable for OptaPlanner:
When we now solve the problem, the Math
lecture isn’t moved.
We get a feasible solution which makes the boss happy too:
Video demo
If you want to see this in action, skip to the end of this video:
The human must remain in control
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 :)
Comments
Visit our forum to comment