From d170727f8ec07b9891aa64a3cb22601dc08ccfa1 Mon Sep 17 00:00:00 2001 From: Fabian Becker Date: Mon, 27 Oct 2014 20:36:23 +0100 Subject: [PATCH] Small bugfix for setting the problemDimension. refs #26 --- .../statistics/EvAStatisticalEvaluation.java | 12 +++++++++--- src/eva2/problems/AbstractProblemDoubleOffset.java | 1 - src/eva2/problems/TF1Problem.java | 3 --- 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/src/eva2/optimization/statistics/EvAStatisticalEvaluation.java b/src/eva2/optimization/statistics/EvAStatisticalEvaluation.java index 4d2b0aa2..5e6d9fbb 100644 --- a/src/eva2/optimization/statistics/EvAStatisticalEvaluation.java +++ b/src/eva2/optimization/statistics/EvAStatisticalEvaluation.java @@ -6,6 +6,8 @@ import eva2.optimization.enums.StatisticsOnTwoSampledData; import eva2.tools.ReflectPackage; import eva2.tools.StringTools; import eva2.tools.math.Mathematics; +import org.apache.commons.math3.stat.ranking.NaNStrategy; +import org.apache.commons.math3.stat.ranking.TiesStrategy; import java.text.DecimalFormat; import java.util.*; @@ -255,15 +257,19 @@ public class EvAStatisticalEvaluation { private static String calculateMannWhitney(String field, OptimizationJob job1, OptimizationJob job2) { double[] dat1 = job1.getDoubleDataColumn(field); double[] dat2 = job2.getDoubleDataColumn(field); + org.apache.commons.math3.stat.inference.MannWhitneyUTest mU = new org.apache.commons.math3.stat.inference.MannWhitneyUTest(NaNStrategy.FAILED, TiesStrategy.AVERAGE); double t = Double.NaN; if (dat1 != null && dat2 != null) { + + return "" + mU.mannWhitneyUTest(dat1, dat2); + /* Object obj = ReflectPackage.instantiateWithParams("jsc.independentsamples.MannWhitneyTest", new Object[]{dat1, dat2}, null); if (obj != null) { Object sp = BeanInspector.callIfAvailable(obj, "getSP", new Object[]{}); t = (Double) sp; } else { LOGGER.warning("For the MannWhitney test, the JSC package is required on the class path!"); - } + }*/ } return "" + t; } @@ -308,9 +314,9 @@ public class EvAStatisticalEvaluation { assert(uA + uB == n1 * n2); double u = Math.min(uA, uB); double mU = (n1 * n2) / 2; - double omegaU = Math.sqrt((n1*n2*(n1 + n2 + 1.0))/12.0); + double sigmaU = Math.sqrt((n1*n2*(n1 + n2 + 1.0))/12.0); - t = (u - mU) / omegaU; + t = (u - mU) / sigmaU; } return "" + t; } diff --git a/src/eva2/problems/AbstractProblemDoubleOffset.java b/src/eva2/problems/AbstractProblemDoubleOffset.java index cb56e426..67613a15 100644 --- a/src/eva2/problems/AbstractProblemDoubleOffset.java +++ b/src/eva2/problems/AbstractProblemDoubleOffset.java @@ -5,7 +5,6 @@ package eva2.problems; */ public abstract class AbstractProblemDoubleOffset extends AbstractProblemDouble implements Interface2DBorderProblem { - protected int problemDimension = 10; protected double xOffset = 0.0; // TODO make them private, implement evaluate() and create abstract evalWithoutOffsets protected double yOffset = 0.0; diff --git a/src/eva2/problems/TF1Problem.java b/src/eva2/problems/TF1Problem.java index d02e488d..bfa100cd 100644 --- a/src/eva2/problems/TF1Problem.java +++ b/src/eva2/problems/TF1Problem.java @@ -20,15 +20,12 @@ import java.util.ArrayList; */ @Description("T1 is to be minimized.") public class TF1Problem extends AbstractMultiObjectiveOptimizationProblem implements java.io.Serializable { - protected int problemDimension = 30; protected int outputDimension = 2; protected double noise = 0.0; protected double xOffset = 0.0; protected double yOffset = 0.0; protected boolean applyConstraints = false; -// transient private GraphPointSet mySet; - public TF1Problem() { super(1.); }