我正在与drools计划者玩弄,因为最终我需要塑造一个排名解决方案。我从Drools Planner user guide开始,我成功地运行了Eclipse中的示例。
尝试理解简单和HardAndSoft分数类型之间的差异,我试图修改NQueens示例,将分数从Simple更改为HardAndSoft。
我做了如下:
在nqueensSolverConfig.xml中,我设置了<scoreDefinitionType>HARD_AND_SOFT</scoreDefinitionType>
。
在NQueens.java中:
我设置public class NQueens extends AbstractPersistable implements Solution<HardAndSoftScore> {...}
我将与SimpleScore相关的属性和方法更改为相应的HardAndSoftScore成员:
私人HardAndSoftScore hsScore;
公共HardAndSoftScore getScore(){ 返回hsScore; }public void setScore(HardAndSoftScore score){ this.hsScore =得分; }
但是当我运行解决方案时,我收到以下消息:
"The scoreString (0) doesn't follow the 999hard/999soft pattern."
有什么问题?
答案 0 :(得分:0)
你的求解器配置中仍然会有这个:
<termination>
<scoreAttained>0</scoreAttained>
</termination>
在解算器配置中编写的任何分数必须采用分数定义的格式,如下所示:
<termination>
<scoreAttained>0hard/0soft</scoreAttained>
</termination>
注意:您可能会看一个“真实”的例子,例如课程安排或护士排班,而不是N皇后区。