Probably you forgot to notify the workingMemory.update in the doMove method:
public void doMove(WorkingMemory workingMemory) {
FactHandle factHandle = workingMemory.getFactHandle(activity);
activity.setAssignee(...);
workingMemory.update(factHandle, activity);
}
Op 14-10-11 09:21, Geoffrey De Smet schreef:
A corrupted score normally indicates a problem with the Move
implementation (or sometimes the score drl).
Basically this happened: for a number of moves, it did the move,
calculated the score and undo the move.
One of those move was associated with a score -10hard/0soft, that was
the best one.
Now, it does that move (which is now called the "step") and when it
calculates the score it's a different score 0hard/0soft.
Try TRACE environment and see if it crashes sooner. Copy paste your
Move implementation here.
In Planner 5.4 there will be 2 out-of-the-box Move implementations to
use, so writing Move's become optional.
Op 13-10-11 16:37, Guilherme Kunigami schreef:
> Hi,
>
> I've implemented a very simple application using drools planner
> consisting of a bunch of activities. My rule file is very simple too
> and just counts the number of activities not assigned. When I run
> Solver.solve(), I get the following error message:
>
> Exception in thread "AWT-EventQueue-0"
> java.lang.IllegalStateException: The presumedScore (-10hard/0soft) is
> corrupted because it is not the realScore (0hard/0soft).
>
> Presumed workingMemory:
> Score rule (remainingActivitiesCount) has count (1) and weight
> total (11).
> Real workingMemory:
> Score rule (remainingActivitiesCount) has count (1) and weight
> total (0).
>
> I've tracked down this message and found this piece of code
> @DefaultLocalSearchSolver.solveImplementation():
>
> // there is no need to recalculate the score, but we still need to set it
>
localSearchSolverScope.getWorkingSolution().setScore(localSearchStepScope.getScore());
> if (assertStepScoreIsUncorrupted) {
>
> localSearchSolverScope.assertWorkingScore(localSearchStepScope.getScore());
> }
>
> It seems that the working score is never updated along the algorithm,
> but the score in the working memory changes. Thus, when we use the
> DEBUG environment, assertStepScoreIsUncorrupted is turned on and the
> assertion fails.
>
> Should the score be updated or am I using the library incorrectly?
>
> Thanks,
>
>
> _______________________________________________
> rules-users mailing list
> rules-users(a)lists.jboss.org
>
https://lists.jboss.org/mailman/listinfo/rules-users
--
With kind regards,
Geoffrey De Smet
_______________________________________________
rules-users mailing list
rules-users(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users