This is an automated email from the ASF dual-hosted git repository. tiagobento pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/incubator-kie-website.git
commit bcd9e3fa7a558efe872d306e563d93bed66e1dc9 Author: Tiago Bento <[email protected]> AuthorDate: Mon Aug 10 16:06:55 2026 -0400 Give OptaPlanner its own docs section at /optaplanner An overview plus a page each for use cases, the code example and the compatibility matrix, with its own sidebar. The overview prose is deduplicated on the way: the old page said the "lightweight, embeddable planning engine" paragraph twice, nearly verbatim. Typo fixes: "a Open Source", "Task assigment", "Bin packaging". --- docs/components/optaplanner/_category_.json | 6 -- docs/components/optaplanner/optaplanner.md | 92 ----------------------------- docs/optaplanner/code-example.md | 24 ++++++++ docs/optaplanner/compatibility.md | 24 ++++++++ docs/optaplanner/optaplanner.md | 44 ++++++++++++++ docs/optaplanner/use-cases.md | 18 ++++++ docusaurus.config.ts | 1 + sidebars.ts | 1 + src/pages/optaplanner.tsx | 5 -- 9 files changed, 112 insertions(+), 103 deletions(-) diff --git a/docs/components/optaplanner/_category_.json b/docs/components/optaplanner/_category_.json deleted file mode 100644 index 6d8ba79..0000000 --- a/docs/components/optaplanner/_category_.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "label": "OptaPlanner", - "position": 4, - "collapsible": false, - "collapsed": false -} diff --git a/docs/components/optaplanner/optaplanner.md b/docs/components/optaplanner/optaplanner.md deleted file mode 100644 index cfef2eb..0000000 --- a/docs/components/optaplanner/optaplanner.md +++ /dev/null @@ -1,92 +0,0 @@ ---- -id: optaplanner -title: OptaPlanner -sidebar_position: 0 ---- - -# OptaPlanner - -A fast, easy-to-use, open source AI constraint solver for software developers - -# What can OptaPlanner do? - -OptaPlanner optimizes plans and schedules with *hard constraints* and *soft constraints*. -It **reduces costs** substantially, improves **service quality**, **fulfills employee wishes** and **lowers carbon emissions**. - - -- Vehicle routing - - Quick router for a fleet of vehicles. -- Employee rostering - - Assign shifts to employees by skills and availability. -- Maintenance scheduling - - Timely upkeep of machinery and equipment. -- Conference scheduling - - Schedule speakers and talks by availability and topic. -- School timetabling - - Compact schedules for teachers and students. -- Task assigment - - Assign tasks by priority, skills and affinity. -- Cloud optimization - - Bin packaging and defragmentation of cloud resources. -- Job shop scheduling - - Reduce makespan for assembly lines. - -# What is OptaPlanner? - -OptaPlanner is a Open Source Java™ AI constraint solver to optimize conference schedules. - -OptaPlanner is a lightweight, embeddable planning engine. It enables everyday Java™ programmers to solve optimization problems efficiently. It is also compatible with other JVM languages (such as Kotlin and Scala). Constraints apply on plain domain objects and can call existing code. There’s no need to input constraints as mathematical equations. Under the hood, OptaPlanner combines sophisticated Artificial Intelligence optimization algorithms (such as Tabu Search, Simulated Annealing, L [...] - -OptaPlanner is open source software, released under the Apache License. It is written in 100% pure Java™, runs on any JVM and is available also in the Maven Central repository. - - -# Modern mathematical optimization -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. - -# Compatibility - -Compatibility -OptaPlanner works directly from: -- Java -- Kotlin -- Scala -- Python (experimental) - -OptaPlanner integrates seamlessly with: - -- Quarkus -- Spring Boot - -OptaPlanner runs on: - -- Kubernetes and OpenShift -- All major clouds - -OptaPlanner is open source software, released under the Apache License. - -# Code example -To optimize a problem from Java™ code, add the <code>optaplanner-core</code> jar and call <code>Solver.solve()</code>: - -``` - SolverFactory<MyRoster> factory = SolverFactory.create(...); - - // My domain specific class as input - MyRoster problem = ...; - - Solver<MyRoster> solver = factory.buildSolver(); - // My domain specific class as output - MyRoster solution = solver.solve(problem); - - for (MyShift shift : solution.getShifts()) { - // Each shift is now assigned to an employee - assertNotNull(shift.getEmployee()); - } -``` diff --git a/docs/optaplanner/code-example.md b/docs/optaplanner/code-example.md new file mode 100644 index 0000000..8bf533b --- /dev/null +++ b/docs/optaplanner/code-example.md @@ -0,0 +1,24 @@ +--- +id: code-example +title: Code example +sidebar_position: 2 +--- + +To optimize a problem from Java™ code, add the `optaplanner-core` jar and call +`Solver.solve()`: + +```java +SolverFactory<MyRoster> factory = SolverFactory.create(...); + +// My domain specific class as input +MyRoster problem = ...; + +Solver<MyRoster> solver = factory.buildSolver(); +// My domain specific class as output +MyRoster solution = solver.solve(problem); + +for (MyShift shift : solution.getShifts()) { + // Each shift is now assigned to an employee + assertNotNull(shift.getEmployee()); +} +``` diff --git a/docs/optaplanner/compatibility.md b/docs/optaplanner/compatibility.md new file mode 100644 index 0000000..346ac3c --- /dev/null +++ b/docs/optaplanner/compatibility.md @@ -0,0 +1,24 @@ +--- +id: compatibility +title: Compatibility +sidebar_position: 3 +--- + +OptaPlanner works directly from: + +- Java +- Kotlin +- Scala +- Python (experimental) + +OptaPlanner integrates seamlessly with: + +- Quarkus +- Spring Boot + +OptaPlanner runs on: + +- Kubernetes and OpenShift +- All major clouds + +OptaPlanner is open source software, released under the Apache License. diff --git a/docs/optaplanner/optaplanner.md b/docs/optaplanner/optaplanner.md new file mode 100644 index 0000000..24ef8ff --- /dev/null +++ b/docs/optaplanner/optaplanner.md @@ -0,0 +1,44 @@ +--- +id: optaplanner +title: OptaPlanner +sidebar_label: Overview +sidebar_position: 0 +--- + +OptaPlanner is a fast, easy-to-use, open source AI constraint solver for +software developers. + +See the [OptaPlanner documentation](pathname:///docs/10.2.x/optaplanner/) for the +reference manual, published with every Apache KIE release. + +## Modern mathematical optimization + +OptaPlanner is a lightweight, embeddable planning engine that lets everyday +Java™ programmers solve optimization problems efficiently. It is also +compatible with other JVM languages, such as Kotlin and Scala. Constraints +apply on plain domain objects and can call existing code — there is no need to +express them as mathematical equations. + +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 and +NP-hard problems. + +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 + +OptaPlanner is open source software, released under the Apache License. It is +written in 100% pure Java™, runs on any JVM and is available in the Maven +Central repository. + +## Learn more + +- [Use cases](/optaplanner/use-cases) — the planning problems OptaPlanner optimizes. +- [Code example](/optaplanner/code-example) — solving a problem from Java code. +- [Compatibility](/optaplanner/compatibility) — the languages, frameworks and platforms OptaPlanner works with. diff --git a/docs/optaplanner/use-cases.md b/docs/optaplanner/use-cases.md new file mode 100644 index 0000000..be0d17c --- /dev/null +++ b/docs/optaplanner/use-cases.md @@ -0,0 +1,18 @@ +--- +id: use-cases +title: Use cases +sidebar_position: 1 +--- + +OptaPlanner optimizes plans and schedules with _hard constraints_ and _soft +constraints_. It **reduces costs** substantially, improves **service quality**, +**fulfills employee wishes** and **lowers carbon emissions**. + +- **Vehicle routing** — quick router for a fleet of vehicles. +- **Employee rostering** — assign shifts to employees by skills and availability. +- **Maintenance scheduling** — timely upkeep of machinery and equipment. +- **Conference scheduling** — schedule speakers and talks by availability and topic. +- **School timetabling** — compact schedules for teachers and students. +- **Task assignment** — assign tasks by priority, skills and affinity. +- **Cloud optimization** — bin packing and defragmentation of cloud resources. +- **Job shop scheduling** — reduce makespan for assembly lines. diff --git a/docusaurus.config.ts b/docusaurus.config.ts index 99adbef..116d349 100644 --- a/docusaurus.config.ts +++ b/docusaurus.config.ts @@ -72,6 +72,7 @@ const config: Config = { to: "/drools/upgrade-recipe", }, { from: "/components/drools/drools_videos", to: "/drools/videos" }, + { from: "/components/optaplanner", to: "/optaplanner/" }, ], // The docs plugin's `routeBasePath` was changed from "/docs" to "/", diff --git a/sidebars.ts b/sidebars.ts index 090330c..738e996 100644 --- a/sidebars.ts +++ b/sidebars.ts @@ -14,6 +14,7 @@ const sidebars: SidebarsConfig = { // By default, Docusaurus generates a sidebar from the docs folder structure aboutSidebar: [{ type: "autogenerated", dirName: "about" }], droolsSidebar: [{ type: "autogenerated", dirName: "drools" }], + optaplannerSidebar: [{ type: "autogenerated", dirName: "optaplanner" }], examplesSidebar: [{ type: "autogenerated", dirName: "examples"}], documentationSidebar: [{ type: "autogenerated", dirName: "documentation" }], downloadSidebar: [{ type: "autogenerated", dirName: "downloads" }], diff --git a/src/pages/optaplanner.tsx b/src/pages/optaplanner.tsx deleted file mode 100644 index 131db49..0000000 --- a/src/pages/optaplanner.tsx +++ /dev/null @@ -1,5 +0,0 @@ -import {Redirect} from '@docusaurus/router'; - -export default function OptaPlannerRedirect(): JSX.Element { - return <Redirect to="/components/optaplanner" />; -} --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
