[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