Author: psteitz
Date: Sun Nov 22 19:50:54 2009
New Revision: 883132

URL: http://svn.apache.org/viewvc?rev=883132&view=rev
Log:
Added generationsEvolved property to GeneticAlgorithm to track the number
of generations evolved by the evolve() method before reaching the 
StoppingCondition.
JIRA: MATH-315
Reported and patched by Mikkel Meyer Andersen

Modified:
    commons/proper/math/trunk/pom.xml
    
commons/proper/math/trunk/src/main/java/org/apache/commons/math/genetics/GeneticAlgorithm.java
    commons/proper/math/trunk/src/site/xdoc/changes.xml

Modified: commons/proper/math/trunk/pom.xml
URL: 
http://svn.apache.org/viewvc/commons/proper/math/trunk/pom.xml?rev=883132&r1=883131&r2=883132&view=diff
==============================================================================
--- commons/proper/math/trunk/pom.xml (original)
+++ commons/proper/math/trunk/pom.xml Sun Nov 22 19:50:54 2009
@@ -103,6 +103,9 @@
       <name>C. Scott Ananian</name>
     </contributor>
     <contributor>
+      <name>Mikkel Meyer Andersen</name>
+    </contributor>
+    <contributor>
       <name>Mark Anderson</name>
     </contributor>
     <contributor>

Modified: 
commons/proper/math/trunk/src/main/java/org/apache/commons/math/genetics/GeneticAlgorithm.java
URL: 
http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/genetics/GeneticAlgorithm.java?rev=883132&r1=883131&r2=883132&view=diff
==============================================================================
--- 
commons/proper/math/trunk/src/main/java/org/apache/commons/math/genetics/GeneticAlgorithm.java
 (original)
+++ 
commons/proper/math/trunk/src/main/java/org/apache/commons/math/genetics/GeneticAlgorithm.java
 Sun Nov 22 19:50:54 2009
@@ -34,7 +34,6 @@
      * Use {...@link #setRandomGenerator(RandomGenerator)} to supply an 
alternative
      * to the default JDK-provided PRNG.
      */
-    //@GuardedBy("this")
     private static RandomGenerator randomGenerator = new JDKRandomGenerator();
 
     /** the crossover policy used by the algorithm. */
@@ -52,6 +51,9 @@
     /** the selection policy used by the algorithm. */
     private final SelectionPolicy selectionPolicy;
 
+    /** the number of generations evolved to reach {...@link 
StoppingCondition} in the last run. */
+    private int generationsEvolved = 0;
+
     /**
      * @param crossoverPolicy The {...@link CrossoverPolicy}
      * @param crossoverRate The crossover rate as a percentage (0-1 inclusive)
@@ -96,6 +98,8 @@
 
     /**
      * Evolve the given population. Evolution stops when the stopping condition
+     * is satisfied. Updates the {...@link #getGenerationsEvolved() 
generationsEvolved}
+     * property with the number of generations evolved before the 
StoppingCondition
      * is satisfied.
      *
      * @param initial the initial, seed population.
@@ -104,8 +108,10 @@
      */
     public Population evolve(Population initial, StoppingCondition condition) {
         Population current = initial;
+        generationsEvolved = 0;
         while (!condition.isSatisfied(current)) {
             current = nextGeneration(current);
+            generationsEvolved++;
         }
         return current;
     }
@@ -207,4 +213,14 @@
         return selectionPolicy;
     }
 
+    /**
+     * Returns the number of generations evolved to 
+     * reach {...@link StoppingCondition} in the last run.
+     * 
+     * @return number of generations evolved
+     */
+    public int getGenerationsEvolved() {
+        return generationsEvolved;
+    }
+
 }

Modified: commons/proper/math/trunk/src/site/xdoc/changes.xml
URL: 
http://svn.apache.org/viewvc/commons/proper/math/trunk/src/site/xdoc/changes.xml?rev=883132&r1=883131&r2=883132&view=diff
==============================================================================
--- commons/proper/math/trunk/src/site/xdoc/changes.xml (original)
+++ commons/proper/math/trunk/src/site/xdoc/changes.xml Sun Nov 22 19:50:54 2009
@@ -39,6 +39,10 @@
   </properties>
   <body>
     <release version="2.1" date="TBD" description="TBD">
+      <action dev="psteitz" type="update" issue="MATH-315" due-to="Mikkel 
Meyer Andersen">
+        Added generationsEvolved property to GeneticAlgorithm to track the 
number of generations
+        evolved by the evolve() method before reaching the StoppingCondition.
+      </action>
       <action dev="luc" type="fix" issue="MATH-318" due-to="Dimitri Pourbaix">
         Fixed an index computation error in eigen decomposition. Once again, 
kudos to Dimitri
         for debugging this.


Reply via email to