apache/incubator-kie-optaplanner

OplaPlanner has moved to https://github.com/apache/incubator-kie-drools. This repository is archived. OptaPlanner is an AI constraint solver in Java to...

View on GitHub ↗Jump to charts ↓

Data as of . Signed-in members get hourly updates — create a free account.

Summary Information

Updated 2 hours ago
Added to GitGenius on April 8th, 2021
Created on February 15th, 2011
Open Issues & Pull Requests: 21 (+0)
GitHub issues: Disabled - open counts may still include pull requests.
Number of forks: 972
Total Stargazers: 3,515 (+0)
Total Subscribers: 157 (+0)

Repository Insights (GitGenius)

Most active contributors

Sign in to see contributor activity.
Sign in

Related repositories by overlapping contributors

No overlapping-contributor repos identified yet.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

GitHub issues are disabled for this repository, so issue analytics and the issue explorer are not available.

Detailed Description

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.