[jboss-svn-commits] JBL Code SVN: r19213 - in labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main: resources/org/drools/solver/examples/itc2007/curriculumcourse/benchmark and 1 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Sun Mar 23 08:06:11 EDT 2008
Author: ge0ffrey
Date: 2008-03-23 08:06:10 -0400 (Sun, 23 Mar 2008)
New Revision: 19213
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/benchmark/curriculumCourseShortSolverBenchmarkConfig.xml
labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/itc2007/curriculumcourse/solver/curriculumCourseScoreRules.drl
Log:
cc min working days, but with bug
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-23 11:03:09 UTC (rev 19212)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/itc2007/curriculumcourse/domain/Lecture.java 2008-03-23 12:06:10 UTC (rev 19213)
@@ -54,6 +54,10 @@
return course.getStudentSize();
}
+ public Day getDay() {
+ return period.getDay();
+ }
+
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/benchmark/curriculumCourseShortSolverBenchmarkConfig.xml
===================================================================
--- labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/itc2007/curriculumcourse/benchmark/curriculumCourseShortSolverBenchmarkConfig.xml 2008-03-23 11:03:09 UTC (rev 19212)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/itc2007/curriculumcourse/benchmark/curriculumCourseShortSolverBenchmarkConfig.xml 2008-03-23 12:06:10 UTC (rev 19213)
@@ -14,7 +14,7 @@
</scoreCalculator>
<startingSolutionInitializerClass>org.drools.solver.examples.itc2007.curriculumcourse.solver.solution.initializer.CurriculumCourseStartingSolutionInitializer</startingSolutionInitializerClass>
<finish>
- <maximumStepCount>100</maximumStepCount>
+ <maximumStepCount>500</maximumStepCount>
</finish>
</inheritedLocalSearchSolver>
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-23 11:03:09 UTC (rev 19212)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/itc2007/curriculumcourse/solver/curriculumCourseScoreRules.drl 2008-03-23 12:06:10 UTC (rev 19213)
@@ -101,6 +101,26 @@
// MinimumWorkingDays: The lectures of each course must be spread into a minimum number of days.
// Each day below the minimum counts as 5 points of penalty.
+rule "minimumWorkingDays"
+ when
+ $course : Course($minWorkingDaySize : minWorkingDaySize);
+ $dayCount : Number(intValue < $minWorkingDaySize) from accumulate(
+ Lecture(course == $course, $day : day),
+ count($day)
+ );
+ // HACK to fix wierd truth maintance behavior in drools
+ // because making weight part of the equals/hashcode doesn't cut it
+ not IntConstraintOccurrence(
+ ruleId == "minimumWorkingDays",
+ constraintType == ConstraintType.NEGATIVE_SOFT,
+ causes contains $course,
+ eval(weight != (($minWorkingDaySize - $dayCount.intValue()) * 5))
+ );
+ then
+ insertLogical(new IntConstraintOccurrence("minimumWorkingDays", ConstraintType.NEGATIVE_SOFT,
+ (($minWorkingDaySize - $dayCount.intValue()) * 5),
+ $course));
+end
// CurriculumCompactness: Lectures belonging to a curriculum should be adjacent
// to each other (i.e., in consecutive periods).
More information about the jboss-svn-commits
mailing list