[jboss-svn-commits] JBL Code SVN: r19191 - in labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main: resources/org/drools/solver/examples/itc2007/curriculumcourse/solver and 1 other directory.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Fri Mar 21 16:29:31 EDT 2008


Author: ge0ffrey
Date: 2008-03-21 16:29:30 -0400 (Fri, 21 Mar 2008)
New Revision: 19191

Modified:
   labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/itc2007/curriculumcourse/domain/Lecture.java
   labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/itc2007/curriculumcourse/solver/curriculumCourseScoreRules.drl
Log:
curruculumcourse hard constraints

Modified: labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/itc2007/curriculumcourse/domain/Lecture.java
===================================================================
--- labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/itc2007/curriculumcourse/domain/Lecture.java	2008-03-21 20:13:49 UTC (rev 19190)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/itc2007/curriculumcourse/domain/Lecture.java	2008-03-21 20:29:30 UTC (rev 19191)
@@ -50,6 +50,14 @@
     }
 
 
+    public Curriculum getCurriculum() {
+        return getCourse().getCurriculum();
+    }
+
+    public Teacher getTeacher() {
+        return getCourse().getTeacher();
+    }
+
     public int compareTo(Lecture other) {
         return new CompareToBuilder()
                 .append(period, other.period)

Modified: labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/itc2007/curriculumcourse/solver/curriculumCourseScoreRules.drl
===================================================================
--- labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/itc2007/curriculumcourse/solver/curriculumCourseScoreRules.drl	2008-03-21 20:13:49 UTC (rev 19190)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/itc2007/curriculumcourse/solver/curriculumCourseScoreRules.drl	2008-03-21 20:29:30 UTC (rev 19191)
@@ -27,6 +27,24 @@
 
 // Conflicts: Two conflicting lectures in the same period.
 // Three conflicting lectures count as 3 violations: one for each pair.
+rule "curriculumConflictingLecturesInSamePeriod"
+    when
+        $leftLecture : Lecture($curriculum : curriculum, $period : period);
+        $rightLecture : Lecture(curriculum == $curriculum, period == $period);
+    then
+        insertLogical(new IntConstraintOccurrence("curriculumConflictingLecturesInSamePeriod",
+                ConstraintType.NEGATIVE_HARD, 1,
+                $leftLecture, $rightLecture));
+end
+rule "teacherConflictingLecturesInSamePeriod"
+    when
+        $leftLecture : Lecture($teacher : teacher, $period : period);
+        $rightLecture : Lecture(teacher == $teacher, period == $period);
+    then
+        insertLogical(new IntConstraintOccurrence("teacherConflictingLecturesInSamePeriod", ConstraintType.NEGATIVE_HARD,
+                1,
+                $leftLecture, $rightLecture));
+end
 
 // RoomOccupancy: Two lectures in the same room at the same period.
 // Any extra lecture in the same period and room counts as one more violation.
@@ -44,11 +62,16 @@
 end
 
 // Availabilities: Each lecture in a period unavailable for that course.
+rule "unavailablePeriodConstraint"
+    when
+        $unavailablePeriodConstraint : UnavailablePeriodConstraint($course : course, $period : period);
+        $lecture : Lecture(course == $course, period == $period);
+    then
+        insertLogical(new IntConstraintOccurrence("unavailablePeriodConstraint", ConstraintType.NEGATIVE_HARD,
+                1,
+                $lecture));
+end
 
-
-
-
-
 // Accumulate hard constraints
 rule "hardConstraintsBroken"
         salience -1 // Finish the other rules first (optional, for performance)




More information about the jboss-svn-commits mailing list