[rules-users] Creating selection filter for PlanningEntity with 4 planning variables
Geoffrey De Smet
ge0ffrey.spam at gmail.com
Tue Mar 18 06:39:32 EDT 2014
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.xml>
>
>
>
> Regards
>
>
>
>
>
> --
> View this message in context: http://drools.46999.n3.nabble.com/Creating-selection-filter-for-PlanningEntity-with-4-planning-variables-tp4026575p4028776.html
> Sent from the Drools: User forum mailing list archive at Nabble.com.
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
>
More information about the rules-users
mailing list