[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