OptaPlanner logo
  • Download
  • Learn
    • Documentation
    • Videos
    • Slides
    • Training

    • Use cases
    • Compatibility
    • Testimonials and case studies
  • Get help
  • Blog
  • Source
  • Team
  • Services
  • KIE
    • Drools
    • OptaPlanner
    • jBPM
    • Kogito
  • Star
  • T
  • L
  • F
  • YT
Fork me on GitHub

Will Skynet control our schedule if the computer optimizes it for us?

Fri 11 October 2013
Avatar Geoffrey De Smet
Geoffrey De Smet

Twitter LinkedIn GitHub

OptaPlanner lead

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:

skynet1

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:

skynet2

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:

skynet3

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:

skynet4

When we now solve the problem, the Math lecture isn’t moved. We get a feasible solution which makes the boss happy too:

skynet5

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 :)


Permalink
 tagged as school timetabling insight feature

Comments

Visit our forum to comment

Giscus Comments

AtomNews feed
Don’t want to miss a single blog post?
Follow us on
  • T
  • L
  • F
Blog archive
Latest release
  • 8.14.0.Final released
    Wed 8 December 2021
Upcoming events
  • DevConf.CZ
    Brno, Czech Republic (virtual) - Fri 28 January 2022
    • Artificial Intelligence on Quarkus: I love it when an OptaPlan comes together by Geoffrey De Smet
  • JFokus
    Stockholm, Sweden - Mon 7 February 2022
    • AI maintenance scheduling with OptaPlanner on Quarkus by Geoffrey De Smet
  • Add event / Archive
Latest blog posts
  • OptaPlanner documentation turns over a new leaf
    Tue 26 October 2021
    Radovan Synek
  • Order picking optimization in warehouses and supermarkets with OptaPlanner
    Thu 14 October 2021
    Walter Medvedeo
  • Monitor OptaPlanner solvers through Micrometer
    Tue 12 October 2021
    Christopher Chianelli
  • A new AI constraint solver for Python: OptaPy
    Tue 5 October 2021
    Christopher Chianelli
  • How much faster is Java 17?
    Wed 15 September 2021
    Geoffrey De Smet
  • Constraint Streams get some more love
    Thu 19 August 2021
    Lukáš Petrovický
  • Let’s OptaPlan your jBPM tasks (part 2) - BPM Task assigning in the cloud
    Mon 26 July 2021
    Walter Medvedeo
  • Blog archive
Latest videos
  • AI lesson scheduling on Quarkus with OptaPlanner
    Thu 18 November 2021
    Geoffrey De Smet
  • Maintenance scheduling
    Fri 12 November 2021
    Geoffrey De Smet
  • Optimized order picking in warehouses and supermarkets
    Tue 26 October 2021
    Walter Medvedeo
  • A modern OO/FP constraint solver
    Tue 14 September 2021
    Geoffrey De Smet
  • Business processes task optimization in Kogito
    Tue 7 September 2021
    Walter Medvedeo
  • School timetable optimization
    Mon 6 September 2021
    Geoffrey De Smet
  • Schedule incoming calls real-time
    Mon 23 August 2021
    Radovan Synek
  • Video archive

OptaPlanner is open. All dependencies of this project are available under the Apache Software License 2.0 or a compatible license. OptaPlanner is trademarked.

This website was built with JBake and is open source.

Community

  • Blog
  • Get Help
  • Team
  • Governance
  • Academic research

Code

  • Build from source
  • Issue tracker
  • Release notes
  • Upgrade recipes
  • Logo and branding

KIE projects

  • Drools rule engine
  • OptaPlanner constraint solver
  • jBPM workflow engine
  • Kogito Business Automation platform
CC by 3.0 | Privacy Policy
Sponsored by Red Hat