[jboss-svn-commits] JBL Code SVN: r33466 - in labs/jbossrules/trunk/drools-planner: drools-planner-core/src/main/java/org/drools/planner/core/localsearch/decider/acceptor/greatdeluge and 2 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Sun Jun 13 06:42:43 EDT 2010


Author: ge0ffrey
Date: 2010-06-13 06:42:43 -0400 (Sun, 13 Jun 2010)
New Revision: 33466

Added:
   labs/jbossrules/trunk/drools-planner/drools-planner-core/src/main/java/org/drools/planner/benchmark/AverageScoreSolverBenchmarkComparator.java
   labs/jbossrules/trunk/drools-planner/drools-planner-core/src/main/java/org/drools/planner/benchmark/WorstScoreSolverBenchmarkComparator.java
Removed:
   labs/jbossrules/trunk/drools-planner/drools-planner-core/src/main/java/org/drools/planner/benchmark/MaxScoreSolverBenchmarkComparator.java
Modified:
   labs/jbossrules/trunk/drools-planner/drools-planner-core/src/main/java/org/drools/planner/benchmark/SolverBenchmark.java
   labs/jbossrules/trunk/drools-planner/drools-planner-core/src/main/java/org/drools/planner/benchmark/SolverBenchmarkSuite.java
   labs/jbossrules/trunk/drools-planner/drools-planner-core/src/main/java/org/drools/planner/core/localsearch/decider/acceptor/greatdeluge/GreatDelugeAcceptor.java
   labs/jbossrules/trunk/drools-planner/drools-planner-core/src/main/java/org/drools/planner/core/score/DefaultHardAndSoftScore.java
   labs/jbossrules/trunk/drools-planner/drools-planner-core/src/main/java/org/drools/planner/core/score/DefaultSimpleScore.java
   labs/jbossrules/trunk/drools-planner/drools-planner-core/src/main/java/org/drools/planner/core/score/Score.java
   labs/jbossrules/trunk/drools-planner/src/main/assembly/docs/UpgradeFromPreviousVersionRecipe.txt
Log:
typo in Score method + AverageScoreSolverBenchmarkComparator + rename to WorstScoreSolverBenchmarkComparator

Added: labs/jbossrules/trunk/drools-planner/drools-planner-core/src/main/java/org/drools/planner/benchmark/AverageScoreSolverBenchmarkComparator.java
===================================================================
--- labs/jbossrules/trunk/drools-planner/drools-planner-core/src/main/java/org/drools/planner/benchmark/AverageScoreSolverBenchmarkComparator.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-planner/drools-planner-core/src/main/java/org/drools/planner/benchmark/AverageScoreSolverBenchmarkComparator.java	2010-06-13 10:42:43 UTC (rev 33466)
@@ -0,0 +1,23 @@
+package org.drools.planner.benchmark;
+
+import java.util.Comparator;
+
+import org.apache.commons.lang.builder.CompareToBuilder;
+import org.drools.planner.core.score.Score;
+
+/**
+ * @author Geoffrey De Smet
+ */
+public class AverageScoreSolverBenchmarkComparator implements Comparator<SolverBenchmark> {
+
+    private WorstScoreSolverBenchmarkComparator worstScoreSolverBenchmarkComparator
+            = new WorstScoreSolverBenchmarkComparator();
+
+    public int compare(SolverBenchmark a, SolverBenchmark b) {
+        return new CompareToBuilder()
+                .append(a.getAverageScore(), b.getAverageScore())
+                .append(a, b, worstScoreSolverBenchmarkComparator)
+                .toComparison();
+    }
+
+}

Deleted: labs/jbossrules/trunk/drools-planner/drools-planner-core/src/main/java/org/drools/planner/benchmark/MaxScoreSolverBenchmarkComparator.java
===================================================================
--- labs/jbossrules/trunk/drools-planner/drools-planner-core/src/main/java/org/drools/planner/benchmark/MaxScoreSolverBenchmarkComparator.java	2010-06-13 09:08:48 UTC (rev 33465)
+++ labs/jbossrules/trunk/drools-planner/drools-planner-core/src/main/java/org/drools/planner/benchmark/MaxScoreSolverBenchmarkComparator.java	2010-06-13 10:42:43 UTC (rev 33466)
@@ -1,21 +0,0 @@
-package org.drools.planner.benchmark;
-
-import java.util.Comparator;
-
-import org.apache.commons.lang.builder.CompareToBuilder;
-
-/**
- * @author Geoffrey De Smet
- */
-public class MaxScoreSolverBenchmarkComparator implements Comparator<SolverBenchmark> {
-
-    public int compare(SolverBenchmark a, SolverBenchmark b) {
-        SolverBenchmarkResult aResult = a.getWorstResult();
-        SolverBenchmarkResult bResult = b.getWorstResult();
-        return new CompareToBuilder()
-                .append(aResult.getScore(), bResult.getScore())
-                .append(- aResult.getTimeMillisSpend(), - bResult.getTimeMillisSpend())
-                .toComparison();
-    }
-
-}

Modified: labs/jbossrules/trunk/drools-planner/drools-planner-core/src/main/java/org/drools/planner/benchmark/SolverBenchmark.java
===================================================================
--- labs/jbossrules/trunk/drools-planner/drools-planner-core/src/main/java/org/drools/planner/benchmark/SolverBenchmark.java	2010-06-13 09:08:48 UTC (rev 33465)
+++ labs/jbossrules/trunk/drools-planner/drools-planner-core/src/main/java/org/drools/planner/benchmark/SolverBenchmark.java	2010-06-13 10:42:43 UTC (rev 33466)
@@ -7,6 +7,7 @@
 import com.thoughtworks.xstream.annotations.XStreamAlias;
 import com.thoughtworks.xstream.annotations.XStreamImplicit;
 import org.drools.planner.config.localsearch.LocalSearchSolverConfig;
+import org.drools.planner.core.score.Score;
 
 /**
  * @author Geoffrey De Smet
@@ -99,16 +100,28 @@
         }
     }
 
-    public SolverBenchmarkResult getWorstResult() {
-        SolverBenchmarkResult worstResult = null;
+    public List<Score> getScoreList() {
+        List<Score> scoreList = new ArrayList<Score>(solverBenchmarkResultList.size());
         for (SolverBenchmarkResult solverBenchmarkResult : solverBenchmarkResultList) {
-            if (worstResult == null || solverBenchmarkResult.getScore().compareTo(worstResult.getScore()) < 0
-                    || (solverBenchmarkResult.getScore().equals(worstResult.getScore())
-                    && solverBenchmarkResult.getTimeMillisSpend() > worstResult.getTimeMillisSpend())) {
-                worstResult = solverBenchmarkResult;
+            scoreList.add(solverBenchmarkResult.getScore());
+        }
+        return scoreList;
+    }
+
+    /**
+     * Note that the average score
+     * @return the average score
+     */
+    public Score getAverageScore() {
+        Score totalScore = null;
+        for (SolverBenchmarkResult solverBenchmarkResult : solverBenchmarkResultList) {
+            if (totalScore == null) {
+                totalScore = solverBenchmarkResult.getScore();
+            } else {
+                totalScore.add(solverBenchmarkResult.getScore());
             }
         }
-        return worstResult;
+        return totalScore.divide(solverBenchmarkResultList.size());
     }
 
 }

Modified: labs/jbossrules/trunk/drools-planner/drools-planner-core/src/main/java/org/drools/planner/benchmark/SolverBenchmarkSuite.java
===================================================================
--- labs/jbossrules/trunk/drools-planner/drools-planner-core/src/main/java/org/drools/planner/benchmark/SolverBenchmarkSuite.java	2010-06-13 09:08:48 UTC (rev 33465)
+++ labs/jbossrules/trunk/drools-planner/drools-planner-core/src/main/java/org/drools/planner/benchmark/SolverBenchmarkSuite.java	2010-06-13 10:42:43 UTC (rev 33466)
@@ -316,7 +316,7 @@
     public void benchmarkingEnded() {
         if (sortSolverBenchmarks) {
             if (solverBenchmarkComparator == null) {
-                solverBenchmarkComparator = new MaxScoreSolverBenchmarkComparator();
+                solverBenchmarkComparator = new AverageScoreSolverBenchmarkComparator();
             }
             Collections.sort(solverBenchmarkList, solverBenchmarkComparator);
         }

Copied: labs/jbossrules/trunk/drools-planner/drools-planner-core/src/main/java/org/drools/planner/benchmark/WorstScoreSolverBenchmarkComparator.java (from rev 33444, labs/jbossrules/trunk/drools-planner/drools-planner-core/src/main/java/org/drools/planner/benchmark/MaxScoreSolverBenchmarkComparator.java)
===================================================================
--- labs/jbossrules/trunk/drools-planner/drools-planner-core/src/main/java/org/drools/planner/benchmark/WorstScoreSolverBenchmarkComparator.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-planner/drools-planner-core/src/main/java/org/drools/planner/benchmark/WorstScoreSolverBenchmarkComparator.java	2010-06-13 10:42:43 UTC (rev 33466)
@@ -0,0 +1,25 @@
+package org.drools.planner.benchmark;
+
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.List;
+
+import org.apache.commons.lang.builder.CompareToBuilder;
+import org.drools.planner.core.score.Score;
+
+/**
+ * @author Geoffrey De Smet
+ */
+public class WorstScoreSolverBenchmarkComparator implements Comparator<SolverBenchmark> {
+
+    public int compare(SolverBenchmark a, SolverBenchmark b) {
+        List<Score> aScoreList = a.getScoreList();
+        Collections.sort(aScoreList);
+        List<Score> bScoreList = b.getScoreList();
+        Collections.sort(bScoreList);
+        return new CompareToBuilder()
+                .append(bScoreList.toArray(), aScoreList.toArray()) // Descending (start with the worst scores)
+                .toComparison();
+    }
+
+}

Modified: labs/jbossrules/trunk/drools-planner/drools-planner-core/src/main/java/org/drools/planner/core/localsearch/decider/acceptor/greatdeluge/GreatDelugeAcceptor.java
===================================================================
--- labs/jbossrules/trunk/drools-planner/drools-planner-core/src/main/java/org/drools/planner/core/localsearch/decider/acceptor/greatdeluge/GreatDelugeAcceptor.java	2010-06-13 09:08:48 UTC (rev 33465)
+++ labs/jbossrules/trunk/drools-planner/drools-planner-core/src/main/java/org/drools/planner/core/localsearch/decider/acceptor/greatdeluge/GreatDelugeAcceptor.java	2010-06-13 10:42:43 UTC (rev 33466)
@@ -62,10 +62,10 @@
         } else {
             Score perfectMaximumScore = stepScope.getLocalSearchSolverScope().getScoreDefinition()
                     .getPerfectMaximumScore();
-            Score waterLevelAugend = perfectMaximumScore.substract(waterLevelScore).multiply(waterRisingRate);
+            Score waterLevelAugend = perfectMaximumScore.subtract(waterLevelScore).multiply(waterRisingRate);
             waterLevelScore = waterLevelScore.add(waterLevelAugend);
             // TODO maybe if waterlevel is higher than bestScore, than ...
         }
     }
 
-}
\ No newline at end of file
+}

Modified: labs/jbossrules/trunk/drools-planner/drools-planner-core/src/main/java/org/drools/planner/core/score/DefaultHardAndSoftScore.java
===================================================================
--- labs/jbossrules/trunk/drools-planner/drools-planner-core/src/main/java/org/drools/planner/core/score/DefaultHardAndSoftScore.java	2010-06-13 09:08:48 UTC (rev 33465)
+++ labs/jbossrules/trunk/drools-planner/drools-planner-core/src/main/java/org/drools/planner/core/score/DefaultHardAndSoftScore.java	2010-06-13 10:42:43 UTC (rev 33466)
@@ -57,12 +57,12 @@
     // Worker methods
     // ************************************************************************
 
-    public HardAndSoftScore add(HardAndSoftScore augend) {
-        return new DefaultHardAndSoftScore(this.hardScore + augend.getHardScore(),
-                this.softScore + augend.getSoftScore());
+    public HardAndSoftScore add(HardAndSoftScore augment) {
+        return new DefaultHardAndSoftScore(this.hardScore + augment.getHardScore(),
+                this.softScore + augment.getSoftScore());
     }
 
-    public HardAndSoftScore substract(HardAndSoftScore subtrahend) {
+    public HardAndSoftScore subtract(HardAndSoftScore subtrahend) {
         return new DefaultHardAndSoftScore(this.hardScore - subtrahend.getHardScore(),
                 this.softScore - subtrahend.getSoftScore());
     }

Modified: labs/jbossrules/trunk/drools-planner/drools-planner-core/src/main/java/org/drools/planner/core/score/DefaultSimpleScore.java
===================================================================
--- labs/jbossrules/trunk/drools-planner/drools-planner-core/src/main/java/org/drools/planner/core/score/DefaultSimpleScore.java	2010-06-13 09:08:48 UTC (rev 33465)
+++ labs/jbossrules/trunk/drools-planner/drools-planner-core/src/main/java/org/drools/planner/core/score/DefaultSimpleScore.java	2010-06-13 10:42:43 UTC (rev 33466)
@@ -32,11 +32,11 @@
     // Worker methods
     // ************************************************************************
 
-    public SimpleScore add(SimpleScore augend) {
-        return new DefaultSimpleScore(this.score + augend.getScore());
+    public SimpleScore add(SimpleScore augment) {
+        return new DefaultSimpleScore(this.score + augment.getScore());
     }
 
-    public SimpleScore substract(SimpleScore subtrahend) {
+    public SimpleScore subtract(SimpleScore subtrahend) {
         return new DefaultSimpleScore(this.score - subtrahend.getScore());
     }
 
@@ -80,4 +80,4 @@
         return Integer.toString(score);
     }
 
-}
\ No newline at end of file
+}

Modified: labs/jbossrules/trunk/drools-planner/drools-planner-core/src/main/java/org/drools/planner/core/score/Score.java
===================================================================
--- labs/jbossrules/trunk/drools-planner/drools-planner-core/src/main/java/org/drools/planner/core/score/Score.java	2010-06-13 09:08:48 UTC (rev 33465)
+++ labs/jbossrules/trunk/drools-planner/drools-planner-core/src/main/java/org/drools/planner/core/score/Score.java	2010-06-13 10:42:43 UTC (rev 33466)
@@ -12,17 +12,17 @@
 
     /**
      * Returns a Score whose value is (this + augend).
-     * @param augend value to be added to this Score
+     * @param augment value to be added to this Score
      * @return this + augend
      */
-    S add(S augend);
+    S add(S augment);
 
     /**
      * Returns a Score whose value is (this - subtrahend).
      * @param subtrahend value to be subtracted from this Score
      * @return this - subtrahend, rounded as necessary
      */
-    S substract(S subtrahend);
+    S subtract(S subtrahend);
 
     /**
      * Returns a Score whose value is (this × multiplicand).

Modified: labs/jbossrules/trunk/drools-planner/src/main/assembly/docs/UpgradeFromPreviousVersionRecipe.txt
===================================================================
--- labs/jbossrules/trunk/drools-planner/src/main/assembly/docs/UpgradeFromPreviousVersionRecipe.txt	2010-06-13 09:08:48 UTC (rev 33465)
+++ labs/jbossrules/trunk/drools-planner/src/main/assembly/docs/UpgradeFromPreviousVersionRecipe.txt	2010-06-13 10:42:43 UTC (rev 33466)
@@ -300,6 +300,7 @@
         }
     }
 
+
 A benchmarker config no longer supports solvedSolutionVerbosity (only ALL was supported anyway).
 Before in *BenchmarkConfig.xml:
    <solvedSolutionVerbosity>ALL</solvedSolutionVerbosity>
@@ -316,3 +317,15 @@
     <solverBenchmarkSuite>
         <benchmarkDirectory>local/data/nurserostering</benchmarkDirectory>
         ...
+
+Benchmarker: the class MaxScoreSolverBenchmarkComparator has been renamed to WorstScoreSolverBenchmarkComparator.
+
+A benchmarker no longer uses WorstScoreSolverBenchmarkComparator by default.
+It now uses AverageScoreSolverBenchmarkComparator by default.
+
+
+The method Score.substract has been renamed to Score.subtract
+Before in *Score.java:
+    public ...Score substract(...Score subtrahend) {
+After in *Score.java:
+    public ...Score subtract(...Score subtrahend) {



More information about the jboss-svn-commits mailing list