Normally, one should always also add a changeMoveSelector for every
variable (on top of the course grained moves), possibly with a filter to avoid breaking
build-in constraints. Try it with the benchmarker.
Even if I know that all moves of the default changeMoveSelector will A) be covered by the
course grained moves B) if not covered they will break a constraint?
Brief explanation:
I need to tie the planning entities in two levels:
(Planning entities are tasks.)
I start from projects, which have phases and those phases have tasks (Planning entities).
An important planning variable is a Period (time slot).
All tasks should be executed in parallel within a phase.
All phases in a project should be as parallel as possible, may be sequential if no other
way, but may not have gaps between the phases.
One of the move selectors generates pretty much most of the combinations of Task and
Period, but a custom Move class will move the other tasks of the phase along when moving
the single task.
So all tasks will be moved to all periods but they always will drag the other tasks in the
phase along.
Anyway, I'll try it with the default selectors as well.
-----------------
http://www.codessentials.com - Your essential software, for free!
Follow us at
http://twitter.com/#!/Codessentials
________________________________
From: Geoffrey De Smet <ge0ffrey.spam(a)gmail.com
To:
Michiel Vermandel <mvermand(a)yahoo.com>; Rules Users List
<rules-users(a)lists.jboss.org>
Sent: Tuesday, February 5, 2013 12:19 PM
Subject: Re: Drools planner: The workingMemory has 1 ConstraintOccurrence(s) in excess
Op 05-02-13 11:22, Michiel Vermandel schreef:
Hi,
Thanks for the advice.
1) About drools 5.5.1-SNAPSHOT: It doens't seem to be in the
list of
available distros:
Eclipse > pom > Dependencies > Add > Search
results.
After 5.5.0-Final I get the Alphas of 6.0.0.
I'm not such a wiz in Maven.
How do I get the 5.5.1-SNAPSHOT into my m2/Nexus repo?
Look for "the jboss snapshop repo" on google. See the URL I pasted. Or
look in the droolsjbpm-parent pom's <repository> section.
2) I'll do as you advised but here are already the stats:
I've got 260 planning entities in my test
About the planning variables: I have 3
different types of planning variables but I do not use any default selector. Thus I do not
have Entities * Values of possible moves.
Normally, one should always also add a changeMoveSelector for
every variable (on top of the course grained moves), possibly with a filter to avoid
breaking build-in constraints. Try it with the benchmarker.
I reduce quite some moves (I think/hope I do not eliminate the moves that could lead to
the optimal solution).
For the 3 different variable types I have 5 MoveListFactories
and they produce for the 260 entities all together 8550 possible
moves.
-----------------
http://www.codessentials.com - Your essential software, for
free!
>Follow us at
http://twitter.com/#!/Codessentials
>________________________________
> From: Geoffrey De Smet <ge0ffrey.spam(a)gmail.com
>To:
rules-users(a)lists.jboss.org
>Sent: Tuesday, February 5, 2013 9:35 AM
>Subject: Re: [rules-users] Drools planner: The workingMemory has 1
ConstraintOccurrence(s) in excess
>
>Op
05-02-13 09:16, Michiel Vermandel schreef:
>Hi,
>
>
>>I am using Drools planner
5.5.0.Final.
>
>>Once again I have the exception "The workingMemory
has 1 ConstraintOccurrence(s) in excess".
>>I have added all relevant planning variables as parameters of the
ConstraintOccurrence.
>
>>Could the following theory be an explanation for
this issue?
>
>>My dataset is not that big (not small either).
>>Could it be that a certain move is taken twice
within the same step (as part of score trap?)
which results in the same constraint occurrence?
>
No, the same move twice in the same step should not cause any
trouble.
If you can prove this causes the score corruption, it's
a bug in Drools Expert.
There have been a bunch of bugfixes in drools, so try
drools (-core, -compiler, knowledge-api, mvel, ...)
5.5.0-SNAPSHOT:
>
https://repository.jboss.org/nexus/content/groups/public/org/drools/drool...
>If that doesn't help, paste the rule.
>>I have one other question -
maybe related:
>>In my configuration I have this:
>
>> <acceptor
>>
<planningEntityTabuSize>7</planningEntityTabuSize
<!-- I tested with lower values (5, 3)
too
--
>> </acceptor
>> <forager
>
<pickEarlyType>FIRST_BEST_SCORE_IMPROVING</pickEarlyType
>
<minimalAcceptedSelection>1000</minimalAcceptedSelection
>> </forager
>
>>Because of the forager configuration a step is
sometimes taken after as little as 40 moves, but
sometimes the number of moves grows to enormous
amounts.
>I think if that happens that the score is no
longer improving.
>Is it "normal" that a certain step can make +50k
moves and counting?
>
you're set at 1k minimalAcceptedSelection, so 50k is a lot
indeed.
This is probably because the planningEntityTabuSize is
to high compared to the number of entity's in your
dataset.
There's a jira for making planningEntityTabuSize
automatically adjust itself based on the entity size
(which would solve this).
Or it could also be because the number of possible moves
(entity size * value size) is near 1k.
>Or does indicate once more to a
score trap?
>
No. It indicates that planner's config should scale down
automatically.
>How many entity's and values do you have?
>>Thanks
>
>>Michiel
>>
>
>>-----------------
>>http://www.codessentials.com - Your essential software, for free!
>>Follow us at
http://twitter.com/#!/Codessentials
>
>
>>_______________________________________________
rules-users mailing list rules-users(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users
>_______________________________________________
>rules-users mailing list
>rules-users(a)lists.jboss.org
>https://lists.jboss.org/mailman/listinfo/rules-users
>_______________________________________________
rules-users mailing list rules-users(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users