[jboss-svn-commits] JBL Code SVN: r16517 - in labs/jbossrules/trunk/drools-solver: drools-solver-core/src/main/java/org/drools/solver/core/localsearch/decider/accepter/simulatedannealing and 8 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Sun Nov 11 13:46:47 EST 2007


Author: ge0ffrey
Date: 2007-11-11 13:46:47 -0500 (Sun, 11 Nov 2007)
New Revision: 16517

Added:
   labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/score/
   labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/score/constraint/
   labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/score/constraint/ConstraintOccurrence.java
Removed:
   labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/common/solver/domain/WorkaroundMultiplePatternAccumulate.java
Modified:
   labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/localsearch/decider/accepter/simulatedannealing/SimulatedAnnealingAccepter.java
   labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/itc2007/examination/solver/examinationScoreRules.drl
   labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/lessonschedule/solver/lessonScheduleScoreRules.drl
   labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/nqueens/solver/nQueensScoreRules.drl
   labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/travelingtournament/solver/simple/simpleTravelingTournamentScoreRules.drl
   labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/travelingtournament/solver/smart/smartTravelingTournamentScoreRules.drl
Log:
WorkaroundAccumulate renamed to ConstraintOccurence

Modified: labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/localsearch/decider/accepter/simulatedannealing/SimulatedAnnealingAccepter.java
===================================================================
--- labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/localsearch/decider/accepter/simulatedannealing/SimulatedAnnealingAccepter.java	2007-11-11 13:10:34 UTC (rev 16516)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/localsearch/decider/accepter/simulatedannealing/SimulatedAnnealingAccepter.java	2007-11-11 18:46:47 UTC (rev 16517)
@@ -39,6 +39,7 @@
             return 1.0;
         } else {
             double acceptChance = Math.exp(scoreDelta * cachedAcceptChancePart);
+//            double acceptChance = Math.min(Math.exp(scoreDelta / scoreDeltaNormalizer), 1.0) * (1.0 - timeGradient);
             // Math.min(acceptChance, 1.0) is oboselete because scoreDelta <= 0.0
             return acceptChance;
         }

Copied: labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/score/constraint/ConstraintOccurrence.java (from rev 16463, labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/common/solver/domain/WorkaroundMultiplePatternAccumulate.java)
===================================================================
--- labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/score/constraint/ConstraintOccurrence.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/score/constraint/ConstraintOccurrence.java	2007-11-11 18:46:47 UTC (rev 16517)
@@ -0,0 +1,40 @@
+package org.drools.solver.core.score.constraint;
+
+import org.apache.commons.lang.builder.EqualsBuilder;
+import org.apache.commons.lang.builder.HashCodeBuilder;
+
+/**
+ * @author Geoffrey De Smet
+ */
+public class ConstraintOccurrence {
+
+    private String ruleId;
+    private Object[] objects;
+
+    public ConstraintOccurrence(String ruleId, Object ... objects) {
+        this.ruleId = ruleId;
+        this.objects = objects;
+    }
+
+    public boolean equals(Object o) {
+        if (this == o) {
+            return true;
+        } else if (o instanceof ConstraintOccurrence) {
+            ConstraintOccurrence other = (ConstraintOccurrence) o;
+            return new EqualsBuilder()
+                    .append(ruleId, other.ruleId)
+                    .append(objects, other.objects)
+                    .isEquals();
+        } else {
+            return false;
+        }
+    }
+
+    public int hashCode() {
+        return new HashCodeBuilder()
+                .append(ruleId)
+                .append(objects)
+                .toHashCode();
+    }
+
+}

Deleted: labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/common/solver/domain/WorkaroundMultiplePatternAccumulate.java
===================================================================
--- labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/common/solver/domain/WorkaroundMultiplePatternAccumulate.java	2007-11-11 13:10:34 UTC (rev 16516)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/common/solver/domain/WorkaroundMultiplePatternAccumulate.java	2007-11-11 18:46:47 UTC (rev 16517)
@@ -1,40 +0,0 @@
-package org.drools.solver.examples.common.solver.domain;
-
-import org.apache.commons.lang.builder.EqualsBuilder;
-import org.apache.commons.lang.builder.HashCodeBuilder;
-
-/**
- * @author Geoffrey De Smet
- */
-public class WorkaroundMultiplePatternAccumulate {
-
-    private String ruleId;
-    private Object[] objects;
-
-    public WorkaroundMultiplePatternAccumulate(String ruleId, Object ... objects) {
-        this.ruleId = ruleId;
-        this.objects = objects;
-    }
-
-    public boolean equals(Object o) {
-        if (this == o) {
-            return true;
-        } else if (o instanceof WorkaroundMultiplePatternAccumulate) {
-            WorkaroundMultiplePatternAccumulate other = (WorkaroundMultiplePatternAccumulate) o;
-            return new EqualsBuilder()
-                    .append(ruleId, other.ruleId)
-                    .append(objects, other.objects)
-                    .isEquals();
-        } else {
-            return false;
-        }
-    }
-
-    public int hashCode() {
-        return new HashCodeBuilder()
-                .append(ruleId)
-                .append(objects)
-                .toHashCode();
-    }
-
-}

Modified: labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/itc2007/examination/solver/examinationScoreRules.drl
===================================================================
--- labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/itc2007/examination/solver/examinationScoreRules.drl	2007-11-11 13:10:34 UTC (rev 16516)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/itc2007/examination/solver/examinationScoreRules.drl	2007-11-11 18:46:47 UTC (rev 16517)
@@ -14,7 +14,7 @@
 import org.drools.solver.examples.itc2007.examination.domain.RoomHardConstraintType;
 import org.drools.solver.examples.itc2007.examination.domain.Student;
 import org.drools.solver.examples.itc2007.examination.domain.Topic;
-import org.drools.solver.examples.common.solver.domain.WorkaroundMultiplePatternAccumulate;
+import org.drools.solver.core.score.constraint.ConstraintOccurrence;
 
 global HardAndSoftConstraintScoreCalculator scoreCalculator;
 
@@ -25,7 +25,7 @@
     $exam : Exam($id : id, topic.studentList contains $student, $period : period);
     Exam(period == $period, id > $id, topic.studentList contains $student);
   then
-    insertLogical(new WorkaroundMultiplePatternAccumulate("conflictingExamsInSamePeriod", $exam));
+    insertLogical(new ConstraintOccurrence("conflictingExamsInSamePeriod", $exam));
 end
 
 // More time required during a period than available in that period.
@@ -33,7 +33,7 @@
   when
     $exam : Exam($periodDuration : period.durationInMinutes, topic.duration > $periodDuration);
   then
-    insertLogical(new WorkaroundMultiplePatternAccumulate("periodDurationTooShort", $exam));
+    insertLogical(new ConstraintOccurrence("periodDurationTooShort", $exam));
 end
 
 // More seating required during a period in a room than available in that room.
@@ -48,7 +48,7 @@
     );
     eval($totalStudentListSize.intValue() > $capacity);
   then
-    insertLogical(new WorkaroundMultiplePatternAccumulate("roomCapacityTooSmall", $period, $room));
+    insertLogical(new ConstraintOccurrence("roomCapacityTooSmall", $period, $room));
 end
 
 // Period hard constraints
@@ -63,7 +63,7 @@
     Exam(topic == $rightSideTopic, period != $leftSidePeriod);
     // TODO make sure that leftSide and rightSide don't share a student
   then
-    insertLogical(new WorkaroundMultiplePatternAccumulate("periodHardConstraintExamCoincidence", $periodHardConstraint));
+    insertLogical(new ConstraintOccurrence("periodHardConstraintExamCoincidence", $periodHardConstraint));
 end
 rule "periodHardConstraintExclusion"
   when
@@ -75,7 +75,7 @@
     Exam(topic == $leftSideTopic, $leftSidePeriod : period);
     Exam(topic == $rightSideTopic, period == $leftSidePeriod);
   then
-    insertLogical(new WorkaroundMultiplePatternAccumulate("periodHardConstraintExclusion", $periodHardConstraint));
+    insertLogical(new ConstraintOccurrence("periodHardConstraintExclusion", $periodHardConstraint));
 end
 rule "periodHardConstraintAfter"
   when
@@ -89,7 +89,7 @@
         || (period.dateInDays == $leftSidePeriod.dateInDays
         && period.startTimeInMinutes <= $leftSidePeriod.startTimeInMinutes));
   then
-    insertLogical(new WorkaroundMultiplePatternAccumulate("periodHardConstraintAfter", $periodHardConstraint));
+    insertLogical(new ConstraintOccurrence("periodHardConstraintAfter", $periodHardConstraint));
 end
 
 
@@ -103,7 +103,7 @@
     Exam(topic == $topic, $room : room);
     Exam(topic != $topic, room == $room);
   then
-    insertLogical(new WorkaroundMultiplePatternAccumulate("roomHardConstraintExclusive", $roomHardConstraint));
+    insertLogical(new ConstraintOccurrence("roomHardConstraintExclusive", $roomHardConstraint));
 end
 
 
@@ -111,7 +111,7 @@
     salience -1 // Finish the other rules first (optional, for performance)
   when
     $hardCount : Number() from accumulate(
-       $w : WorkaroundMultiplePatternAccumulate(),
+       $w : ConstraintOccurrence(),
        // countInteger($w) // Vote for http://jira.jboss.com/jira/browse/JBRULES-1075
        count($w) // Vote for http://jira.jboss.com/jira/browse/JBRULES-1075
     );

Modified: labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/lessonschedule/solver/lessonScheduleScoreRules.drl
===================================================================
--- labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/lessonschedule/solver/lessonScheduleScoreRules.drl	2007-11-11 13:10:34 UTC (rev 16516)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/lessonschedule/solver/lessonScheduleScoreRules.drl	2007-11-11 18:46:47 UTC (rev 16517)
@@ -7,7 +7,7 @@
 import org.drools.solver.examples.lessonschedule.domain.Teacher;
 import org.drools.solver.examples.lessonschedule.domain.Group;
 import org.drools.solver.examples.lessonschedule.domain.Lesson;
-import org.drools.solver.examples.common.solver.domain.WorkaroundMultiplePatternAccumulate;
+import org.drools.solver.core.score.constraint.ConstraintOccurrence;
 
 global HardAndSoftConstraintScoreCalculator scoreCalculator;
 
@@ -26,7 +26,7 @@
     $lesson : Lesson($id : id, $teacher : teacher, $timeslot : timeslot);
     exists Lesson(id > $id, teacher == $teacher, timeslot == $timeslot);
   then
-    insertLogical(new WorkaroundMultiplePatternAccumulate("multipleLessonsPerTeacherPerTimeslot", $lesson));
+    insertLogical(new ConstraintOccurrence("multipleLessonsPerTeacherPerTimeslot", $lesson));
 end
 
 rule "multipleLessonsPerGroupPerTimeslot"
@@ -34,13 +34,13 @@
     $lesson : Lesson($id : id, $group : group, $timeslot : timeslot);
     exists Lesson(id > $id, group == $group, timeslot == $timeslot);
   then
-    insertLogical(new WorkaroundMultiplePatternAccumulate("multipleLessonsPerGroupPerTimeslot", $lesson));
+    insertLogical(new ConstraintOccurrence("multipleLessonsPerGroupPerTimeslot", $lesson));
 end
 
 rule "hardConstraintsBroken"
   when
     $hardCount : Long() from accumulate(
-       $w : WorkaroundMultiplePatternAccumulate(),
+       $w : ConstraintOccurrence(),
        count($w)
     );
   then

Modified: labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/nqueens/solver/nQueensScoreRules.drl
===================================================================
--- labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/nqueens/solver/nQueensScoreRules.drl	2007-11-11 13:10:34 UTC (rev 16516)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/nqueens/solver/nQueensScoreRules.drl	2007-11-11 18:46:47 UTC (rev 16517)
@@ -3,7 +3,7 @@
 import org.drools.solver.core.evaluation.scorecalculator.SimpleScoreCalculator;
 
 import org.drools.solver.examples.nqueens.domain.Queen;
-import org.drools.solver.examples.common.solver.domain.WorkaroundMultiplePatternAccumulate;
+import org.drools.solver.core.score.constraint.ConstraintOccurrence;
 
 global SimpleScoreCalculator scoreCalculator;
 
@@ -29,7 +29,7 @@
     $q1 : Queen($id : id, $y : y);
     $q2 : Queen(id > $id, y == $y);
   then
-    insertLogical(new WorkaroundMultiplePatternAccumulate("multipleQueensHorizontal", $q1, $q2));
+    insertLogical(new ConstraintOccurrence("multipleQueensHorizontal", $q1, $q2));
 end
 
 // multipleQueensVertical is obsolete because it is always 0
@@ -39,7 +39,7 @@
     $q1 : Queen($id : id, $ascendingD : ascendingD);
     $q2 : Queen(id > $id, ascendingD == $ascendingD);
   then
-    insertLogical(new WorkaroundMultiplePatternAccumulate("multipleQueensAscendingDiagonal", $q1, $q2));
+    insertLogical(new ConstraintOccurrence("multipleQueensAscendingDiagonal", $q1, $q2));
 end
 
 rule "multipleQueensDescendingDiagonal"
@@ -47,13 +47,13 @@
     $q1 : Queen($id : id, $descendingD : descendingD);
     $q2 : Queen(id > $id, descendingD == $descendingD);
   then
-    insertLogical(new WorkaroundMultiplePatternAccumulate("multipleQueensDescendingDiagonal", $q1, $q2));
+    insertLogical(new ConstraintOccurrence("multipleQueensDescendingDiagonal", $q1, $q2));
 end
 
 rule "constraintsBroken"
   when
     $hardConstraintCount : Long() from accumulate(
-       $w : WorkaroundMultiplePatternAccumulate(),
+       $w : ConstraintOccurrence(),
        count($w)
     );
   then

Modified: labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/travelingtournament/solver/simple/simpleTravelingTournamentScoreRules.drl
===================================================================
--- labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/travelingtournament/solver/simple/simpleTravelingTournamentScoreRules.drl	2007-11-11 13:10:34 UTC (rev 16516)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/travelingtournament/solver/simple/simpleTravelingTournamentScoreRules.drl	2007-11-11 18:46:47 UTC (rev 16517)
@@ -8,7 +8,7 @@
 import org.drools.solver.examples.travelingtournament.domain.Team;
 import org.drools.solver.examples.travelingtournament.domain.TravelingTournament;
 import org.drools.solver.examples.travelingtournament.solver.domain.Hop;
-import org.drools.solver.examples.common.solver.domain.WorkaroundMultiplePatternAccumulate;
+import org.drools.solver.core.score.constraint.ConstraintOccurrence;
 
 global HardAndSoftConstraintScoreCalculator scoreCalculator;
 
@@ -47,7 +47,7 @@
     exists Match( id > $id, homeTeam == $team, day == $day )
         || exists Match(id > $id, awayTeam == $team, day == $day );
   then
-    insertLogical(new WorkaroundMultiplePatternAccumulate("multipleMatchesPerTeamPerDay", $m));
+    insertLogical(new ConstraintOccurrence("multipleMatchesPerTeamPerDay", $m));
 end
 
 rule "fourConsecutiveHomeMatches"
@@ -57,7 +57,7 @@
     Match(homeTeam == $homeTeam, eval(day.getIndex() == $day1.getIndex() + 2));
     Match(homeTeam == $homeTeam, eval(day.getIndex() == $day1.getIndex() + 3));
   then
-    insertLogical(new WorkaroundMultiplePatternAccumulate("fourConsecutiveHomeMatches", $m));
+    insertLogical(new ConstraintOccurrence("fourConsecutiveHomeMatches", $m));
 end
 
 rule "fourConsecutiveAwayMatches"
@@ -67,7 +67,7 @@
     Match(awayTeam == $awayTeam, eval(day.getIndex() == $day1.getIndex() + 2));
     Match(awayTeam == $awayTeam, eval(day.getIndex() == $day1.getIndex() + 3));
   then
-    insertLogical(new WorkaroundMultiplePatternAccumulate("fourConsecutiveAwayMatches", $m));
+    insertLogical(new ConstraintOccurrence("fourConsecutiveAwayMatches", $m));
 end
 
 rule "matchRepeater"
@@ -75,14 +75,14 @@
     $m : Match($homeTeam : homeTeam, $awayTeam : awayTeam, $day1 : day);
     Match(homeTeam == $awayTeam, awayTeam == $homeTeam, eval(day.getIndex() == $day1.getIndex() + 1));
   then
-    insertLogical(new WorkaroundMultiplePatternAccumulate("matchRepeater", $m));
+    insertLogical(new ConstraintOccurrence("matchRepeater", $m));
 end
 
 rule "hardConstraintsBroken"
     salience -1 // Finish the other rules first (optional, for performance)
   when
     $hardCount : Long() from accumulate(
-       $w : WorkaroundMultiplePatternAccumulate(),
+       $w : ConstraintOccurrence(),
        count($w)
     );
   then

Modified: labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/travelingtournament/solver/smart/smartTravelingTournamentScoreRules.drl
===================================================================
--- labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/travelingtournament/solver/smart/smartTravelingTournamentScoreRules.drl	2007-11-11 13:10:34 UTC (rev 16516)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/travelingtournament/solver/smart/smartTravelingTournamentScoreRules.drl	2007-11-11 18:46:47 UTC (rev 16517)
@@ -8,7 +8,7 @@
 import org.drools.solver.examples.travelingtournament.domain.Team;
 import org.drools.solver.examples.travelingtournament.domain.TravelingTournament;
 import org.drools.solver.examples.travelingtournament.solver.domain.Hop;
-import org.drools.solver.examples.common.solver.domain.WorkaroundMultiplePatternAccumulate;
+import org.drools.solver.core.score.constraint.ConstraintOccurrence;
 
 global HardAndSoftConstraintScoreCalculator scoreCalculator;
 
@@ -40,7 +40,7 @@
     Match(homeTeam == $homeTeam, eval(day.getIndex() == $day1.getIndex() + 2));
     Match(homeTeam == $homeTeam, eval(day.getIndex() == $day1.getIndex() + 3));
   then
-    insertLogical(new WorkaroundMultiplePatternAccumulate("fourConsecutiveHomeMatches", $m));
+    insertLogical(new ConstraintOccurrence("fourConsecutiveHomeMatches", $m));
 end
 
 rule "fourConsecutiveAwayMatches"
@@ -50,7 +50,7 @@
     Match(awayTeam == $awayTeam, eval(day.getIndex() == $day1.getIndex() + 2));
     Match(awayTeam == $awayTeam, eval(day.getIndex() == $day1.getIndex() + 3));
   then
-    insertLogical(new WorkaroundMultiplePatternAccumulate("fourConsecutiveAwayMatches", $m));
+    insertLogical(new ConstraintOccurrence("fourConsecutiveAwayMatches", $m));
 end
 
 rule "matchRepeater"
@@ -58,14 +58,14 @@
     $m : Match($homeTeam : homeTeam, $awayTeam : awayTeam, $day1 : day);
     Match(homeTeam == $awayTeam, awayTeam == $homeTeam, eval(day.getIndex() == $day1.getIndex() + 1));
   then
-    insertLogical(new WorkaroundMultiplePatternAccumulate("matchRepeater", $m));
+    insertLogical(new ConstraintOccurrence("matchRepeater", $m));
 end
 
 rule "hardConstraintsBroken"
     salience -1 // Finish the other rules first (optional, for performance)
   when
     $hardCount : Number() from accumulate(
-       $w : WorkaroundMultiplePatternAccumulate(),
+       $w : ConstraintOccurrence(),
        // countInteger($w) // Vote for http://jira.jboss.com/jira/browse/JBRULES-1075
        count($w) // Vote for http://jira.jboss.com/jira/browse/JBRULES-1075
     );




More information about the jboss-svn-commits mailing list