java - 流口水最好成绩为空

标签 java drools drools-planner

我正在使用 Drools 5.4.0.CR1,当我开始时

...
XmlSolverFactory configurer = new XmlSolverFactory();
configurer.configure(SOLVER_CONFIG);
Solver solver = configurer.buildSolver();
solver.setPlanningProblem(initialSolution);
solver.solve();
....

我有这个输出

[exec:exec]
2012-04-30 11:10:46,296 [main] INFO  Solving started: time spend (169), score (-13hard/0soft), new best score (-13hard/0soft), random seed (0).
2012-04-30 11:10:46,338 [main] DEBUG     Step index (0), time spend (213), score (-12hard/0soft), new best score (null), accepted move size (10) for picked step (03-05-2012 P emp:EMPLOYEE1 => L).
2012-04-30 11:10:46,356 [main] DEBUG     Step index (1), time spend (231), score (-12hard/0soft), new best score (null), accepted move size (10) for picked step (02-05-2012 P emp:EMPLOYEE2 => S).
java.lang.NullPointerException
    at org.drools.planner.core.score.buildin.hardandsoft.DefaultHardAndSoftScore.compareTo(DefaultHardAndSoftScore.java:125)
    at org.drools.planner.core.score.buildin.hardandsoft.DefaultHardAndSoftScore.compareTo(DefaultHardAndSoftScore.java:27)
    at org.drools.planner.core.localsearch.decider.acceptor.tabu.AbstractTabuAcceptor.isAccepted(AbstractTabuAcceptor.java:121)
    at org.drools.planner.core.localsearch.decider.acceptor.CompositeAcceptor.isAccepted(CompositeAcceptor.java:58)
    at org.drools.planner.core.localsearch.decider.DefaultDecider.processMove(DefaultDecider.java:159)

这是 TRACE 日志:

2012-04-30 11:40:16,745 [main] INFO  Solving started: time spend (110), score (-13hard/0soft), new best score (-13hard/0soft), random seed (0).
    2012-04-30 11:40:16,781 [main] TRACE         Move score (-13hard/0soft), accepted (true) for move (01-05-2012 M emp:EMPLOYEE1 => P).
    2012-04-30 11:40:16,794 [main] TRACE         Move score (-13hard/0soft), accepted (true) for move (04-05-2012 L emp:EMPLOYEE2 => G).
    2012-04-30 11:40:16,794 [main] TRACE         Ignoring not doable move (01-05-2012 P emp:EMPLOYEE3 => P).
    2012-04-30 11:40:16,807 [main] TRACE         Move score (-13hard/0soft), accepted (true) for move (01-05-2012 M emp:EMPLOYEE4 => S).
    2012-04-30 11:40:16,819 [main] TRACE         Move score (-13hard/0soft), accepted (true) for move (03-05-2012 P emp:EMPLOYEE5 => A).
    ...
    2012-04-30 11:40:16,876 [main] TRACE         Move score (-12hard/0soft), accepted (true) for move (03-05-2012 P emp:EMPLOYEE21 => L).
    2012-04-30 11:40:16,876 [main] TRACE         Ignoring not doable move (01-05-2012 L emp:EMPLOYEE22 => L).
    2012-04-30 11:40:16,876 [main] TRACE         Ignoring not doable move (03-05-2012 N emp:EMPLOYEE23 => N).
    2012-04-30 11:40:16,887 [main] TRACE         Move score (-13hard/0soft), accepted (true) for move (02-05-2012 N emp:EMPLOYEE14 => TS).
    2012-04-30 11:40:16,898 [main] DEBUG     Step index (0), time spend (265), score (-12hard/0soft), new best score (null), accepted move size (10) for picked step (03-05-2012 P emp:EMPLOYEE21 => L).

似乎最佳解决方案并未随分数值更新,但我们将解决方案类定义为带有 getter 和 setter 分数的示例(queens 示例)。

有人对“新的最佳成绩”为空有任何建议吗?

谢谢!

最佳答案

大胆猜测,但是您的解决方案的cloneSolution是否能够可靠地克隆分数和所有其他问题事实?

我在那里遇到了一些无声错误。

关于java - 流口水最好成绩为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10381169/

相关文章:

java - 流口水 : Setting a flag from within the drl file

java - IncrementalScore 在 Optaplanner 中产生不可行的解决方案

eclipse - 在 Eclipse 中安装 Drools Planner

java - BufferedReader 中跳过和重置方法的一些实际用例是什么?

java - 使用无限循环检查变量变化

jboss - KIE-Workbench 登录后未加载

algorithm - Rete算法的时间复杂度是多少?

java - OptaPlanner 车辆路线和客户拜访之间的关系

java - java中从URL获取页面内容

java - 如何改进返回给定 int 数组的具有排序索引的 int 数组的代码?