[jboss-svn-commits] JBL Code SVN: r28180 - in labs/jbossrules/trunk/drools-solver: drools-solver-core/src/main/java/org/drools/solver/config/localsearch/termination and 19 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Sat Jul 18 08:53:23 EDT 2009
Author: ge0ffrey
Date: 2009-07-18 08:53:22 -0400 (Sat, 18 Jul 2009)
New Revision: 28180
Added:
labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/config/localsearch/termination/
labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/config/localsearch/termination/TerminationConfig.java
labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/localsearch/termination/
labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/localsearch/termination/AbstractCompositeTermination.java
labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/localsearch/termination/AbstractTermination.java
labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/localsearch/termination/AndCompositeTermination.java
labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/localsearch/termination/FeasableScoreTermination.java
labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/localsearch/termination/OrCompositeTermination.java
labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/localsearch/termination/StepCountTermination.java
labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/localsearch/termination/Termination.java
labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/localsearch/termination/TimeMillisSpendTermination.java
labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/localsearch/termination/UnimprovedStepCountTermination.java
labs/jbossrules/trunk/drools-solver/drools-solver-core/src/test/java/org/drools/solver/core/localsearch/termination/
Removed:
labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/config/localsearch/finish/
labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/config/localsearch/termination/FinishConfig.java
labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/localsearch/finish/
labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/localsearch/termination/AbstractCompositeFinish.java
labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/localsearch/termination/AbstractFinish.java
labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/localsearch/termination/AndCompositeFinish.java
labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/localsearch/termination/FeasableScoreFinish.java
labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/localsearch/termination/Finish.java
labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/localsearch/termination/OrCompositeFinish.java
labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/localsearch/termination/StepCountFinish.java
labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/localsearch/termination/TimeMillisSpendFinish.java
labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/localsearch/termination/UnimprovedStepCountFinish.java
labs/jbossrules/trunk/drools-solver/drools-solver-core/src/test/java/org/drools/solver/core/localsearch/finish/
Modified:
labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/config/localsearch/LocalSearchSolverConfig.java
labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/localsearch/DefaultLocalSearchSolver.java
labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/itc2007/examination/app/ExaminationShellApp.java
labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/itc2007/curriculumcourse/benchmark/curriculumCourseShortSolverBenchmarkConfig.xml
labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/itc2007/curriculumcourse/benchmark/curriculumCourseSolverBenchmarkConfig.xml
labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/itc2007/curriculumcourse/solver/curriculumCourseScoreRules.drl
labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/itc2007/curriculumcourse/solver/curriculumCourseSolverConfig.xml
labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/itc2007/examination/benchmark/examinationShortSolverBenchmarkConfig.xml
labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/itc2007/examination/benchmark/examinationSolverBenchmarkConfig.xml
labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/itc2007/examination/solver/examinationScoreRules.drl
labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/itc2007/examination/solver/examinationSolverConfig.xml
labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/lessonschedule/solver/lessonScheduleSolverConfig.xml
labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/manners2009/solver/manners2009SolverConfig.xml
labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/nqueens/benchmark/nqueensSolverBenchmarkConfig.xml
labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/nqueens/solver/nqueensSolverConfig.xml
labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/pas/benchmark/patientAdmissionScheduleSolverBenchmarkConfig.xml
labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/pas/solver/patientAdmissionScheduleBaseScoreRules.drl
labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/pas/solver/patientAdmissionScheduleSolverConfig.xml
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/smartTravelingTournamentSolverBenchmarkConfig.xml
labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/travelingtournament/solver/simple/simpleTravelingTournamentScoreRules.drl
labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/travelingtournament/solver/simple/simpleTravelingTournamentSolverConfig.xml
labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/travelingtournament/solver/smart/smartTravelingTournamentScoreRules.drl
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/test/resources/org/drools/solver/examples/nqueens/solver/nqueensSmokeSolverConfig.xml
labs/jbossrules/trunk/drools-solver/src/main/assembly/docs/UpgradeFromPreviousVersionRecipe.txt
Log:
JBRULES-2212 Rename Finish interface to Termination.
Modified: labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/config/localsearch/LocalSearchSolverConfig.java
===================================================================
--- labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/config/localsearch/LocalSearchSolverConfig.java 2009-07-18 12:50:02 UTC (rev 28179)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/config/localsearch/LocalSearchSolverConfig.java 2009-07-18 12:53:22 UTC (rev 28180)
@@ -17,7 +17,7 @@
import org.drools.solver.config.localsearch.decider.forager.ForagerConfig;
import org.drools.solver.config.localsearch.decider.selector.SelectorConfig;
import org.drools.solver.config.localsearch.decider.deciderscorecomparator.DeciderScoreComparatorFactoryConfig;
-import org.drools.solver.config.localsearch.finish.FinishConfig;
+import org.drools.solver.config.localsearch.termination.TerminationConfig;
import org.drools.solver.config.score.definition.ScoreDefinitionConfig;
import org.drools.solver.core.localsearch.DefaultLocalSearchSolver;
import org.drools.solver.core.localsearch.LocalSearchSolver;
@@ -43,8 +43,8 @@
private StartingSolutionInitializer startingSolutionInitializer = null;
private Class<StartingSolutionInitializer> startingSolutionInitializerClass = null;
- @XStreamAlias("finish")
- private FinishConfig finishConfig = new FinishConfig(); // TODO this new is pointless due to xstream
+ @XStreamAlias("termination")
+ private TerminationConfig terminationConfig = new TerminationConfig(); // TODO this new is pointless due to xstream
@XStreamAlias("deciderScoreComparatorFactory")
private DeciderScoreComparatorFactoryConfig deciderScoreComparatorFactoryConfig
@@ -96,12 +96,12 @@
this.startingSolutionInitializerClass = startingSolutionInitializerClass;
}
- public FinishConfig getFinishConfig() {
- return finishConfig;
+ public TerminationConfig getTerminationConfig() {
+ return terminationConfig;
}
- public void setFinishConfig(FinishConfig finishConfig) {
- this.finishConfig = finishConfig;
+ public void setTerminationConfig(TerminationConfig terminationConfig) {
+ this.terminationConfig = terminationConfig;
}
public DeciderScoreComparatorFactoryConfig getDeciderScoreComparatorFactoryConfig() {
@@ -155,7 +155,7 @@
localSearchSolver.setScoreCalculator(scoreDefinitionConfig.buildScoreCalculator());
localSearchSolver.setStartingSolutionInitializer(buildStartingSolutionInitializer());
localSearchSolver.setBestSolutionRecaller(new BestSolutionRecaller());
- localSearchSolver.setFinish(finishConfig.buildFinish(scoreDefinition));
+ localSearchSolver.setTermination(terminationConfig.buildTermination(scoreDefinition));
localSearchSolver.setDecider(buildDecider());
return localSearchSolver;
}
@@ -241,10 +241,10 @@
startingSolutionInitializer = inheritedConfig.getStartingSolutionInitializer();
startingSolutionInitializerClass = inheritedConfig.getStartingSolutionInitializerClass();
}
- if (finishConfig == null) {
- finishConfig = inheritedConfig.getFinishConfig();
- } else if (inheritedConfig.getFinishConfig() != null) {
- finishConfig.inherit(inheritedConfig.getFinishConfig());
+ if (terminationConfig == null) {
+ terminationConfig = inheritedConfig.getTerminationConfig();
+ } else if (inheritedConfig.getTerminationConfig() != null) {
+ terminationConfig.inherit(inheritedConfig.getTerminationConfig());
}
if (deciderScoreComparatorFactoryConfig == null) {
deciderScoreComparatorFactoryConfig = inheritedConfig.getDeciderScoreComparatorFactoryConfig();
Copied: labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/config/localsearch/termination (from rev 28178, labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/config/localsearch/finish)
Deleted: labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/config/localsearch/termination/FinishConfig.java
===================================================================
--- labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/config/localsearch/finish/FinishConfig.java 2009-07-18 12:09:26 UTC (rev 28178)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/config/localsearch/termination/FinishConfig.java 2009-07-18 12:53:22 UTC (rev 28180)
@@ -1,231 +0,0 @@
-package org.drools.solver.config.localsearch.finish;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import com.thoughtworks.xstream.annotations.XStreamAlias;
-import org.drools.solver.core.localsearch.finish.AbstractCompositeFinish;
-import org.drools.solver.core.localsearch.finish.AndCompositeFinish;
-import org.drools.solver.core.localsearch.finish.FeasableScoreFinish;
-import org.drools.solver.core.localsearch.finish.Finish;
-import org.drools.solver.core.localsearch.finish.OrCompositeFinish;
-import org.drools.solver.core.localsearch.finish.StepCountFinish;
-import org.drools.solver.core.localsearch.finish.TimeMillisSpendFinish;
-import org.drools.solver.core.localsearch.finish.UnimprovedStepCountFinish;
-import org.drools.solver.core.score.definition.ScoreDefinition;
-
-/**
- * @author Geoffrey De Smet
- */
- at XStreamAlias("finish")
-public class FinishConfig {
-
- private Finish finish = null; // TODO make into a list
- private Class<Finish> finishClass = null;
-
- private FinishCompositionStyle finishCompositionStyle = null;
-
- private Integer maximumStepCount = null;
- private Long maximumTimeMillisSpend = null;
- private Long maximumSecondsSpend = null;
- private Long maximumMinutesSpend = null;
- private Long maximumHouresSpend = null;
- private String feasableScore = null;
- private Integer maximumUnimprovedStepCount = null;
-
- public Finish getFinish() {
- return finish;
- }
-
- public void setFinish(Finish finish) {
- this.finish = finish;
- }
-
- public Class<Finish> getFinishClass() {
- return finishClass;
- }
-
- public void setFinishClass(Class<Finish> finishClass) {
- this.finishClass = finishClass;
- }
-
- public FinishCompositionStyle getFinishCompositionStyle() {
- return finishCompositionStyle;
- }
-
- public void setFinishCompositionStyle(FinishCompositionStyle finishCompositionStyle) {
- this.finishCompositionStyle = finishCompositionStyle;
- }
-
- public Integer getMaximumStepCount() {
- return maximumStepCount;
- }
-
- public void setMaximumStepCount(Integer maximumStepCount) {
- this.maximumStepCount = maximumStepCount;
- }
-
- public Long getMaximumTimeMillisSpend() {
- return maximumTimeMillisSpend;
- }
-
- public void setMaximumTimeMillisSpend(Long maximumTimeMillisSpend) {
- this.maximumTimeMillisSpend = maximumTimeMillisSpend;
- }
-
- public Long getMaximumSecondsSpend() {
- return maximumSecondsSpend;
- }
-
- public void setMaximumSecondsSpend(Long maximumSecondsSpend) {
- this.maximumSecondsSpend = maximumSecondsSpend;
- }
-
- public Long getMaximumMinutesSpend() {
- return maximumMinutesSpend;
- }
-
- public void setMaximumMinutesSpend(Long maximumMinutesSpend) {
- this.maximumMinutesSpend = maximumMinutesSpend;
- }
-
- public Long getMaximumHouresSpend() {
- return maximumHouresSpend;
- }
-
- public void setMaximumHouresSpend(Long maximumHouresSpend) {
- this.maximumHouresSpend = maximumHouresSpend;
- }
-
- public String getFeasableScore() {
- return feasableScore;
- }
-
- public void setFeasableScore(String feasableScore) {
- this.feasableScore = feasableScore;
- }
-
- public Integer getMaximumUnimprovedStepCount() {
- return maximumUnimprovedStepCount;
- }
-
- public void setMaximumUnimprovedStepCount(Integer maximumUnimprovedStepCount) {
- this.maximumUnimprovedStepCount = maximumUnimprovedStepCount;
- }
-
- // ************************************************************************
- // Builder methods
- // ************************************************************************
-
- public Finish buildFinish(ScoreDefinition scoreDefinition) {
- List<Finish> finishList = new ArrayList<Finish>();
- if (finish != null) {
- finishList.add(finish);
- }
- if (finishClass != null) {
- try {
- finishList.add(finishClass.newInstance());
- } catch (InstantiationException e) {
- throw new IllegalArgumentException("finishClass (" + finishClass.getName()
- + ") does not have a public no-arg constructor", e);
- } catch (IllegalAccessException e) {
- throw new IllegalArgumentException("finishClass (" + finishClass.getName()
- + ") does not have a public no-arg constructor", e);
- }
- }
- if (maximumStepCount != null) {
- StepCountFinish finish = new StepCountFinish();
- finish.setMaximumStepCount(maximumStepCount);
- finishList.add(finish);
- }
- if (maximumTimeMillisSpend != null) {
- TimeMillisSpendFinish finish = new TimeMillisSpendFinish();
- finish.setMaximumTimeMillisSpend(maximumTimeMillisSpend);
- finishList.add(finish);
- }
- if (maximumSecondsSpend != null) {
- TimeMillisSpendFinish finish = new TimeMillisSpendFinish();
- finish.setMaximumTimeMillisSpend(maximumSecondsSpend * 1000L);
- finishList.add(finish);
- }
- if (maximumMinutesSpend != null) {
- TimeMillisSpendFinish finish = new TimeMillisSpendFinish();
- finish.setMaximumTimeMillisSpend(maximumMinutesSpend * 60000L);
- finishList.add(finish);
- }
- if (maximumHouresSpend != null) {
- TimeMillisSpendFinish finish = new TimeMillisSpendFinish();
- finish.setMaximumTimeMillisSpend(maximumHouresSpend * 3600000L);
- finishList.add(finish);
- }
- if (feasableScore != null) {
- FeasableScoreFinish finish = new FeasableScoreFinish();
- finish.setFeasableScore(scoreDefinition.parseScore(feasableScore));
- finishList.add(finish);
- }
- if (maximumUnimprovedStepCount != null) {
- UnimprovedStepCountFinish finish = new UnimprovedStepCountFinish();
- finish.setMaximumUnimprovedStepCount(maximumUnimprovedStepCount);
- finishList.add(finish);
- }
- if (finishList.size() == 1) {
- return finishList.get(0);
- } else if (finishList.size() > 1) {
- AbstractCompositeFinish compositeFinish;
- if (finishCompositionStyle == null || finishCompositionStyle == FinishCompositionStyle.OR) {
- compositeFinish = new OrCompositeFinish();
- } else if (finishCompositionStyle == FinishCompositionStyle.AND) {
- compositeFinish = new AndCompositeFinish();
- } else {
- throw new IllegalStateException("finishCompositionStyle (" + finishCompositionStyle
- + ") not implemented");
- }
- compositeFinish.setFinishList(finishList);
- return compositeFinish;
- } else {
- TimeMillisSpendFinish finish = new TimeMillisSpendFinish();
- finish.setMaximumTimeMillisSpend(60000);
- return finish;
- }
- }
-
- public void inherit(FinishConfig inheritedConfig) {
- // inherited finishes get compositely added
- if (finish == null) {
- finish = inheritedConfig.getFinish();
- }
- if (finishClass == null) {
- finishClass = inheritedConfig.getFinishClass();
- }
- if (finishCompositionStyle == null) {
- finishCompositionStyle = inheritedConfig.getFinishCompositionStyle();
- }
- if (maximumStepCount == null) {
- maximumStepCount = inheritedConfig.getMaximumStepCount();
- }
- if (maximumTimeMillisSpend == null) {
- maximumTimeMillisSpend = inheritedConfig.getMaximumTimeMillisSpend();
- }
- if (maximumSecondsSpend == null) {
- maximumSecondsSpend = inheritedConfig.getMaximumSecondsSpend();
- }
- if (maximumMinutesSpend == null) {
- maximumMinutesSpend = inheritedConfig.getMaximumMinutesSpend();
- }
- if (maximumHouresSpend == null) {
- maximumHouresSpend = inheritedConfig.getMaximumHouresSpend();
- }
- if (feasableScore == null) {
- feasableScore = inheritedConfig.getFeasableScore();
- }
- if (maximumUnimprovedStepCount == null) {
- maximumUnimprovedStepCount = inheritedConfig.getMaximumUnimprovedStepCount();
- }
- }
-
- public enum FinishCompositionStyle {
- AND,
- OR,
- }
-
-}
Copied: labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/config/localsearch/termination/TerminationConfig.java (from rev 28178, labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/config/localsearch/finish/FinishConfig.java)
===================================================================
--- labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/config/localsearch/termination/TerminationConfig.java (rev 0)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/config/localsearch/termination/TerminationConfig.java 2009-07-18 12:53:22 UTC (rev 28180)
@@ -0,0 +1,231 @@
+package org.drools.solver.config.localsearch.termination;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import com.thoughtworks.xstream.annotations.XStreamAlias;
+import org.drools.solver.core.localsearch.termination.AbstractCompositeTermination;
+import org.drools.solver.core.localsearch.termination.AndCompositeTermination;
+import org.drools.solver.core.localsearch.termination.FeasableScoreTermination;
+import org.drools.solver.core.localsearch.termination.Termination;
+import org.drools.solver.core.localsearch.termination.OrCompositeTermination;
+import org.drools.solver.core.localsearch.termination.StepCountTermination;
+import org.drools.solver.core.localsearch.termination.TimeMillisSpendTermination;
+import org.drools.solver.core.localsearch.termination.UnimprovedStepCountTermination;
+import org.drools.solver.core.score.definition.ScoreDefinition;
+
+/**
+ * @author Geoffrey De Smet
+ */
+ at XStreamAlias("termination")
+public class TerminationConfig {
+
+ private Termination termination = null; // TODO make into a list
+ private Class<Termination> terminationClass = null;
+
+ private TerminationCompositionStyle terminationCompositionStyle = null;
+
+ private Integer maximumStepCount = null;
+ private Long maximumTimeMillisSpend = null;
+ private Long maximumSecondsSpend = null;
+ private Long maximumMinutesSpend = null;
+ private Long maximumHouresSpend = null;
+ private String feasableScore = null;
+ private Integer maximumUnimprovedStepCount = null;
+
+ public Termination getTermination() {
+ return termination;
+ }
+
+ public void setTermination(Termination termination) {
+ this.termination = termination;
+ }
+
+ public Class<Termination> getTerminationClass() {
+ return terminationClass;
+ }
+
+ public void setTerminationClass(Class<Termination> terminationClass) {
+ this.terminationClass = terminationClass;
+ }
+
+ public TerminationCompositionStyle getTerminationCompositionStyle() {
+ return terminationCompositionStyle;
+ }
+
+ public void setTerminationCompositionStyle(TerminationCompositionStyle terminationCompositionStyle) {
+ this.terminationCompositionStyle = terminationCompositionStyle;
+ }
+
+ public Integer getMaximumStepCount() {
+ return maximumStepCount;
+ }
+
+ public void setMaximumStepCount(Integer maximumStepCount) {
+ this.maximumStepCount = maximumStepCount;
+ }
+
+ public Long getMaximumTimeMillisSpend() {
+ return maximumTimeMillisSpend;
+ }
+
+ public void setMaximumTimeMillisSpend(Long maximumTimeMillisSpend) {
+ this.maximumTimeMillisSpend = maximumTimeMillisSpend;
+ }
+
+ public Long getMaximumSecondsSpend() {
+ return maximumSecondsSpend;
+ }
+
+ public void setMaximumSecondsSpend(Long maximumSecondsSpend) {
+ this.maximumSecondsSpend = maximumSecondsSpend;
+ }
+
+ public Long getMaximumMinutesSpend() {
+ return maximumMinutesSpend;
+ }
+
+ public void setMaximumMinutesSpend(Long maximumMinutesSpend) {
+ this.maximumMinutesSpend = maximumMinutesSpend;
+ }
+
+ public Long getMaximumHouresSpend() {
+ return maximumHouresSpend;
+ }
+
+ public void setMaximumHouresSpend(Long maximumHouresSpend) {
+ this.maximumHouresSpend = maximumHouresSpend;
+ }
+
+ public String getFeasableScore() {
+ return feasableScore;
+ }
+
+ public void setFeasableScore(String feasableScore) {
+ this.feasableScore = feasableScore;
+ }
+
+ public Integer getMaximumUnimprovedStepCount() {
+ return maximumUnimprovedStepCount;
+ }
+
+ public void setMaximumUnimprovedStepCount(Integer maximumUnimprovedStepCount) {
+ this.maximumUnimprovedStepCount = maximumUnimprovedStepCount;
+ }
+
+ // ************************************************************************
+ // Builder methods
+ // ************************************************************************
+
+ public Termination buildTermination(ScoreDefinition scoreDefinition) {
+ List<Termination> terminationList = new ArrayList<Termination>();
+ if (termination != null) {
+ terminationList.add(termination);
+ }
+ if (terminationClass != null) {
+ try {
+ terminationList.add(terminationClass.newInstance());
+ } catch (InstantiationException e) {
+ throw new IllegalArgumentException("terminationClass (" + terminationClass.getName()
+ + ") does not have a public no-arg constructor", e);
+ } catch (IllegalAccessException e) {
+ throw new IllegalArgumentException("terminationClass (" + terminationClass.getName()
+ + ") does not have a public no-arg constructor", e);
+ }
+ }
+ if (maximumStepCount != null) {
+ StepCountTermination termination = new StepCountTermination();
+ termination.setMaximumStepCount(maximumStepCount);
+ terminationList.add(termination);
+ }
+ if (maximumTimeMillisSpend != null) {
+ TimeMillisSpendTermination termination = new TimeMillisSpendTermination();
+ termination.setMaximumTimeMillisSpend(maximumTimeMillisSpend);
+ terminationList.add(termination);
+ }
+ if (maximumSecondsSpend != null) {
+ TimeMillisSpendTermination termination = new TimeMillisSpendTermination();
+ termination.setMaximumTimeMillisSpend(maximumSecondsSpend * 1000L);
+ terminationList.add(termination);
+ }
+ if (maximumMinutesSpend != null) {
+ TimeMillisSpendTermination termination = new TimeMillisSpendTermination();
+ termination.setMaximumTimeMillisSpend(maximumMinutesSpend * 60000L);
+ terminationList.add(termination);
+ }
+ if (maximumHouresSpend != null) {
+ TimeMillisSpendTermination termination = new TimeMillisSpendTermination();
+ termination.setMaximumTimeMillisSpend(maximumHouresSpend * 3600000L);
+ terminationList.add(termination);
+ }
+ if (feasableScore != null) {
+ FeasableScoreTermination termination = new FeasableScoreTermination();
+ termination.setFeasableScore(scoreDefinition.parseScore(feasableScore));
+ terminationList.add(termination);
+ }
+ if (maximumUnimprovedStepCount != null) {
+ UnimprovedStepCountTermination termination = new UnimprovedStepCountTermination();
+ termination.setMaximumUnimprovedStepCount(maximumUnimprovedStepCount);
+ terminationList.add(termination);
+ }
+ if (terminationList.size() == 1) {
+ return terminationList.get(0);
+ } else if (terminationList.size() > 1) {
+ AbstractCompositeTermination compositeTermination;
+ if (terminationCompositionStyle == null || terminationCompositionStyle == TerminationCompositionStyle.OR) {
+ compositeTermination = new OrCompositeTermination();
+ } else if (terminationCompositionStyle == TerminationCompositionStyle.AND) {
+ compositeTermination = new AndCompositeTermination();
+ } else {
+ throw new IllegalStateException("terminationCompositionStyle (" + terminationCompositionStyle
+ + ") not implemented");
+ }
+ compositeTermination.setTerminationList(terminationList);
+ return compositeTermination;
+ } else {
+ TimeMillisSpendTermination termination = new TimeMillisSpendTermination();
+ termination.setMaximumTimeMillisSpend(60000);
+ return termination;
+ }
+ }
+
+ public void inherit(TerminationConfig inheritedConfig) {
+ // inherited terminations get compositely added
+ if (termination == null) {
+ termination = inheritedConfig.getTermination();
+ }
+ if (terminationClass == null) {
+ terminationClass = inheritedConfig.getTerminationClass();
+ }
+ if (terminationCompositionStyle == null) {
+ terminationCompositionStyle = inheritedConfig.getTerminationCompositionStyle();
+ }
+ if (maximumStepCount == null) {
+ maximumStepCount = inheritedConfig.getMaximumStepCount();
+ }
+ if (maximumTimeMillisSpend == null) {
+ maximumTimeMillisSpend = inheritedConfig.getMaximumTimeMillisSpend();
+ }
+ if (maximumSecondsSpend == null) {
+ maximumSecondsSpend = inheritedConfig.getMaximumSecondsSpend();
+ }
+ if (maximumMinutesSpend == null) {
+ maximumMinutesSpend = inheritedConfig.getMaximumMinutesSpend();
+ }
+ if (maximumHouresSpend == null) {
+ maximumHouresSpend = inheritedConfig.getMaximumHouresSpend();
+ }
+ if (feasableScore == null) {
+ feasableScore = inheritedConfig.getFeasableScore();
+ }
+ if (maximumUnimprovedStepCount == null) {
+ maximumUnimprovedStepCount = inheritedConfig.getMaximumUnimprovedStepCount();
+ }
+ }
+
+ public enum TerminationCompositionStyle {
+ AND,
+ OR,
+ }
+
+}
Modified: labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/localsearch/DefaultLocalSearchSolver.java
===================================================================
--- labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/localsearch/DefaultLocalSearchSolver.java 2009-07-18 12:50:02 UTC (rev 28179)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/localsearch/DefaultLocalSearchSolver.java 2009-07-18 12:53:22 UTC (rev 28180)
@@ -5,7 +5,7 @@
import org.drools.RuleBase;
import org.drools.solver.core.localsearch.bestsolution.BestSolutionRecaller;
import org.drools.solver.core.localsearch.decider.Decider;
-import org.drools.solver.core.localsearch.finish.Finish;
+import org.drools.solver.core.localsearch.termination.Termination;
import org.drools.solver.core.move.Move;
import org.drools.solver.core.score.calculator.ScoreCalculator;
import org.drools.solver.core.score.Score;
@@ -25,7 +25,7 @@
protected StartingSolutionInitializer startingSolutionInitializer = null; // TODO refactor to AbstractSolver
protected BestSolutionRecaller bestSolutionRecaller;
- protected Finish finish;
+ protected Termination termination;
protected Decider decider;
protected LocalSearchSolverScope localSearchSolverScope = new LocalSearchSolverScope(); // TODO remove me
@@ -68,9 +68,9 @@
this.decider.setLocalSearchSolver(this);
}
- public void setFinish(Finish finish) {
- this.finish = finish;
- this.finish.setLocalSearchSolver(this);
+ public void setTermination(Termination termination) {
+ this.termination = termination;
+ this.termination.setLocalSearchSolver(this);
}
public void setStartingSolution(Solution startingSolution) {
@@ -103,13 +103,14 @@
solvingStarted(localSearchSolverScope);
StepScope stepScope = createNextStepScope(localSearchSolverScope, null);
- while (!terminatedEarly.get() && !finish.isFinished(stepScope)) {
- stepScope.setTimeGradient(finish.calculateTimeGradient(stepScope));
+ while (!terminatedEarly.get() && !termination.isTerminated(stepScope)) {
+ stepScope.setTimeGradient(termination.calculateTimeGradient(stepScope));
beforeDeciding(stepScope);
decider.decideNextStep(stepScope);
Move nextStep = stepScope.getStep();
if (nextStep == null) {
- logger.warn("No move accepted for step index ({}) out of {} accepted moves. Finishing early.",
+ // TODO JBRULES-2213 do not terminate, but warn and try again (especially with relativeSelection)
+ logger.warn("No move accepted for step index ({}) out of {} accepted moves. Terminating by exception.",
stepScope.getStepIndex(), decider.getForager().getAcceptedMovesSize());
break;
}
@@ -151,31 +152,31 @@
}
localSearchSolverScope.setStartingScore(localSearchSolverScope.calculateScoreFromWorkingMemory());
bestSolutionRecaller.solvingStarted(localSearchSolverScope);
- finish.solvingStarted(localSearchSolverScope);
+ termination.solvingStarted(localSearchSolverScope);
decider.solvingStarted(localSearchSolverScope);
}
public void beforeDeciding(StepScope stepScope) {
bestSolutionRecaller.beforeDeciding(stepScope);
- finish.beforeDeciding(stepScope);
+ termination.beforeDeciding(stepScope);
decider.beforeDeciding(stepScope);
}
public void stepDecided(StepScope stepScope) {
bestSolutionRecaller.stepDecided(stepScope);
- finish.stepDecided(stepScope);
+ termination.stepDecided(stepScope);
decider.stepDecided(stepScope);
}
public void stepTaken(StepScope stepScope) {
bestSolutionRecaller.stepTaken(stepScope);
- finish.stepTaken(stepScope);
+ termination.stepTaken(stepScope);
decider.stepTaken(stepScope);
}
public void solvingEnded(LocalSearchSolverScope localSearchSolverScope) {
bestSolutionRecaller.solvingEnded(localSearchSolverScope);
- finish.solvingEnded(localSearchSolverScope);
+ termination.solvingEnded(localSearchSolverScope);
decider.solvingEnded(localSearchSolverScope);
logger.info("Solved at step index ({}) with time spend ({}) for best score ({}).", new Object[] {
localSearchSolverScope.getLastCompletedStepScope().getStepIndex(),
Copied: labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/localsearch/termination (from rev 28178, labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/localsearch/finish)
Deleted: labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/localsearch/termination/AbstractCompositeFinish.java
===================================================================
--- labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/localsearch/finish/AbstractCompositeFinish.java 2009-07-18 12:09:26 UTC (rev 28178)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/localsearch/termination/AbstractCompositeFinish.java 2009-07-18 12:53:22 UTC (rev 28180)
@@ -1,68 +0,0 @@
-package org.drools.solver.core.localsearch.finish;
-
-import java.util.List;
-
-import org.drools.solver.core.localsearch.LocalSearchSolver;
-import org.drools.solver.core.localsearch.LocalSearchSolverScope;
-import org.drools.solver.core.localsearch.StepScope;
-
-/**
- * Abstract superclass for CompositeFinish classes that combine multiple Finishes.
- * @author Geoffrey De Smet
- */
-public abstract class AbstractCompositeFinish extends AbstractFinish implements Finish {
-
- protected List<Finish> finishList;
-
- public void setFinishList(List<Finish> finishList) {
- this.finishList = finishList;
- }
-
- @Override
- public void setLocalSearchSolver(LocalSearchSolver localSearchSolver) {
- super.setLocalSearchSolver(localSearchSolver);
- for (Finish finish : finishList) {
- finish.setLocalSearchSolver(localSearchSolver);
- }
- }
-
- // ************************************************************************
- // Worker methods
- // ************************************************************************
-
- @Override
- public void solvingStarted(LocalSearchSolverScope localSearchSolverScope) {
- for (Finish finish : finishList) {
- finish.solvingStarted(localSearchSolverScope);
- }
- }
-
- @Override
- public void beforeDeciding(StepScope stepScope) {
- for (Finish finish : finishList) {
- finish.beforeDeciding(stepScope);
- }
- }
-
- @Override
- public void stepDecided(StepScope stepScope) {
- for (Finish finish : finishList) {
- finish.stepDecided(stepScope);
- }
- }
-
- @Override
- public void stepTaken(StepScope stepScope) {
- for (Finish finish : finishList) {
- finish.stepTaken(stepScope);
- }
- }
-
- @Override
- public void solvingEnded(LocalSearchSolverScope localSearchSolverScope) {
- for (Finish finish : finishList) {
- finish.solvingEnded(localSearchSolverScope);
- }
- }
-
-}
Copied: labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/localsearch/termination/AbstractCompositeTermination.java (from rev 28178, labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/localsearch/finish/AbstractCompositeFinish.java)
===================================================================
--- labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/localsearch/termination/AbstractCompositeTermination.java (rev 0)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/localsearch/termination/AbstractCompositeTermination.java 2009-07-18 12:53:22 UTC (rev 28180)
@@ -0,0 +1,68 @@
+package org.drools.solver.core.localsearch.termination;
+
+import java.util.List;
+
+import org.drools.solver.core.localsearch.LocalSearchSolver;
+import org.drools.solver.core.localsearch.LocalSearchSolverScope;
+import org.drools.solver.core.localsearch.StepScope;
+
+/**
+ * Abstract superclass for CompositeTermination classes that combine multiple Terminations.
+ * @author Geoffrey De Smet
+ */
+public abstract class AbstractCompositeTermination extends AbstractTermination implements Termination {
+
+ protected List<Termination> terminationList;
+
+ public void setTerminationList(List<Termination> terminationList) {
+ this.terminationList = terminationList;
+ }
+
+ @Override
+ public void setLocalSearchSolver(LocalSearchSolver localSearchSolver) {
+ super.setLocalSearchSolver(localSearchSolver);
+ for (Termination termination : terminationList) {
+ termination.setLocalSearchSolver(localSearchSolver);
+ }
+ }
+
+ // ************************************************************************
+ // Worker methods
+ // ************************************************************************
+
+ @Override
+ public void solvingStarted(LocalSearchSolverScope localSearchSolverScope) {
+ for (Termination termination : terminationList) {
+ termination.solvingStarted(localSearchSolverScope);
+ }
+ }
+
+ @Override
+ public void beforeDeciding(StepScope stepScope) {
+ for (Termination termination : terminationList) {
+ termination.beforeDeciding(stepScope);
+ }
+ }
+
+ @Override
+ public void stepDecided(StepScope stepScope) {
+ for (Termination termination : terminationList) {
+ termination.stepDecided(stepScope);
+ }
+ }
+
+ @Override
+ public void stepTaken(StepScope stepScope) {
+ for (Termination termination : terminationList) {
+ termination.stepTaken(stepScope);
+ }
+ }
+
+ @Override
+ public void solvingEnded(LocalSearchSolverScope localSearchSolverScope) {
+ for (Termination termination : terminationList) {
+ termination.solvingEnded(localSearchSolverScope);
+ }
+ }
+
+}
Deleted: labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/localsearch/termination/AbstractFinish.java
===================================================================
--- labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/localsearch/finish/AbstractFinish.java 2009-07-18 12:09:26 UTC (rev 28178)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/localsearch/termination/AbstractFinish.java 2009-07-18 12:53:22 UTC (rev 28180)
@@ -1,47 +0,0 @@
-package org.drools.solver.core.localsearch.finish;
-
-import org.drools.solver.core.localsearch.LocalSearchSolver;
-import org.drools.solver.core.localsearch.LocalSearchSolverScope;
-import org.drools.solver.core.localsearch.StepScope;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * Abstract superclass for {@link Finish}.
- * @author Geoffrey De Smet
- */
-public abstract class AbstractFinish implements Finish {
-
- protected final transient Logger logger = LoggerFactory.getLogger(getClass());
-
- protected LocalSearchSolver localSearchSolver;
-
- public void setLocalSearchSolver(LocalSearchSolver localSearchSolver) {
- this.localSearchSolver = localSearchSolver;
- }
-
- // ************************************************************************
- // Worker methods
- // ************************************************************************
-
- public void solvingStarted(LocalSearchSolverScope localSearchSolverScope) {
- // Hook which can be optionally overwritten by subclasses.
- }
-
- public void beforeDeciding(StepScope stepScope) {
- // Hook which can be optionally overwritten by subclasses.
- }
-
- public void stepDecided(StepScope stepScope) {
- // Hook which can be optionally overwritten by subclasses.
- }
-
- public void stepTaken(StepScope stepScope) {
- // Hook which can be optionally overwritten by subclasses.
- }
-
- public void solvingEnded(LocalSearchSolverScope localSearchSolverScope) {
- // Hook which can be optionally overwritten by subclasses.
- }
-
-}
Copied: labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/localsearch/termination/AbstractTermination.java (from rev 28178, labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/localsearch/finish/AbstractFinish.java)
===================================================================
--- labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/localsearch/termination/AbstractTermination.java (rev 0)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/localsearch/termination/AbstractTermination.java 2009-07-18 12:53:22 UTC (rev 28180)
@@ -0,0 +1,47 @@
+package org.drools.solver.core.localsearch.termination;
+
+import org.drools.solver.core.localsearch.LocalSearchSolver;
+import org.drools.solver.core.localsearch.LocalSearchSolverScope;
+import org.drools.solver.core.localsearch.StepScope;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * Abstract superclass for {@link Termination}.
+ * @author Geoffrey De Smet
+ */
+public abstract class AbstractTermination implements Termination {
+
+ protected final transient Logger logger = LoggerFactory.getLogger(getClass());
+
+ protected LocalSearchSolver localSearchSolver;
+
+ public void setLocalSearchSolver(LocalSearchSolver localSearchSolver) {
+ this.localSearchSolver = localSearchSolver;
+ }
+
+ // ************************************************************************
+ // Worker methods
+ // ************************************************************************
+
+ public void solvingStarted(LocalSearchSolverScope localSearchSolverScope) {
+ // Hook which can be optionally overwritten by subclasses.
+ }
+
+ public void beforeDeciding(StepScope stepScope) {
+ // Hook which can be optionally overwritten by subclasses.
+ }
+
+ public void stepDecided(StepScope stepScope) {
+ // Hook which can be optionally overwritten by subclasses.
+ }
+
+ public void stepTaken(StepScope stepScope) {
+ // Hook which can be optionally overwritten by subclasses.
+ }
+
+ public void solvingEnded(LocalSearchSolverScope localSearchSolverScope) {
+ // Hook which can be optionally overwritten by subclasses.
+ }
+
+}
Deleted: labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/localsearch/termination/AndCompositeFinish.java
===================================================================
--- labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/localsearch/finish/AndCompositeFinish.java 2009-07-18 12:09:26 UTC (rev 28178)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/localsearch/termination/AndCompositeFinish.java 2009-07-18 12:53:22 UTC (rev 28180)
@@ -1,44 +0,0 @@
-package org.drools.solver.core.localsearch.finish;
-
-import org.drools.solver.core.localsearch.StepScope;
-
-/**
- * @author Geoffrey De Smet
- */
-public class AndCompositeFinish extends AbstractCompositeFinish {
-
- // ************************************************************************
- // Worker methods
- // ************************************************************************
-
- /**
- * @return true if all the Finishes are finished.
- * @param stepScope
- */
- public boolean isFinished(StepScope stepScope) {
- for (Finish finish : finishList) {
- if (!finish.isFinished(stepScope)) {
- return false;
- }
- }
- return true;
- }
-
- /**
- * Calculates the minimum timeGradient of all finishes.
- * Not supported timeGradients (-1.0) are ignored.
- * @return the minimum timeGradient of the finishes.
- * @param stepScope
- */
- public double calculateTimeGradient(StepScope stepScope) {
- double timeGradient = 1.0;
- for (Finish finish : finishList) {
- double nextTimeGradient = finish.calculateTimeGradient(stepScope);
- if (nextTimeGradient >= 0.0) {
- timeGradient = Math.min(timeGradient, nextTimeGradient);
- }
- }
- return timeGradient;
- }
-
-}
Copied: labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/localsearch/termination/AndCompositeTermination.java (from rev 28178, labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/localsearch/finish/AndCompositeFinish.java)
===================================================================
--- labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/localsearch/termination/AndCompositeTermination.java (rev 0)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/localsearch/termination/AndCompositeTermination.java 2009-07-18 12:53:22 UTC (rev 28180)
@@ -0,0 +1,44 @@
+package org.drools.solver.core.localsearch.termination;
+
+import org.drools.solver.core.localsearch.StepScope;
+
+/**
+ * @author Geoffrey De Smet
+ */
+public class AndCompositeTermination extends AbstractCompositeTermination {
+
+ // ************************************************************************
+ // Worker methods
+ // ************************************************************************
+
+ /**
+ * @return true if all the Terminations are terminated.
+ * @param stepScope
+ */
+ public boolean isTerminated(StepScope stepScope) {
+ for (Termination termination : terminationList) {
+ if (!termination.isTerminated(stepScope)) {
+ return false;
+ }
+ }
+ return true;
+ }
+
+ /**
+ * Calculates the minimum timeGradient of all Terminations.
+ * Not supported timeGradients (-1.0) are ignored.
+ * @return the minimum timeGradient of the Terminations.
+ * @param stepScope
+ */
+ public double calculateTimeGradient(StepScope stepScope) {
+ double timeGradient = 1.0;
+ for (Termination termination : terminationList) {
+ double nextTimeGradient = termination.calculateTimeGradient(stepScope);
+ if (nextTimeGradient >= 0.0) {
+ timeGradient = Math.min(timeGradient, nextTimeGradient);
+ }
+ }
+ return timeGradient;
+ }
+
+}
Deleted: labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/localsearch/termination/FeasableScoreFinish.java
===================================================================
--- labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/localsearch/finish/FeasableScoreFinish.java 2009-07-18 12:09:26 UTC (rev 28178)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/localsearch/termination/FeasableScoreFinish.java 2009-07-18 12:53:22 UTC (rev 28180)
@@ -1,35 +0,0 @@
-package org.drools.solver.core.localsearch.finish;
-
-import org.drools.solver.core.localsearch.LocalSearchSolverScope;
-import org.drools.solver.core.localsearch.StepScope;
-import org.drools.solver.core.score.Score;
-
-/**
- * @author Geoffrey De Smet
- */
-public class FeasableScoreFinish extends AbstractFinish {
-
- private Score feasableScore;
-
- public void setFeasableScore(Score feasableScore) {
- this.feasableScore = feasableScore;
- }
-
- // ************************************************************************
- // Worker methods
- // ************************************************************************
-
- public boolean isFinished(StepScope stepScope) {
- Score bestScore = stepScope.getLocalSearchSolverScope().getBestScore();
- return bestScore.compareTo(feasableScore) >= 0;
- }
-
- public double calculateTimeGradient(StepScope stepScope) {
- LocalSearchSolverScope localSearchSolverScope = stepScope.getLocalSearchSolverScope();
- Score startingScore = localSearchSolverScope.getStartingScore();
- Score stepScore = localSearchSolverScope.getLastCompletedStepScope().getScore();
- return localSearchSolverScope.getScoreDefinition()
- .calculateTimeGradient(startingScore, feasableScore, stepScore);
- }
-
-}
Copied: labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/localsearch/termination/FeasableScoreTermination.java (from rev 28178, labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/localsearch/finish/FeasableScoreFinish.java)
===================================================================
--- labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/localsearch/termination/FeasableScoreTermination.java (rev 0)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/localsearch/termination/FeasableScoreTermination.java 2009-07-18 12:53:22 UTC (rev 28180)
@@ -0,0 +1,35 @@
+package org.drools.solver.core.localsearch.termination;
+
+import org.drools.solver.core.localsearch.LocalSearchSolverScope;
+import org.drools.solver.core.localsearch.StepScope;
+import org.drools.solver.core.score.Score;
+
+/**
+ * @author Geoffrey De Smet
+ */
+public class FeasableScoreTermination extends AbstractTermination {
+
+ private Score feasableScore;
+
+ public void setFeasableScore(Score feasableScore) {
+ this.feasableScore = feasableScore;
+ }
+
+ // ************************************************************************
+ // Worker methods
+ // ************************************************************************
+
+ public boolean isTerminated(StepScope stepScope) {
+ Score bestScore = stepScope.getLocalSearchSolverScope().getBestScore();
+ return bestScore.compareTo(feasableScore) >= 0;
+ }
+
+ public double calculateTimeGradient(StepScope stepScope) {
+ LocalSearchSolverScope localSearchSolverScope = stepScope.getLocalSearchSolverScope();
+ Score startingScore = localSearchSolverScope.getStartingScore();
+ Score stepScore = localSearchSolverScope.getLastCompletedStepScope().getScore();
+ return localSearchSolverScope.getScoreDefinition()
+ .calculateTimeGradient(startingScore, feasableScore, stepScore);
+ }
+
+}
Deleted: labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/localsearch/termination/Finish.java
===================================================================
--- labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/localsearch/finish/Finish.java 2009-07-18 12:09:26 UTC (rev 28178)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/localsearch/termination/Finish.java 2009-07-18 12:53:22 UTC (rev 28180)
@@ -1,37 +0,0 @@
-package org.drools.solver.core.localsearch.finish;
-
-import org.drools.solver.core.localsearch.LocalSearchSolverAware;
-import org.drools.solver.core.localsearch.LocalSearchSolverLifecycleListener;
-import org.drools.solver.core.localsearch.StepScope;
-
-/**
- * A Finish determines when the LocalSearchSolver should stop.
- * @author Geoffrey De Smet
- */
-public interface Finish extends LocalSearchSolverAware, LocalSearchSolverLifecycleListener {
-
- /**
- * Called by the LocalSearchSolver after every step to determine if the search should stop.
- * @param stepScope never null
- * @return true if the search should finish.
- */
- boolean isFinished(StepScope stepScope);
-
- /**
- * A timeGradient is a relative estimate of how long the search will continue.
- * </p>
- * Clients that use a timeGradient should cache it at the start of a single step
- * because some implementations are not time-stable.
- * </p>
- * If a timeGradient can not be calulated, it should return -1.0.
- * Several implementations (such a similated annealing) require a correctly implemented timeGradient.
- * <p/>
- * A Finish's timeGradient can be requested after they are finished, so implementations
- * should be carefull not to return a tempature above 1.0.
- * @param stepScope never null
- * @return timeGradient t for which 0.0 <= t <= 1.0 or -1.0 when it is not supported.
- * At the start of a search t is 0.0 and at the end of a search t would be 1.0.
- */
- double calculateTimeGradient(StepScope stepScope);
-
-}
Deleted: labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/localsearch/termination/OrCompositeFinish.java
===================================================================
--- labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/localsearch/finish/OrCompositeFinish.java 2009-07-18 12:09:26 UTC (rev 28178)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/localsearch/termination/OrCompositeFinish.java 2009-07-18 12:53:22 UTC (rev 28180)
@@ -1,44 +0,0 @@
-package org.drools.solver.core.localsearch.finish;
-
-import org.drools.solver.core.localsearch.StepScope;
-
-/**
- * @author Geoffrey De Smet
- */
-public class OrCompositeFinish extends AbstractCompositeFinish {
-
- // ************************************************************************
- // Worker methods
- // ************************************************************************
-
- /**
- * @return true if any of the Finishes is finished.
- * @param stepScope
- */
- public boolean isFinished(StepScope stepScope) {
- for (Finish finish : finishList) {
- if (finish.isFinished(stepScope)) {
- return true;
- }
- }
- return false;
- }
-
- /**
- * Calculates the minimum timeGradient of all finishes.
- * Not supported timeGradients (-1.0) are ignored.
- * @return the maximum timeGradient of the finishes.
- * @param stepScope
- */
- public double calculateTimeGradient(StepScope stepScope) {
- double timeGradient = 0.0;
- for (Finish finish : finishList) {
- double nextTimeGradient = finish.calculateTimeGradient(stepScope);
- if (nextTimeGradient >= 0.0) {
- timeGradient = Math.max(timeGradient, nextTimeGradient);
- }
- }
- return timeGradient;
- }
-
-}
Copied: labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/localsearch/termination/OrCompositeTermination.java (from rev 28178, labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/localsearch/finish/OrCompositeFinish.java)
===================================================================
--- labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/localsearch/termination/OrCompositeTermination.java (rev 0)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/localsearch/termination/OrCompositeTermination.java 2009-07-18 12:53:22 UTC (rev 28180)
@@ -0,0 +1,44 @@
+package org.drools.solver.core.localsearch.termination;
+
+import org.drools.solver.core.localsearch.StepScope;
+
+/**
+ * @author Geoffrey De Smet
+ */
+public class OrCompositeTermination extends AbstractCompositeTermination {
+
+ // ************************************************************************
+ // Worker methods
+ // ************************************************************************
+
+ /**
+ * @return true if any of the Termination is terminated.
+ * @param stepScope
+ */
+ public boolean isTerminated(StepScope stepScope) {
+ for (Termination termination : terminationList) {
+ if (termination.isTerminated(stepScope)) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /**
+ * Calculates the minimum timeGradient of all Terminations.
+ * Not supported timeGradients (-1.0) are ignored.
+ * @return the maximum timeGradient of the Terminations.
+ * @param stepScope
+ */
+ public double calculateTimeGradient(StepScope stepScope) {
+ double timeGradient = 0.0;
+ for (Termination termination : terminationList) {
+ double nextTimeGradient = termination.calculateTimeGradient(stepScope);
+ if (nextTimeGradient >= 0.0) {
+ timeGradient = Math.max(timeGradient, nextTimeGradient);
+ }
+ }
+ return timeGradient;
+ }
+
+}
Deleted: labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/localsearch/termination/StepCountFinish.java
===================================================================
--- labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/localsearch/finish/StepCountFinish.java 2009-07-18 12:09:26 UTC (rev 28178)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/localsearch/termination/StepCountFinish.java 2009-07-18 12:53:22 UTC (rev 28180)
@@ -1,35 +0,0 @@
-package org.drools.solver.core.localsearch.finish;
-
-import org.drools.solver.core.localsearch.StepScope;
-
-/**
- * @author Geoffrey De Smet
- */
-public class StepCountFinish extends AbstractFinish {
-
- private int maximumStepCount = 100;
-
- public void setMaximumStepCount(int maximumStepCount) {
- this.maximumStepCount = maximumStepCount;
- if (maximumStepCount < 0) {
- throw new IllegalArgumentException("Property maximumStepCount (" + maximumStepCount
- + ") must be greater or equal to 0.");
- }
- }
-
- // ************************************************************************
- // Worker methods
- // ************************************************************************
-
- public boolean isFinished(StepScope stepScope) {
- int stepIndex = stepScope.getStepIndex();
- return stepIndex >= maximumStepCount;
- }
-
- public double calculateTimeGradient(StepScope stepScope) {
- int stepIndex = stepScope.getStepIndex();
- double timeGradient = ((double) stepIndex) / ((double) maximumStepCount);
- return Math.min(timeGradient, 1.0);
- }
-
-}
Copied: labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/localsearch/termination/StepCountTermination.java (from rev 28178, labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/localsearch/finish/StepCountFinish.java)
===================================================================
--- labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/localsearch/termination/StepCountTermination.java (rev 0)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/localsearch/termination/StepCountTermination.java 2009-07-18 12:53:22 UTC (rev 28180)
@@ -0,0 +1,35 @@
+package org.drools.solver.core.localsearch.termination;
+
+import org.drools.solver.core.localsearch.StepScope;
+
+/**
+ * @author Geoffrey De Smet
+ */
+public class StepCountTermination extends AbstractTermination {
+
+ private int maximumStepCount = 100;
+
+ public void setMaximumStepCount(int maximumStepCount) {
+ this.maximumStepCount = maximumStepCount;
+ if (maximumStepCount < 0) {
+ throw new IllegalArgumentException("Property maximumStepCount (" + maximumStepCount
+ + ") must be greater or equal to 0.");
+ }
+ }
+
+ // ************************************************************************
+ // Worker methods
+ // ************************************************************************
+
+ public boolean isTerminated(StepScope stepScope) {
+ int stepIndex = stepScope.getStepIndex();
+ return stepIndex >= maximumStepCount;
+ }
+
+ public double calculateTimeGradient(StepScope stepScope) {
+ int stepIndex = stepScope.getStepIndex();
+ double timeGradient = ((double) stepIndex) / ((double) maximumStepCount);
+ return Math.min(timeGradient, 1.0);
+ }
+
+}
Copied: labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/localsearch/termination/Termination.java (from rev 28178, labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/localsearch/finish/Finish.java)
===================================================================
--- labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/localsearch/termination/Termination.java (rev 0)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/localsearch/termination/Termination.java 2009-07-18 12:53:22 UTC (rev 28180)
@@ -0,0 +1,37 @@
+package org.drools.solver.core.localsearch.termination;
+
+import org.drools.solver.core.localsearch.LocalSearchSolverAware;
+import org.drools.solver.core.localsearch.LocalSearchSolverLifecycleListener;
+import org.drools.solver.core.localsearch.StepScope;
+
+/**
+ * A Termination determines when the LocalSearchSolver should stop.
+ * @author Geoffrey De Smet
+ */
+public interface Termination extends LocalSearchSolverAware, LocalSearchSolverLifecycleListener {
+
+ /**
+ * Called by the LocalSearchSolver after every step to determine if the search should stop.
+ * @param stepScope never null
+ * @return true if the search should terminate.
+ */
+ boolean isTerminated(StepScope stepScope);
+
+ /**
+ * A timeGradient is a relative estimate of how long the search will continue.
+ * </p>
+ * Clients that use a timeGradient should cache it at the start of a single step
+ * because some implementations are not time-stable.
+ * </p>
+ * If a timeGradient can not be calulated, it should return -1.0.
+ * Several implementations (such a similated annealing) require a correctly implemented timeGradient.
+ * <p/>
+ * A Termination's timeGradient can be requested after they are terminated, so implementations
+ * should be carefull not to return a tempature above 1.0.
+ * @param stepScope never null
+ * @return timeGradient t for which 0.0 <= t <= 1.0 or -1.0 when it is not supported.
+ * At the start of a search t is 0.0 and at the end of a search t would be 1.0.
+ */
+ double calculateTimeGradient(StepScope stepScope);
+
+}
Deleted: labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/localsearch/termination/TimeMillisSpendFinish.java
===================================================================
--- labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/localsearch/finish/TimeMillisSpendFinish.java 2009-07-18 12:09:26 UTC (rev 28178)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/localsearch/termination/TimeMillisSpendFinish.java 2009-07-18 12:53:22 UTC (rev 28180)
@@ -1,35 +0,0 @@
-package org.drools.solver.core.localsearch.finish;
-
-import org.drools.solver.core.localsearch.StepScope;
-
-/**
- * @author Geoffrey De Smet
- */
-public class TimeMillisSpendFinish extends AbstractFinish {
-
- private long maximumTimeMillisSpend;
-
- public void setMaximumTimeMillisSpend(long maximumTimeMillisSpend) {
- this.maximumTimeMillisSpend = maximumTimeMillisSpend;
- if (maximumTimeMillisSpend <= 0L) {
- throw new IllegalArgumentException("Property maximumTimeMillisSpend (" + maximumTimeMillisSpend
- + ") must be greater than 0.");
- }
- }
-
- // ************************************************************************
- // Worker methods
- // ************************************************************************
-
- public boolean isFinished(StepScope stepScope) {
- long timeMillisSpend = stepScope.getLocalSearchSolverScope().calculateTimeMillisSpend();
- return timeMillisSpend >= maximumTimeMillisSpend;
- }
-
- public double calculateTimeGradient(StepScope stepScope) {
- long timeMillisSpend = stepScope.getLocalSearchSolverScope().calculateTimeMillisSpend();
- double timeGradient = ((double) timeMillisSpend) / ((double) maximumTimeMillisSpend);
- return Math.min(timeGradient, 1.0);
- }
-
-}
Copied: labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/localsearch/termination/TimeMillisSpendTermination.java (from rev 28178, labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/localsearch/finish/TimeMillisSpendFinish.java)
===================================================================
--- labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/localsearch/termination/TimeMillisSpendTermination.java (rev 0)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/localsearch/termination/TimeMillisSpendTermination.java 2009-07-18 12:53:22 UTC (rev 28180)
@@ -0,0 +1,35 @@
+package org.drools.solver.core.localsearch.termination;
+
+import org.drools.solver.core.localsearch.StepScope;
+
+/**
+ * @author Geoffrey De Smet
+ */
+public class TimeMillisSpendTermination extends AbstractTermination {
+
+ private long maximumTimeMillisSpend;
+
+ public void setMaximumTimeMillisSpend(long maximumTimeMillisSpend) {
+ this.maximumTimeMillisSpend = maximumTimeMillisSpend;
+ if (maximumTimeMillisSpend <= 0L) {
+ throw new IllegalArgumentException("Property maximumTimeMillisSpend (" + maximumTimeMillisSpend
+ + ") must be greater than 0.");
+ }
+ }
+
+ // ************************************************************************
+ // Worker methods
+ // ************************************************************************
+
+ public boolean isTerminated(StepScope stepScope) {
+ long timeMillisSpend = stepScope.getLocalSearchSolverScope().calculateTimeMillisSpend();
+ return timeMillisSpend >= maximumTimeMillisSpend;
+ }
+
+ public double calculateTimeGradient(StepScope stepScope) {
+ long timeMillisSpend = stepScope.getLocalSearchSolverScope().calculateTimeMillisSpend();
+ double timeGradient = ((double) timeMillisSpend) / ((double) maximumTimeMillisSpend);
+ return Math.min(timeGradient, 1.0);
+ }
+
+}
Deleted: labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/localsearch/termination/UnimprovedStepCountFinish.java
===================================================================
--- labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/localsearch/finish/UnimprovedStepCountFinish.java 2009-07-18 12:09:26 UTC (rev 28178)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/localsearch/termination/UnimprovedStepCountFinish.java 2009-07-18 12:53:22 UTC (rev 28180)
@@ -1,41 +0,0 @@
-package org.drools.solver.core.localsearch.finish;
-
-import org.drools.solver.core.localsearch.StepScope;
-
-/**
- * @author Geoffrey De Smet
- */
-public class UnimprovedStepCountFinish extends AbstractFinish {
-
- private int maximumUnimprovedStepCount = 100;
-
- public void setMaximumUnimprovedStepCount(int maximumUnimprovedStepCount) {
- this.maximumUnimprovedStepCount = maximumUnimprovedStepCount;
- if (maximumUnimprovedStepCount < 0) {
- throw new IllegalArgumentException("Property maximumUnimprovedStepCount (" + maximumUnimprovedStepCount
- + ") must be greater or equal to 0.");
- }
- }
-
- // ************************************************************************
- // Worker methods
- // ************************************************************************
-
- private int calculateUnimprovedStepCount(StepScope stepScope) {
- int bestStepIndex = stepScope.getLocalSearchSolverScope().getBestSolutionStepIndex();
- int stepIndex = stepScope.getStepIndex();
- return stepIndex - bestStepIndex;
- }
-
- public boolean isFinished(StepScope stepScope) {
- int unimprovedStepCount = calculateUnimprovedStepCount(stepScope);
- return unimprovedStepCount >= maximumUnimprovedStepCount;
- }
-
- public double calculateTimeGradient(StepScope stepScope) {
- int unimprovedStepCount = calculateUnimprovedStepCount(stepScope);
- double timeGradient = ((double) unimprovedStepCount) / ((double) maximumUnimprovedStepCount);
- return Math.min(timeGradient, 1.0);
- }
-
-}
Copied: labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/localsearch/termination/UnimprovedStepCountTermination.java (from rev 28178, labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/localsearch/finish/UnimprovedStepCountFinish.java)
===================================================================
--- labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/localsearch/termination/UnimprovedStepCountTermination.java (rev 0)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/localsearch/termination/UnimprovedStepCountTermination.java 2009-07-18 12:53:22 UTC (rev 28180)
@@ -0,0 +1,41 @@
+package org.drools.solver.core.localsearch.termination;
+
+import org.drools.solver.core.localsearch.StepScope;
+
+/**
+ * @author Geoffrey De Smet
+ */
+public class UnimprovedStepCountTermination extends AbstractTermination {
+
+ private int maximumUnimprovedStepCount = 100;
+
+ public void setMaximumUnimprovedStepCount(int maximumUnimprovedStepCount) {
+ this.maximumUnimprovedStepCount = maximumUnimprovedStepCount;
+ if (maximumUnimprovedStepCount < 0) {
+ throw new IllegalArgumentException("Property maximumUnimprovedStepCount (" + maximumUnimprovedStepCount
+ + ") must be greater or equal to 0.");
+ }
+ }
+
+ // ************************************************************************
+ // Worker methods
+ // ************************************************************************
+
+ private int calculateUnimprovedStepCount(StepScope stepScope) {
+ int bestStepIndex = stepScope.getLocalSearchSolverScope().getBestSolutionStepIndex();
+ int stepIndex = stepScope.getStepIndex();
+ return stepIndex - bestStepIndex;
+ }
+
+ public boolean isTerminated(StepScope stepScope) {
+ int unimprovedStepCount = calculateUnimprovedStepCount(stepScope);
+ return unimprovedStepCount >= maximumUnimprovedStepCount;
+ }
+
+ public double calculateTimeGradient(StepScope stepScope) {
+ int unimprovedStepCount = calculateUnimprovedStepCount(stepScope);
+ double timeGradient = ((double) unimprovedStepCount) / ((double) maximumUnimprovedStepCount);
+ return Math.min(timeGradient, 1.0);
+ }
+
+}
Copied: labs/jbossrules/trunk/drools-solver/drools-solver-core/src/test/java/org/drools/solver/core/localsearch/termination (from rev 28178, labs/jbossrules/trunk/drools-solver/drools-solver-core/src/test/java/org/drools/solver/core/localsearch/finish)
Modified: labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/itc2007/examination/app/ExaminationShellApp.java
===================================================================
--- labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/itc2007/examination/app/ExaminationShellApp.java 2009-07-18 12:50:02 UTC (rev 28179)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/itc2007/examination/app/ExaminationShellApp.java 2009-07-18 12:53:22 UTC (rev 28180)
@@ -53,7 +53,7 @@
private void configureSolver(long maximumSecondsSpend) {
XmlSolverConfigurer configurer = new XmlSolverConfigurer();
configurer.configure(SOLVER_CONFIG);
- configurer.getConfig().getFinishConfig().setMaximumSecondsSpend(maximumSecondsSpend);
+ configurer.getConfig().getTerminationConfig().setMaximumSecondsSpend(maximumSecondsSpend);
solver = configurer.buildSolver();
}
Modified: labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/itc2007/curriculumcourse/benchmark/curriculumCourseShortSolverBenchmarkConfig.xml
===================================================================
--- labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/itc2007/curriculumcourse/benchmark/curriculumCourseShortSolverBenchmarkConfig.xml 2009-07-18 12:50:02 UTC (rev 28179)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/itc2007/curriculumcourse/benchmark/curriculumCourseShortSolverBenchmarkConfig.xml 2009-07-18 12:53:22 UTC (rev 28180)
@@ -10,9 +10,9 @@
<inheritedLocalSearchSolver>
<scoreDrl>/org/drools/solver/examples/itc2007/curriculumcourse/solver/curriculumCourseScoreRules.drl</scoreDrl>
<startingSolutionInitializerClass>org.drools.solver.examples.itc2007.curriculumcourse.solver.solution.initializer.CurriculumCourseStartingSolutionInitializer</startingSolutionInitializerClass>
- <finish>
+ <termination>
<maximumStepCount>500</maximumStepCount>
- </finish>
+ </termination>
</inheritedLocalSearchSolver>
<solverBenchmark>
Modified: labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/itc2007/curriculumcourse/benchmark/curriculumCourseSolverBenchmarkConfig.xml
===================================================================
--- labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/itc2007/curriculumcourse/benchmark/curriculumCourseSolverBenchmarkConfig.xml 2009-07-18 12:50:02 UTC (rev 28179)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/itc2007/curriculumcourse/benchmark/curriculumCourseSolverBenchmarkConfig.xml 2009-07-18 12:53:22 UTC (rev 28180)
@@ -23,14 +23,14 @@
<inheritedLocalSearchSolver>
<scoreDrl>/org/drools/solver/examples/itc2007/curriculumcourse/solver/curriculumCourseScoreRules.drl</scoreDrl>
<startingSolutionInitializerClass>org.drools.solver.examples.itc2007.curriculumcourse.solver.solution.initializer.CurriculumCourseStartingSolutionInitializer</startingSolutionInitializerClass>
- <finish>
+ <termination>
<!--
Official benchmark maximumSecondsSpend allowed on:
ge0ffrey's main pc: 429
ge0ffrey's old pc: 1152
-->
<maximumSecondsSpend>429</maximumSecondsSpend>
- </finish>
+ </termination>
</inheritedLocalSearchSolver>
<solverBenchmark>
Modified: labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/itc2007/curriculumcourse/solver/curriculumCourseScoreRules.drl
===================================================================
--- labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/itc2007/curriculumcourse/solver/curriculumCourseScoreRules.drl 2009-07-18 12:50:02 UTC (rev 28179)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/itc2007/curriculumcourse/solver/curriculumCourseScoreRules.drl 2009-07-18 12:53:22 UTC (rev 28180)
@@ -73,7 +73,7 @@
// Accumulate hard constraints
rule "hardConstraintsBroken"
- salience -1 // Finish the other rules first (optional, for performance)
+ salience -1 // Do the other rules first (optional, for performance)
when
$hardTotal : Number() from accumulate(
IntConstraintOccurrence(constraintType == ConstraintType.NEGATIVE_HARD, $weight : weight),
@@ -177,7 +177,7 @@
// Accumulate soft constraints
rule "softConstraintsBroken"
- salience -1 // Finish the other rules first (optional, for performance)
+ salience -1 // Do the other rules first (optional, for performance)
when
$softTotal : Number() from accumulate(
IntConstraintOccurrence(constraintType == ConstraintType.NEGATIVE_SOFT, $weight : weight),
Modified: labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/itc2007/curriculumcourse/solver/curriculumCourseSolverConfig.xml
===================================================================
--- labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/itc2007/curriculumcourse/solver/curriculumCourseSolverConfig.xml 2009-07-18 12:50:02 UTC (rev 28179)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/itc2007/curriculumcourse/solver/curriculumCourseSolverConfig.xml 2009-07-18 12:53:22 UTC (rev 28180)
@@ -5,7 +5,7 @@
<scoreDefinitionType>HARD_AND_SOFT</scoreDefinitionType>
</scoreDefinition>
<startingSolutionInitializerClass>org.drools.solver.examples.itc2007.curriculumcourse.solver.solution.initializer.CurriculumCourseStartingSolutionInitializer</startingSolutionInitializerClass>
- <finish>
+ <termination>
<!--
Official benchmark maximumSecondsSpend allowed on:
ge0ffrey's main pc: 429
@@ -14,7 +14,7 @@
<maximumSecondsSpend>429</maximumSecondsSpend>
<!--<feasableScore>-0hard/-999999soft</feasableScore>-->
<!--<maximumStepCount>100</maximumStepCount>-->
- </finish>
+ </termination>
<selector>
<selector>
<topSize>10</topSize>
Modified: labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/itc2007/examination/benchmark/examinationShortSolverBenchmarkConfig.xml
===================================================================
--- labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/itc2007/examination/benchmark/examinationShortSolverBenchmarkConfig.xml 2009-07-18 12:50:02 UTC (rev 28179)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/itc2007/examination/benchmark/examinationShortSolverBenchmarkConfig.xml 2009-07-18 12:53:22 UTC (rev 28180)
@@ -9,9 +9,9 @@
<inheritedLocalSearchSolver>
<scoreDrl>/org/drools/solver/examples/itc2007/examination/solver/examinationScoreRules.drl</scoreDrl>
<startingSolutionInitializerClass>org.drools.solver.examples.itc2007.examination.solver.solution.initializer.ExaminationStartingSolutionInitializer</startingSolutionInitializerClass>
- <finish>
+ <termination>
<maximumStepCount>100</maximumStepCount>
- </finish>
+ </termination>
</inheritedLocalSearchSolver>
<solverBenchmark>
Modified: labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/itc2007/examination/benchmark/examinationSolverBenchmarkConfig.xml
===================================================================
--- labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/itc2007/examination/benchmark/examinationSolverBenchmarkConfig.xml 2009-07-18 12:50:02 UTC (rev 28179)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/itc2007/examination/benchmark/examinationSolverBenchmarkConfig.xml 2009-07-18 12:53:22 UTC (rev 28180)
@@ -20,14 +20,14 @@
<scoreDefinitionType>HARD_AND_SOFT</scoreDefinitionType>
</scoreDefinition>
<startingSolutionInitializerClass>org.drools.solver.examples.itc2007.examination.solver.solution.initializer.ExaminationStartingSolutionInitializer</startingSolutionInitializerClass>
- <finish>
+ <termination>
<!--
Official benchmark maximumSecondsSpend allowed on:
ge0ffrey's main pc: 429
ge0ffrey's old pc: 1152
-->
<maximumSecondsSpend>429</maximumSecondsSpend>
- </finish>
+ </termination>
</inheritedLocalSearchSolver>
<solverBenchmark>
Modified: labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/itc2007/examination/solver/examinationScoreRules.drl
===================================================================
--- labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/itc2007/examination/solver/examinationScoreRules.drl 2009-07-18 12:50:02 UTC (rev 28179)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/itc2007/examination/solver/examinationScoreRules.drl 2009-07-18 12:53:22 UTC (rev 28180)
@@ -136,7 +136,7 @@
// Accumulate hard constraints
rule "hardConstraintsBroken"
- salience -1 // Finish the other rules first (optional, for performance)
+ salience -1 // Do the other rules first (optional, for performance)
when
$hardTotal : Number() from accumulate(
IntConstraintOccurrence(constraintType == ConstraintType.NEGATIVE_HARD, $weight : weight),
@@ -256,7 +256,7 @@
// Accumulate soft constraints
rule "softConstraintsBroken"
- salience -1 // Finish the other rules first (optional, for performance)
+ salience -1 // Do the other rules first (optional, for performance)
when
$softTotal : Number() from accumulate(
IntConstraintOccurrence(constraintType == ConstraintType.NEGATIVE_SOFT, $weight : weight),
Modified: labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/itc2007/examination/solver/examinationSolverConfig.xml
===================================================================
--- labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/itc2007/examination/solver/examinationSolverConfig.xml 2009-07-18 12:50:02 UTC (rev 28179)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/itc2007/examination/solver/examinationSolverConfig.xml 2009-07-18 12:53:22 UTC (rev 28180)
@@ -5,7 +5,7 @@
<scoreDefinitionType>HARD_AND_SOFT</scoreDefinitionType>
</scoreDefinition>
<startingSolutionInitializerClass>org.drools.solver.examples.itc2007.examination.solver.solution.initializer.ExaminationStartingSolutionInitializer</startingSolutionInitializerClass>
- <finish>
+ <termination>
<!--
Official benchmark maximumSecondsSpend allowed on:
ge0ffrey's main pc: 429
@@ -14,7 +14,7 @@
<maximumSecondsSpend>429</maximumSecondsSpend>
<!--<feasableScore>-0hard/-999999soft</feasableScore>-->
<!--<maximumStepCount>100</maximumStepCount>-->
- </finish>
+ </termination>
<!--<deciderScoreComparatorFactory>-->
<!--<deciderScoreComparatorFactoryType>SHIFTING_HARD_PENALTY</deciderScoreComparatorFactoryType>-->
<!--<hardScoreActivationThreshold>0</hardScoreActivationThreshold>-->
Modified: labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/lessonschedule/solver/lessonScheduleSolverConfig.xml
===================================================================
--- labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/lessonschedule/solver/lessonScheduleSolverConfig.xml 2009-07-18 12:50:02 UTC (rev 28179)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/lessonschedule/solver/lessonScheduleSolverConfig.xml 2009-07-18 12:53:22 UTC (rev 28180)
@@ -4,9 +4,9 @@
<scoreDefinition>
<scoreDefinitionType>HARD_AND_SOFT</scoreDefinitionType>
</scoreDefinition>
- <finish>
+ <termination>
<maximumUnimprovedStepCount>10</maximumUnimprovedStepCount>
- </finish>
+ </termination>
<selector>
<moveFactoryClass>org.drools.solver.examples.lessonschedule.solver.move.factory.LessonScheduleMoveFactory</moveFactoryClass>
</selector>
Modified: labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/manners2009/solver/manners2009SolverConfig.xml
===================================================================
--- labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/manners2009/solver/manners2009SolverConfig.xml 2009-07-18 12:50:02 UTC (rev 28179)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/manners2009/solver/manners2009SolverConfig.xml 2009-07-18 12:53:22 UTC (rev 28180)
@@ -5,11 +5,11 @@
<scoreDefinitionType>SIMPLE</scoreDefinitionType>
</scoreDefinition>
<startingSolutionInitializerClass>org.drools.solver.examples.manners2009.solver.solution.initializer.Manners2009StartingSolutionInitializer</startingSolutionInitializerClass>
- <finish>
- <!--<finishCompositionStyle>OR</finishCompositionStyle>-->
+ <termination>
+ <!--<terminationCompositionStyle>OR</terminationCompositionStyle>-->
<!--<maximumMinutesSpend>1</maximumMinutesSpend>-->
<feasableScore>0</feasableScore>
- </finish>
+ </termination>
<selector>
<moveFactoryClass>org.drools.solver.examples.manners2009.solver.move.factory.SeatDesignationSwitchMoveFactory</moveFactoryClass>
</selector>
Modified: labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/nqueens/benchmark/nqueensSolverBenchmarkConfig.xml
===================================================================
--- labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/nqueens/benchmark/nqueensSolverBenchmarkConfig.xml 2009-07-18 12:50:02 UTC (rev 28179)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/nqueens/benchmark/nqueensSolverBenchmarkConfig.xml 2009-07-18 12:53:22 UTC (rev 28180)
@@ -9,11 +9,11 @@
<scoreDefinition>
<scoreDefinitionType>SIMPLE</scoreDefinitionType>
</scoreDefinition>
- <finish>
- <finishCompositionStyle>OR</finishCompositionStyle>
+ <termination>
+ <terminationCompositionStyle>OR</terminationCompositionStyle>
<maximumSecondsSpend>10</maximumSecondsSpend>
<feasableScore>0</feasableScore>
- </finish>
+ </termination>
<selector>
<moveFactoryClass>org.drools.solver.examples.nqueens.solver.move.factory.NQueensMoveFactory</moveFactoryClass>
</selector>
Modified: labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/nqueens/solver/nqueensSolverConfig.xml
===================================================================
--- labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/nqueens/solver/nqueensSolverConfig.xml 2009-07-18 12:50:02 UTC (rev 28179)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/nqueens/solver/nqueensSolverConfig.xml 2009-07-18 12:53:22 UTC (rev 28180)
@@ -4,11 +4,11 @@
<scoreDefinition>
<scoreDefinitionType>SIMPLE</scoreDefinitionType>
</scoreDefinition>
- <finish>
- <finishCompositionStyle>OR</finishCompositionStyle>
+ <termination>
+ <terminationCompositionStyle>OR</terminationCompositionStyle>
<maximumStepCount>100</maximumStepCount>
<feasableScore>0</feasableScore>
- </finish>
+ </termination>
<selector>
<moveFactoryClass>org.drools.solver.examples.nqueens.solver.move.factory.NQueensMoveFactory</moveFactoryClass>
</selector>
Modified: labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/pas/benchmark/patientAdmissionScheduleSolverBenchmarkConfig.xml
===================================================================
--- labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/pas/benchmark/patientAdmissionScheduleSolverBenchmarkConfig.xml 2009-07-18 12:50:02 UTC (rev 28179)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/pas/benchmark/patientAdmissionScheduleSolverBenchmarkConfig.xml 2009-07-18 12:53:22 UTC (rev 28180)
@@ -37,13 +37,13 @@
<scoreDefinitionType>HARD_AND_SOFT</scoreDefinitionType>
</scoreDefinition>
<startingSolutionInitializerClass>org.drools.solver.examples.pas.solver.solution.initializer.PatientAdmissionScheduleStartingSolutionInitializer</startingSolutionInitializerClass>
- <finish>
+ <termination>
<!--
On Geoffrey De Smet's PC: 372 (short run), 3720 (long run).
On Peter Demeester's PC: 300 (short run), 3000 (long run).
-->
<maximumSecondsSpend>3720</maximumSecondsSpend>
- </finish>
+ </termination>
</inheritedLocalSearchSolver>
<solverBenchmark>
Modified: labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/pas/solver/patientAdmissionScheduleBaseScoreRules.drl
===================================================================
--- labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/pas/solver/patientAdmissionScheduleBaseScoreRules.drl 2009-07-18 12:50:02 UTC (rev 28179)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/pas/solver/patientAdmissionScheduleBaseScoreRules.drl 2009-07-18 12:53:22 UTC (rev 28180)
@@ -66,7 +66,7 @@
// Accumulate hard constraints
rule "hardConstraintsBroken"
- salience -1 // Finish the other rules first (optional, for performance)
+ salience -1 // Do the other rules first (optional, for performance)
when
$hardTotal : Number() from accumulate(
IntConstraintOccurrence(constraintType == ConstraintType.NEGATIVE_HARD, $weight : weight),
@@ -143,7 +143,7 @@
// Accumulate soft constraints
rule "softConstraintsBroken"
- salience -1 // Finish the other rules first (optional, for performance)
+ salience -1 // Do the other rules first (optional, for performance)
when
$softTotal : Number() from accumulate(
IntConstraintOccurrence(constraintType == ConstraintType.NEGATIVE_SOFT, $weight : weight),
Modified: labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/pas/solver/patientAdmissionScheduleSolverConfig.xml
===================================================================
--- labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/pas/solver/patientAdmissionScheduleSolverConfig.xml 2009-07-18 12:50:02 UTC (rev 28179)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/pas/solver/patientAdmissionScheduleSolverConfig.xml 2009-07-18 12:53:22 UTC (rev 28180)
@@ -5,13 +5,13 @@
<scoreDefinitionType>HARD_AND_SOFT</scoreDefinitionType>
</scoreDefinition>
<startingSolutionInitializerClass>org.drools.solver.examples.pas.solver.solution.initializer.PatientAdmissionScheduleStartingSolutionInitializer</startingSolutionInitializerClass>
- <finish>
+ <termination>
<!--
On Geoffrey De Smet's PC: 372 (short run), 3720 (long run).
On Peter Demeester's PC: 300 (short run), 3000 (long run).
-->
<maximumSecondsSpend>3720</maximumSecondsSpend>
- </finish>
+ </termination>
<selector>
<!--<selector>-->
<!--<moveFactoryClass>org.drools.solver.examples.pas.solver.move.factory.BedChangeMoveFactory</moveFactoryClass>-->
Modified: 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 2009-07-18 12:50:02 UTC (rev 28179)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/travelingtournament/benchmark/smart/breakNl14SolverBenchmarkConfig.xml 2009-07-18 12:53:22 UTC (rev 28180)
@@ -23,11 +23,11 @@
<solverBenchmark>
<localSearchSolver>
- <finish>
- <finishCompositionStyle>AND</finishCompositionStyle>
+ <termination>
+ <terminationCompositionStyle>AND</terminationCompositionStyle>
<feasableScore>-0hard/-188727soft</feasableScore><!-- 188728 (Van Hentenryck and Vergados, May 18 2006) -->
<maximumUnimprovedStepCount>20</maximumUnimprovedStepCount>
- </finish>
+ </termination>
</localSearchSolver>
</solverBenchmark>
</solverBenchmarkSuite>
Modified: labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/travelingtournament/benchmark/smart/smartTravelingTournamentSolverBenchmarkConfig.xml
===================================================================
--- labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/travelingtournament/benchmark/smart/smartTravelingTournamentSolverBenchmarkConfig.xml 2009-07-18 12:50:02 UTC (rev 28179)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/travelingtournament/benchmark/smart/smartTravelingTournamentSolverBenchmarkConfig.xml 2009-07-18 12:53:22 UTC (rev 28180)
@@ -10,10 +10,10 @@
<scoreDefinition>
<scoreDefinitionType>HARD_AND_SOFT</scoreDefinitionType>
</scoreDefinition>
- <finish>
+ <termination>
<!--<maximumHouresSpend>2</maximumHouresSpend>-->
<maximumMinutesSpend>10</maximumMinutesSpend>
- </finish>
+ </termination>
<selector>
<moveFactoryClass>org.drools.solver.examples.travelingtournament.solver.smart.move.factory.SmartTravelingTournamentMoveFactory</moveFactoryClass>
</selector>
@@ -49,9 +49,9 @@
<!--<solverBenchmark>-->
<!--<localSearchSolver>-->
<!-- Warmup JIT -->
- <!--<finish>-->
+ <!--<termination>-->
<!--<maximumMinutesSpend>2</maximumMinutesSpend>-->
- <!--</finish>-->
+ <!--</termination>-->
<!--<accepter>-->
<!--<completeSolutionTabuSize>10</completeSolutionTabuSize>-->
<!--<completeMoveTabuSize>10</completeMoveTabuSize>-->
Modified: labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/travelingtournament/solver/simple/simpleTravelingTournamentScoreRules.drl
===================================================================
--- labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/travelingtournament/solver/simple/simpleTravelingTournamentScoreRules.drl 2009-07-18 12:50:02 UTC (rev 28179)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/travelingtournament/solver/simple/simpleTravelingTournamentScoreRules.drl 2009-07-18 12:53:22 UTC (rev 28180)
@@ -59,7 +59,7 @@
end
rule "hardConstraintsBroken"
- salience -1 // Finish the other rules first (optional, for performance)
+ salience -1 // Do the other rules first (optional, for performance)
when
$occurrenceCount : Number() from accumulate(
$unweightedConstraintOccurrence : UnweightedConstraintOccurrence(),
@@ -110,7 +110,7 @@
end
rule "softConstraintsBroken"
- salience -1 // Finish the other rules first (optional, for performance)
+ salience -1 // Do the other rules first (optional, for performance)
when
$totalDistance : Double() from accumulate(
Hop($distance : distance),
Modified: labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/travelingtournament/solver/simple/simpleTravelingTournamentSolverConfig.xml
===================================================================
--- labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/travelingtournament/solver/simple/simpleTravelingTournamentSolverConfig.xml 2009-07-18 12:50:02 UTC (rev 28179)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/travelingtournament/solver/simple/simpleTravelingTournamentSolverConfig.xml 2009-07-18 12:53:22 UTC (rev 28180)
@@ -4,9 +4,9 @@
<scoreDefinition>
<scoreDefinitionType>HARD_AND_SOFT</scoreDefinitionType>
</scoreDefinition>
- <finish>
+ <termination>
<maximumHouresSpend>2</maximumHouresSpend>
- </finish>
+ </termination>
<selector>
<moveFactoryClass>org.drools.solver.examples.travelingtournament.solver.simple.move.factory.SimpleTravelingTournamentMoveFactory</moveFactoryClass>
</selector>
Modified: labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/travelingtournament/solver/smart/smartTravelingTournamentScoreRules.drl
===================================================================
--- labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/travelingtournament/solver/smart/smartTravelingTournamentScoreRules.drl 2009-07-18 12:50:02 UTC (rev 28179)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/travelingtournament/solver/smart/smartTravelingTournamentScoreRules.drl 2009-07-18 12:53:22 UTC (rev 28180)
@@ -50,7 +50,7 @@
end
rule "hardConstraintsBroken"
- salience -1 // Finish the other rules first (optional, for performance)
+ salience -1 // Do the other rules first (optional, for performance)
when
$occurrenceCount : Number() from accumulate(
$unweightedConstraintOccurrence : UnweightedConstraintOccurrence(),
@@ -101,7 +101,7 @@
end
rule "softConstraintsBroken"
- salience -1 // Finish the other rules first (optional, for performance)
+ salience -1 // Do the other rules first (optional, for performance)
when
$totalDistance : Double() from accumulate(
Hop($distance : distance),
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 2009-07-18 12:50:02 UTC (rev 28179)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/resources/org/drools/solver/examples/travelingtournament/solver/smart/smartTravelingTournamentSolverConfig.xml 2009-07-18 12:53:22 UTC (rev 28180)
@@ -4,9 +4,9 @@
<scoreDefinition>
<scoreDefinitionType>HARD_AND_SOFT</scoreDefinitionType>
</scoreDefinition>
- <finish>
+ <termination>
<feasableScore>0hard/0soft</feasableScore>
- </finish>
+ </termination>
<deciderScoreComparatorFactory>
<deciderScoreComparatorFactoryType>SHIFTING_HARD_PENALTY</deciderScoreComparatorFactoryType>
<hardScoreActivationThreshold>0</hardScoreActivationThreshold>
Modified: labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/test/resources/org/drools/solver/examples/nqueens/solver/nqueensSmokeSolverConfig.xml
===================================================================
--- labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/test/resources/org/drools/solver/examples/nqueens/solver/nqueensSmokeSolverConfig.xml 2009-07-18 12:50:02 UTC (rev 28179)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/test/resources/org/drools/solver/examples/nqueens/solver/nqueensSmokeSolverConfig.xml 2009-07-18 12:53:22 UTC (rev 28180)
@@ -4,11 +4,11 @@
<scoreDefinition>
<scoreDefinitionType>SIMPLE</scoreDefinitionType>
</scoreDefinition>
- <finish>
- <finishCompositionStyle>OR</finishCompositionStyle>
+ <termination>
+ <terminationCompositionStyle>OR</terminationCompositionStyle>
<maximumStepCount>5</maximumStepCount>
<feasableScore>0</feasableScore>
- </finish>
+ </termination>
<selector>
<moveFactoryClass>org.drools.solver.examples.nqueens.solver.move.factory.NQueensMoveFactory</moveFactoryClass>
</selector>
Modified: labs/jbossrules/trunk/drools-solver/src/main/assembly/docs/UpgradeFromPreviousVersionRecipe.txt
===================================================================
--- labs/jbossrules/trunk/drools-solver/src/main/assembly/docs/UpgradeFromPreviousVersionRecipe.txt 2009-07-18 12:50:02 UTC (rev 28179)
+++ labs/jbossrules/trunk/drools-solver/src/main/assembly/docs/UpgradeFromPreviousVersionRecipe.txt 2009-07-18 12:53:22 UTC (rev 28180)
@@ -12,7 +12,8 @@
From 5.0.0 to 5.0.1
-------------------
-A score is no longer a double, now it's a Score instance.
+A score is no longer a double, now it's a Score instance,
+because a SimpleScore is now just an int and a HardAndSoftScore is now 2 seperated ints.
In the Solver interface, the return type of the getBestScore() method changed:
@@ -84,4 +85,37 @@
solver.cancel();
After:
solver.terminateEarly();
+
Likewise, Solver.isCancelled() has been renamed to Solver.isTerminatedEarly().
+Before:
+ solver.isCancelled();
+After:
+ solver.isTerminatedEarly();
+
+
+The Finish interface has been renamed to Termination
+because Termination seems the defacto standard name for it in the literature.
+Before:
+ ... extends Finish
+After:
+ ... extends Termination
+Before in solver config xml's and benchmarker config xml's :
+ <finish>
+ ...
+ </finish>
+After:
+ <termination>
+ ...
+ </termination>
+
+Likewise FinishCompositionStyle has been renamed to TerminationCompositionStyle.
+Before in solver config xml's and benchmarker config xml's :
+ <finishCompositionStyle>...</finishCompositionStyle>
+After:
+ <terminationCompositionStyle>...</terminationCompositionStyle>
+
+The Finish.isFinished(...) has been renamed to Termination.isTerminated().
+Before:
+ .isFinished(...)
+After:
+ .isTerminated(...)
More information about the jboss-svn-commits
mailing list