java - Optaplanner 和 Quarkus 求解器配置更新

标签 java optaplanner quarkus

我正在使用 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 覆盖。

关于java - Optaplanner 和 Quarkus 求解器配置更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63137461/

相关文章:

Quarkus REST Jackson 对象映射器配置似乎不起作用

quarkus - 如何在 Quarkus 中以编程方式注册 bean?

Java replaceAll抛出空指针异常

java - OptaPlanner 了解规则

java - Optaplanner - 网站资源不存在

java - 交通拥堵时的车辆路线

cdi - JUnit5 扩展中的 QuarkusTest 访问 Bean

java - volatile 变量 'reads' 是否与正常读取一样快?

java - 使用 Java 和 Bouncy CaSTLe 进行 Rijndael 256 加密

java - Solrj NoClassDefFoundError