OptaPlanner is an open source AI constraint solver written in Java that addresses complex planning and optimization problems. The project is part of the Apache Software Foundation's incubator program and provides developers with tools to solve vehicle routing problems, employee rostering, task assignment, maintenance scheduling, conference scheduling, and other resource allocation challenges. The solver is designed to be fast and easy to use, making constraint-based optimization accessible to software developers without requiring deep expertise in mathematical optimization.
The repository implements multiple constraint-solving algorithms and metaheuristic approaches to find optimal or near-optimal solutions to NP-hard planning problems. The codebase includes implementations of branch-and-bound techniques, local search methods, simulated annealing, and tabu search algorithms. These diverse algorithmic approaches allow users to select or combine strategies appropriate for their specific problem domain and performance requirements.
OptaPlanner is built on Java and supports JVM versions 11 through 17, with Maven 3.x as the build system. The project maintains active continuous integration through Jenkins pipelines and uses SonarCloud for code quality monitoring, tracking reliability ratings, security ratings, maintainability ratings, and test coverage. The README indicates that normal builds complete in approximately 17 minutes, while fast builds with the -Dquickly flag take around one minute, and full builds with documentation generation take approximately 20 minutes.
The project maintains an active development community with multiple engagement channels. Contributors can access starter issues specifically chosen for first-time contributors, participate in discussions through Google Groups at [email protected], and join the Zulip chat community. The project uses a standard GitHub pull request workflow with continuous integration checks that automatically validate submissions. Code style is automatically enforced during Maven builds, and the project provides IDE configuration instructions for IntelliJ IDEA, Eclipse, and VSCode.
The repository includes an examples module that developers can run locally to explore OptaPlanner's capabilities. The quick development start process involves building with Maven and running the OptaPlannerExamplesApp class with appropriate memory allocation for larger datasets. Separate quickstart repositories are maintained to provide additional learning resources and sample implementations.
OptaPlanner is classified across multiple domains including planning algorithms, constraint solving, business rules, scheduling optimization, rule-based systems, decision support, workflow management, resource allocation, and business process automation. This broad classification reflects the solver's applicability across diverse industries and use cases where optimal planning and resource allocation are critical business requirements. The project is distributed through Maven Central under the Apache License 2.0, making it freely available for both open source and commercial applications.