【问题标题】:Optaplanner Easy vs Incremental Score Calculation SpeedOptaplanner Easy vs 增量分数计算速度
【发布时间】:2018-02-28 17:31:37
【问题描述】:

我首先编写了一个简单的分数计算器,同时掌握了 Optaplanner,根据需要添加了硬约束和软约束。完成该工作后,我将其转换为一个增量分数计算器,运行许多测试并使用内置的 FULL_ASSERT 环境来确保它按预期工作并产生与简易分数计算器相同的分数。然后我关闭了 FULL_ASSERT 并将日志记录更改为仅信息,并首先使用增量计算器运行求解器,然后使用简易计算器。

在日志中,我看到“分数计算速度”,但我无法在文档中找到更高的数字是更好还是更差,或者是否可以以这种方式比较 2 个评分计算器。这让我很困惑,因为在我看来,每秒更高的数字应该更好,但如果是这种情况,那么我的增量计算器比简单的计算器要慢得多。

有谁知道以下两者中哪一个更好,或者甚至不应该这样比较?:

  • 增量:分数计算速度(1513/秒)
  • 简单:分数计算速度(3221/秒)

查看代码,我可以看到每次调用 setCalculatedScore 时计算计数(此数字所基于)都会增加,但是,这可能只是意味着增量分数计算器不必经常设置它,不知道它是如何工作的。

谢谢

【问题讨论】:

    标签: optaplanner


    【解决方案1】:

    分数计算速度越高。

    注意:

    • 转动 FAST_ASSERT 或 FULL_ASSERT 会大大减慢它的速度。也许您忘记在增量基准测试运行时将其关闭。
    • 您可以通过添加包含简单元素的<assertionScoreDirectorFactory> 元素来更好地验证增量元素。请参阅文档。

    【讨论】:

    • 谢谢杰弗里。对于所有运行,环境模式肯定已关闭。我将按照推荐添加 assertionScoreDirectorFactory 但是我今天也刚刚注意到,与增量相比,使用简单的计算器它可以在时间限制内执行两倍的本地搜索步骤,所以我肯定认为我的计算器有问题。再次感谢您的快速响应和出色的图书馆。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多