如何为Optaplanner解算器实例化EasyScoreCalculator?
列出了以下示例代码: 或者,在运行时构建EasyScoreCalculator实例,并使用编程API进行设置:如何为Optaplanner解算器实例化EasyScoreCalculator?,optaplanner,Optaplanner,列出了以下示例代码: 或者,在运行时构建EasyScoreCalculator实例,并使用编程API进行设置: solverFactory.getSolverConfig().getScoreDirectorFactoryConfig.setEasyScoreCalculator(easyScoreCalculator); 我假设它是:(缺少函数调用) 但是,无法设置实例化的EasyScoreCalculator,只能指定类。我想在运行时改变一些参数,在我看来,构造一个EasyScoreCal
solverFactory.getSolverConfig().getScoreDirectorFactoryConfig.setEasyScoreCalculator(easyScoreCalculator);
我假设它是:(缺少函数调用)
但是,无法设置实例化的EasyScoreCalculator
,只能指定类。我想在运行时改变一些参数,在我看来,构造一个EasyScoreCalculator
似乎是一种合理的方法。它似乎是为了得到支持,但实际上不是
我应该如何在运行时的解算器运行之间更改分数计算器的参数?
setEasyScoreCollector()
故意不可用,因为在多线程解算中以及在其他用例中(如“解释分数”-参见文档),将有多个EasyScoreCalculator实例并行活动,因此我们需要能够实例化它们
我应该如何在不同的解算器之间更改分数计算器的参数
在运行时运行
元素(请参见CustomPhaseConfig.java
)支持映射customProperties
以改变自定义阶段的参数PartitionedSearchPhaseConfig.java
也支持这一方面,与其他功能类似。在我们的问题跟踪器中创建一个问题(请参阅optaplanner.org上的“获取帮助”),以便在EasyScoreCalculator、IncrementalCoreCalculator和Drools上支持此功能。对于Drools,它会将这些属性注入全局字段
在pull请求中实现它应该相当简单。在ScoreDirectorFactoryConfig.java中添加这样的映射,并将其传递给ScoreDirectorFactory,后者调用ConfigUtils在计算器实例上进行设置。谢谢。我理解能够构建多个实例的基本原理。您是否会反对允许提供
供应商
的请购单,或要求提供可克隆的EasyScoreCollector
而不是通过类引用的请购单。。在easyScoreCalculatorClass
周围保留向后兼容性有点难看。
solverFactory.getSolverConfig().getScoreDirectorFactoryConfig().setEasyScoreCalculator(easyScoreCalculator);