Multistage Moves
| This feature is exclusive to Timefold Solver Enterprise Edition. |
Multistage moves are moves composed of one or more stages, where each stage selects a single Move to execute.
Each stage has access to either a BasicVariableMoveEvaluator or a ListVariableMoveEvaluator, which allows the stage to evaluate moves without executing them.
Stages are selected from either a BasicVariableStageProvider or a ListVariableStageProvider, which is initialized from the working solution at phase start.
Multistage moves are configured from either a MultistageMoveSelectorConfig or a ListMultistageMoveSelectorConfig.
Multistage moves are useful for creating specialized ruin-and-recreate moves where the valid values that won’t violate hard constraints can be determined in advance.