From 4ba48274e7f819cd754c736a88e03c2cbe4ca1a9 Mon Sep 17 00:00:00 2001 From: Marcel Kronfeld Date: Fri, 17 Jul 2009 13:28:24 +0000 Subject: [PATCH] Minor fix in GPFunctionProblem. --- .../server/go/problems/GPFunctionProblem.java | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/eva2/server/go/problems/GPFunctionProblem.java b/src/eva2/server/go/problems/GPFunctionProblem.java index 54bedd2c..22691ccf 100644 --- a/src/eva2/server/go/problems/GPFunctionProblem.java +++ b/src/eva2/server/go/problems/GPFunctionProblem.java @@ -83,7 +83,10 @@ public class GPFunctionProblem extends AbstractProblemDouble implements Interfac @Override public double[] eval(double[] x) { - if (x.length != dim) EVAERROR.errorMsgOnce("mismatching dimension of GPFunctionProblem!"); + if (x.length != dim) { + EVAERROR.errorMsgOnce("mismatching dimension of GPFunctionProblem! Setting to " + x.length); + setProblemDimension(x.length); + } pos = x; Double res = (Double) gpProblem.evaluate(this); double[] fit = new double[1]; @@ -91,6 +94,16 @@ public class GPFunctionProblem extends AbstractProblemDouble implements Interfac return fit; } + /** + * Set the problem dimension. Make sure that the associated GP tree is still valid + * and does not explicitely use more dimensions than defined here, for instance. + * @param newDim + */ + public void setProblemDimension(int newDim) { + dim = newDim; + ((ESIndividualDoubleData)m_Template).setDoubleDataLength(dim); + } + /** * Scale the allover fitness value. *