Jump To Close Expand all Collapse all Table of contents Business Resource Planner Guide 1. Business Resource Planner Introduction Expand section "1. Business Resource Planner Introduction" Collapse section "1. Business Resource Planner Introduction" 1.1. What is Business Resource Planner 1.2. Download Business Resource Planner 1.3. Run the Examples 2. Quick Start Expand section "2. Quick Start" Collapse section "2. Quick Start" 2.1. Cloud Balancing Tutorial Expand section "2.1. Cloud Balancing Tutorial" Collapse section "2.1. Cloud Balancing Tutorial" 2.1.1. Problem Description 2.1.2. Problem Size 2.1.3. Domain Model Design 2.1.4. Main Method 2.1.5. Solver Configuration 2.1.6. Domain Model Implementation Expand section "2.1.6. Domain Model Implementation" Collapse section "2.1.6. Domain Model Implementation" 2.1.6.1. The Computer Class 2.1.6.2. The Process Class 2.1.6.3. The CloudBalance Class 2.1.7. Score Configuration Expand section "2.1.7. Score Configuration" Collapse section "2.1.7. Score Configuration" 2.1.7.1. Easy Java Score Configuration 2.1.7.2. Drools Score Configuration 2.1.8. Beyond this Tutorial 3. Use Cases and Examples Expand section "3. Use Cases and Examples" Collapse section "3. Use Cases and Examples" 3.1. Examples Overview 3.2. Basic Examples Expand section "3.2. Basic Examples" Collapse section "3.2. Basic Examples" 3.2.1. N Queens Expand section "3.2.1. N Queens" Collapse section "3.2.1. N Queens" 3.2.1.1. Problem Description 3.2.1.2. Problem Size 3.2.1.3. Domain Model 3.2.2. Cloud Balancing 3.2.3. Traveling Salesman (TSP - Traveling Salesman Problem) Expand section "3.2.3. Traveling Salesman (TSP - Traveling Salesman Problem)" Collapse section "3.2.3. Traveling Salesman (TSP - Traveling Salesman Problem)" 3.2.3.1. Problem Description 3.2.3.2. Problem Size 3.2.3.3. Problem Difficulty 3.2.4. Dinner Party Expand section "3.2.4. Dinner Party" Collapse section "3.2.4. Dinner Party" 3.2.4.1. Problem Description 3.2.4.2. Problem Size 3.2.5. Tennis Club Scheduling Expand section "3.2.5. Tennis Club Scheduling" Collapse section "3.2.5. Tennis Club Scheduling" 3.2.5.1. Problem Description 3.2.5.2. Problem Size 3.2.5.3. Domain Model 3.2.6. Meeting Scheduling Expand section "3.2.6. Meeting Scheduling" Collapse section "3.2.6. Meeting Scheduling" 3.2.6.1. Problem Description 3.2.6.2. Problem Size 3.3. Real Examples Expand section "3.3. Real Examples" Collapse section "3.3. Real Examples" 3.3.1. Course Timetabling (ITC 2007 Track 3 - Curriculum Course Scheduling) Expand section "3.3.1. Course Timetabling (ITC 2007 Track 3 - Curriculum Course Scheduling)" Collapse section "3.3.1. Course Timetabling (ITC 2007 Track 3 - Curriculum Course Scheduling)" 3.3.1.1. Problem Description 3.3.1.2. Problem Size 3.3.1.3. Domain Model 3.3.2. Machine Reassignment (Google ROADEF 2012) Expand section "3.3.2. Machine Reassignment (Google ROADEF 2012)" Collapse section "3.3.2. Machine Reassignment (Google ROADEF 2012)" 3.3.2.1. Problem Description 3.3.2.2. Problem Size 3.3.2.3. Domain Model 3.3.3. Vehicle Routing Expand section "3.3.3. Vehicle Routing" Collapse section "3.3.3. Vehicle Routing" 3.3.3.1. Problem Description 3.3.3.2. Problem Size 3.3.3.3. Domain Model 3.3.3.4. Road Distances Instead of Air Distances 3.3.4. Project Job Scheduling Expand section "3.3.4. Project Job Scheduling" Collapse section "3.3.4. Project Job Scheduling" 3.3.4.1. Problem Description 3.3.4.2. Problem Size 3.3.5. Hospital Bed Planning (PAS - Patient Admission Scheduling) Expand section "3.3.5. Hospital Bed Planning (PAS - Patient Admission Scheduling)" Collapse section "3.3.5. Hospital Bed Planning (PAS - Patient Admission Scheduling)" 3.3.5.1. Problem Description 3.3.5.2. Problem Size 3.3.5.3. Domain Model 3.4. Difficult Examples Expand section "3.4. Difficult Examples" Collapse section "3.4. Difficult Examples" 3.4.1. Exam Timetabling (ITC 2007 track 1 - Examination) Expand section "3.4.1. Exam Timetabling (ITC 2007 track 1 - Examination)" Collapse section "3.4.1. Exam Timetabling (ITC 2007 track 1 - Examination)" 3.4.1.1. Problem Description 3.4.1.2. Problem Size 3.4.1.3. Domain Model 3.4.2. Employee Rostering (INRC 2010 - Nurse Rostering) Expand section "3.4.2. Employee Rostering (INRC 2010 - Nurse Rostering)" Collapse section "3.4.2. Employee Rostering (INRC 2010 - Nurse Rostering)" 3.4.2.1. Problem Description 3.4.2.2. Problem Size 3.4.2.3. Domain Model 3.4.3. Traveling Tournament Problem (TTP) Expand section "3.4.3. Traveling Tournament Problem (TTP)" Collapse section "3.4.3. Traveling Tournament Problem (TTP)" 3.4.3.1. Problem Description 3.4.3.2. Problem Size 3.4.4. Cheap Time Scheduling Expand section "3.4.4. Cheap Time Scheduling" Collapse section "3.4.4. Cheap Time Scheduling" 3.4.4.1. Problem Description 3.4.4.2. Problem Size 3.4.5. Investment asset class allocation (portfolio optimization) Expand section "3.4.5. Investment asset class allocation (portfolio optimization)" Collapse section "3.4.5. Investment asset class allocation (portfolio optimization)" 3.4.5.1. Problem Description 3.4.5.2. Problem Size 4. Planner Configuration Expand section "4. Planner Configuration" Collapse section "4. Planner Configuration" 4.1. Overview 4.2. Solver Configuration Expand section "4.2. Solver Configuration" Collapse section "4.2. Solver Configuration" 4.2.1. Solver Configuration by XML 4.2.2. Solver Configuration by Java API 4.2.3. Solver Configuration in Business Central 4.2.4. Annotations Configuration Expand section "4.2.4. Annotations Configuration" Collapse section "4.2.4. Annotations Configuration" 4.2.4.1. Automatic Scanning for Annotations 4.2.4.2. Annotation Alternatives 4.3. Model a Planning Problem Expand section "4.3. Model a Planning Problem" Collapse section "4.3. Model a Planning Problem" 4.3.1. Is This Class a Problem Fact or Planning Entity? 4.3.2. Problem Fact 4.3.3. Planning Entity Expand section "4.3.3. Planning Entity" Collapse section "4.3.3. Planning Entity" 4.3.3.1. Planning Entity Annotation 4.3.3.2. Planning Entity Difficulty 4.3.4. Planning Variable Expand section "4.3.4. Planning Variable" Collapse section "4.3.4. Planning Variable" 4.3.4.1. Planning Variable Annotation 4.3.4.2. Nullable Planning Variable 4.3.4.3. When is a Planning Variable Considered Initialized? 4.3.5. Planning Value and Planning Value Range Expand section "4.3.5. Planning Value and Planning Value Range" Collapse section "4.3.5. Planning Value and Planning Value Range" 4.3.5.1. Planning Value 4.3.5.2. Planning Value Range Provider Expand section "4.3.5.2. Planning Value Range Provider" Collapse section "4.3.5.2. Planning Value Range Provider" 4.3.5.2.1. Overview 4.3.5.2.2. ValueRangeProvider on the Solution 4.3.5.2.3. ValueRangeProvider on the Planning Entity 4.3.5.2.4. ValueRangeFactory 4.3.5.2.5. Combine ValueRangeProviders 4.3.5.3. Planning Value Strength 4.3.5.4. Chained Planning Variable (TSP, VRP, …) 4.3.6. Shadow Variable Expand section "4.3.6. Shadow Variable" Collapse section "4.3.6. Shadow Variable" 4.3.6.1. Introduction 4.3.6.2. Bi-directional Variable (Inverse Relation Shadow Variable) 4.3.6.3. Anchor Shadow Variable 4.3.6.4. Custom VariableListener 4.3.6.5. VariableListener triggering order 4.3.7. Planning Problem and Planning Solution Expand section "4.3.7. Planning Problem and Planning Solution" Collapse section "4.3.7. Planning Problem and Planning Solution" 4.3.7.1. Planning Problem Instance 4.3.7.2. Solution Interface 4.3.7.3. Extract the entities from the Solution 4.3.7.4. The getScore() and setScore() Methods 4.3.7.5. The getProblemFacts() Method Expand section "4.3.7.5. The getProblemFacts() Method" Collapse section "4.3.7.5. The getProblemFacts() Method" 4.3.7.5.1. Cached Problem Fact 4.3.7.6. Cloning a Solution Expand section "4.3.7.6. Cloning a Solution" Collapse section "4.3.7.6. Cloning a Solution" 4.3.7.6.1. FieldAccessingSolutionCloner 4.3.7.6.2. Custom Cloning: Make Solution Implement PlanningCloneable 4.3.7.7. Create an Uninitialized Solution 4.4. Use the Solver Expand section "4.4. Use the Solver" Collapse section "4.4. Use the Solver" 4.4.1. The Solver Interface 4.4.2. Solving a Problem 4.4.3. Environment Mode: Are There Bugs in my Code? Expand section "4.4.3. Environment Mode: Are There Bugs in my Code?" Collapse section "4.4.3. Environment Mode: Are There Bugs in my Code?" 4.4.3.1. FULL_ASSERT 4.4.3.2. NON_INTRUSIVE_FULL_ASSERT 4.4.3.3. FAST_ASSERT 4.4.3.4. REPRODUCIBLE (default) 4.4.3.5. PRODUCTION 4.4.4. Logging Level: What is the Solver Doing? 4.4.5. Random Number Generator 5. Score Calculation Expand section "5. Score Calculation" Collapse section "5. Score Calculation" 5.1. Score Terminology Expand section "5.1. Score Terminology" Collapse section "5.1. Score Terminology" 5.1.1. What is a Score? 5.1.2. Score Constraint Signum (Positive or Negative) 5.1.3. Score Constraint Weight 5.1.4. Score Constraint Level (hard, soft, …) 5.1.5. Pareto Scoring (AKA Multi-objective Optimization Scoring) 5.1.6. Combining Score Techniques 5.1.7. Score interface 5.1.8. Avoid Floating Point Numbers in Score Calculation 5.2. Choose a Score Definition Expand section "5.2. Choose a Score Definition" Collapse section "5.2. Choose a Score Definition" 5.2.1. SimpleScore 5.2.2. HardSoftScore (Recommended) 5.2.3. HardMediumSoftScore 5.2.4. BendableScore 5.2.5. Implementing a Custom Score 5.3. Calculate the Score Expand section "5.3. Calculate the Score" Collapse section "5.3. Calculate the Score" 5.3.1. Score Calculation Types 5.3.2. Easy Java Score Calculation 5.3.3. Incremental Java Score Calculation 5.3.4. Drools Score Calculation Expand section "5.3.4. Drools Score Calculation" Collapse section "5.3.4. Drools Score Calculation" 5.3.4.1. Overview 5.3.4.2. Drools Score Rules Configuration Expand section "5.3.4.2. Drools Score Rules Configuration" Collapse section "5.3.4.2. Drools Score Rules Configuration" 5.3.4.2.1. A scoreDrl Resource on the Classpath 5.3.4.2.2. A scoreDrlFile 5.3.4.2.3. A ksessionName in a KJAR from a Maven repository 5.3.4.3. Implementing a Score Rule 5.3.4.4. Weighing Score Rules 5.3.5. InitializingScoreTrend 5.3.6. Invalid Score Detection 5.4. Score Calculation Performance Tricks Expand section "5.4. Score Calculation Performance Tricks" Collapse section "5.4. Score Calculation Performance Tricks" 5.4.1. Overview 5.4.2. Average Calculation Count Per Second 5.4.3. Incremental Score Calculation (with Deltas) 5.4.4. Avoid Calling Remote Services During Score Calculation 5.4.5. Pointless Constraints 5.4.6. Built-in Hard Constraint 5.4.7. Other Score Calculation Performance Tricks 5.4.8. Score Trap 5.4.9. stepLimit Benchmark 5.4.10. Fairness Score Constraints 5.5. Explaining the Score: Using Score Calculation Outside the Solver 6. Optimization Algorithms Expand section "6. Optimization Algorithms" Collapse section "6. Optimization Algorithms" 6.1. Search Space Size in the Real World 6.2. Does Planner Find the Optimal Solution? 6.3. Architecture Overview 6.4. Optimization Algorithms Overview 6.5. Which Optimization Algorithms Should I Use? 6.6. Power tweaking or default parameter values 6.7. Solver Phase 6.8. Scope Overview 6.9. Termination Expand section "6.9. Termination" Collapse section "6.9. Termination" 6.9.1. TimeMillisSpentTermination 6.9.2. UnimprovedTimeMillisSpentTermination 6.9.3. BestScoreTermination 6.9.4. BestScoreFeasibleTermination 6.9.5. StepCountTermination 6.9.6. UnimprovedStepCountTermination 6.9.7. CalculateCountTermination 6.9.8. Combining Multiple Terminations 6.9.9. Asynchronous Termination from Another Thread 6.10. SolverEventListener 6.11. Custom Solver Phase 7. Move and Neighborhood Selection Expand section "7. Move and Neighborhood Selection" Collapse section "7. Move and Neighborhood Selection" 7.1. Move and Neighborhood Introduction Expand section "7.1. Move and Neighborhood Introduction" Collapse section "7.1. Move and Neighborhood Introduction" 7.1.1. What is a Move? 7.1.2. What is a MoveSelector? 7.1.3. Subselecting of Entities, Values and Other Moves 7.2. Generic MoveSelectors Expand section "7.2. Generic MoveSelectors" Collapse section "7.2. Generic MoveSelectors" 7.2.1. changeMoveSelector 7.2.2. swapMoveSelector 7.2.3. pillarChangeMoveSelector 7.2.4. pillarSwapMoveSelector 7.2.5. tailChainSwapMoveSelector or 2-opt (chained variables only) 7.2.6. subChainChangeMoveSelector (chained variables only) 7.2.7. subChainSwapMoveSelector (chained variables only) 7.3. Combining Multiple MoveSelectors Expand section "7.3. Combining Multiple MoveSelectors" Collapse section "7.3. Combining Multiple MoveSelectors" 7.3.1. unionMoveSelector 7.3.2. cartesianProductMoveSelector 7.4. EntitySelector 7.5. ValueSelector 7.6. General Selector Features Expand section "7.6. General Selector Features" Collapse section "7.6. General Selector Features" 7.6.1. CacheType: Create Moves Ahead of Time or Just In Time 7.6.2. SelectionOrder: Original, Sorted, Random, Shuffled or Probabilistic 7.6.3. Recommended Combinations of CacheType and SelectionOrder Expand section "7.6.3. Recommended Combinations of CacheType and SelectionOrder" Collapse section "7.6.3. Recommended Combinations of CacheType and SelectionOrder" 7.6.3.1. Just in Time Random Selection (default) 7.6.3.2. Cached Shuffled Selection 7.6.3.3. Cached Random Selection 7.6.4. Filtered Selection 7.6.5. Sorted Selection Expand section "7.6.5. Sorted Selection" Collapse section "7.6.5. Sorted Selection" 7.6.5.1. Sorted Selection by SorterManner 7.6.5.2. Sorted Selection by Comparator 7.6.5.3. Sorted Selection by SelectionSorterWeightFactory 7.6.5.4. Sorted Selection by SelectionSorter 7.6.6. Probabilistic Selection 7.6.7. Limited Selection 7.6.8. Mimic Selection (Record/Replay) 7.6.9. Nearby Selection 7.7. Custom Moves Expand section "7.7. Custom Moves" Collapse section "7.7. Custom Moves" 7.7.1. Which Move Types Might be Missing in my Implementation? 7.7.2. Custom Moves Introduction 7.7.3. The Move Interface 7.7.4. MoveListFactory: the Easy Way to Generate Custom Moves 7.7.5. MoveIteratorFactory: Generate Custom Moves Just in Time 8. Exhaustive Search Expand section "8. Exhaustive Search" Collapse section "8. Exhaustive Search" 8.1. Overview 8.2. Brute Force Expand section "8.2. Brute Force" Collapse section "8.2. Brute Force" 8.2.1. Algorithm Description 8.2.2. Configuration 8.3. Branch And Bound Expand section "8.3. Branch And Bound" Collapse section "8.3. Branch And Bound" 8.3.1. Algorithm Description 8.3.2. Configuration 8.4. Scalability of Exhaustive Search 9. Construction Heuristics Expand section "9. Construction Heuristics" Collapse section "9. Construction Heuristics" 9.1. Overview 9.2. First Fit Expand section "9.2. First Fit" Collapse section "9.2. First Fit" 9.2.1. Algorithm Description 9.2.2. Configuration 9.3. First Fit Decreasing Expand section "9.3. First Fit Decreasing" Collapse section "9.3. First Fit Decreasing" 9.3.1. Algorithm Description 9.3.2. Configuration 9.4. Weakest Fit Expand section "9.4. Weakest Fit" Collapse section "9.4. Weakest Fit" 9.4.1. Algorithm Description 9.4.2. Configuration 9.5. Weakest Fit Decreasing Expand section "9.5. Weakest Fit Decreasing" Collapse section "9.5. Weakest Fit Decreasing" 9.5.1. Algorithm Description 9.5.2. Configuration 9.6. Strongest Fit Expand section "9.6. Strongest Fit" Collapse section "9.6. Strongest Fit" 9.6.1. Algorithm Description 9.6.2. Configuration 9.7. Strongest Fit Decreasing Expand section "9.7. Strongest Fit Decreasing" Collapse section "9.7. Strongest Fit Decreasing" 9.7.1. Algorithm Description 9.7.2. Configuration 9.8. Allocate Entity From Queue Expand section "9.8. Allocate Entity From Queue" Collapse section "9.8. Allocate Entity From Queue" 9.8.1. Algorithm Description 9.8.2. Configuration 9.8.3. Multiple Variables 9.8.4. Multiple Entity Classes 9.8.5. Pick Early Type 9.9. Allocate To Value From Queue Expand section "9.9. Allocate To Value From Queue" Collapse section "9.9. Allocate To Value From Queue" 9.9.1. Algorithm Description 9.9.2. Configuration 9.10. Cheapest Insertion Expand section "9.10. Cheapest Insertion" Collapse section "9.10. Cheapest Insertion" 9.10.1. Algorithm Description 9.10.2. Configuration 9.11. Regret Insertion Expand section "9.11. Regret Insertion" Collapse section "9.11. Regret Insertion" 9.11.1. Algorithm Description 9.11.2. Configuration 9.12. Allocate From Pool Expand section "9.12. Allocate From Pool" Collapse section "9.12. Allocate From Pool" 9.12.1. Algorithm Description 9.12.2. Configuration 10. Local Search Expand section "10. Local Search" Collapse section "10. Local Search" 10.1. Overview 10.2. Local Search Concepts Expand section "10.2. Local Search Concepts" Collapse section "10.2. Local Search Concepts" 10.2.1. Step by Step 10.2.2. Decide the Next Step 10.2.3. Acceptor 10.2.4. Forager Expand section "10.2.4. Forager" Collapse section "10.2.4. Forager" 10.2.4.1. Accepted Count Limit 10.2.4.2. Pick Early Type 10.3. Hill Climbing (Simple Local Search) Expand section "10.3. Hill Climbing (Simple Local Search)" Collapse section "10.3. Hill Climbing (Simple Local Search)" 10.3.1. Algorithm Description 10.3.2. Stuck in Local Optima 10.3.3. Configuration 10.4. Tabu Search Expand section "10.4. Tabu Search" Collapse section "10.4. Tabu Search" 10.4.1. Algorithm Description 10.4.2. Configuration 10.5. Simulated Annealing Expand section "10.5. Simulated Annealing" Collapse section "10.5. Simulated Annealing" 10.5.1. Algorithm Description 10.5.2. Configuration 10.6. Late Acceptance Expand section "10.6. Late Acceptance" Collapse section "10.6. Late Acceptance" 10.6.1. Algorithm Description 10.6.2. Configuration 10.7. Step Counting Hill Climbing Expand section "10.7. Step Counting Hill Climbing" Collapse section "10.7. Step Counting Hill Climbing" 10.7.1. Algorithm Description 10.7.2. Configuration 10.8. Strategic Oscillation Expand section "10.8. Strategic Oscillation" Collapse section "10.8. Strategic Oscillation" 10.8.1. Algorithm Description 10.8.2. Configuration 10.9. Using a Custom Termination, MoveSelector, EntitySelector, ValueSelector or Acceptor 11. Evolutionary Algorithms Expand section "11. Evolutionary Algorithms" Collapse section "11. Evolutionary Algorithms" 11.1. Overview 11.2. Evolutionary Strategies 11.3. Genetic Algorithms 12. Hyperheuristics Expand section "12. Hyperheuristics" Collapse section "12. Hyperheuristics" 12.1. Overview 13. Partitioned Search Expand section "13. Partitioned Search" Collapse section "13. Partitioned Search" 13.1. Overview 14. Benchmarking And Tweaking Expand section "14. Benchmarking And Tweaking" Collapse section "14. Benchmarking And Tweaking" 14.1. Find The Best Solver Configuration 14.2. Benchmark Configuration Expand section "14.2. Benchmark Configuration" Collapse section "14.2. Benchmark Configuration" 14.2.1. Add Dependency On optaplanner-benchmark 14.2.2. Build And Run A PlannerBenchmark Expand section "14.2.2. Build And Run A PlannerBenchmark" Collapse section "14.2.2. Build And Run A PlannerBenchmark" 14.2.2.1. Inherited solver benchmark 14.2.3. SolutionFileIO: Input And Output Of Solution Files Expand section "14.2.3. SolutionFileIO: Input And Output Of Solution Files" Collapse section "14.2.3. SolutionFileIO: Input And Output Of Solution Files" 14.2.3.1. SolutionFileIO Interface 14.2.3.2. XStreamSolutionFileIO: The Default SolutionFileIO 14.2.3.3. Custom SolutionFileIO 14.2.3.4. Reading An Input Solution From A Database (Or Other Repository) 14.2.4. Warming Up The HotSpot Compiler 14.2.5. Benchmark Blueprint: A Predefined Configuration 14.2.6. Write The Output Solution Of Benchmark Runs 14.2.7. Benchmark Logging 14.3. Benchmark Report Expand section "14.3. Benchmark Report" Collapse section "14.3. Benchmark Report" 14.3.1. HTML Report 14.3.2. Ranking The Solvers 14.4. Summary Statistics Expand section "14.4. Summary Statistics" Collapse section "14.4. Summary Statistics" 14.4.1. Best Score Summary (Graph And Table) 14.4.2. Best Score Scalability Summary (Graph) 14.4.3. Best Score Distribution Summary (Graph) 14.4.4. Winning Score Difference Summary (Graph And Table) 14.4.5. Worst Score Difference Percentage (ROI) Summary (Graph and Table) 14.4.6. Average Calculation Count Summary (Graph and Table) 14.4.7. Time Spent Summary (Graph And Table) 14.4.8. Time Spent Scalability Summary (Graph) 14.4.9. Best Score Per Time Spent Summary (Graph) 14.5. Statistic Per Dataset (Graph And CSV) Expand section "14.5. Statistic Per Dataset (Graph And CSV)" Collapse section "14.5. Statistic Per Dataset (Graph And CSV)" 14.5.1. Enable A Problem Statistic 14.5.2. Best Score Over Time Statistic (Graph And CSV) 14.5.3. Step Score Over Time Statistic (Graph And CSV) 14.5.4. Calculate Count Per Second Statistic (Graph And CSV) 14.5.5. Best Solution Mutation Over Time Statistic (Graph And CSV) 14.5.6. Move Count Per Step Statistic (Graph And CSV) 14.5.7. Memory Use Statistic (Graph And CSV) 14.6. Statistic Per Single Benchmark (Graph And CSV) Expand section "14.6. Statistic Per Single Benchmark (Graph And CSV)" Collapse section "14.6. Statistic Per Single Benchmark (Graph And CSV)" 14.6.1. Enable A Single Statistic 14.6.2. Constraint Match Total Best Score Over Time Statistic (Graph And CSV) 14.6.3. Constraint Match Total Step Score Over Time Statistic (Graph And CSV) 14.6.4. Picked Move Type Best Score Diff Over Time Statistic (Graph And CSV) 14.6.5. Picked Move Type Step Score Diff Over Time Statistic (Graph And CSV) 14.7. Advanced Benchmarking Expand section "14.7. Advanced Benchmarking" Collapse section "14.7. Advanced Benchmarking" 14.7.1. Benchmarking Performance Tricks Expand section "14.7.1. Benchmarking Performance Tricks" Collapse section "14.7.1. Benchmarking Performance Tricks" 14.7.1.1. Parallel Benchmarking On Multiple Threads 14.7.2. Statistical Benchmarking 14.7.3. Template Based Benchmarking And Matrix Benchmarking 14.7.4. Benchmark Report Aggregation 15. Repeated Planning Expand section "15. Repeated Planning" Collapse section "15. Repeated Planning" 15.1. Introduction to Repeated Planning 15.2. Backup Planning 15.3. Overconstrained Planning 15.4. Continuous Planning (Windowed Planning) Expand section "15.4. Continuous Planning (Windowed Planning)" Collapse section "15.4. Continuous Planning (Windowed Planning)" 15.4.1. Immovable Planning Entities 15.4.2. Nonvolatile Replanning to minimize disruption (Semi-movable Planning Entities) 15.5. Real-time Planning Expand section "15.5. Real-time Planning" Collapse section "15.5. Real-time Planning" 15.5.1. ProblemFactChange 15.5.2. Daemon: solve() Does Not Return 16. Integration Expand section "16. Integration" Collapse section "16. Integration" 16.1. Overview 16.2. Persistent Storage Expand section "16.2. Persistent Storage" Collapse section "16.2. Persistent Storage" 16.2.1. Database: JPA and Hibernate Expand section "16.2.1. Database: JPA and Hibernate" Collapse section "16.2.1. Database: JPA and Hibernate" 16.2.1.1. JPA and Hibernate: Persisting a Score 16.2.1.2. JPA and Hibernate: Planning Cloning 16.2.2. XML or JSON: XStream Expand section "16.2.2. XML or JSON: XStream" Collapse section "16.2.2. XML or JSON: XStream" 16.2.2.1. XStream: Marshalling a Score 16.2.3. XML or JSON: JAXB 16.3. SOA and ESB Expand section "16.3. SOA and ESB" Collapse section "16.3. SOA and ESB" 16.3.1. Camel and Karaf 16.4. Other Environments Expand section "16.4. Other Environments" Collapse section "16.4. Other Environments" 16.4.1. JBoss Modules, WildFly and JBoss EAP 16.4.2. OSGi 16.4.3. Android 16.5. Integration with Human Planners (Politics) 17. Design Patterns Expand section "17. Design Patterns" Collapse section "17. Design Patterns" 17.1. Design Patterns Introduction 17.2. Assigning Time to Planning Entities Expand section "17.2. Assigning Time to Planning Entities" Collapse section "17.2. Assigning Time to Planning Entities" 17.2.1. Timeslot Pattern: Assign to a Fixed-Length Timeslot 17.2.2. TimeGrain Pattern: Assign to a Starting TimeGrain 17.2.3. Chained Through Time Pattern: Assign in a Chain that Determines Starting Time 17.3. Multi-stage planning 18. Development Expand section "18. Development" Collapse section "18. Development" 18.1. Methodology Overview 18.2. Development guidelines 19. Migration Guide Expand section "19. Migration Guide" Collapse section "19. Migration Guide" 19.1. About the Business Resource Planner Migration 19.2. Planning Values and Value Ranges Expand section "19.2. Planning Values and Value Ranges" Collapse section "19.2. Planning Values and Value Ranges" 19.2.1. ValueRangeProvider 19.2.2. Planning Variables 19.3. Benchmark Expand section "19.3. Benchmark" Collapse section "19.3. Benchmark" 19.3.1. SolutionFileIO 19.4. Solver Configuration 19.5. Optimization Expand section "19.5. Optimization" Collapse section "19.5. Optimization" 19.5.1. Termination 19.5.2. Events 19.5.3. Score Trends 19.5.4. Score Calculator 20. Realtime Decision Server Functionality Expand section "20. Realtime Decision Server Functionality" Collapse section "20. Realtime Decision Server Functionality" 20.1. Introduction 20.2. Business Resource Planner REST API Expand section "20.2. Business Resource Planner REST API" Collapse section "20.2. Business Resource Planner REST API" 20.2.1. [GET] /containers/{containerId}/solvers 20.2.2. [PUT] /containers/{containerId}/solvers/{solverId} 20.2.3. [GET] /containers/{containerId}/solvers/{solverId} 20.2.4. Start solving 20.2.5. Terminate solving 20.2.6. [GET] /containers/{containerId}/solvers/{solverId}/bestsolution 20.2.7. [DELETE] /containers/{containerId}/solvers/{solverId} A. Versioning 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: Monday, May 13, 2019. Previous Next