29.3. solver 配置


solver 配置文件决定了参与过程的工作方式;它被视为代码的一部分。该文件命名为 example /sources/src/main/resources/org/optaplanner/examples/cloudbalancing/solver/cloudBalancingSolverConfig.xml

例 29.5. cloudBalancingSolverConfig.xml

<?xml version="1.0" encoding="UTF-8"?>
<solver>
  <!-- Domain model configuration -->
  <scanAnnotatedClasses/>

  <!-- Score configuration -->
  <scoreDirectorFactory>
    <easyScoreCalculatorClass>org.optaplanner.examples.cloudbalancing.optional.score.CloudBalancingEasyScoreCalculator</easyScoreCalculatorClass>
    <!--<scoreDrl>org/optaplanner/examples/cloudbalancing/solver/cloudBalancingScoreRules.drl</scoreDrl>-->
  </scoreDirectorFactory>

  <!-- Optimization algorithms configuration -->
  <termination>
    <secondsSpentLimit>30</secondsSpentLimit>
  </termination>
</solver>
Copy to Clipboard Toggle word wrap

这个 resolver 配置由三个部分组成:

  1. 域模型配置业务优化器变化是什么?

    我们需要使业务优化者了解我们的域类。在此配置中,它将自动扫描类路径中的所有类(对于 @PlanningEntity@PlanningSolution 注解):

      <scanAnnotatedClasses/>
    Copy to Clipboard Toggle word wrap
  2. 分数配置业务优化器应该如何优化规划变量?我们的目标是什么?

    由于我们存在硬和软限制,因此我们使用一个 HardSoftScore。但我们需要根据我们的业务需求告知业务优化器如何计算分数。此外,我们将查看两种替代方法来计算分数:使用基本的 Java 实施和使用 droolL。

      <scoreDirectorFactory>
        <easyScoreCalculatorClass>org.optaplanner.examples.cloudbalancing.optional.score.CloudBalancingEasyScoreCalculator</easyScoreCalculatorClass>
        <!--<scoreDrl>org/optaplanner/examples/cloudbalancing/solver/cloudBalancingScoreRules.drl</scoreDrl>-->
      </scoreDirectorFactory>
    Copy to Clipboard Toggle word wrap
  3. 优化算法配置业务优化器应如何优化它?在这种情况下,我们使用默认的优化算法(因为没有配置显式优化算法) 30 秒:

      <termination>
        <secondsSpentLimit>30</secondsSpentLimit>
      </termination>
    Copy to Clipboard Toggle word wrap

    在使用实时规划功能时,业务优化器应该以秒为单位得到良好结果(即使使用了实时规划功能),但其结果越好,其结果越好。高级用例可能会使用与硬时间限制不同的终止标准。

    默认算法将容易使用人工规划器和大多数内部实施。您可以使用高级基准测试程序功能来更好地获得更好的结果。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat