Conversation
triceo
left a comment
There was a problem hiding this comment.
Minor comments. The bulk of the comments will be in Enterprise.
.../config/heuristic/selector/move/generic/list/AdvancedListRuinRecreateMoveSelectorConfig.java
Outdated
Show resolved
Hide resolved
.../config/heuristic/selector/move/generic/list/AdvancedListRuinRecreateMoveSelectorConfig.java
Outdated
Show resolved
Hide resolved
|
@Christopher-Chianelli Please remember to write documentation. I'd probably add this to the section about moves, add a disclaimer that it's an enterprise feature, and reference it in the enterprise section. |
core/src/main/java/ai/timefold/solver/core/enterprise/TimefoldSolverEnterpriseService.java
Outdated
Show resolved
Hide resolved
|
Good to go when CI is green, @Christopher-Chianelli. |
There was a problem hiding this comment.
Pull request overview
This PR introduces a new "Multistage Moves" feature as an enhanced ruin-and-recreate capability for Timefold Solver Enterprise Edition. The feature allows users to compose moves from multiple stages, where each stage can evaluate potential moves before execution.
- Adds two new move selectors:
MultistageMoveSelectorfor basic variables andListMultistageMoveSelectorfor list variables - Provides comprehensive documentation with code examples showing how to implement stage providers
- Updates XML schemas to support the new configuration options
Reviewed changes
Copilot reviewed 20 out of 20 changed files in this pull request and generated 12 comments.
Show a summary per file
| File | Description |
|---|---|
| docs/src/modules/ROOT/pages/optimization-algorithms/move-selector-reference.adoc | Adds documentation for multistageMoveSelector and listMultistageMoveSelector with configuration examples |
| docs/src/modules/ROOT/pages/enterprise-edition/enterprise-edition.adoc | Documents the Multistage Moves enterprise feature with overview and references |
| core/src/main/resources/solver.xsd | Adds XSD schema definitions for the new move selectors (contains critical naming issues) |
| benchmark/src/main/resources/benchmark.xsd | Adds benchmark XSD schema definitions for the new move selectors |
| core/src/main/java/ai/timefold/solver/core/config/heuristic/selector/move/generic/MultistageMoveSelectorConfig.java | New configuration class for basic variable multistage moves |
| core/src/main/java/ai/timefold/solver/core/config/heuristic/selector/move/generic/list/ListMultistageMoveSelectorConfig.java | New configuration class for list variable multistage moves |
| core/src/main/java/ai/timefold/solver/core/impl/heuristic/selector/move/MoveSelectorFactory.java | Integrates new move selector configs with enterprise service |
| core/src/main/java/ai/timefold/solver/core/enterprise/TimefoldSolverEnterpriseService.java | Adds enterprise service methods and feature enum for multistage moves |
| core/src/main/java/ai/timefold/solver/core/config/localsearch/LocalSearchPhaseConfig.java | Registers new move selector configs in XML binding |
| core/src/main/java/ai/timefold/solver/core/config/heuristic/selector/move/composite/UnionMoveSelectorConfig.java | Adds new move selectors to union composite |
| core/src/main/java/ai/timefold/solver/core/config/heuristic/selector/move/composite/CartesianProductMoveSelectorConfig.java | Adds new move selectors to cartesian product composite |
| core/src/main/java/ai/timefold/solver/core/impl/score/director/InnerScoreDirector.java | Adds generic type parameters to getListVariableStateSupply |
| core/src/main/java/ai/timefold/solver/core/impl/score/director/AbstractScoreDirector.java | Implements generic type parameters with proper casting |
| core/src/main/java/ai/timefold/solver/core/impl/domain/variable/descriptor/VariableDescriptor.java | Adds generic type parameters to getVariableMetaModel |
| core/src/main/java/ai/timefold/solver/core/impl/domain/variable/descriptor/ListVariableDescriptor.java | Overrides getVariableMetaModel with proper return type |
| core/src/main/java/ai/timefold/solver/core/impl/domain/variable/descriptor/BasicVariableDescriptor.java | Overrides getVariableMetaModel with proper return type |
| core/src/main/java/ai/timefold/solver/core/preview/api/move/SolutionView.java | Reformats method signature for better readability |
| core/src/main/java/ai/timefold/solver/core/impl/neighborhood/maybeapi/move/Moves.java | Reorders parameters in unassign methods for consistency |
| core/src/main/java/ai/timefold/solver/core/impl/move/director/MoveDirector.java | Reformats method signature for better readability |
| core/src/test/java/ai/timefold/solver/core/testdomain/list/TestdataListUtils.java | Reformats method signature for better readability |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
...imefold/solver/core/config/heuristic/selector/move/generic/MultistageMoveSelectorConfig.java
Show resolved
Hide resolved
...olver/core/config/heuristic/selector/move/generic/list/ListMultistageMoveSelectorConfig.java
Show resolved
Hide resolved
1bcc11a to
6012f46
Compare
|


No description provided.