[jboss-svn-commits] JBL Code SVN: r32366 - in labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main: resources/org/drools/planner/examples/nurserostering/solver and 1 other directory.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Fri Apr 2 09:15:34 EDT 2010
Author: ge0ffrey
Date: 2010-04-02 09:15:32 -0400 (Fri, 02 Apr 2010)
New Revision: 32366
Modified:
labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/domain/EmployeeAssignment.java
labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/resources/org/drools/planner/examples/nurserostering/solver/nurseRosteringScoreRules.drl
Log:
nurse rostering: maximumConsecutiveWorkingDays (untested!)
Modified: labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/domain/EmployeeAssignment.java
===================================================================
--- labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/domain/EmployeeAssignment.java 2010-04-01 23:23:23 UTC (rev 32365)
+++ labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/domain/EmployeeAssignment.java 2010-04-02 13:15:32 UTC (rev 32366)
@@ -108,4 +108,8 @@
return employee + "(" + shiftDate + ")" + "->" + shift;
}
+ public int getShiftDateDayIndex() {
+ return getShiftDate().getDayIndex();
+ }
+
}
Modified: labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/resources/org/drools/planner/examples/nurserostering/solver/nurseRosteringScoreRules.drl
===================================================================
--- labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/resources/org/drools/planner/examples/nurserostering/solver/nurseRosteringScoreRules.drl 2010-04-01 23:23:23 UTC (rev 32365)
+++ labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/resources/org/drools/planner/examples/nurserostering/solver/nurseRosteringScoreRules.drl 2010-04-02 13:15:32 UTC (rev 32366)
@@ -70,6 +70,70 @@
// Soft constraints
// ############################################################################
+
+// Maximum number of assignments
+// TODO
+
+// Minimum number of assignments
+// TODO
+
+// Maximum number of consecutive working days
+rule "maximumConsecutiveWorkingDays"
+ when
+ $employee : Employee();
+
+ // The first day has no working day before it
+ EmployeeAssignment(employee == $employee, $firstDayIndex : shiftDateDayIndex, shift != null);
+ not EmployeeAssignment(employee == $employee, shiftDateDayIndex == ($firstDayIndex - 1), shift != null);
+
+ // The last day has no working day after it
+ EmployeeAssignment(employee == $employee, shiftDateDayIndex > $firstDayIndex, $lastDayIndex : shiftDateDayIndex);
+ not EmployeeAssignment(employee == $employee, shiftDateDayIndex == ($lastDayIndex + 1), shift != null);
+
+ // There are no free days between the first and last day
+ not EmployeeAssignment(employee == $employee, shiftDateDayIndex > $firstDayIndex, shiftDateDayIndex < $lastDayIndex, shift == null);
+
+ // There are to many
+ eval(($lastDayIndex - $firstDayIndex) > 7);
+ then
+ insertLogical(new IntConstraintOccurrence("maximumConsecutiveWorkingDays", ConstraintType.NEGATIVE_SOFT,
+ ($lastDayIndex - $firstDayIndex - 7),
+ $employee, $firstDayIndex));
+end
+
+// Minimum number of consecutive working days
+// TODO
+
+// Maximum number of consecutive free days
+// TODO
+
+// Minimum number of consecutive free days
+// TODO
+
+// Maximum number of consecutive working weekends
+// TODO
+
+// Complete weekends
+// TODO
+
+// Single assignment per day
+// TODO
+
+// Two free days after a night shift
+// TODO
+
+// Requested day on/off
+// TODO
+
+// Requested shift on/off
+// TODO
+
+// Alternative skill
+// TODO
+
+// Unwanted patterns
+// TODO
+
// ############################################################################
// Calculate score
// ############################################################################
More information about the jboss-svn-commits
mailing list