[rules-users] Lazy Planning Value Validation

Geoffrey De Smet ge0ffrey.spam at gmail.com
Mon Jun 3 13:59:20 EDT 2013


On 03-06-13 17:04, jonathan.labin wrote:
> I am using Optaplanner 6.0.0.beta2.
>
> Like most domains, I am working where it is possible that a given planning
> value is invalid to assign to some planning entities. However, it is
> impractical to perform a thorough validity check against every combination
> in order to a Value Range list containing only valid assignments.
>
> I could simply create a Hard Constraint rule to test for these invalid
> assignments but I fear the validity check may even too computationally
> expensive for this (i.e. run for each potential step during step selection).
> Also, this does not prevent the Optaplanner from considering this assignment
> in the future in a slightly different context.
Some things that should work in 6.0.0.Beta3 (and Beta2 too probably):
- @ValueRange(FROM_ENTITY) if you can predict that certain values are 
never valid for a certain entity's variable.
- Probability Selection of value's. Some values are selected more often 
than others.
>
> Instead, what I'd prefer is to only check the validity of an assignment
> after it is used as part of a solution which improved the score.  That way
> it is never called for any of the huge space of possible assignments that
> won't ever be part of a final solution anyway.
2-step or multi-step score evaluation isn't implemented (yet).
>    
>
> If the assignment turns out to be invalid in this check, I'd like to remove
> it from the Value Range so it is never considered again.
That's weird:
- either you can predict it's never going to be valid for a certain 
entity, no matter the variable state of the other entities => use 
@ValueRange(FROM_ENTITY)
- or you can't (not without taking a look at the variable state of the 
other entities => invalid for a single solution does not mean you can 
just remove it to be never considered again
>
> Is there a way to have the Optaplanner behave this way?
> Which components should I investigate implementing (a forager)?
Take a look at DefaultDecider
> How does the Optaplanner respond to run-time changes?  Once, discovered, can
> I simply remove the invalid planning value from the value range for the
> planning entity?
Not yet supported. Depends on the Selector caching, etc.
>
> Thanks,
>
> Jon
>
>
>
> --
> View this message in context: http://drools.46999.n3.nabble.com/Lazy-Planning-Value-Validation-tp4024095.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