<constructionHeuristic>
<constructionHeuristicType>FIRST_FIT</constructionHeuristicType>
</constructionHeuristic>
<localSearch>
<localSearchType>TABU_SEARCH</localSearchType>
</localSearch>
之前,我使用solver.xml 文件来配置求解器。然而,现在时间折叠中有一些方法允许我们使用 Java 配置求解器。如何将配置合并到下面的代码中?
`var solverConfig= new SolverConfig()
.withSolutionClass(EventBinAssignation.class)
.withEntityClasses(Event.class)
.withEntityClasses(BinAvailablity.class)
.withConstraintProviderClass(OptaPlannerConstraintProvider.class)
// The solver runs only for 5 seconds on this small dataset.
// It's recommended to run for at least 5 minutes ("5m") otherwise.
.withTerminationSpentLimit(Duration.ofSeconds(5));
SolverFactory<EventBinAssignation> solverFactory = SolverFactory.create(solverConfig);
`
我无法找到方法来添加本地搜索和构造启发式的配置
我认为你应该这样做(我不知道是否有必要指定解决方案、实体和约束类,因为 Timefold 应该知道如何处理它们):
var template = SolverConfig.createFromXmlResource("your/path/to/the/SolverConfig.xml");
var solverConfig= new SolverConfig(template)
.withSolutionClass(EventBinAssignation.class)
.withEntityClasses(Event.class)
.withEntityClasses(BinAvailablity.class)
.withConstraintProviderClass(OptaPlannerConstraintProvider.class)
// The solver runs only for 5 seconds on this small dataset.
// It's recommended to run for at least 5 minutes ("5m") otherwise.
.withTerminationSpentLimit(Duration.ofSeconds(5));
SolverFactory<EventBinAssignation> solverFactory = SolverFactory.create(solverConfig);
您还可以使用setter为solverConfig指定一些属性。 您可以使用以下链接作为参考: 如何在 Spring Boot 中的 Timefold Solver 算法之间切换? 和 https://timefold.ai/docs/timefold-solver/latest/using-timefold-solver/configuration
如果这个答案对您有帮助,请告诉我。