Lazy Planning Value Validation
by jonathan.labin
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.
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.
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.
Is there a way to have the Optaplanner behave this way?
Which components should I investigate implementing (a forager)?
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?
Thanks,
Jon
--
View this message in context: http://drools.46999.n3.nabble.com/Lazy-Planning-Value-Validation-tp402409...
Sent from the Drools: User forum mailing list archive at Nabble.com.
12 years, 6 months
filtering object having max value
by mohan
Hi folks,
I want to filter object instance in WM when max value of an object field
(rental ) is less than X (reloadValue) . X will vary over time.
I tried to use below query but I couldn't get expected results. Could anyone
please help me?
Thanks.
--------------------------------------------
rule "Insuf-Balance-Reload Alert"
dialect "java"
when
$re : ReloadEvent($rechargeNum : rechargedNumber,$reloadVal :
reloadValue ) from entry-point "RELOAD-EVENT"
InsufBalFailFact(mobileNo == $rechargeNum,$reloadVal > rental, $pkgId :
pkgId,$rental : rental)
not InsufBalFailFact(mobileNo == $rechargeNum, rental > $rental)
then
System.out.println($rechargeNum+","+$pkgId +","+$rental);
end
--
View this message in context: http://drools.46999.n3.nabble.com/filtering-object-having-max-value-tp402...
Sent from the Drools: User forum mailing list archive at Nabble.com.
12 years, 6 months
I must be missing the obvious
by Dean Whisnant
I've got to be blind and missing the obvious here. I had this working, but made a change to the function today. Now it's just not working.
5.1.1
Getting "error=Exception executing predicate diagVersion(DC) = "9""
Rule:
1. | rule "L2300_HI_01"
2. | dialect "mvel"
3. | when
4. | CLM_837_SUPP( breakClaim_74 == "1" , DC : primaryDiagnosis_102 != ( null ) , eval( diagVersion(DC) = "9" ))
5. | diag : L2300_HI_HealthCareDiagnosisCode( )
6. | then
7. | diag.setHI01_01_DiagnosisTypeCode( "BK" );
8. | diag.setHI01_02_DiagnosisCode( diagCode(DC) );
9. | end
Functions
function String diagVersion(String diagcode) {
String tempDiagVersion = "";
if (diagcode.startsWith("ICD10")) {
tempDiagVersion = "10";
} else {
tempDiagVersion = "9";
}
return tempDiagVersion;
}
function String diagCode(String diagcode) {
String tempDiagCode = "";
if (diagcode.startsWith("ICD10")) {
tempDiagCode = diagcode.substring(5,diagcode.length());
} else {
tempDiagCode = diagcode;
}
return tempDiagCode;
}
Any thoughts on catching the obvious are appreciated.
Thanks
Dean
12 years, 6 months
Corrections to documentation
by stephen.masters
Hi folks,
Just wondering what's the best way to provide corrections/ proofreading feedback to the docs. I'm reading through the 6.0 Expert user guide and spotting a few buts of dodgy grammar that would be nice to clear away.
Steve
12 years, 6 months