[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