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@lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > _______________________________________________ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users