Overview
This course uses a practical approach to teaching OptaPlanner. It provides participants with the tools needed to perform the basic functions of this tool.
Course Outline
Planner introduction
- What is OptaPlanner?
- What is a planning problem?
- Use Cases and examples
Bin Packaging Problem Example
- Problem statement
- Problem size
- Domain model diagram
- Main method
- Solver configuration
- Domain model implementation
- Score configuration
Travelling Salesman Problem (TSP)
- Problem statement
- Problem size
- Domain model
- Main method
- Chaining
- Solver configuration
- Domain model implementation
- Score configuration
Planner configuration
- Overview
- Solver configuration
- Model your planning problem
- Use the Solver
Score calculation
- Score terminology
- Choose a Score definition
- Calculate the Score
- Score calculation performance tricks
- Reusing the Score calculation outside the Solver
Optimization algorithms
- Search space size in the real world
- Does Planner find the optimal solution?
- Architecture overview
- Optimization algorithms overview
- Which optimization algorithms should I use?
- SolverPhase
- Scope overview
- Termination
- SolverEventListener
- Custom SolverPhase
Move and neighborhood selection
- Move and neighborhood introduction
- Generic Move Selectors
- Combining multiple MoveSelectors
- EntitySelector
- ValueSelector
- General Selector features
- Custom moves
Construction heuristics
- First Fit
- Best Fit
- Advanced Greedy Fit
- the Cheapest insertion
- Regret insertion
Local search
- Local Search concepts
- Hill Climbing (Simple Local Search)
- Tabu Search
- Simulated Annealing
- Late Acceptance
- Step counting hill climbing
- Late Simulated Annealing (experimental)
- Using a custom Termination, MoveSelector, EntitySelector, ValueSelector or Acceptor
Evolutionary algorithms
- Evolutionary Strategies
- Genetic Algorithms
Hyperheuristics
Exact methods
- Brute Force
- Depth-first Search
Benchmarking and tweaking
- Finding the best Solver configuration
- Doing a benchmark
- Benchmark report
- Summary statistics
- Statistics per dataset (graph and CSV)
- Advanced benchmarking
Repeated planning
- Introduction to repeated planning
- Backup planning
- Continuous planning (windowed planning)
- Real-time planning (event based planning)
Drools
- Short introduction to Drools
- Writing Score Function in Drools
Integration
- Overview
- Persistent storage
- SOA and ESB
- Other environment