Toggle navigation OptaPlanner logo
  • Home
  • Download
  • Learn
    • Documentation
    • Videos
    • Slides
    • Training
    • Use cases
    • Compatibility
    • Testimonials and case studies
  • Get help
  • Source
  • Team
  • Services
  • Star
  • @OptaPlanner
  • Fb
Fork me on GitHub
  • False assumptions for the Vehicle Routing Problem
  • Can MapReduce solve planning problems?

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


Comments Permalink
 tagged as school timetabling insight feature

Comments

Visit our forum to comment
  • False assumptions for the Vehicle Routing Problem
  • Can MapReduce solve planning problems?
Atom News feed
Don't want to miss a single blog post?
Follow us on
  • T
  • Fb
Blog archive
Latest release
  • 8.1.0.Final released
    Fri 15 January 2021
Upcoming events
  • KIE Live
    Worldwide - Tue 19 January 2021
    • OptaPlanner Shadow Variables for the Vehicle Routing Problem and Task Assignment by Geoffrey De Smet, Karina Varela, Alex Porcelli
  • Javaland
    Worldwide - Tue 16 March 2021
    • AI on Quarkus: I love it when an OptaPlan comes together by Geoffrey De Smet
Add event / Archive
Latest blog posts
  • Solve the facility location problem
    Fri 9 October 2020
     Jiří Locker
  • OptaPlanner Week 2020 recordings
    Mon 7 September 2020
     Geoffrey De Smet
  • Let’s OptaPlan your jBPM tasks (part 1) - Integrating the two worlds
    Fri 3 July 2020
     Walter Medvedeo
  • AI versus Covid-19: How Java helps nurses and doctors in this fight
    Fri 8 May 2020
     Christopher Chianelli
  • Workflow processes with AI scheduling
    Tue 5 May 2020
     Christopher Chianelli
  • Constraint Streams - Modern Java constraints without the Drools Rule Language
    Tue 7 April 2020
     Geoffrey De Smet
  • How to plan (and optimize) a Secret Santa
    Wed 18 December 2019
     Christopher Chianelli
Blog archive
Latest videos
  • YT Shadow variables
    Tue 19 January 2021
     Geoffrey De Smet
  • YT Domain modeling and design patterns
    Tue 17 November 2020
     Geoffrey De Smet
  • YT Quarkus insights: AI constraint solving
    Tue 20 October 2020
     Geoffrey De Smet
  • YT AI in kotlin
    Wed 23 September 2020
     Geoffrey De Smet
  • YT Planning agility: continuous planning, real-time planning and more
    Thu 3 September 2020
     Geoffrey De Smet
  • YT Quarkus and OptaPlanner: create a school timetable application
    Thu 3 September 2020
     Radovan Synek
  • YT Business use cases and the impact of OptaPlanner
    Thu 3 September 2020
     Satish Kale
Video archive

KIE projects

  • Drools rule engine
  • OptaPlanner constraint solver
  • jBPM workflow engine

Community

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

Code

  • Build from source
  • Submit a bug
  • License (Apache-2.0)
  • Release notes
  • Upgrade recipes
Sponsored by
Red Hat
More coder content at
Red Hat Developers
© Copyright 2006-2021, Red Hat, Inc. or third-party contributors - Privacy statement - Terms of use - Website info