【问题标题】:Optaplanner benchmarking and fine tuningOptaplanner 基准测试和微调
【发布时间】:2015-06-08 02:45:54
【问题描述】:

我目前正在调整和微调我的安装程序预订分配优化器,最近刚刚将我的库升级到 Optaplanner 6.2.0 Final。我正在使用基准测试器来观察哪种优化策略(EntityTabu、SimulatedAnnealing、有或没有 TailChainSwapMove)我有几个问题:
1) 我在我的 Solver 上附加了一个 eventListener,用于显示评分方面的任何改进。我可以将 eventListener 附加到我的基准测试吗?
2) 对于 ChangeMove 和 SwapMove 选择器,我可以将 filterClass 与 entitySelector 结合使用,这样我就可以使用 nearDistanceMeterClass 吗?

<solverBenchmark>
<name>Entity tabu w tailChainSwapMove</name>
<solver>
  <localSearch>
    <unionMoveSelector>
        <changeMoveSelector>
            <filterClass>com.tmrnd.pejal.opta.solver.move.InstallerChangeMoveFilter</filterClass>
        </changeMoveSelector>
        <swapMoveSelector>
          <filterClass>com.tmrnd.pejal.opta.solver.move.SamePttSwapMoveFilter</filterClass>
        </swapMoveSelector>
        <tailChainSwapMoveSelector>
            <entitySelector id="entitySelector3"/>
              <valueSelector>
                <nearbySelection>
                  <originEntitySelector mimicSelectorRef="entitySelector3"/>
                  <nearbyDistanceMeterClass>com.tmrnd.pejal.opta.solver.move.BookingNearbyDistanceMeter</nearbyDistanceMeterClass>
                  <parabolicDistributionSizeMaximum>20</parabolicDistributionSizeMaximum>
                </nearbySelection>
              </valueSelector>
        </tailChainSwapMoveSelector> 
      </unionMoveSelector>
      <acceptor>
        <entityTabuRatio>0.05</entityTabuRatio>
      </acceptor>
      <forager>
        <acceptedCountLimit>1000</acceptedCountLimit>
      </forager>
  </localSearch>
</solver>

【问题讨论】:

    标签: benchmarking optaplanner


    【解决方案1】:

    1) 您的意思是像基准测试支持的所有可选统计信息一样,例如 BEST_SCORE 统计信息(请参阅文档)等?所有这些统计数据都很好地显示在基准报告中。

    2) 试试看。

    【讨论】:

    • 1) 我只想看到我的日志在基准运行时实时显示进度。

      2) 我刚刚尝试了在tailChainSwapMoveSelector 中的entitySelector 只进入changeMoveSelector。我只在一个数据集上进行了测试,结果看起来比 filterClass-only
      之前:花费的时间 (236352)、最佳分数 (-100hard/-2760soft)、每秒平均计算计数 (5807)
      之后:花费时间 (53480)、最佳分数 (-105hard/-91896soft)、每秒平均计算次数 (3567)
      我可能会结合 swapMoveSelector 和其他数据集进行测试。谢谢。

    • 2) 对于我使用 filterClass 在附近的DistanceMeterClass 运行的基准,显示了相同的结果,但花费的时间较慢。我认为是因为附近的DistanceMeterClass 也充当了过滤器类,我在tailChainSwapMoveSelector 中实现。似乎使用小数据集(200 个实体)运行基准测试可能具有与大数据集(1200 个实体)不同的 localSearchStrategies。
    猜你喜欢
    • 2022-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-18
    • 1970-01-01
    • 1970-01-01
    • 2017-07-07
    相关资源
    最近更新 更多