[jboss-svn-commits] JBL Code SVN: r16779 - labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/itc2007/examination/solver.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Sat Nov 24 08:29:44 EST 2007
Author: ge0ffrey
Date: 2007-11-24 08:29:44 -0500 (Sat, 24 Nov 2007)
New Revision: 16779
Modified:
labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/itc2007/examination/solver/examinationScoreRules.drl
Log:
calculate student size too (breaks performance even more...)
Modified: labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/itc2007/examination/solver/examinationScoreRules.drl
===================================================================
--- labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/itc2007/examination/solver/examinationScoreRules.drl 2007-11-24 12:11:46 UTC (rev 16778)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/itc2007/examination/solver/examinationScoreRules.drl 2007-11-24 13:29:44 UTC (rev 16779)
@@ -17,6 +17,8 @@
import org.drools.solver.examples.itc2007.examination.domain.Student;
import org.drools.solver.examples.itc2007.examination.domain.Topic;
+import java.util.HashSet;
+
global HardAndSoftConstraintScoreCalculator scoreCalculator;
// ############################################################################
@@ -26,12 +28,15 @@
// Two exams in the same period which share students.
rule "conflictingExamsInSamePeriod"
when
- $student : Student();
- $exam : Exam($id : id, topic.studentList contains $student, $period : period);
- Exam(period == $period, id > $id, topic.studentList contains $student);
+ $leftExam : Exam($id : id, $period : period, $leftStudentList : topic.studentList);
+ $rightExam : Exam(period == $period, id > $id, $rightStudentList : topic.studentList);
+ $studentSet : HashSet( size > 0 )
+ from collect(
+ Student( this memberOf $leftStudentList, this memberOf $rightStudentList)
+ );
then
insertLogical(new IntConstraintOccurrence("conflictingExamsInSamePeriod", ConstraintType.NEGATIVE_HARD,
- $exam));
+ $leftExam, $rightExam));
end
// More time required during a period than available in that period.
More information about the jboss-svn-commits
mailing list