[jboss-svn-commits] JBL Code SVN: r18607 - in labs/jbossrules/trunk/drools-solver: drools-solver-core/src/main/java/org/drools/solver/core/solution/initializer and 1 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Wed Feb 27 15:01:45 EST 2008


Author: ge0ffrey
Date: 2008-02-27 15:01:45 -0500 (Wed, 27 Feb 2008)
New Revision: 18607

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/solution/initializer/AbstractStartingSolutionInitializer.java
   labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/solution/initializer/StartingSolutionInitializer.java
   labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/itc2007/examination/solver/solution/initializer/ExaminationStartingSolutionInitializer.java
Log:
isSolutionInitialized() method added to starting solution initializer

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	2008-02-27 19:06:17 UTC (rev 18606)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/localsearch/DefaultLocalSearchSolver.java	2008-02-27 20:01:45 UTC (rev 18607)
@@ -147,8 +147,13 @@
         logger.info("Solving with random seed ({}).", randomSeed);
         random = new Random(randomSeed);
         if (startingSolutionInitializer != null) {
-            logger.info("Initializing solution if needed.");
-            startingSolutionInitializer.intializeSolution();
+            Solution solution = evaluationHandler.getSolution();
+            if (!startingSolutionInitializer.isSolutionInitialized(solution)) {
+                logger.info("Initializing solution.");
+                startingSolutionInitializer.initializeSolution(solution);
+            } else {
+                logger.debug("Solution is already initialized.");
+            }
         }
         stepIndex = 0;
         stepScore = evaluationHandler.fireAllRulesAndCalculateStepScore();

Modified: labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/solution/initializer/AbstractStartingSolutionInitializer.java
===================================================================
--- labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/solution/initializer/AbstractStartingSolutionInitializer.java	2008-02-27 19:06:17 UTC (rev 18606)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/solution/initializer/AbstractStartingSolutionInitializer.java	2008-02-27 20:01:45 UTC (rev 18607)
@@ -1,6 +1,7 @@
 package org.drools.solver.core.solution.initializer;
 
 import org.drools.solver.core.Solver;
+import org.drools.solver.core.solution.Solution;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -21,4 +22,8 @@
     // Worker methods
     // ************************************************************************
 
+    public boolean isSolutionInitialized(Solution solution) {
+        return false;
+    }
+
 }
\ No newline at end of file

Modified: labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/solution/initializer/StartingSolutionInitializer.java
===================================================================
--- labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/solution/initializer/StartingSolutionInitializer.java	2008-02-27 19:06:17 UTC (rev 18606)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-core/src/main/java/org/drools/solver/core/solution/initializer/StartingSolutionInitializer.java	2008-02-27 20:01:45 UTC (rev 18607)
@@ -1,12 +1,15 @@
 package org.drools.solver.core.solution.initializer;
 
 import org.drools.solver.core.SolverAware;
+import org.drools.solver.core.solution.Solution;
 
 /**
  * @author Geoffrey De Smet
  */
 public interface StartingSolutionInitializer extends SolverAware {
 
-    void intializeSolution();
+    boolean isSolutionInitialized(Solution solution);
 
+    void initializeSolution(Solution solution);
+
 }
\ No newline at end of file

Modified: labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/itc2007/examination/solver/solution/initializer/ExaminationStartingSolutionInitializer.java
===================================================================
--- labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/itc2007/examination/solver/solution/initializer/ExaminationStartingSolutionInitializer.java	2008-02-27 19:06:17 UTC (rev 18606)
+++ labs/jbossrules/trunk/drools-solver/drools-solver-examples/src/main/java/org/drools/solver/examples/itc2007/examination/solver/solution/initializer/ExaminationStartingSolutionInitializer.java	2008-02-27 20:01:45 UTC (rev 18607)
@@ -12,6 +12,7 @@
 import org.drools.FactHandle;
 import org.drools.WorkingMemory;
 import org.drools.solver.core.evaluation.EvaluationHandler;
+import org.drools.solver.core.solution.Solution;
 import org.drools.solver.core.solution.initializer.AbstractStartingSolutionInitializer;
 import org.drools.solver.examples.common.domain.PersistableIdComparator;
 import org.drools.solver.examples.itc2007.examination.domain.Exam;
@@ -29,13 +30,17 @@
  */
 public class ExaminationStartingSolutionInitializer extends AbstractStartingSolutionInitializer {
 
-    public void intializeSolution() {
-        Examination examination = (Examination) solver.getEvaluationHandler().getSolution();
-        if (!examination.isInitialized()) {
-            initializeExamList(examination);
-        }
+    @Override
+    public boolean isSolutionInitialized(Solution solution) {
+        Examination examination = (Examination) solution;
+        return examination.isInitialized();
     }
 
+    public void initializeSolution(Solution solution) {
+        Examination examination = (Examination) solution;
+        initializeExamList(examination);
+    }
+
     private void initializeExamList(Examination examination) {
         EvaluationHandler evaluationHandler = solver.getEvaluationHandler();
         List<Period> periodList = examination.getPeriodList();




More information about the jboss-svn-commits mailing list