[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