[jboss-svn-commits] JBL Code SVN: r31478 - in labs/jbossrules/trunk/drools-planner/drools-planner-core/src/main/java/org/drools/planner: core/localsearch and 1 other directory.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Sun Feb 7 12:04:24 EST 2010
Author: ge0ffrey
Date: 2010-02-07 12:04:24 -0500 (Sun, 07 Feb 2010)
New Revision: 31478
Modified:
labs/jbossrules/trunk/drools-planner/drools-planner-core/src/main/java/org/drools/planner/config/localsearch/LocalSearchSolverConfig.java
labs/jbossrules/trunk/drools-planner/drools-planner-core/src/main/java/org/drools/planner/core/localsearch/DefaultLocalSearchSolver.java
Log:
JBRULES-2391 Configuration: optional mode which can be "production" (random isn't seeded, etc), "reproducable" (the default) and "debug" (reproducable + turns verifyUndoMoveIsUncorrupted, etc on)
Modified: labs/jbossrules/trunk/drools-planner/drools-planner-core/src/main/java/org/drools/planner/config/localsearch/LocalSearchSolverConfig.java
===================================================================
--- labs/jbossrules/trunk/drools-planner/drools-planner-core/src/main/java/org/drools/planner/config/localsearch/LocalSearchSolverConfig.java 2010-02-07 11:31:03 UTC (rev 31477)
+++ labs/jbossrules/trunk/drools-planner/drools-planner-core/src/main/java/org/drools/planner/config/localsearch/LocalSearchSolverConfig.java 2010-02-07 17:04:24 UTC (rev 31478)
@@ -33,12 +33,14 @@
*/
@XStreamAlias("localSearchSolver")
public class LocalSearchSolverConfig {
+
+ private static final long DEFAULT_RANDOM_SEED = 0L;
// Warning: all fields are null (and not defaulted) because they can be inherited
// and also because the input config file should match the output config file
- private Long randomSeed = null; // TODO remove me, use environmentMode instead
private EnvironmentMode environmentMode = null;
+ private Long randomSeed = null;
@XStreamImplicit(itemFieldName = "scoreDrl")
private List<String> scoreDrlList = null;
@@ -63,6 +65,14 @@
@XStreamAlias("forager")
private ForagerConfig foragerConfig = new ForagerConfig();
+ public EnvironmentMode getEnvironmentMode() {
+ return environmentMode;
+ }
+
+ public void setEnvironmentMode(EnvironmentMode environmentMode) {
+ this.environmentMode = environmentMode;
+ }
+
public Long getRandomSeed() {
return randomSeed;
}
@@ -75,14 +85,6 @@
return scoreDrlList;
}
- public EnvironmentMode getEnvironmentMode() {
- return environmentMode;
- }
-
- public void setEnvironmentMode(EnvironmentMode environmentMode) {
- this.environmentMode = environmentMode;
- }
-
public void setScoreDrlList(List<String> scoreDrlList) {
this.scoreDrlList = scoreDrlList;
}
@@ -158,10 +160,12 @@
public LocalSearchSolver buildSolver() {
DefaultLocalSearchSolver localSearchSolver = new DefaultLocalSearchSolver();
- if (randomSeed != null) {
- localSearchSolver.setRandomSeed(randomSeed);
- } else {
- localSearchSolver.setRandomSeed(0L);
+ if (environmentMode != EnvironmentMode.PRODUCTION) {
+ if (randomSeed != null) {
+ localSearchSolver.setRandomSeed(randomSeed);
+ } else {
+ localSearchSolver.setRandomSeed(DEFAULT_RANDOM_SEED);
+ }
}
localSearchSolver.setRuleBase(buildRuleBase());
ScoreDefinition scoreDefinition = scoreDefinitionConfig.buildScoreDefinition();
@@ -235,12 +239,12 @@
}
public void inherit(LocalSearchSolverConfig inheritedConfig) {
+ if (environmentMode == null) {
+ environmentMode = inheritedConfig.getEnvironmentMode();
+ }
if (randomSeed == null) {
randomSeed = inheritedConfig.getRandomSeed();
}
- if (environmentMode == null) {
- environmentMode = inheritedConfig.getEnvironmentMode();
- }
if (scoreDrlList == null) {
scoreDrlList = inheritedConfig.getScoreDrlList();
} else {
Modified: labs/jbossrules/trunk/drools-planner/drools-planner-core/src/main/java/org/drools/planner/core/localsearch/DefaultLocalSearchSolver.java
===================================================================
--- labs/jbossrules/trunk/drools-planner/drools-planner-core/src/main/java/org/drools/planner/core/localsearch/DefaultLocalSearchSolver.java 2010-02-07 11:31:03 UTC (rev 31477)
+++ labs/jbossrules/trunk/drools-planner/drools-planner-core/src/main/java/org/drools/planner/core/localsearch/DefaultLocalSearchSolver.java 2010-02-07 17:04:24 UTC (rev 31478)
@@ -20,7 +20,7 @@
public class DefaultLocalSearchSolver extends AbstractSolver implements LocalSearchSolver,
LocalSearchSolverLifecycleListener {
- protected long randomSeed; // TODO refactor to AbstractSolver
+ protected Long randomSeed; // TODO refactor to AbstractSolver
protected StartingSolutionInitializer startingSolutionInitializer = null; // TODO refactor to AbstractSolver
protected BestSolutionRecaller bestSolutionRecaller;
@@ -138,8 +138,13 @@
public void solvingStarted(LocalSearchSolverScope localSearchSolverScope) {
localSearchSolverScope.resetTimeMillisSpend();
- logger.info("Solving with random seed ({}).", randomSeed);
- localSearchSolverScope.setWorkingRandom(new Random(randomSeed));
+ if (randomSeed != null) {
+ logger.info("Solving with random seed ({}).", randomSeed);
+ localSearchSolverScope.setWorkingRandom(new Random(randomSeed));
+ } else {
+ logger.info("Solving without a fixed random seed.");
+ localSearchSolverScope.setWorkingRandom(new Random());
+ }
if (startingSolutionInitializer != null) {
if (!startingSolutionInitializer.isSolutionInitialized(localSearchSolverScope)) {
logger.info("Initializing solution.");
More information about the jboss-svn-commits
mailing list