Optaplanner 和 Quarkus 求解器配置更新

Optaplanner and Quarkus solver config update

我正在使用 quarkus 和 optaplanner 开发一个项目,我正在尝试访问和修改求解器的配置,以添加启发式算法、更改搜索算法等。

我正在使用 solverJob 和 solverManager,而 quarkus 似乎对我隐藏了求解器的配置。我基本上遵循 Quarkus 教程 (https://quarkus.io/guides/optaplanner) 的步骤。

public PlannerSolution solve() {
    UUID problemId = UUID.randomUUID();
    SolverJob<PlannerSolution, UUID> solverJob;
    
    solverJob = solverManager.solve(problemId, problem);

    PlannerSolution solution;
    try {
      // Wait until the solving ends
      System.out.println("Waiting................");
      solution = solverJob.getFinalBestSolution();
      System.out.println("Done");
    } catch (InterruptedException | ExecutionException e) {
      throw new IllegalStateException("Solving failed.", e);
    }
    return solution;
  }

我也在使用 constraintProvider API。 有没有办法让我访问和修改 quarkus 自动生成的配置?我尝试了使用 solverFactory 和 xml conf 文件的基本方法,但 quarkus 对此一点都不满意。

提前致谢!

要更改默认求解器配置,请在项目的类路径中创建 XML 配置文件。 optaplanner-quarkus 扩展默认尝试读取 solverConfig.xml。在项目中,它应该位于:

.../src/main/resources/solverConfig.xml

配置文件的默认位置可以被application.properties中的属性quarkus.optaplanner.solver-config-xml覆盖。