[jboss-svn-commits] JBL Code SVN: r27239 - in labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main: java/org/drools/solver/examples/patientadmissionschedule/solver/solution/initializer and 1 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Sun Jun 28 10:05:33 EDT 2009
Author: ge0ffrey
Date: 2009-06-28 10:05:33 -0400 (Sun, 28 Jun 2009)
New Revision: 27239
Modified:
labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/patientadmissionschedule/domain/BedDesignation.java
labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/patientadmissionschedule/solver/solution/initializer/PatientAdmissionScheduleStartingSolutionInitializer.java
labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/patientadmissionschedule/solver/patientAdmissionScheduleScoreRules.drl
Log:
pas: preferredRoomEquipment
Modified: labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/patientadmissionschedule/domain/BedDesignation.java
===================================================================
--- labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/patientadmissionschedule/domain/BedDesignation.java 2009-06-28 13:41:25 UTC (rev 27238)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/patientadmissionschedule/domain/BedDesignation.java 2009-06-28 14:05:33 UTC (rev 27239)
@@ -81,6 +81,10 @@
return admissionPart + " @ " + bed;
}
+ public Patient getPatient() {
+ return admissionPart.getPatient();
+ }
+
public Room getRoom() {
return bed.getRoom();
}
Modified: labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/patientadmissionschedule/solver/solution/initializer/PatientAdmissionScheduleStartingSolutionInitializer.java
===================================================================
--- labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/patientadmissionschedule/solver/solution/initializer/PatientAdmissionScheduleStartingSolutionInitializer.java 2009-06-28 13:41:25 UTC (rev 27238)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/patientadmissionschedule/solver/solution/initializer/PatientAdmissionScheduleStartingSolutionInitializer.java 2009-06-28 14:05:33 UTC (rev 27239)
@@ -41,7 +41,7 @@
List<Bed> bedList = patientAdmissionSchedule.getBedList();
int stillRunningCounter = 0; // TODO https://jira.jboss.org/jira/browse/JBRULES-2145
for (BedDesignation bedDesignation : bedDesignationList) {
-System.out.println("Trunk is bugged " + ++stillRunningCounter +"/" + bedDesignationList.size() + " but we are not working on trunk. See JBRULES-2145.");
+System.out.println("Trunk is bugged " + ++stillRunningCounter +"/" + bedDesignationList.size() + " but we do not use trunk. See JBRULES-2145.");
Score unscheduledScore = localSearchSolverScope.calculateScoreFromWorkingMemory();
boolean perfectMatch = false;
Score bestScore = DefaultHardAndSoftScore.valueOf(Integer.MIN_VALUE);
Modified: labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/patientadmissionschedule/solver/patientAdmissionScheduleScoreRules.drl
===================================================================
--- labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/patientadmissionschedule/solver/patientAdmissionScheduleScoreRules.drl 2009-06-28 13:41:25 UTC (rev 27238)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/patientadmissionschedule/solver/patientAdmissionScheduleScoreRules.drl 2009-06-28 14:05:33 UTC (rev 27239)
@@ -32,6 +32,8 @@
// Hard constraints
// ############################################################################
+// RoomMaintenance constraint is not yet applicable
+
// Two patients in the same bed for a number of nights.
rule "sameBedInSameNight"
when
@@ -40,12 +42,12 @@
$leftBedDesignation : BedDesignation(admissionPart == $leftAdmissionPart, $bed : bed);
$rightBedDesignation : BedDesignation(admissionPart == $rightAdmissionPart, bed == $bed);
then
- insertLogical(new IntConstraintOccurrence("sameBedInSameNight", ConstraintType.NEGATIVE_HARD,
- $admissionPartConflict.getNightSize(),
+ insertLogical(new IntConstraintOccurrence("sameBedInSameNight",
+ ConstraintType.NEGATIVE_HARD, $admissionPartConflict.getNightSize(),
$leftBedDesignation, $rightBedDesignation));
end
-// Two admissionParts in the same bed for a number of nights.
+// Different genders in the same room when the room doesn't allow it.
rule "differentGenderInSameGenderRoomInSameNight"
when
$admissionPartConflict : AdmissionPartConflict($leftAdmissionPart : leftAdmissionPart,
@@ -55,11 +57,19 @@
admissionPart == $leftAdmissionPart, $room : room);
$rightBedDesignation : BedDesignation(room == $room, admissionPart == $rightAdmissionPart);
then
- insertLogical(new IntConstraintOccurrence("differentGenderInSameGenderRoomInSameNight", ConstraintType.NEGATIVE_HARD,
- $admissionPartConflict.getNightSize(),
+ insertLogical(new IntConstraintOccurrence("differentGenderInSameGenderRoomInSameNight",
+ ConstraintType.NEGATIVE_HARD, $admissionPartConflict.getNightSize(),
$leftBedDesignation, $rightBedDesignation));
end
+// Room's GenderLimitation male only and female only constraint is build-in
+
+// Departement's mininumAge and maximumAge constraint is build-in
+
+// RequiredPatientEquipment constraint is build-in
+
+// Patient's requiredRoomCapacity constraint is not yet applicable
+
// Accumulate hard constraints
rule "hardConstraintsBroken"
salience -1 // Finish the other rules first (optional, for performance)
@@ -76,6 +86,21 @@
// Soft constraints
// ############################################################################
+
+// PreferredPatientEquipment constraint
+rule "preferredPatientEquipment"
+ when
+ $preferredPatientEquipment : PreferredPatientEquipment($patient : patient, $equipment : equipment);
+ $bedDesignation : BedDesignation(patient == $patient, $room : room);
+ not RoomEquipment(room == $room, equipment == $equipment);
+ then
+ insertLogical(new IntConstraintOccurrence("preferredPatientEquipment",
+ ConstraintType.NEGATIVE_SOFT, 20,
+ $bedDesignation));
+end
+
+// Do not change bed in an AdmissionPart on different Nights constraint is build-in
+
// Accumulate soft constraints
rule "softConstraintsBroken"
salience -1 // Finish the other rules first (optional, for performance)
More information about the jboss-svn-commits
mailing list