第 6 章 配置 OptaPlanner solver
您可以使用以下方法配置 OptaPlanner solver:
- 使用 XML 文件。
-
使用
SolverConfig
API。 - 在域模型中添加类注解和 JavaBean 属性注解。
- 控制 OptaPlanner 用来访问域的方法。
- 定义自定义属性。
6.1. 使用 XML 文件配置 OptaPlanner solver 复制链接链接已复制到粘贴板!
每个项目都有一个可以编辑的 solver 配置文件。& lt;EXAMPLE>SolverConfig.xml
文件位于 org.red_hat_build_of_optaplanner-red_hat_build_of_optaplanner-8.29.0.Final-redhat-00009/red_hat_build_of_optaplanner-examples/src/main/resources/org/optaplanner/examples/<EXAMPLE
> 目录,其中 < EXAMPLE
> 是 OptaPlanner 示例项目的名称。或者,您可以从带有 Solver
的文件创建 SolverFactory。但是,出于可移植性的原因,建议使用 classpath 资源。
Factory
.createFromXmlFile ()
Solver
和 SolverFactory
都有一个名为 Solution_
的通用类型,这是代表规划问题和解决方案的类。
OptaPlanner 通过更改配置使其相对容易地切换优化算法。
流程
-
使用
Solver
Factory 配置 solver 配置 XML 文件:
- 定义模型。
- 定义 score 功能。
可选:配置优化算法。
以下示例是 NQueens 问题的解析器 XML 文件:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意在某些环境中,如 192.168.1.0/24 和 JBoss 模块,在 JAR 文件中的 resolver 配置、分数 DRL 和域类等类路径资源可能不适用于
optaplanner-core
JAR 文件的默认ClassLoader
。在这些情况下,为您的类的ClassLoader
作为参数提供:SolverFactory<NQueens> solverFactory = SolverFactory.createFromXmlResource( ".../nqueensSolverConfig.xml", getClass().getClassLoader());
SolverFactory<NQueens> solverFactory = SolverFactory.createFromXmlResource( ".../nqueensSolverConfig.xml", getClass().getClassLoader());
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
使用解析器配置 XML 文件配置
SolverFactory
,作为ClassLoader.getResource ()
定义的类路径资源提供:SolverFasctory<NQueens> solverFactory = SolverFactory.createFromXmlResource( "org/optaplanner/examples/nqueens/optional/nqueensSolverConfig.xml"); Solver<NQueens> solver = solverFactory.buildSolver();
SolverFasctory<NQueens> solverFactory = SolverFactory.createFromXmlResource( "org/optaplanner/examples/nqueens/optional/nqueensSolverConfig.xml"); Solver<NQueens> solver = solverFactory.buildSolver();
Copy to Clipboard Copied! Toggle word wrap Toggle overflow