So, basically what you're saying is, "The impact of a given negative soft constraint is reduced by the occurrence of another positive constraint."
If that's the case, the rule makes sense to me: total up the occurrences of the negative constraint, total up the occurrences of the positive constraint, and then combine them in a way that describes their relationship. In this case, what the positive constraint "favors" is the reduction or elimination of the negative constraint, so subtracting the positive constraint makes sense. (A classic "interference pattern" situation.) --- On Thu, 1/7/10, Michael Neale <[email protected]> wrote: > From: Michael Neale <[email protected]> > Subject: [rules-users] Planner/solver - POSITIVE scoring... > To: "Rules Users List" <[email protected]>, "Geoffrey" > <[email protected]> > Date: Thursday, January 7, 2010, 12:23 AM > Hi All - FYI I have been conversing > with Geoffrey on basic > solver/planner usage questions, but we are bring the > discussion here > in case others can benefit. > > So I am looking at using IntConstraintOccurrence, for > scoring with > weights, and HardAndSoftConstraintScoreCalculator. So I can > see how > NEGATIVE_HARD and NEGATIVE_SOFT scores would work, with > appropriate > accumulator rules doing that etc. > > What I am not sure about is ConstraintType.POSITIVE - so I > want to use > that to "favour" certain aspects of a solution. So would > the correct > way to use that to be to have rules that use a positive > IntConstrainOccurrence, and then do something like: > > when > $softTotal : Number() from > accumulate( > > IntConstraintOccurrence(constraintType == > ConstraintType.NEGATIVE_SOFT, $weight : weight), > sum($weight) // > Vote for > http://jira.jboss.com/jira/browse/JBRULES-1075 > ); > $positiveTotal: Number() > from accumulate( > > IntConstraintOccurrence(constraintType == > ConstraintType.POSITIVE, $weight : weight), > sum($weight) // > Vote for > http://jira.jboss.com/jira/browse/JBRULES-1075 > ); > > then > > scoreCalculator.setSoftConstraintsBroken($softTotal.intValue() > - $positiveTotal.intValue()); > > > > ?? it seems odd - I want to use POSITIVE but I am using it > to reduce > the soft constraints broken? The the higher the positive > score, the > less softConstraintsBroken property of the score calculator > is set - > that seems odd... or should I not use HardAndSoft if I am > using > POSITIVE and NEGATIVE scoring? > > > -- > Michael D Neale > home: www.michaelneale.net > blog: michaelneale.blogspot.com > _______________________________________________ > rules-users mailing list > [email protected] > https://lists.jboss.org/mailman/listinfo/rules-users > _______________________________________________ rules-users mailing list [email protected] https://lists.jboss.org/mailman/listinfo/rules-users
