Author: sebb
Date: Sun Mar  6 13:24:43 2011
New Revision: 1078466

URL: http://svn.apache.org/viewvc?rev=1078466&view=rev
Log:
Alternate solution: remove shadowing by removing copies (since class is not 
static)

Modified:
    
commons/proper/math/trunk/src/main/java/org/apache/commons/math/optimization/direct/CMAESOptimizer.java

Modified: 
commons/proper/math/trunk/src/main/java/org/apache/commons/math/optimization/direct/CMAESOptimizer.java
URL: 
http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/optimization/direct/CMAESOptimizer.java?rev=1078466&r1=1078465&r2=1078466&view=diff
==============================================================================
--- 
commons/proper/math/trunk/src/main/java/org/apache/commons/math/optimization/direct/CMAESOptimizer.java
 (original)
+++ 
commons/proper/math/trunk/src/main/java/org/apache/commons/math/optimization/direct/CMAESOptimizer.java
 Sun Mar  6 13:24:43 2011
@@ -340,8 +340,7 @@ public class CMAESOptimizer extends
         checkParameters();
          // -------------------- Initialization 
--------------------------------
         isMinimize = getGoalType().equals(GoalType.MINIMIZE);
-        final FitnessFunction fitfun = new FitnessFunction(boundaries,
-                isMinimize);
+        final FitnessFunction fitfun = new FitnessFunction();
         final double[] guess = fitfun.encode(getStartPoint());
         // number of objective variables/problem dimension
         dimension = guess.length;
@@ -826,8 +825,6 @@ public class CMAESOptimizer extends
      */
     private class FitnessFunction {
 
-        /** Optional bounds for the objective variables */
-        private final double[][] _boundaries;
         /** Determines the penalty for boundary violations */
         private double valueRange = 1.0;
         /**
@@ -835,20 +832,6 @@ public class CMAESOptimizer extends
          * bounds if defined
          */
         private boolean isRepairMode = true;
-        /** Flag indicating the optimization goal. */
-        private final boolean _isMinimize;
-
-        /**
-         * @param boundaries
-         *            Bounds for the objective variables.
-         * @param isMinimize
-         *            Flag indicating the optimization goal.
-         */
-        private FitnessFunction(final double[][] boundaries,
-                final boolean isMinimize) {
-            this._boundaries = boundaries;
-            this._isMinimize = isMinimize;
-        }
 
         /**
          * @param x
@@ -856,12 +839,12 @@ public class CMAESOptimizer extends
          * @return Normalized objective variables.
          */
         private double[] encode(final double[] x) {
-            if (_boundaries == null)
+            if (boundaries == null)
                 return x;
             double[] res = new double[x.length];
             for (int i = 0; i < x.length; i++) {
-                double diff = _boundaries[1][i] - _boundaries[0][i];
-                res[i] = (x[i] - _boundaries[0][i]) / diff;
+                double diff = boundaries[1][i] - boundaries[0][i];
+                res[i] = (x[i] - boundaries[0][i]) / diff;
             }
             return res;
         }
@@ -872,12 +855,12 @@ public class CMAESOptimizer extends
          * @return Original objective variables.
          */
         private double[] decode(final double[] x) {
-            if (_boundaries == null)
+            if (boundaries == null)
                 return x;
             double[] res = new double[x.length];
             for (int i = 0; i < x.length; i++) {
-                double diff = _boundaries[1][i] - _boundaries[0][i];
-                res[i] = diff * x[i] + _boundaries[0][i];
+                double diff = boundaries[1][i] - boundaries[0][i];
+                res[i] = diff * x[i] + boundaries[0][i];
             }
             return res;
         }
@@ -889,7 +872,7 @@ public class CMAESOptimizer extends
          */
         private double value(final double[] point) {
             double value;
-            if (_boundaries != null && isRepairMode) {
+            if (boundaries != null && isRepairMode) {
                 double[] repaired = repair(point);
                 value = CMAESOptimizer.this
                         .computeObjectiveValue(decode(repaired)) +
@@ -897,7 +880,7 @@ public class CMAESOptimizer extends
             } else
                 value = CMAESOptimizer.this
                         .computeObjectiveValue(decode(point));
-            return _isMinimize ? value : -value;
+            return isMinimize ? value : -value;
         }
 
         /**
@@ -906,7 +889,7 @@ public class CMAESOptimizer extends
          * @return True if in bounds
          */
         private boolean isFeasible(final double[] x) {
-            if (_boundaries == null)
+            if (boundaries == null)
                 return true;
             for (int i = 0; i < x.length; i++) {
                 if (x[i] < 0)
@@ -956,7 +939,7 @@ public class CMAESOptimizer extends
                 double diff = Math.abs(x[i] - repaired[i]);
                 penalty += diff * valueRange;
             }
-            return _isMinimize ? penalty : -penalty;
+            return isMinimize ? penalty : -penalty;
         }
     }
 


Reply via email to