From e173da91e133a2ff4ad8853c146eb5591b7eea1e Mon Sep 17 00:00:00 2001 From: Marcel Kronfeld Date: Wed, 14 Oct 2009 15:42:01 +0000 Subject: [PATCH] Corrected offsets for F*Problems --- src/eva2/gui/GenericObjectEditor.java | 4 ++-- .../go/problems/AbstractOptimizationProblem.java | 11 ++++++----- src/eva2/server/go/problems/F10Problem.java | 5 +++-- src/eva2/server/go/problems/F11Problem.java | 8 ++++---- src/eva2/server/go/problems/F12Problem.java | 6 +++--- src/eva2/server/go/problems/F13Problem.java | 5 +++-- src/eva2/server/go/problems/F14Problem.java | 10 +++------- src/eva2/server/go/problems/F2Problem.java | 9 ++++++--- src/eva2/server/go/problems/F3Problem.java | 4 ++-- src/eva2/server/go/problems/F4Problem.java | 4 ++-- src/eva2/server/go/problems/F5Problem.java | 4 ++-- src/eva2/server/go/problems/F6Problem.java | 5 +++-- src/eva2/server/go/problems/F7Problem.java | 6 +++--- src/eva2/server/go/problems/F8Problem.java | 7 ++++--- src/eva2/server/go/problems/F9Problem.java | 11 ++--------- 15 files changed, 48 insertions(+), 51 deletions(-) diff --git a/src/eva2/gui/GenericObjectEditor.java b/src/eva2/gui/GenericObjectEditor.java index 33b574d2..b725cb51 100644 --- a/src/eva2/gui/GenericObjectEditor.java +++ b/src/eva2/gui/GenericObjectEditor.java @@ -297,7 +297,7 @@ public class GenericObjectEditor implements PropertyEditor { return; } - Vector v; + Vector v=null; if (Proxy.isProxyClass(m_ClassType)) { if (TRACE) System.out.println("PROXY! original was " + ((RMIProxyLocal)Proxy.getInvocationHandler(((Proxy)m_Object))).getOriginalClass().getName()); v = new Vector(getClassesFromProperties(((RMIProxyLocal)Proxy.getInvocationHandler(((Proxy)m_Object))).getOriginalClass().getName())); @@ -305,7 +305,7 @@ public class GenericObjectEditor implements PropertyEditor { v = new Vector(getClassesFromProperties(m_ClassType.getName())); } - v = new Vector(getClassesFromProperties(m_ClassType.getName())); +// v = new Vector(getClassesFromProperties(m_ClassType.getName())); try { if (v.size() > 0) setObject((Object)Class.forName((String)v.get(0)).newInstance()); diff --git a/src/eva2/server/go/problems/AbstractOptimizationProblem.java b/src/eva2/server/go/problems/AbstractOptimizationProblem.java index 095c04b1..c5548ec6 100644 --- a/src/eva2/server/go/problems/AbstractOptimizationProblem.java +++ b/src/eva2/server/go/problems/AbstractOptimizationProblem.java @@ -1,7 +1,6 @@ package eva2.server.go.problems; import java.awt.BorderLayout; -import java.util.ArrayList; import java.util.Vector; import java.io.Serializable; @@ -51,11 +50,13 @@ public abstract class AbstractOptimizationProblem implements InterfaceOptimizati } public void run() { - +// System.out.println("Running ET " + this); +// long time=System.nanoTime(); prob.evaluate(ind); resultrep.add(ind); pop.incrFunctionCalls(); - +// long duration=System.nanoTime()-time; +// System.out.println("Finished ET" + this + ", time was " + duration); } } @@ -102,8 +103,8 @@ public abstract class AbstractOptimizationProblem implements InterfaceOptimizati evaluatePopulationStart(population); if (this.parallelthreads > 1) { - Vector queue = new Vector(); - Vector finished = new Vector(); + Vector queue = new Vector(population.size()); + Vector finished = new Vector(population.size()); queue.addAll(population); while (finished.size() < population.size()) { diff --git a/src/eva2/server/go/problems/F10Problem.java b/src/eva2/server/go/problems/F10Problem.java index 55d6a4ca..01b85f1e 100644 --- a/src/eva2/server/go/problems/F10Problem.java +++ b/src/eva2/server/go/problems/F10Problem.java @@ -39,9 +39,10 @@ public class F10Problem extends F1Problem implements InterfaceMultimodalProblem, public double[] eval(double[] x) { double[] result = new double[1]; double c1 = this.calculateC(1); - result[0] = 0.; + result[0] = m_YOffSet; for (int i = 0; i < x.length-1; i++) { - result[0] += ((this.calculateC(x[i]))/(c1 * Math.pow(Math.abs(x[i]),2-this.m_D))) + Math.pow(x[i], 2) -1; + double xi = x[i]-m_XOffSet; + result[0] += ((this.calculateC(xi))/(c1 * Math.pow(Math.abs(xi),2-this.m_D))) + Math.pow(xi, 2) -1; } return result; } diff --git a/src/eva2/server/go/problems/F11Problem.java b/src/eva2/server/go/problems/F11Problem.java index 66ebf209..9c010a21 100644 --- a/src/eva2/server/go/problems/F11Problem.java +++ b/src/eva2/server/go/problems/F11Problem.java @@ -41,12 +41,12 @@ public class F11Problem extends F1Problem implements InterfaceMultimodalProblem, public double[] eval(double[] x) { double[] result = new double[1]; double tmpProd = 1; - result[0] = 0; for (int i = 0; i < x.length; i++) { - result[0] += Math.pow(x[i], 2); - tmpProd *= Math.cos((x[i])/Math.sqrt(i+1)); + double xi = x[i]-m_XOffSet; + result[0] += Math.pow(xi, 2); + tmpProd *= Math.cos((xi)/Math.sqrt(i+1)); } - result[0] = ((result[0]/this.m_D) - tmpProd + 1); + result[0] = ((result[0]/this.m_D) - tmpProd + 1)+m_YOffSet; return result; } diff --git a/src/eva2/server/go/problems/F12Problem.java b/src/eva2/server/go/problems/F12Problem.java index daa54f46..aea92c0e 100644 --- a/src/eva2/server/go/problems/F12Problem.java +++ b/src/eva2/server/go/problems/F12Problem.java @@ -36,11 +36,11 @@ public class F12Problem extends F1Problem implements java.io.Serializable { public double[] eval(double[] x) { double[] result = new double[1]; double tmp = -5; - result[0] = 0; for (int i = 1; i < x.length-1; i++) { - tmp += Math.pow(x[i], 2); + tmp += Math.pow(x[i]-m_XOffSet, 2); } - result[0] = (Math.exp(-5*x[0]*x[0])+2*Math.exp(-5*Math.pow(1-x[0], 2)))*Math.exp(tmp); + double x0 = x[0]-m_XOffSet; + result[0] = m_YOffSet+(Math.exp(-5*x0*x0)+2*Math.exp(-5*Math.pow(1-x0, 2)))*Math.exp(tmp); return result; } diff --git a/src/eva2/server/go/problems/F13Problem.java b/src/eva2/server/go/problems/F13Problem.java index 18feef80..55228d7c 100644 --- a/src/eva2/server/go/problems/F13Problem.java +++ b/src/eva2/server/go/problems/F13Problem.java @@ -42,10 +42,11 @@ public class F13Problem extends F1Problem implements InterfaceMultimodalProblem */ public double[] eval(double[] x) { double[] result = new double[1]; - result[0] = 0; + result[0] = m_YOffSet; for (int i=0; i