[rules-users] Difficulty determining why I have score corruption [Planner]
Megan Woods
Megan.Woods at tollgroup.com
Wed Jan 9 05:53:21 EST 2013
Thanks Geoffrey and Wolfgang,
I will try what you suggested tomorrow morning.. (UTC + 11)
Cheers Megan Woods
Sent from my iPad
On Jan 9, 2013, at 20:06, "Geoffrey De Smet" <ge0ffrey.spam at gmail.com> wrote:
>
> Op 09-01-13 01:00, megwoods schreef:
>> Hi,
>>
>> I have been at this a couple of days now but I am getting score corruption
>> from a rule that does the following:
>>
>> rule "to bigger gap"
>> when
>> $res: ResourceInstance()
>> $resList : ArrayList(size > 1)
>> from collect( TripAtTimeWithResource(resource == $res) )
>> then
>> -- Sort the list using custom comparator.
>> -- Measure a series of deltas between elements in the list.
>> -- If the delta is larger than a threshold add a soft constraint.
> 1) Ideally, this logic would be in the "when" part.
> Not that that explains score corruption, but it should be faster
> performance wise because it does better "incremental score calculation"
> (see manual about that concept).
>
> I would also expect that there is no "from collect", but a "from
> accumulate" to detect the max or sum of the delta.
>
> // quick pseudo code
> when
> $res: ResourceInstance()
> (intValue > deltaTreshold )from accumulate(
> TripAtTimeWithResource(resource == $res, $a : timeslot)
> and TripAtTimeWithResource(resource == $res, timeslot > $a, $b :
> timeslot)
> and not TripAtTimeWithResource(resource == $res, timeslot > $a,
> timeslot < $b),
> max(... delta of $a and $b ...)
> )
> then
>
>
> Addendum: If needed (because of performance reasons how from's currently
> work),
> you might want split it up into 2 rules, similar as nurse rostering's
> drl does regularly (with the Start and End logicalInserts), although
> it's unlikely.
>> insertLogical(new IntConstraintOccurrence("to bigger gap",
>> ConstraintType.NEGATIVE_SOFT,delta * 10, ttrL));
> 2) What's that cause ttrL? I would have expected $res as a cause?
>>
>> end
>>
>> The TripAtTimeWithResource is the planning entity.
>>
>> I have checked the cloning and been through and checked that all equals and
>> hashcode methods and they are correct.
>>
>> If I take this rule out the implementation functions as correctly.
>>
>> Interestingly though I first prototyped this using a simple score and with
>> the same 'when' and 'then' clause (inserting a different fact) and no score
>> corruption was observed.
>>
>> If anyone has any suggestions I would really like to hear from you.
>>
>> Cheers Megan Woods
>>
>> Extract from exception:
>> The workingMemory has 3 ConstraintOccurrence(s) in excess:
>> to bigger gap/NEGATIVE_SOFT:[TripAtTimeWithResource
>> [trip=a.c.t.p.p.m.TripInstance at 43b, resource=All(17), startTime=TimeUnit
>> [minute=285]]]=750
>> to bigger gap/NEGATIVE_SOFT:[TripAtTimeWithResource
>> [trip=a.c.t.p.p.m.TripInstance at 46c, resource=All(17), startTime=TimeUnit
>> [minute=75]]]=1700
>> to bigger gap/NEGATIVE_SOFT:[TripAtTimeWithResource
>> [trip=a.c.t.p.p.m.TripInstance at 421, resource=All(17), startTime=TimeUnit
>> [minute=75]]]=960
>> The workingMemory has 4 ConstraintOccurrence(s) lacking:
>> overlapping trips with same
>> resource/NEGATIVE_HARD:[TripAtTimeWithResource
>> [trip=a.c.t.p.p.m.TripInstance at 43b, resource=All(17), startTime=TimeUnit
>> [minute=285]]]=100
>> to bigger gap/NEGATIVE_SOFT:[TripAtTimeWithResource
>> [trip=a.c.t.p.p.m.TripInstance at 421, resource=All(17), startTime=TimeUnit
>> [minute=75]]]=1710
>> to bigger gap/NEGATIVE_SOFT:[TripAtTimeWithResource
>> [trip=a.c.t.p.p.m.TripInstance at 43b, resource=All(17), startTime=TimeUnit
>> [minute=285]]]=1650
>> to bigger gap/NEGATIVE_SOFT:[TripAtTimeWithResource
>> [trip=a.c.t.p.p.m.TripInstance at 46c, resource=All(17), startTime=TimeUnit
>> [minute=75]]]=950
>>
>>
>>
>> --
>> View this message in context: http://drools.46999.n3.nabble.com/Difficulty-determining-why-I-have-score-corruption-tp4021412.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
>>
>
> _______________________________________________
> 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