[jboss-svn-commits] JBL Code SVN: r32735 - in labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main: java/org/drools/planner/examples/nurserostering/app and 2 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Wed May 5 05:37:22 EDT 2010


Author: ge0ffrey
Date: 2010-05-05 05:37:21 -0400 (Wed, 05 May 2010)
New Revision: 32735

Added:
   labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/app/NurseRosteringBenchmarkApp.java
   labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/resources/org/drools/planner/examples/nurserostering/benchmark/nurseRosteringLongSolverBenchmarkConfig.xml
   labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/resources/org/drools/planner/examples/nurserostering/benchmark/nurseRosteringMediumSolverBenchmarkConfig.xml
   labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/resources/org/drools/planner/examples/nurserostering/benchmark/nurseRosteringSprintSolverBenchmarkConfig.xml
Modified:
   labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/examination/app/ExaminationBenchmarkApp.java
   labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/resources/org/drools/planner/examples/nurserostering/solver/nurseRosteringSolverConfig.xml
Log:
nurse rostering benchmarks

Modified: labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/examination/app/ExaminationBenchmarkApp.java
===================================================================
--- labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/examination/app/ExaminationBenchmarkApp.java	2010-05-05 09:20:06 UTC (rev 32734)
+++ labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/examination/app/ExaminationBenchmarkApp.java	2010-05-05 09:37:21 UTC (rev 32735)
@@ -14,6 +14,7 @@
             = "/org/drools/planner/examples/examination/benchmark/examinationSolverBenchmarkConfig.xml";
     public static final String SHORT_SOLVER_BENCHMARK_CONFIG
             = "/org/drools/planner/examples/examination/benchmark/examinationShortSolverBenchmarkConfig.xml";
+    
     public static final File SOLVER_BENCHMARK_RESULT_FILE
             = new File("local/data/examination/examinationSolverBenchmarkResult.xml");
 
@@ -31,4 +32,4 @@
         super(solverBenchmarkConfig, resultFile, Examination.class);
     }
 
-}
\ No newline at end of file
+}

Copied: labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/app/NurseRosteringBenchmarkApp.java (from rev 32692, labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/examination/app/ExaminationBenchmarkApp.java)
===================================================================
--- labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/app/NurseRosteringBenchmarkApp.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/app/NurseRosteringBenchmarkApp.java	2010-05-05 09:37:21 UTC (rev 32735)
@@ -0,0 +1,45 @@
+package org.drools.planner.examples.nurserostering.app;
+
+import java.io.File;
+
+import org.drools.planner.examples.common.app.CommonBenchmarkApp;
+import org.drools.planner.examples.nurserostering.domain.NurseRoster;
+
+/**
+ * @author Geoffrey De Smet
+ */
+public class NurseRosteringBenchmarkApp extends CommonBenchmarkApp {
+
+    public static final String SPRINT_SOLVER_BENCHMARK_CONFIG
+            = "/org/drools/planner/examples/nurserostering/benchmark/nurseRosteringSprintSolverBenchmarkConfig.xml";
+    public static final String MEDIUM_SOLVER_BENCHMARK_CONFIG
+            = "/org/drools/planner/examples/nurserostering/benchmark/nurseRosteringMediumSolverBenchmarkConfig.xml";
+    public static final String LONG_SOLVER_BENCHMARK_CONFIG
+            = "/org/drools/planner/examples/nurserostering/benchmark/nurseRosteringLongSolverBenchmarkConfig.xml";
+    
+    public static final File SOLVER_BENCHMARK_RESULT_FILE
+            = new File("local/data/nurserostering/nurseRosteringSolverBenchmarkResult.xml");
+
+    public static void main(String[] args) {
+        String solverConfig;
+        if (args.length > 0) {
+            if (args[0].equals("sprint")) {
+                solverConfig = SPRINT_SOLVER_BENCHMARK_CONFIG;
+            } else if (args[0].equals("medium")) {
+                solverConfig = MEDIUM_SOLVER_BENCHMARK_CONFIG;
+            } else if (args[0].equals("long")) {
+                solverConfig = LONG_SOLVER_BENCHMARK_CONFIG;
+            } else {
+                throw new IllegalArgumentException("The program argument (" + args[0] + ") is not supported.");
+            }
+        } else {
+            solverConfig = MEDIUM_SOLVER_BENCHMARK_CONFIG;
+        }
+        new NurseRosteringBenchmarkApp(solverConfig, SOLVER_BENCHMARK_RESULT_FILE).process();
+    }
+
+    public NurseRosteringBenchmarkApp(String solverBenchmarkConfig, File resultFile) {
+        super(solverBenchmarkConfig, resultFile, NurseRoster.class);
+    }
+
+}

Copied: labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/resources/org/drools/planner/examples/nurserostering/benchmark/nurseRosteringLongSolverBenchmarkConfig.xml (from rev 32692, labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/resources/org/drools/planner/examples/examination/benchmark/examinationSolverBenchmarkConfig.xml)
===================================================================
--- labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/resources/org/drools/planner/examples/nurserostering/benchmark/nurseRosteringLongSolverBenchmarkConfig.xml	                        (rev 0)
+++ labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/resources/org/drools/planner/examples/nurserostering/benchmark/nurseRosteringLongSolverBenchmarkConfig.xml	2010-05-05 09:37:21 UTC (rev 32735)
@@ -0,0 +1,72 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<solverBenchmarkSuite>
+    <solvedSolutionFilesDirectory>local/data/nurserostering/solved</solvedSolutionFilesDirectory>
+    <solverStatisticType>BEST_SOLUTION_CHANGED</solverStatisticType>
+    <solverStatisticFilesDirectory>local/data/nurserostering/statistic</solverStatisticFilesDirectory>
+    
+    <inheritedUnsolvedSolutionFile>data/nurserostering/unsolved/long01.xml</inheritedUnsolvedSolutionFile>
+    <inheritedUnsolvedSolutionFile>data/nurserostering/unsolved/long02.xml</inheritedUnsolvedSolutionFile>
+    <inheritedUnsolvedSolutionFile>data/nurserostering/unsolved/long03.xml</inheritedUnsolvedSolutionFile>
+    <inheritedUnsolvedSolutionFile>data/nurserostering/unsolved/long04.xml</inheritedUnsolvedSolutionFile>
+    <inheritedUnsolvedSolutionFile>data/nurserostering/unsolved/long05.xml</inheritedUnsolvedSolutionFile>
+
+    <inheritedLocalSearchSolver>
+        <scoreDrl>/org/drools/planner/examples/nurserostering/solver/nurseRosteringScoreRules.drl</scoreDrl>
+        <scoreDefinition>
+            <scoreDefinitionType>HARD_AND_SOFT</scoreDefinitionType>
+        </scoreDefinition>
+        <startingSolutionInitializerClass>org.drools.planner.examples.nurserostering.solver.solution.initializer.NurseRosteringStartingSolutionInitializer</startingSolutionInitializerClass>
+        <termination>
+            <!--
+                Official benchmark maximumSecondsSpend allowed on:
+                - ge0ffrey's main pc: sprint 11, medium 700, long 42000
+            -->
+            <maximumSecondsSpend>42000</maximumSecondsSpend>
+        </termination>
+    </inheritedLocalSearchSolver>
+
+    <solverBenchmark>
+        <name>absolute500_propertyTabu10</name>
+        <localSearchSolver>
+            <selector>
+                <selector>
+                    <moveFactoryClass>org.drools.planner.examples.nurserostering.solver.move.factory.EmployeeChangeMoveFactory</moveFactoryClass>
+                    <absoluteSelection>500</absoluteSelection>
+                </selector>
+                <selector>
+                    <moveFactoryClass>org.drools.planner.examples.nurserostering.solver.move.factory.EmployeeAssignmentSwitchMoveFactory</moveFactoryClass>
+                    <absoluteSelection>500</absoluteSelection>
+                </selector>
+            </selector>
+            <acceptor>
+              <completeSolutionTabuSize>1000</completeSolutionTabuSize>
+              <completePropertyTabuSize>10</completePropertyTabuSize>
+            </acceptor>
+            <forager>
+                <foragerType>MAX_SCORE_OF_ALL</foragerType>
+            </forager>
+        </localSearchSolver>
+    </solverBenchmark>
+    <solverBenchmark>
+        <name>absolute500_moveTabu7</name>
+        <localSearchSolver>
+            <selector>
+                <selector>
+                    <moveFactoryClass>org.drools.planner.examples.nurserostering.solver.move.factory.EmployeeChangeMoveFactory</moveFactoryClass>
+                    <absoluteSelection>500</absoluteSelection>
+                </selector>
+                <selector>
+                    <moveFactoryClass>org.drools.planner.examples.nurserostering.solver.move.factory.EmployeeAssignmentSwitchMoveFactory</moveFactoryClass>
+                    <absoluteSelection>500</absoluteSelection>
+                </selector>
+            </selector>
+            <acceptor>
+              <completeSolutionTabuSize>1000</completeSolutionTabuSize>
+              <completeMoveTabuSize>7</completeMoveTabuSize>
+            </acceptor>
+            <forager>
+                <foragerType>MAX_SCORE_OF_ALL</foragerType>
+            </forager>
+        </localSearchSolver>
+    </solverBenchmark>
+</solverBenchmarkSuite>

Added: labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/resources/org/drools/planner/examples/nurserostering/benchmark/nurseRosteringMediumSolverBenchmarkConfig.xml
===================================================================
--- labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/resources/org/drools/planner/examples/nurserostering/benchmark/nurseRosteringMediumSolverBenchmarkConfig.xml	                        (rev 0)
+++ labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/resources/org/drools/planner/examples/nurserostering/benchmark/nurseRosteringMediumSolverBenchmarkConfig.xml	2010-05-05 09:37:21 UTC (rev 32735)
@@ -0,0 +1,72 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<solverBenchmarkSuite>
+    <solvedSolutionFilesDirectory>local/data/nurserostering/solved</solvedSolutionFilesDirectory>
+    <solverStatisticType>BEST_SOLUTION_CHANGED</solverStatisticType>
+    <solverStatisticFilesDirectory>local/data/nurserostering/statistic</solverStatisticFilesDirectory>
+    
+    <inheritedUnsolvedSolutionFile>data/nurserostering/unsolved/medium01.xml</inheritedUnsolvedSolutionFile>
+    <inheritedUnsolvedSolutionFile>data/nurserostering/unsolved/medium02.xml</inheritedUnsolvedSolutionFile>
+    <inheritedUnsolvedSolutionFile>data/nurserostering/unsolved/medium03.xml</inheritedUnsolvedSolutionFile>
+    <inheritedUnsolvedSolutionFile>data/nurserostering/unsolved/medium04.xml</inheritedUnsolvedSolutionFile>
+    <inheritedUnsolvedSolutionFile>data/nurserostering/unsolved/medium05.xml</inheritedUnsolvedSolutionFile>
+
+    <inheritedLocalSearchSolver>
+        <scoreDrl>/org/drools/planner/examples/nurserostering/solver/nurseRosteringScoreRules.drl</scoreDrl>
+        <scoreDefinition>
+            <scoreDefinitionType>HARD_AND_SOFT</scoreDefinitionType>
+        </scoreDefinition>
+        <startingSolutionInitializerClass>org.drools.planner.examples.nurserostering.solver.solution.initializer.NurseRosteringStartingSolutionInitializer</startingSolutionInitializerClass>
+        <termination>
+            <!--
+                Official benchmark maximumSecondsSpend allowed on:
+                - ge0ffrey's main pc: sprint 11, medium 700, long 42000
+            -->
+            <maximumSecondsSpend>700</maximumSecondsSpend>
+        </termination>
+    </inheritedLocalSearchSolver>
+
+    <solverBenchmark>
+        <name>absolute500_propertyTabu10</name>
+        <localSearchSolver>
+            <selector>
+                <selector>
+                    <moveFactoryClass>org.drools.planner.examples.nurserostering.solver.move.factory.EmployeeChangeMoveFactory</moveFactoryClass>
+                    <absoluteSelection>500</absoluteSelection>
+                </selector>
+                <selector>
+                    <moveFactoryClass>org.drools.planner.examples.nurserostering.solver.move.factory.EmployeeAssignmentSwitchMoveFactory</moveFactoryClass>
+                    <absoluteSelection>500</absoluteSelection>
+                </selector>
+            </selector>
+            <acceptor>
+              <completeSolutionTabuSize>1000</completeSolutionTabuSize>
+              <completePropertyTabuSize>10</completePropertyTabuSize>
+            </acceptor>
+            <forager>
+                <foragerType>MAX_SCORE_OF_ALL</foragerType>
+            </forager>
+        </localSearchSolver>
+    </solverBenchmark>
+    <solverBenchmark>
+        <name>absolute500_moveTabu7</name>
+        <localSearchSolver>
+            <selector>
+                <selector>
+                    <moveFactoryClass>org.drools.planner.examples.nurserostering.solver.move.factory.EmployeeChangeMoveFactory</moveFactoryClass>
+                    <absoluteSelection>500</absoluteSelection>
+                </selector>
+                <selector>
+                    <moveFactoryClass>org.drools.planner.examples.nurserostering.solver.move.factory.EmployeeAssignmentSwitchMoveFactory</moveFactoryClass>
+                    <absoluteSelection>500</absoluteSelection>
+                </selector>
+            </selector>
+            <acceptor>
+              <completeSolutionTabuSize>1000</completeSolutionTabuSize>
+              <completeMoveTabuSize>7</completeMoveTabuSize>
+            </acceptor>
+            <forager>
+                <foragerType>MAX_SCORE_OF_ALL</foragerType>
+            </forager>
+        </localSearchSolver>
+    </solverBenchmark>
+</solverBenchmarkSuite>

Added: labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/resources/org/drools/planner/examples/nurserostering/benchmark/nurseRosteringSprintSolverBenchmarkConfig.xml
===================================================================
--- labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/resources/org/drools/planner/examples/nurserostering/benchmark/nurseRosteringSprintSolverBenchmarkConfig.xml	                        (rev 0)
+++ labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/resources/org/drools/planner/examples/nurserostering/benchmark/nurseRosteringSprintSolverBenchmarkConfig.xml	2010-05-05 09:37:21 UTC (rev 32735)
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<solverBenchmarkSuite>
+    <solvedSolutionFilesDirectory>local/data/nurserostering/solved</solvedSolutionFilesDirectory>
+    <solverStatisticType>BEST_SOLUTION_CHANGED</solverStatisticType>
+    <solverStatisticFilesDirectory>local/data/nurserostering/statistic</solverStatisticFilesDirectory>
+    
+    <inheritedUnsolvedSolutionFile>data/nurserostering/unsolved/sprint01.xml</inheritedUnsolvedSolutionFile>
+    <inheritedUnsolvedSolutionFile>data/nurserostering/unsolved/sprint02.xml</inheritedUnsolvedSolutionFile>
+    <inheritedUnsolvedSolutionFile>data/nurserostering/unsolved/sprint03.xml</inheritedUnsolvedSolutionFile>
+    <inheritedUnsolvedSolutionFile>data/nurserostering/unsolved/sprint04.xml</inheritedUnsolvedSolutionFile>
+    <inheritedUnsolvedSolutionFile>data/nurserostering/unsolved/sprint05.xml</inheritedUnsolvedSolutionFile>
+    <inheritedUnsolvedSolutionFile>data/nurserostering/unsolved/sprint06.xml</inheritedUnsolvedSolutionFile>
+    <inheritedUnsolvedSolutionFile>data/nurserostering/unsolved/sprint07.xml</inheritedUnsolvedSolutionFile>
+    <inheritedUnsolvedSolutionFile>data/nurserostering/unsolved/sprint08.xml</inheritedUnsolvedSolutionFile>
+    <inheritedUnsolvedSolutionFile>data/nurserostering/unsolved/sprint09.xml</inheritedUnsolvedSolutionFile>
+    <inheritedUnsolvedSolutionFile>data/nurserostering/unsolved/sprint10.xml</inheritedUnsolvedSolutionFile>
+
+    <inheritedLocalSearchSolver>
+        <scoreDrl>/org/drools/planner/examples/nurserostering/solver/nurseRosteringScoreRules.drl</scoreDrl>
+        <scoreDefinition>
+            <scoreDefinitionType>HARD_AND_SOFT</scoreDefinitionType>
+        </scoreDefinition>
+        <startingSolutionInitializerClass>org.drools.planner.examples.nurserostering.solver.solution.initializer.NurseRosteringStartingSolutionInitializer</startingSolutionInitializerClass>
+        <termination>
+            <!--
+                Official benchmark maximumSecondsSpend allowed on:
+                - ge0ffrey's main pc: sprint 11, medium 700, long 42000
+            -->
+            <maximumSecondsSpend>11</maximumSecondsSpend>
+        </termination>
+    </inheritedLocalSearchSolver>
+
+    <solverBenchmark>
+        <name>absolute500_propertyTabu10</name>
+        <localSearchSolver>
+            <selector>
+                <selector>
+                    <moveFactoryClass>org.drools.planner.examples.nurserostering.solver.move.factory.EmployeeChangeMoveFactory</moveFactoryClass>
+                    <absoluteSelection>500</absoluteSelection>
+                </selector>
+                <selector>
+                    <moveFactoryClass>org.drools.planner.examples.nurserostering.solver.move.factory.EmployeeAssignmentSwitchMoveFactory</moveFactoryClass>
+                    <absoluteSelection>500</absoluteSelection>
+                </selector>
+            </selector>
+            <acceptor>
+              <completeSolutionTabuSize>1000</completeSolutionTabuSize>
+              <completePropertyTabuSize>10</completePropertyTabuSize>
+            </acceptor>
+            <forager>
+                <foragerType>MAX_SCORE_OF_ALL</foragerType>
+            </forager>
+        </localSearchSolver>
+    </solverBenchmark>
+    <solverBenchmark>
+        <name>absolute500_moveTabu7</name>
+        <localSearchSolver>
+            <selector>
+                <selector>
+                    <moveFactoryClass>org.drools.planner.examples.nurserostering.solver.move.factory.EmployeeChangeMoveFactory</moveFactoryClass>
+                    <absoluteSelection>500</absoluteSelection>
+                </selector>
+                <selector>
+                    <moveFactoryClass>org.drools.planner.examples.nurserostering.solver.move.factory.EmployeeAssignmentSwitchMoveFactory</moveFactoryClass>
+                    <absoluteSelection>500</absoluteSelection>
+                </selector>
+            </selector>
+            <acceptor>
+              <completeSolutionTabuSize>1000</completeSolutionTabuSize>
+              <completeMoveTabuSize>7</completeMoveTabuSize>
+            </acceptor>
+            <forager>
+                <foragerType>MAX_SCORE_OF_ALL</foragerType>
+            </forager>
+        </localSearchSolver>
+    </solverBenchmark>
+</solverBenchmarkSuite>

Modified: labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/resources/org/drools/planner/examples/nurserostering/solver/nurseRosteringSolverConfig.xml
===================================================================
--- labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/resources/org/drools/planner/examples/nurserostering/solver/nurseRosteringSolverConfig.xml	2010-05-05 09:20:06 UTC (rev 32734)
+++ labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/resources/org/drools/planner/examples/nurserostering/solver/nurseRosteringSolverConfig.xml	2010-05-05 09:37:21 UTC (rev 32735)
@@ -8,10 +8,9 @@
     <termination>
         <!--
             Official benchmark maximumSecondsSpend allowed on:
-            ge0ffrey's main pc: TODO
-            ge0ffrey's old pc: TODO
+            - ge0ffrey's main pc: sprint 11, medium 700, long 42000
         -->
-        <maximumSecondsSpend>429</maximumSecondsSpend>
+        <maximumSecondsSpend>700</maximumSecondsSpend>
         <!--<scoreAttained>-0hard/-999999soft</scoreAttained>-->
         <!--<maximumStepCount>100</maximumStepCount>-->
     </termination>
@@ -26,8 +25,8 @@
         </selector>
     </selector>
     <acceptor>
-        <completePropertyTabuSize>7</completePropertyTabuSize>
-        <completeSolutionTabuSize>1000</completeSolutionTabuSize>
+      <completeSolutionTabuSize>1000</completeSolutionTabuSize>
+      <completePropertyTabuSize>7</completePropertyTabuSize>
     </acceptor>
     <forager>
         <foragerType>MAX_SCORE_OF_ALL</foragerType>



More information about the jboss-svn-commits mailing list