On 18-03-14 11:24, maciekpob wrote:
Hello again,
o) I completed the changes that you suggested last year concerning the issue
that I am encountering with opta planner with our application.
Note that I have at most one or two planning entities in the Solution (in
my test case).
Setting "cacheType=PHASE on UnionMoveSelector level" or
"cacheType=STEP
on UnionMoveSelector level" results in:
java.lang.IllegalStateException: The selector
(Union([ChangeMoveSelector(Filtering(FromSolutionEntitySelector(CloudPlacement)),
FromSolutionPropertyValueSelector(offeredCPU)),
ChangeMoveSelector(FromSolutionEntitySelector(CloudPlacement),
FromSolutionPropertyValueSelector(offeredDisk)),
ChangeMoveSelector(FromSolutionEntitySelector(CloudPlacement),
FromSolutionPropertyValueSelector(offeredMemory)),
ChangeMoveSelector(FromSolutionEntitySelector(CloudPlacement),
FromSolutionPropertyValueSelector(offeredVolume))]))'s non-last
childMoveSelector
(ChangeMoveSelector(Filtering(FromSolutionEntitySelector(CloudPlacement)),
FromSolutionPropertyValueSelector(offeredCPU))) has neverEnding (true) with
randomSelection (false).
So the union needs to do "original" selection,
but one of his childs is
neverEndering.
That's never a good thing.
Setting cacheType=PHASE for each change move selector results in:
Caused by: java.lang.IllegalStateException: The selector
(Caching(ChangeMoveSelector(Filtering(FromSolutionEntitySelector(CloudPlacement)),
FromSolutionPropertyValueSelector(offeredCPU))))
that's the caching PHASE one
wrapping the child.
has a childMoveSelector
(ChangeMoveSelector(Filtering(FromSolutionEntitySelector(CloudPlacement)),
FromSolutionPropertyValueSelector(offeredCPU))) with neverEnding (true).
Hmm, why
is this child neverEnding?
Is the entitySelector or valueSelector explicitly set to selectionOrder
RANDOM?
This would make no sense:
<changeMoveSelector>
<cacheType>PHASE</cacheType>
<valueSelector>
<selectionOrder>RANDOM</selectionOrder><!-- What's the point of
making it RANDOM if it's wrapped in a move cacheType PHASE? -->
...
</valueSelector>
</changeMoveSelector>
this would make more sense to shuffle on the phase level:
<changeMoveSelector>
<cacheType>PHASE</cacheType>
<selectionOrder>SHUFFLED</selectionOrder>
<valueSelector>
...
</valueSelector>
</changeMoveSelector>
o) Number of moves:
I obtained the number of evaluated moves from solver and I obtain a
number above 7 000 000.
I also added logs to the MoveFilter that I implement. Different values
are being proposed.
But, the MoveFilter is repeatedly invoked (20 times) with the same set of
planning values.
Since this set broke constraints the MoveFilter returns false each time.
Then "bailing out error" occurs:
o) Change Move Filter configuration
My planning entity CloudPlacement has four planning variables as
indicated in the included config file.
I tried the modifications you suggested over this basic version.
Could you please check that the configuration is correct?
2014.03.14_Config_file.xml
<
http://drools.46999.n3.nabble.com/file/n4028776/2014.03.14_Config_file.xm...
Regards
--
View this message in context:
http://drools.46999.n3.nabble.com/Creating-selection-filter-for-PlanningE...
Sent from the Drools: User forum mailing list archive at
Nabble.com.
_______________________________________________
rules-users mailing list
rules-users(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users