[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