[jboss-svn-commits] JBL Code SVN: r15456 - in labs/jbossrules/trunk/drools-solver: drools-solver-core/src/main/java/org/drools/solver/config/localsearch/evaluation/scorecalculator and 6 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Sun Sep 30 07:13:28 EDT 2007
Author: ge0ffrey
Date: 2007-09-30 07:13:28 -0400 (Sun, 30 Sep 2007)
New Revision: 15456
Added:
labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/travelingtournament/benchmark/smart/breakNl14SolverBenchmarkConfig.xml
Modified:
labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/benchmark/XmlSolverBenchmarker.java
labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/config/localsearch/evaluation/scorecalculator/ScoreCalculatorConfig.java
labs/jbossrules/trunk/drools-solver/drools-solver-examples/benchmarkNQueens.sh
labs/jbossrules/trunk/drools-solver/drools-solver-examples/benchmarkSmartTravelingTournament.sh
labs/jbossrules/trunk/drools-solver/drools-solver-examples/pom.xml
labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/common/app/CommonBenchmarkApp.java
labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/nqueens/app/NQueensBenchmarkApp.java
labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/travelingtournament/app/smart/SmartTravelingTournamentBenchmarkApp.java
labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/travelingtournament/solver/smart/smartTravelingTournamentSolverConfig.xml
Log:
allow different benchmarker configs with a program argument
Modified: labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/benchmark/XmlSolverBenchmarker.java
===================================================================
--- labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/benchmark/XmlSolverBenchmarker.java 2007-09-30 05:20:14 UTC (rev 15455)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/benchmark/XmlSolverBenchmarker.java 2007-09-30 11:13:28 UTC (rev 15456)
@@ -42,7 +42,11 @@
// ************************************************************************
public XmlSolverBenchmarker configure(String resource) {
- return configure(getClass().getResourceAsStream(resource));
+ InputStream in = getClass().getResourceAsStream(resource);
+ if (in == null) {
+ throw new IllegalArgumentException("Resource not found: " + resource);
+ }
+ return configure(in);
}
public XmlSolverBenchmarker configure(InputStream in) {
Modified: labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/config/localsearch/evaluation/scorecalculator/ScoreCalculatorConfig.java
===================================================================
--- labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/config/localsearch/evaluation/scorecalculator/ScoreCalculatorConfig.java 2007-09-30 05:20:14 UTC (rev 15455)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/config/localsearch/evaluation/scorecalculator/ScoreCalculatorConfig.java 2007-09-30 11:13:28 UTC (rev 15456)
@@ -64,7 +64,7 @@
case HARD_AND_SOFT_CONSTRAINTS:
return new StaticHardAndSoftConstraintScoreCalculator();
case DYNAMIC_HARD_AND_SOFT_CONSTRAINTS:
- return new DynamicHardAndSoftConstraintScoreCalculator();
+ return new DynamicHardAndSoftConstraintScoreCalculator(10000.0, 1000000.0, 100.0, 1.2);
default:
throw new IllegalStateException("scoreCalculatorType (" + scoreCalculatorType + ") not implemented");
}
Modified: labs/jbossrules/trunk/drools-solver/drools-solver-examples/benchmarkNQueens.sh
===================================================================
--- labs/jbossrules/trunk/drools-solver/drools-solver-examples/benchmarkNQueens.sh 2007-09-30 05:20:14 UTC (rev 15455)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-examples/benchmarkNQueens.sh 2007-09-30 11:13:28 UTC (rev 15456)
@@ -1 +1,2 @@
-mvn exec:java -Dexec.mainClass="org.drools.solver.examples.nqueens.app.NQueensBenchmarkApp"
+
+mvn exec:exec -Dexec.mainClass="org.drools.solver.examples.nqueens.app.NQueensBenchmarkApp"
Modified: labs/jbossrules/trunk/drools-solver/drools-solver-examples/benchmarkSmartTravelingTournament.sh
===================================================================
--- labs/jbossrules/trunk/drools-solver/drools-solver-examples/benchmarkSmartTravelingTournament.sh 2007-09-30 05:20:14 UTC (rev 15455)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-examples/benchmarkSmartTravelingTournament.sh 2007-09-30 11:13:28 UTC (rev 15456)
@@ -1 +1,8 @@
-mvn exec:exec -Dexec.mainClass="org.drools.solver.examples.travelingtournament.app.smart.SmartTravelingTournamentBenchmarkApp"
+
+mainClass=org.drools.solver.examples.travelingtournament.app.smart.SmartTravelingTournamentBenchmarkApp
+if [ $# -ge 1 ];
+ then
+ mvn exec:exec -Dexec.mainClass="${mainClass}" -Dexec.programArgs="$*"
+ else
+ mvn exec:exec -Dexec.mainClass="${mainClass}"
+fi
Modified: labs/jbossrules/trunk/drools-solver/drools-solver-examples/pom.xml
===================================================================
--- labs/jbossrules/trunk/drools-solver/drools-solver-examples/pom.xml 2007-09-30 05:20:14 UTC (rev 15455)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-examples/pom.xml 2007-09-30 11:13:28 UTC (rev 15456)
@@ -32,17 +32,23 @@
<configuration>
<executable>${JAVA_HOME}/bin/java</executable>
<arguments>
- <argument>-mx128m</argument>
+ <argument>-Xmx128M</argument>
+ <!--<argument>-Xbatch</argument>-->
<argument>-server</argument>
<argument>-classpath</argument>
<classpath/>
<argument>${exec.mainClass}</argument>
+ <argument>${exec.programArgs}</argument><!-- Empty string by default -->
</arguments>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
+ <properties>
+ <!-- default is a workaround for http://jira.codehaus.org/browse/MEXEC-35 -->
+ <exec.programArgs>default</exec.programArgs>
+ </properties>
<dependencies>
<!-- Internal dependencies -->
Modified: labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/common/app/CommonBenchmarkApp.java
===================================================================
--- labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/common/app/CommonBenchmarkApp.java 2007-09-30 05:20:14 UTC (rev 15455)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/common/app/CommonBenchmarkApp.java 2007-09-30 11:13:28 UTC (rev 15456)
@@ -2,6 +2,7 @@
import java.io.File;
+import org.apache.commons.logging.LogFactory;
import org.apache.log4j.xml.DOMConfigurator;
import org.drools.solver.benchmark.XmlSolverBenchmarker;
@@ -13,9 +14,15 @@
private static final String LOGGING_CONFIG = "/org/drools/solver/examples/common/app/log4j-benchmark.xml";
protected XmlSolverBenchmarker solverBenchmarker;
+ private String solverBenchmarkConfig;
+ private File resultFile;
- public CommonBenchmarkApp() {
+ protected CommonBenchmarkApp(String solverBenchmarkConfig, File resultFile) {
+ this.solverBenchmarkConfig = solverBenchmarkConfig;
+ this.resultFile = resultFile;
DOMConfigurator.configure(getClass().getResource(LOGGING_CONFIG));
+ // Workaround to make sure logging reports uncaught exceptions
+ LogFactory.getLog(getClass()).debug("Logging configured.");
solverBenchmarker = new XmlSolverBenchmarker().configure(getSolverBenchmarkConfig());
}
@@ -24,8 +31,12 @@
solverBenchmarker.writeResults(getResultFile());
}
- protected abstract String getSolverBenchmarkConfig();
+ protected String getSolverBenchmarkConfig() {
+ return solverBenchmarkConfig;
+ }
- protected abstract File getResultFile();
+ protected File getResultFile() {
+ return resultFile;
+ }
}
Modified: labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/nqueens/app/NQueensBenchmarkApp.java
===================================================================
--- labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/nqueens/app/NQueensBenchmarkApp.java 2007-09-30 05:20:14 UTC (rev 15455)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/nqueens/app/NQueensBenchmarkApp.java 2007-09-30 11:13:28 UTC (rev 15456)
@@ -15,17 +15,11 @@
= new File("local/data/nqueens/nqueensSolverBenchmarkResult.xml");
public static void main(String[] args) {
- new NQueensBenchmarkApp().process();
+ new NQueensBenchmarkApp(SOLVER_BENCHMARK_CONFIG, SOLVER_BENCHMARK_RESULT_FILE).process();
}
- @Override
- protected String getSolverBenchmarkConfig() {
- return SOLVER_BENCHMARK_CONFIG;
+ public NQueensBenchmarkApp(String solverBenchmarkConfig, File resultFile) {
+ super(solverBenchmarkConfig, resultFile);
}
- @Override
- protected File getResultFile() {
- return SOLVER_BENCHMARK_RESULT_FILE;
- }
-
}
Modified: labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/travelingtournament/app/smart/SmartTravelingTournamentBenchmarkApp.java
===================================================================
--- labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/travelingtournament/app/smart/SmartTravelingTournamentBenchmarkApp.java 2007-09-30 05:20:14 UTC (rev 15455)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/travelingtournament/app/smart/SmartTravelingTournamentBenchmarkApp.java 2007-09-30 11:13:28 UTC (rev 15456)
@@ -9,23 +9,26 @@
*/
public class SmartTravelingTournamentBenchmarkApp extends CommonBenchmarkApp {
+ public static final String SOLVER_BENCHMARK_CONFIG_PREFIX
+ = "/org/drools/solver/examples/travelingtournament/benchmark/smart/";
public static final String SOLVER_BENCHMARK_CONFIG
- = "/org/drools/solver/examples/travelingtournament/benchmark/smart/smartTravelingTournamentSolverBenchmarkConfig.xml";
+ = SOLVER_BENCHMARK_CONFIG_PREFIX + "smartTravelingTournamentSolverBenchmarkConfig.xml";
public static final File SOLVER_BENCHMARK_RESULT_FILE
= new File("local/data/travelingtournament/smart/smartTravelingTournamentSolverBenchmarkResult.xml");
public static void main(String[] args) {
- new SmartTravelingTournamentBenchmarkApp().process();
+ String solverBenchmarkConfig;
+ // default is a workaround for http://jira.codehaus.org/browse/MEXEC-35
+ if (args.length > 0 && !args[0].equals("default")) {
+ solverBenchmarkConfig = SOLVER_BENCHMARK_CONFIG_PREFIX + args[0] + "SolverBenchmarkConfig.xml";
+ } else {
+ solverBenchmarkConfig = SOLVER_BENCHMARK_CONFIG;
+ }
+ new SmartTravelingTournamentBenchmarkApp(solverBenchmarkConfig, SOLVER_BENCHMARK_RESULT_FILE).process();
}
- @Override
- protected String getSolverBenchmarkConfig() {
- return SOLVER_BENCHMARK_CONFIG;
+ public SmartTravelingTournamentBenchmarkApp(String solverBenchmarkConfig, File resultFile) {
+ super(solverBenchmarkConfig, resultFile);
}
- @Override
- protected File getResultFile() {
- return SOLVER_BENCHMARK_RESULT_FILE;
- }
-
}
Added: labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/travelingtournament/benchmark/smart/breakNl14SolverBenchmarkConfig.xml
===================================================================
--- labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/travelingtournament/benchmark/smart/breakNl14SolverBenchmarkConfig.xml (rev 0)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/travelingtournament/benchmark/smart/breakNl14SolverBenchmarkConfig.xml 2007-09-30 11:13:28 UTC (rev 15456)
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<solverBenchmarkSuite>
+ <solvedSolutionVerbosity>ALL</solvedSolutionVerbosity>
+ <solvedSolutionFilesDirectory>local/data/travelingtournament/smart/solved</solvedSolutionFilesDirectory>
+ <sortSolverBenchmarks>false</sortSolverBenchmarks>
+ <!-- solverBenchmarkResultComparator -->
+ <inheritedUnsolvedSolutionFile>data/travelingtournament/smart/unsolved/1-nl14.xml</inheritedUnsolvedSolutionFile>
+ <inheritedLocalSearchSolver>
+ <scoreDrl>/org/drools/solver/examples/travelingtournament/solver/smart/smartTravelingTournamentScoreRules.drl</scoreDrl>
+ <scoreCalculator>
+ <scoreCalculatorType>DYNAMIC_HARD_AND_SOFT_CONSTRAINTS</scoreCalculatorType>
+ </scoreCalculator>
+ <selector>
+ <moveFactoryClass>org.drools.solver.examples.travelingtournament.solver.smart.SmartTravelingTournamentMoveFactory</moveFactoryClass>
+ </selector>
+ <accepter>
+ <completeSolutionTabuSize>3000</completeSolutionTabuSize>
+ </accepter>
+ <forager>
+ <foragerType>MAX_SCORE_OF_ALL</foragerType>
+ </forager>
+ </inheritedLocalSearchSolver>
+
+ <solverBenchmark>
+ <localSearchSolver>
+ <finish>
+ <finishCompositionStyle>AND</finishCompositionStyle>
+ <feasableScore>-188727.0</feasableScore><!-- 188728 (Van Hentenryck and Vergados, May 18 2006) -->
+ <maximumUnimprovedStepCount>20</maximumUnimprovedStepCount>
+ </finish>
+ </localSearchSolver>
+ </solverBenchmark>
+</solverBenchmarkSuite>
Modified: labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/travelingtournament/solver/smart/smartTravelingTournamentSolverConfig.xml
===================================================================
--- labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/travelingtournament/solver/smart/smartTravelingTournamentSolverConfig.xml 2007-09-30 05:20:14 UTC (rev 15455)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/travelingtournament/solver/smart/smartTravelingTournamentSolverConfig.xml 2007-09-30 11:13:28 UTC (rev 15456)
@@ -5,7 +5,8 @@
<scoreCalculatorType>HARD_AND_SOFT_CONSTRAINTS</scoreCalculatorType>
</scoreCalculator>
<finish>
- <maximumHouresSpend>2</maximumHouresSpend>
+ <!--<maximumHouresSpend>2</maximumHouresSpend>-->
+ <maximumStepCount>100</maximumStepCount>
</finish>
<selector>
<moveFactoryClass>org.drools.solver.examples.travelingtournament.solver.smart.SmartTravelingTournamentMoveFactory</moveFactoryClass>
More information about the jboss-svn-commits
mailing list