From 8d386689afbaf8f2021c729e8d45707dce4e46fe Mon Sep 17 00:00:00 2001 From: Marcel Kronfeld Date: Wed, 4 May 2011 11:19:29 +0000 Subject: [PATCH] Minor problem updates --- src/eva2/server/go/problems/F20Problem.java | 2 +- src/eva2/server/go/problems/F21Problem.java | 106 ++++++++++++++++++++ 2 files changed, 107 insertions(+), 1 deletion(-) create mode 100644 src/eva2/server/go/problems/F21Problem.java diff --git a/src/eva2/server/go/problems/F20Problem.java b/src/eva2/server/go/problems/F20Problem.java index 2dcb315e..0d7d627a 100644 --- a/src/eva2/server/go/problems/F20Problem.java +++ b/src/eva2/server/go/problems/F20Problem.java @@ -99,7 +99,7 @@ public class F20Problem extends AbstractProblemDouble implements Serializable, I public SolutionHistogram getHistogram() { if (getProblemDimension()==10) { - if (getYOffset()==0) return new SolutionHistogram(-5000, -3400, 16); + if (getYOffset()==0) return new SolutionHistogram(-5200, -3600, 16); else return new SolutionHistogram(0, 1600, 16); } if (getProblemDimension()==30) { diff --git a/src/eva2/server/go/problems/F21Problem.java b/src/eva2/server/go/problems/F21Problem.java new file mode 100644 index 00000000..efa1949f --- /dev/null +++ b/src/eva2/server/go/problems/F21Problem.java @@ -0,0 +1,106 @@ +package eva2.server.go.problems; + +import java.util.Random; + +import eva2.gui.BeanInspector; +import eva2.server.go.operators.postprocess.SolutionHistogram; + +/** + * Langerman function: A non-separable function built from random peaks each of which is surrounded by circular ridges. + * The number of optima is equal to the number of dimensions. + * The positions and height values of the peaks are initialized randomly with a fixed seed for reproducibility. + * + * @author mkron + * + */ +public class F21Problem extends AbstractProblemDouble implements InterfaceMultimodalProblem, InterfaceInterestingHistogram{ + private double[] heights = null; // will receive random positions within the range + private double[][] peaks = null; // will receive values in [0,1] as peak height values + private static final int rndSeed=23; + private int dim=2; + + public F21Problem() { + } + + public F21Problem(F21Problem f21Problem) { + this(); + } + + public String getName() { + return "Langerman-Function"; + } + + public static String globalInfo() { + return "The Langerman function, with n peaks each of which surrounded by circular ridges."; + } + + @Override + public double getRangeLowerBound(int dim) { + return 0; + } + + @Override + public double getRangeUpperBound(int dim) { + return 10; + } + + @Override + public void initProblem() { + super.initProblem(); + Random rnd = new Random(rndSeed); + heights=new double[getProblemDimension()]; + peaks=new double[getProblemDimension()][]; + for (int i=0; i