Jump To Close Expand all Collapse all Table of contents Developing solvers with Red Hat build of OptaPlanner in Red Hat Process Automation Manager Preface Making open source more inclusive I. Upgrading your Red Hat build of OptaPlanner projects to OptaPlanner 8 Expand section "I. Upgrading your Red Hat build of OptaPlanner projects to OptaPlanner 8" Collapse section "I. Upgrading your Red Hat build of OptaPlanner projects to OptaPlanner 8" 1. Changes that are not compatible with OptaPlanner 7.x or earlier 2. Changes between OptaPlanner 8.2.0 and OptaPlanner 8.3.0 II. Getting started with Red Hat build of OptaPlanner Expand section "II. Getting started with Red Hat build of OptaPlanner" Collapse section "II. Getting started with Red Hat build of OptaPlanner" 3. Introduction to Red Hat build of OptaPlanner Expand section "3. Introduction to Red Hat build of OptaPlanner" Collapse section "3. Introduction to Red Hat build of OptaPlanner" 3.1. Planning problems 3.2. NP-completeness in planning problems 3.3. Solutions to planning problems 3.4. Constraints on planning problems 3.5. Examples provided with Red Hat build of OptaPlanner 3.6. N queens Expand section "3.6. N queens" Collapse section "3.6. N queens" 3.6.1. Domain model for N queens 3.7. Cloud balancing 3.8. Traveling salesman (TSP - Traveling Salesman Problem) 3.9. Tennis club scheduling 3.10. Meeting scheduling 3.11. Course timetabling (ITC 2007 Track 3 - Curriculum Course Scheduling) 3.12. Machine reassignment (Google ROADEF 2012) 3.13. Vehicle routing Expand section "3.13. Vehicle routing" Collapse section "3.13. Vehicle routing" 3.13.1. Domain model for Vehicle routing 3.14. Project job scheduling 3.15. Task assigning 3.16. Exam timetabling (ITC 2007 track 1 - Examination) Expand section "3.16. Exam timetabling (ITC 2007 track 1 - Examination)" Collapse section "3.16. Exam timetabling (ITC 2007 track 1 - Examination)" 3.16.1. Domain model for exam timetabling 3.17. Nurse rostering (INRC 2010) 3.18. Traveling tournament problem (TTP) 3.19. Cheap time scheduling 3.20. Investment asset class allocation (Portfolio Optimization) 3.21. Conference scheduling 3.22. Rock tour 3.23. Flight crew scheduling 4. Downloading Red Hat build of OptaPlanner examples Expand section "4. Downloading Red Hat build of OptaPlanner examples" Collapse section "4. Downloading Red Hat build of OptaPlanner examples" 4.1. Running OptaPlanner examples 4.2. Running the Red Hat build of OptaPlanner examples in an IDE (IntelliJ, Eclipse, or Netbeans) 5. Getting started with OptaPlanner in Business Central: An employee rostering example Expand section "5. Getting started with OptaPlanner in Business Central: An employee rostering example" Collapse section "5. Getting started with OptaPlanner in Business Central: An employee rostering example" 5.1. Deploying the employee rostering sample project in Business Central 5.2. Re-creating the employee rostering sample project Expand section "5.2. Re-creating the employee rostering sample project" Collapse section "5.2. Re-creating the employee rostering sample project" 5.2.1. Setting up the employee rostering project 5.2.2. Problem facts and planning entities 5.2.3. Creating the data model for the employee rostering project Expand section "5.2.3. Creating the data model for the employee rostering project" Collapse section "5.2.3. Creating the data model for the employee rostering project" 5.2.3.1. Creating the employee roster planning entity 5.2.3.2. Creating the employee roster planning solution 5.2.4. Employee rostering constraints Expand section "5.2.4. Employee rostering constraints" Collapse section "5.2.4. Employee rostering constraints" 5.2.4.1. DRL (Drools Rule Language) rules 5.2.4.2. Defining constraints for employee rostering using the DRL designer 5.2.5. Creating rules for employee rostering using guided rules Expand section "5.2.5. Creating rules for employee rostering using guided rules" Collapse section "5.2.5. Creating rules for employee rostering using guided rules" 5.2.5.1. Guided rules 5.2.5.2. Creating a guided rule to balance employee shift numbers 5.2.5.3. Creating a guided rule for no more than one shift per day 5.2.5.4. Creating a guided rule to match skills to shift requirements 5.2.5.5. Creating a guided rule to manage day off requests 5.2.6. Creating a solver configuration for employee rostering 5.2.7. Configuring Solver termination for the employee rostering project 5.3. Accessing the solver using the REST API Expand section "5.3. Accessing the solver using the REST API" Collapse section "5.3. Accessing the solver using the REST API" 5.3.1. Registering the Solver using the REST API 5.3.2. Calling the Solver using the REST API 6. Getting Started with OptaPlanner and Quarkus Expand section "6. Getting Started with OptaPlanner and Quarkus" Collapse section "6. Getting Started with OptaPlanner and Quarkus" 6.1. Apache Maven and Red Hat build of Quarkus Expand section "6.1. Apache Maven and Red Hat build of Quarkus" Collapse section "6.1. Apache Maven and Red Hat build of Quarkus" 6.1.1. Configuring the Maven settings.xml file for the online repository 6.1.2. Downloading and configuring the Quarkus Maven repository 6.2. Creating an OptaPlanner Red Hat build of Quarkus Maven project using the Maven plug-in 6.3. Creating a Red Hat build of Quarkus Maven project using code.quarkus.redhat.com 6.4. Creating a Red Hat build of Quarkus Maven project using the Quarkus CLI III. The Red Hat build of OptaPlanner solver Expand section "III. The Red Hat build of OptaPlanner solver" Collapse section "III. The Red Hat build of OptaPlanner solver" 7. Configuring the Red Hat build of OptaPlanner solver Expand section "7. Configuring the Red Hat build of OptaPlanner solver" Collapse section "7. Configuring the Red Hat build of OptaPlanner solver" 7.1. Using an XML file to configure the OptaPlanner solver 7.2. Using the Java API to configure the OptaPlanner solver 7.3. OptaPlanner annotation 7.4. Specifying OptaPlanner domain access 7.5. Configuring custom properties 8. The OptaPlanner Solver Expand section "8. The OptaPlanner Solver" Collapse section "8. The OptaPlanner Solver" 8.1. Solving a problem 8.2. Solver environment mode 8.3. Changing the OptaPlanner solver logging level 8.4. Using Logback to log OptaPlanner solver activity 8.5. Using Log4J to log OptaPlanner solver activity 8.6. Monitoring the solver Expand section "8.6. Monitoring the solver" Collapse section "8.6. Monitoring the solver" 8.6.1. Configuring a Quarkus OptaPlanner application for Micrometer 8.6.2. Configuring a Spring Boot OptaPlanner application for Micrometer 8.6.3. Configuring a plain Java OptaPlanner application for Micrometer 8.7. Configuring the random number generator 9. The OptaPlanner SolverManager Expand section "9. The OptaPlanner SolverManager" Collapse section "9. The OptaPlanner SolverManager" 9.1. Batch solving problems 9.2. Solve and listen to show progress IV. Red Hat build of OptaPlanner quick start guides Expand section "IV. Red Hat build of OptaPlanner quick start guides" Collapse section "IV. Red Hat build of OptaPlanner quick start guides" 10. Red Hat build of OptaPlanner on Red Hat build of Quarkus: a school timetable quick start guide Expand section "10. Red Hat build of OptaPlanner on Red Hat build of Quarkus: a school timetable quick start guide" Collapse section "10. Red Hat build of OptaPlanner on Red Hat build of Quarkus: a school timetable quick start guide" 10.1. Creating an OptaPlanner Red Hat build of Quarkus Maven project using the Maven plug-in 10.2. Model the domain objects 10.3. Define the constraints and calculate the score 10.4. Gather the domain objects in a planning solution 10.5. Create the solver service 10.6. Set the solver termination time 10.7. Running the school timetable application 10.8. Testing the application Expand section "10.8. Testing the application" Collapse section "10.8. Testing the application" 10.8.1. Test the school timetable constraints 10.8.2. Test the school timetable solver 10.9. Logging 10.10. Integrating a database with your Quarkus OptaPlanner school timetable application 10.11. Using Micrometer and Prometheus to monitor your school timetable OptaPlanner Quarkus application 11. Red Hat build of OptaPlanner on Red Hat build of Quarkus: a vaccination appointment scheduler quick start guide Expand section "11. Red Hat build of OptaPlanner on Red Hat build of Quarkus: a vaccination appointment scheduler quick start guide" Collapse section "11. Red Hat build of OptaPlanner on Red Hat build of Quarkus: a vaccination appointment scheduler quick start guide" 11.1. How the OptaPlanner vaccination appointment scheduler works Expand section "11.1. How the OptaPlanner vaccination appointment scheduler works" Collapse section "11.1. How the OptaPlanner vaccination appointment scheduler works" 11.1.1. OptaPlanner vaccination appointment scheduler constraints 11.1.2. The OptaPlanner solver 11.1.3. Continuous planning 11.1.4. Pinned planning entities 11.2. Downloading and running the OptaPlanner vaccination appointment scheduler 11.3. Package and run the OptaPlanner vaccination appointment scheduler 11.4. Run the OptaPlanner vaccination appointment scheduler as a native executable 11.5. Additional resources 12. Red Hat build of OptaPlanner on Spring Boot: a school timetable quick start guide Expand section "12. Red Hat build of OptaPlanner on Spring Boot: a school timetable quick start guide" Collapse section "12. Red Hat build of OptaPlanner on Spring Boot: a school timetable quick start guide" 12.1. Downloading and building the Spring Boot school timetable quick start 12.2. Model the domain objects 12.3. Define the constraints and calculate the score 12.4. Gather the domain objects in a planning solution 12.5. Create the Timetable service 12.6. Set the solver termination time 12.7. Make the application executable Expand section "12.7. Make the application executable" Collapse section "12.7. Make the application executable" 12.7.1. Try the timetable application 12.7.2. Test the application 12.7.3. Logging 12.8. Add Database and UI integration 12.9. Using Micrometer and Prometheus to monitor your school timetable OptaPlanner Spring Boot application 13. Red Hat build of OptaPlanner and Java: a school timetable quickstart guide Expand section "13. Red Hat build of OptaPlanner and Java: a school timetable quickstart guide" Collapse section "13. Red Hat build of OptaPlanner and Java: a school timetable quickstart guide" 13.1. Create the Maven or Gradle build file and add dependencies 13.2. Model the domain objects 13.3. Define the constraints and calculate the score 13.4. Gather the domain objects in a planning solution 13.5. The TimeTableApp.java class 13.6. Create and run the school timetable application 13.7. Test the application Expand section "13.7. Test the application" Collapse section "13.7. Test the application" 13.7.1. Test the school timetable constraints 13.7.2. Test the school timetable solver 13.8. Logging 13.9. Using Micrometer and Prometheus to monitor your school timetable OptaPlanner Java application V. Red Hat build of OptaPlanner starter applications Expand section "V. Red Hat build of OptaPlanner starter applications" Collapse section "V. Red Hat build of OptaPlanner starter applications" 14. Using Red Hat build of OptaPlanner in an IDE: an employee rostering example Expand section "14. Using Red Hat build of OptaPlanner in an IDE: an employee rostering example" Collapse section "14. Using Red Hat build of OptaPlanner in an IDE: an employee rostering example" 14.1. Overview of the employee rostering starter application 14.2. Building and running the employee rostering starter application Expand section "14.2. Building and running the employee rostering starter application" Collapse section "14.2. Building and running the employee rostering starter application" 14.2.1. Preparing deployment files 14.2.2. Running the Employee Rostering starter application JAR file 14.2.3. Building and running the Employee Rostering starter application using Maven 14.2.4. Building and running the employee rostering starter application with persistent data storage from the command line 14.2.5. Building and running the employee rostering starter application using IntelliJ IDEA 14.3. Overview of the source code of the employee rostering starter application 14.4. Modifying the employee rostering starter application 15. Deploying and using Red Hat build of OptaPlanner in Red Hat OpenShift Container Platform: an employee rostering starter example Expand section "15. Deploying and using Red Hat build of OptaPlanner in Red Hat OpenShift Container Platform: an employee rostering starter example" Collapse section "15. Deploying and using Red Hat build of OptaPlanner in Red Hat OpenShift Container Platform: an employee rostering starter example" 15.1. Overview of the employee rostering starter application 15.2. Installing and starting the employee rostering starter application on OpenShift Expand section "15.2. Installing and starting the employee rostering starter application on OpenShift" Collapse section "15.2. Installing and starting the employee rostering starter application on OpenShift" 15.2.1. Deploying the application using the provided script 15.3. Using the employee rostering starter application Expand section "15.3. Using the employee rostering starter application" Collapse section "15.3. Using the employee rostering starter application" 15.3.1. The draft and published periods 15.3.2. The rotation pattern 15.3.3. Employee Rostering tenants Expand section "15.3.3. Employee Rostering tenants" Collapse section "15.3.3. Employee Rostering tenants" 15.3.3.1. Changing an Employee Rostering tenant 15.3.3.2. Creating a tenant 15.3.4. Entering skills 15.3.5. Entering spots 15.3.6. Entering the list of contracts 15.3.7. Entering the list of employees 15.3.8. Setting employee availability 15.3.9. Viewing and editing shifts in the shift roster 15.3.10. Creating and viewing the employee shift roster 15.3.11. Viewing employee shifts 15.3.12. Publishing the shift roster 15.3.13. Viewing and editing the rotation pattern 16. Deploying and using the Red Hat build of OptaPlanner vehicle route planning starter application Expand section "16. Deploying and using the Red Hat build of OptaPlanner vehicle route planning starter application" Collapse section "16. Deploying and using the Red Hat build of OptaPlanner vehicle route planning starter application" 16.1. What is OptaWeb Vehicle Routing? 16.2. Download and build the OptaWeb Vehicle Routing deployment files 16.3. Run OptaWeb Vehicle Routing locally using the runLocally.sh script Expand section "16.3. Run OptaWeb Vehicle Routing locally using the runLocally.sh script" Collapse section "16.3. Run OptaWeb Vehicle Routing locally using the runLocally.sh script" 16.3.1. Run the OptaWeb Vehicle Routing runLocally.sh script in quick start mode 16.3.2. Run the OptaWeb Vehicle Routing runLocally.sh script in interactive mode 16.3.3. Run the OptaWeb Vehicle Routing runLocally.sh script in non-interactive mode 16.3.4. Update the data directory 16.4. Configure and run OptaWeb Vehicle Routing manually 16.5. Run OptaWeb Vehicle Routing on Red Hat OpenShift Container Platform Expand section "16.5. Run OptaWeb Vehicle Routing on Red Hat OpenShift Container Platform" Collapse section "16.5. Run OptaWeb Vehicle Routing on Red Hat OpenShift Container Platform" 16.5.1. Updating the deployed OptaWeb Vehicle Routing application with local changes 16.6. Using OptaWeb Vehicle Routing Expand section "16.6. Using OptaWeb Vehicle Routing" Collapse section "16.6. Using OptaWeb Vehicle Routing" 16.6.1. Creating a route 16.6.2. Viewing and setting other details 16.6.3. Creating custom data sets with OptaWeb Vehicle Routing 16.6.4. Troubleshooting OptaWeb Vehicle Routing 16.7. OptaWeb Vehicle Routing development guide Expand section "16.7. OptaWeb Vehicle Routing development guide" Collapse section "16.7. OptaWeb Vehicle Routing development guide" 16.7.1. OptaWeb Vehicle Routing project structure 16.7.2. The OptaWeb Vehicle Routing back-end module Expand section "16.7.2. The OptaWeb Vehicle Routing back-end module" Collapse section "16.7.2. The OptaWeb Vehicle Routing back-end module" 16.7.2.1. Running the OptaWeb Vehicle Routing back-end module 16.7.2.2. Running the OptaWeb Vehicle Routing back-end module from IntelliJ IDEA Ultimate 16.7.2.3. Quarkus development mode 16.7.2.4. Changing OptaWeb Vehicle Routing back-end module system property values 16.7.2.5. OptaWeb Vehicle Routing backend logging 16.7.3. Working with the OptaWeb Vehicle Routing front-end module 16.8. OptaWeb Vehicle Routing back-end architecture Expand section "16.8. OptaWeb Vehicle Routing back-end architecture" Collapse section "16.8. OptaWeb Vehicle Routing back-end architecture" 16.8.1. Code organization 16.8.2. Dependency rules 16.8.3. The domain package 16.8.4. The service package 16.8.5. The plugin package 16.9. OptaWeb Vehicle Routing back-end configuration properties A. Versioning information B. Contact information Legal Notice Settings Close Language: 日本語 简体中文 English Language: 日本語 简体中文 English Format: Multi-page Single-page PDF Format: Multi-page Single-page PDF Language and Page Formatting Options Language: 日本語 简体中文 English Language: 日本語 简体中文 English Format: Multi-page Single-page PDF Format: Multi-page Single-page PDF Appendix A. Versioning information Documentation last updated on Wednesday, February 1, 2023. Previous Next