OptaPlanner is a lightweight, embeddable planning engine. It enables everyday programmers to solve optimization problems efficiently. Constraints apply on plain domain objects and can call existing code. It is Object Oriented Programming (OOP) and Functional Programming (FP) friendly. There’s no need to input constraints as mathematical equations. OptaPlanner supports

  • Continuous planning to weekly publish the schedule, 3 weeks before execution
  • Non-disruptive replanning for changes to an already published schedule
  • Real-time planning to react on real-time disruptions in the plan within milliseconds
  • Overconstrained planning when there are too few resources to cover all the work
  • Pinning so the user is still in control over the schedule

Under the hood, OptaPlanner combines sophisticated Artificial Intelligence optimization algorithms (such as Tabu Search, Simulated Annealing, Late Acceptance and other metaheuristics) with very efficient score calculation and other state-of-the-art constraint solving techniques for NP-complete or NP-hard problems.