diff --git a/src/eva2/EvAInfo.java b/src/eva2/EvAInfo.java index bf126272..1e75ae1d 100644 --- a/src/eva2/EvAInfo.java +++ b/src/eva2/EvAInfo.java @@ -1,5 +1,10 @@ package eva2; +import java.io.File; +import java.util.Properties; + +import eva2.tools.BasicResourceLoader; + /** * Main product and version information strings. * @@ -68,10 +73,11 @@ package eva2; * @author mkron * */ + public class EvAInfo { public static final String productName = "EvA2"; public static final String productLongName = "Evolutionary Algorithms Workbench 2"; - public static final String versionNum = new String ("2.043"); + // public static final String fullVersion = "2.043"; // moved to EvA2.props! public static final String url = "http://www.ra.cs.uni-tuebingen.de/software/EvA2"; public static final String propertyFile = "resources/EvA2.props"; @@ -83,4 +89,48 @@ public class EvAInfo { public static final String infoTitle = productName+" Information"; public static final String copyrightYear = "2010"; + ////////////// Property handling... + + private static Properties EVA_PROPERTIES; + static { + try { + EVA_PROPERTIES = BasicResourceLoader.readProperties(EvAInfo.propertyFile); + } catch (Exception ex) { + System.err.println("ERROR! Could not read the configuration file "+ EvAInfo.propertyFile); + System.err.println(ex.getMessage()); + System.exit(1); + } + File f=new File(EvAInfo.iconLocation); + if (!f.exists()) { + System.err.println("Error: Could not find EvA2 resources. Did you copy the resources folder to working directory?"); + System.exit(2); + } + } + + public static String getProperty(String key) { + String myVal = EVA_PROPERTIES.getProperty(key); + return myVal; + } + + public static Properties getProperties() { + return EVA_PROPERTIES; + } + + private static void setProperty(String key, String value) { + EVA_PROPERTIES.setProperty(key, value); + } + + public static String getVersion() { + String version = getProperty("EvA2Version"); + if (version==null) System.err.println("ERROR, missing property EvA2Version!"); + return version; + } + + public static String propDefaultModule() { + return getProperty("DefaultModule"); + } + + public static String propShowModules() { + return getProperty("ShowModules"); + } } diff --git a/src/eva2/client/ClassPreloader.java b/src/eva2/client/ClassPreloader.java index 3f5f5854..873c9d2b 100644 --- a/src/eva2/client/ClassPreloader.java +++ b/src/eva2/client/ClassPreloader.java @@ -26,7 +26,7 @@ public class ClassPreloader implements Runnable { if (clsNames !=null) { for (int i = 0; i < clsNames.length; i++) { if (TRACE) System.out.println("Preloading " + clsNames[i]); - GenericObjectEditor.getClassesFromClassPath(clsNames[i]); + GenericObjectEditor.getClassesFromClassPath(clsNames[i], null); } } } diff --git a/src/eva2/client/EvAClient.java b/src/eva2/client/EvAClient.java index 27519eb4..8d86b002 100644 --- a/src/eva2/client/EvAClient.java +++ b/src/eva2/client/EvAClient.java @@ -82,7 +82,6 @@ import eva2.tools.jproxy.RemoteStateListener; public class EvAClient implements RemoteStateListener, Serializable { private final int splashScreenTime = 1500; private final int maxWindowMenuLength = 30; - private static Properties EVA_PROPERTIES; public static boolean TRACE = false; @@ -145,31 +144,6 @@ public class EvAClient implements RemoteStateListener, Serializable { return superListenerList.remove(l); } else return false; } - - public static String getProperty(String key) { - String myVal = EVA_PROPERTIES.getProperty(key); - return myVal; - } - - public static Properties getProperties() { - return EVA_PROPERTIES; - } - - public static void setProperty(String key, String value) { - EVA_PROPERTIES.setProperty(key, value); - } - - /** - * Statically loading Properties. - */ - static { - try { - EVA_PROPERTIES = BasicResourceLoader.readProperties(EvAInfo.propertyFile); - } catch (Exception ex) { - System.err.println("Could not read the configuration file "+ EvAInfo.propertyFile); - ex.printStackTrace(); - } - } /** * Constructor of GUI of EvA2. @@ -298,7 +272,7 @@ public class EvAClient implements RemoteStateListener, Serializable { */ private void init(String hostName, String paramsFile, final Window parent) { //EVA_EDITOR_PROPERTIES - useDefaultModule = getProperty("DefaultModule"); + useDefaultModule = EvAInfo.propDefaultModule(); if (useDefaultModule != null) { useDefaultModule = useDefaultModule.trim(); @@ -312,7 +286,7 @@ public class EvAClient implements RemoteStateListener, Serializable { try { m_Frame.setIconImage(Toolkit.getDefaultToolkit().createImage(bytes)); } catch (java.lang.NullPointerException e) { - System.out.println("Could not find EvA2 icon, please move resources folder to working directory!"); + System.err.println("Could not find EvA2 icon, please move resources folder to working directory!"); } // m_Frame.setTitle(EvAInfo.productName + " workbench"); @@ -328,7 +302,7 @@ public class EvAClient implements RemoteStateListener, Serializable { m_ProgressBar = new JProgressBar(); m_Frame.getContentPane().add(m_ProgressBar, BorderLayout.SOUTH); - if (getProperty("ShowModules") != null) showLoadModules = true; + if (EvAInfo.propShowModules() != null) showLoadModules = true; else showLoadModules = false; // may be set to true again if default module couldnt be loaded createActions(); @@ -424,7 +398,7 @@ public class EvAClient implements RemoteStateListener, Serializable { sbuf.append(" - "); sbuf.append(EvAInfo.productLongName); sbuf.append(" - Version "); - sbuf.append(EvAInfo.versionNum); + sbuf.append(EvAInfo.getVersion()); sbuf.append("\n"); sbuf.append("License: "); sbuf.append(EvAInfo.LGPLFile); @@ -885,7 +859,7 @@ public class EvAClient implements RemoteStateListener, Serializable { "\n University of Tübingen\n Chair for Computer Architecture\n " + "M. Kronfeld, H. Planatscher, M. de Paly, A. Dräger, F. Streichert, H. Ulmer\n " + // "H. Ulmer & F. Streichert & H. Planatscher & M. de Paly & M. Kronfeld\n" + - "Prof. Dr. Andreas Zell \n (c) " + EvAInfo.copyrightYear + "\n Version " + EvAInfo.versionNum + + "Prof. Dr. Andreas Zell \n (c) " + EvAInfo.copyrightYear + "\n Version " + EvAInfo.getVersion()+ "\n URL: " + EvAInfo.url, EvAInfo.infoTitle, 1); } diff --git a/src/eva2/client/EvAComAdapter.java b/src/eva2/client/EvAComAdapter.java index 188239ef..551f42f2 100644 --- a/src/eva2/client/EvAComAdapter.java +++ b/src/eva2/client/EvAComAdapter.java @@ -15,21 +15,17 @@ package eva2.client; *==========================================================================*/ import java.rmi.RemoteException; -import java.rmi.registry.Registry; -import java.util.ArrayList; +import eva2.EvAInfo; import eva2.gui.LogPanel; import eva2.server.EvAMainAdapter; import eva2.server.EvAMainAdapterImpl; -import eva2.server.RMIServerEvA; import eva2.server.modules.ModuleAdapter; import eva2.tools.jproxy.ComAdapter; import eva2.tools.jproxy.MainAdapter; import eva2.tools.jproxy.MainAdapterClient; -import eva2.tools.jproxy.MainAdapterClientImpl; import eva2.tools.jproxy.RMIConnection; import eva2.tools.jproxy.RMIInvocationHandler; -import eva2.tools.jproxy.RMIProxyLocal; /*==========================================================================* * CLASS DECLARATION @@ -54,7 +50,7 @@ public class EvAComAdapter extends ComAdapter { public static EvAComAdapter getInstance() { if (m_instance==null) { m_instance = new EvAComAdapter(); - m_instance.addServersFromProperties(EvAClient.getProperties()); + m_instance.addServersFromProperties(EvAInfo.getProperties()); } return (EvAComAdapter)m_instance; } diff --git a/src/eva2/gui/GOEPanel.java b/src/eva2/gui/GOEPanel.java index 9212bab7..4b3d6dfe 100644 --- a/src/eva2/gui/GOEPanel.java +++ b/src/eva2/gui/GOEPanel.java @@ -2,6 +2,7 @@ package eva2.gui; import java.awt.BorderLayout; +import java.awt.Component; import java.awt.GridLayout; import java.awt.Window; import java.awt.event.ActionEvent; @@ -11,24 +12,22 @@ import java.awt.event.ItemListener; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.beans.PropertyChangeSupport; -import java.io.BufferedInputStream; -import java.io.BufferedOutputStream; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.ObjectInputStream; -import java.io.ObjectOutputStream; +import java.lang.reflect.Method; +import java.lang.reflect.Modifier; import java.lang.reflect.Proxy; +import java.util.ArrayList; +import java.util.List; import java.util.Vector; import javax.swing.BorderFactory; import javax.swing.DefaultComboBoxModel; import javax.swing.JButton; import javax.swing.JComboBox; -import javax.swing.JFileChooser; +import javax.swing.JList; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JScrollPane; +import javax.swing.plaf.basic.BasicComboBoxRenderer; import eva2.server.go.tools.FileTools; import eva2.tools.EVAHELP; @@ -58,8 +57,10 @@ public class GOEPanel extends JPanel implements ItemListener { /** edit source button */ // private JButton m_editSourceBut; /** Creates the GUI editor component */ - private Vector m_ClassesLongName; +// private Vector m_ClassesLongName; private GenericObjectEditor m_goe = null; + private boolean withComboBoxToolTips = true; // should tool tips for the combo box be created? + private int tipMaxLen = 100; // maximum length of tool tip // private String[] m_ClassesShortName; // private SourceCodeEditor m_SourceCodeEditor; // private PropertyDialog m_SourceCodeEditorFrame; @@ -256,21 +257,42 @@ public class GOEPanel extends JPanel implements ItemListener { */ protected void updateClassType() { if (TRACE) System.out.println("# updating class "+m_goe.getClassType().getName()); - + Vector classesLongNames; + ArrayList> instances = new ArrayList>(5); if (Proxy.isProxyClass(m_goe.getClassType())) { if (TRACE) System.out.println("PROXY! original was " + ((RMIProxyLocal)Proxy.getInvocationHandler(((Proxy)m_goe.getValue()))).getOriginalClass().getName()); - m_ClassesLongName = new Vector(GenericObjectEditor.getClassesFromProperties(((RMIProxyLocal)Proxy.getInvocationHandler(((Proxy)m_goe.getValue()))).getOriginalClass().getName())); + classesLongNames = new Vector(GenericObjectEditor.getClassesFromProperties(((RMIProxyLocal)Proxy.getInvocationHandler(((Proxy)m_goe.getValue()))).getOriginalClass().getName(), null)); } else { - m_ClassesLongName = new Vector(GenericObjectEditor.getClassesFromProperties(m_goe.getClassType().getName())); + classesLongNames = new Vector(GenericObjectEditor.getClassesFromProperties(m_goe.getClassType().getName(), instances)); } - m_ObjectChooser.setModel(new DefaultComboBoxModel(m_ClassesLongName)); - if (m_ClassesLongName.size() > 1) // testhu + if (classesLongNames.size() > 1) { + m_ObjectChooser.setModel(new DefaultComboBoxModel(classesLongNames)); + if (withComboBoxToolTips) m_ObjectChooser.setRenderer(new ToolTipComboBoxRenderer(collectComboToolTips(instances, tipMaxLen) )); add(m_ObjectChooser, BorderLayout.NORTH); - else - remove(m_ObjectChooser); + } else remove(m_ObjectChooser); if (TRACE) System.out.println("# done updating class "+m_goe.getClassType().getName()); } + private String[] collectComboToolTips(List> instances, int maxLen) { + String[] tips = new String[instances.size()]; + for (int i=0; i= 0)) { + if (toolTips[index]!=null) list.setToolTipText(toolTips[index]); + } + } else { + setBackground(list.getBackground()); + setForeground(list.getForeground()); + } + setFont(list.getFont()); + setText((value == null) ? "" : value.toString()); + return this; + } + } diff --git a/src/eva2/gui/GenericObjectEditor.java b/src/eva2/gui/GenericObjectEditor.java index 0a23a4ee..eb1c0911 100644 --- a/src/eva2/gui/GenericObjectEditor.java +++ b/src/eva2/gui/GenericObjectEditor.java @@ -53,14 +53,14 @@ public class GenericObjectEditor implements PropertyEditor { /** * Read the classes available for user selection from the properties or the classpath respectively */ - public static ArrayList getClassesFromProperties(String className) { + public static ArrayList getClassesFromProperties(String className, ArrayList> instances) { if (TRACE) System.out.println("getClassesFromProperties - requesting className: "+className); // Try to read the predefined classes from the props file. - String typeOptions = EvAClient.getProperty(className); + String typeOptions = EvAInfo.getProperty(className); if (typeOptions == null) { // If none are defined, all assignable classes are searched the hard way, using the ReflectPackage - return getClassesFromClassPath(className); + return getClassesFromClassPath(className, instances); } else { StringTokenizer st = new StringTokenizer(typeOptions, ", "); ArrayList classes = new ArrayList(); @@ -68,7 +68,8 @@ public class GenericObjectEditor implements PropertyEditor { String current = st.nextToken().trim(); //System.out.println("current ="+current); try { - Class.forName(current); // test for instantiability + Class clz = Class.forName(current); // test for instantiability + if (instances!=null) instances.add(clz); classes.add(current); } catch (Exception ex) { System.err.println("Couldn't load class with name: " + current); @@ -90,7 +91,7 @@ public class GenericObjectEditor implements PropertyEditor { * @param className * @return */ - public static ArrayList getClassesFromClassPath(String className) { + public static ArrayList getClassesFromClassPath(String className, ArrayList> instances) { ArrayList classes = new ArrayList(); Class[] clsArr; clsArr=ReflectPackage.getAssignableClasses(className, true, true); @@ -119,6 +120,7 @@ public class GenericObjectEditor implements PropertyEditor { try { Class[] params = new Class[0]; class1.getConstructor(params); + if (instances!=null) instances.add(class1); classes.add(class1.getName()); } catch (NoSuchMethodException e) { System.err.println("GOE warning: Class " + class1.getName() + " has no default constructor, skipping..."); @@ -264,9 +266,9 @@ public class GenericObjectEditor implements PropertyEditor { 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())); + v = new Vector(getClassesFromProperties(((RMIProxyLocal)Proxy.getInvocationHandler(((Proxy)m_Object))).getOriginalClass().getName(), null)); } else { - v = new Vector(getClassesFromProperties(m_ClassType.getName())); + v = new Vector(getClassesFromProperties(m_ClassType.getName(), null)); } // v = new Vector(getClassesFromProperties(m_ClassType.getName())); @@ -288,7 +290,7 @@ public class GenericObjectEditor implements PropertyEditor { public void setValue(Object o) { //System.err.println("setValue()" + m_ClassType.toString()); - if (m_ClassType == null) { + if (o==null || m_ClassType == null) { System.err.println("No ClassType set up for GenericObjectEditor!!"); return; } diff --git a/src/eva2/gui/PropertySheetPanel.java b/src/eva2/gui/PropertySheetPanel.java index cd504d55..42ae3bab 100644 --- a/src/eva2/gui/PropertySheetPanel.java +++ b/src/eva2/gui/PropertySheetPanel.java @@ -776,7 +776,7 @@ public class PropertySheetPanel extends JPanel implements PropertyChangeListener ex.printStackTrace(); } if (TRACE) System.out.println("# cmp " + BeanInspector.toString(o) + "\n# vs. " + BeanInspector.toString(m_Values[i])); - if (o == m_Values[i] && (BeanInspector.isJavaPrimitive(o.getClass()))) { + if ((o!=null) && o == m_Values[i] && (BeanInspector.isJavaPrimitive(o.getClass()))) { // The property is equal to its old value. continue; } diff --git a/src/eva2/server/EvAMainAdapterImpl.java b/src/eva2/server/EvAMainAdapterImpl.java index 87aeeb83..de152466 100644 --- a/src/eva2/server/EvAMainAdapterImpl.java +++ b/src/eva2/server/EvAMainAdapterImpl.java @@ -12,7 +12,7 @@ package eva2.server; /*==========================================================================* * IMPORTS *==========================================================================*/ -import eva2.client.EvAClient; +import eva2.EvAInfo; import eva2.server.modules.ModuleAdapter; import eva2.tools.jproxy.MainAdapterClient; import eva2.tools.jproxy.MainAdapterImpl; @@ -27,7 +27,7 @@ public class EvAMainAdapterImpl extends MainAdapterImpl implements EvAMainAdapte public EvAMainAdapterImpl() { super(); - m_ModulServer = new ModuleServer(EvAClient.getProperties()); + m_ModulServer = new ModuleServer(EvAInfo.getProperties()); } public String[] getModuleNameList() { diff --git a/src/eva2/server/EvAServer.java b/src/eva2/server/EvAServer.java index 9cceafdc..a739cd57 100644 --- a/src/eva2/server/EvAServer.java +++ b/src/eva2/server/EvAServer.java @@ -41,7 +41,7 @@ public class EvAServer { // m_InsideClient = insideClient; // m_Restart = Restart; System.out.println ("*******************************************************************************"); - System.out.println ("This is EvA Server Version: "+ EvAInfo.versionNum); + System.out.println ("This is EvA Server Version: "+ EvAInfo.getVersion()); //System.out.println ("Java Version: " + System.getProperty("java.version") ); System.out.println ("*******************************************************************************"); m_UserName = System.getProperty("user.name"); diff --git a/src/eva2/server/go/GOStandaloneVersion.java b/src/eva2/server/go/GOStandaloneVersion.java index 09e36d6a..0e50b8eb 100644 --- a/src/eva2/server/go/GOStandaloneVersion.java +++ b/src/eva2/server/go/GOStandaloneVersion.java @@ -181,7 +181,8 @@ public class GOStandaloneVersion implements InterfaceGOStandalone, InterfacePopu } if ((object != null) && (editor != null)) paraPanel.registerEditor(object, editor); this.m_O1 = (paraPanel.makePanel()); - EvAClient.setProperty("eva2.server.oa.go.Tools.InterfaceTest", "eva2.server.oa.go.Tools.Test1,eva2.server.oa.go.Tools.Test2"); + // TODO this is defunct anyways... (MK, 2010-03) +// EvAClient.setProperty("eva2.server.oa.go.Tools.InterfaceTest", "eva2.server.oa.go.Tools.Test1,eva2.server.oa.go.Tools.Test2"); this.m_OptionsPanel = new JTabbedPane(); JParaPanel paraPanel2 = new JParaPanel(this.m_GO, "MyGUI"); this.m_O2 = (paraPanel2.makePanel()); @@ -624,7 +625,7 @@ public class GOStandaloneVersion implements InterfaceGOStandalone, InterfacePopu /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "This is a simple example framework for Evolutionary Algorithms."; } diff --git a/src/eva2/server/go/InterfaceGOParameters.java b/src/eva2/server/go/InterfaceGOParameters.java index 76d94dd8..ee0bb7b8 100644 --- a/src/eva2/server/go/InterfaceGOParameters.java +++ b/src/eva2/server/go/InterfaceGOParameters.java @@ -17,7 +17,7 @@ public interface InterfaceGOParameters { /** This method returns a global info string * @return description */ - public String globalInfo(); +// public String globalInfo(); /** This method allows you to serialize the current parameters into a *.ser file */ diff --git a/src/eva2/server/go/individuals/AbstractEAIndividual.java b/src/eva2/server/go/individuals/AbstractEAIndividual.java index 6e0144c8..b4c09b7a 100644 --- a/src/eva2/server/go/individuals/AbstractEAIndividual.java +++ b/src/eva2/server/go/individuals/AbstractEAIndividual.java @@ -612,15 +612,15 @@ public abstract class AbstractEAIndividual implements IndividualInterface, java. boolean result = true; int i=0; while (result && (i < fit1.length) && (i < fit2.length)) { - if (firstIsFiniteAndLarger(fit1[i], fit2[i])) result = false; + if (firstIsFiniteAndLargerOrEqual(fit1[i], fit2[i])) result = false; i++; } return result; } - private static boolean firstIsFiniteAndLarger(double a, double b) { + private static boolean firstIsFiniteAndLargerOrEqual(double a, double b) { if (Double.isNaN(a) || Double.isInfinite(a)) return false; - else return (a > b); + else return (a >= b); } /** diff --git a/src/eva2/server/go/individuals/AbstractEAIndividualComparator.java b/src/eva2/server/go/individuals/AbstractEAIndividualComparator.java index 009ba2cb..a153f1d8 100644 --- a/src/eva2/server/go/individuals/AbstractEAIndividualComparator.java +++ b/src/eva2/server/go/individuals/AbstractEAIndividualComparator.java @@ -160,7 +160,7 @@ public class AbstractEAIndividualComparator implements Comparator, Seria return "Activate preference of feasible individuals in any comparison acc. to Deb's rules."; } - public String globalInfo() { + public static String globalInfo() { return "A comparator class for general EA individuals. Compares individuals based on their fitness in context of minimization."; } public String getName() { diff --git a/src/eva2/server/go/individuals/ESIndividualBinaryData.java b/src/eva2/server/go/individuals/ESIndividualBinaryData.java index 7af41af3..c23f6982 100644 --- a/src/eva2/server/go/individuals/ESIndividualBinaryData.java +++ b/src/eva2/server/go/individuals/ESIndividualBinaryData.java @@ -270,7 +270,7 @@ public class ESIndividualBinaryData extends AbstractEAIndividual implements Inte /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "This is an ES individual adopted to optimize binary values."; } diff --git a/src/eva2/server/go/individuals/ESIndividualDoubleData.java b/src/eva2/server/go/individuals/ESIndividualDoubleData.java index 783ba171..2a56a312 100644 --- a/src/eva2/server/go/individuals/ESIndividualDoubleData.java +++ b/src/eva2/server/go/individuals/ESIndividualDoubleData.java @@ -331,7 +331,7 @@ public class ESIndividualDoubleData extends AbstractEAIndividual implements Inte /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "This is an ES individual suited to optimize double values."; } diff --git a/src/eva2/server/go/individuals/ESIndividualIntegerData.java b/src/eva2/server/go/individuals/ESIndividualIntegerData.java index 49ad2dad..eb415d09 100644 --- a/src/eva2/server/go/individuals/ESIndividualIntegerData.java +++ b/src/eva2/server/go/individuals/ESIndividualIntegerData.java @@ -286,7 +286,7 @@ public class ESIndividualIntegerData extends AbstractEAIndividual implements Int /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "This is an ES individual suited to optimize integer values."; } } \ No newline at end of file diff --git a/src/eva2/server/go/individuals/ESIndividualPermutationData.java b/src/eva2/server/go/individuals/ESIndividualPermutationData.java index 231655da..b1698d58 100644 --- a/src/eva2/server/go/individuals/ESIndividualPermutationData.java +++ b/src/eva2/server/go/individuals/ESIndividualPermutationData.java @@ -360,7 +360,7 @@ public class ESIndividualPermutationData extends AbstractEAIndividual implements /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "This is an ES individual suited to optimize permutations."; } diff --git a/src/eva2/server/go/individuals/GAESIndividualBinaryDoubleData.java b/src/eva2/server/go/individuals/GAESIndividualBinaryDoubleData.java index 0b19186d..ee26ad7b 100644 --- a/src/eva2/server/go/individuals/GAESIndividualBinaryDoubleData.java +++ b/src/eva2/server/go/individuals/GAESIndividualBinaryDoubleData.java @@ -309,7 +309,7 @@ public class GAESIndividualBinaryDoubleData extends AbstractEAIndividual impleme /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "This is a mixed data type combining a BitSet and a real-valued vector."; } diff --git a/src/eva2/server/go/individuals/GAIndividualBinaryData.java b/src/eva2/server/go/individuals/GAIndividualBinaryData.java index f8a5ed0d..d3121198 100644 --- a/src/eva2/server/go/individuals/GAIndividualBinaryData.java +++ b/src/eva2/server/go/individuals/GAIndividualBinaryData.java @@ -246,7 +246,7 @@ public class GAIndividualBinaryData extends AbstractEAIndividual implements Inte /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "This is a GA individual suited to optimize binary values."; } } diff --git a/src/eva2/server/go/individuals/GAIndividualDoubleData.java b/src/eva2/server/go/individuals/GAIndividualDoubleData.java index 49b88ef4..12b568ae 100644 --- a/src/eva2/server/go/individuals/GAIndividualDoubleData.java +++ b/src/eva2/server/go/individuals/GAIndividualDoubleData.java @@ -310,7 +310,7 @@ public class GAIndividualDoubleData extends AbstractEAIndividual implements Inte /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "This is a GA individual suited to optimize double values."; } diff --git a/src/eva2/server/go/individuals/GAIndividualIntegerData.java b/src/eva2/server/go/individuals/GAIndividualIntegerData.java index 5def6e46..086dea62 100644 --- a/src/eva2/server/go/individuals/GAIndividualIntegerData.java +++ b/src/eva2/server/go/individuals/GAIndividualIntegerData.java @@ -392,7 +392,7 @@ public class GAIndividualIntegerData extends AbstractEAIndividual implements Int /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "This is a GA individual suited to optimize int values."; } diff --git a/src/eva2/server/go/individuals/GEIndividualProgramData.java b/src/eva2/server/go/individuals/GEIndividualProgramData.java index 6c3fef87..fc15f9c1 100644 --- a/src/eva2/server/go/individuals/GEIndividualProgramData.java +++ b/src/eva2/server/go/individuals/GEIndividualProgramData.java @@ -596,7 +596,7 @@ public class GEIndividualProgramData extends AbstractEAIndividual implements Int /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "This is a GE individual suited to optimize programs."; } diff --git a/src/eva2/server/go/individuals/GIIndividualIntegerData.java b/src/eva2/server/go/individuals/GIIndividualIntegerData.java index 90b32236..a54dc8b2 100644 --- a/src/eva2/server/go/individuals/GIIndividualIntegerData.java +++ b/src/eva2/server/go/individuals/GIIndividualIntegerData.java @@ -295,7 +295,7 @@ public class GIIndividualIntegerData extends AbstractEAIndividual implements Int /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "This is a GI individual suited to optimize int values."; } diff --git a/src/eva2/server/go/individuals/GIOBGAIndividualIntegerPermutationData.java b/src/eva2/server/go/individuals/GIOBGAIndividualIntegerPermutationData.java index 61a6e642..ac2cfa58 100644 --- a/src/eva2/server/go/individuals/GIOBGAIndividualIntegerPermutationData.java +++ b/src/eva2/server/go/individuals/GIOBGAIndividualIntegerPermutationData.java @@ -308,7 +308,7 @@ public class GIOBGAIndividualIntegerPermutationData extends AbstractEAIndividual /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "This is a mixed data type combining an integer vector with a permutation vector."; } diff --git a/src/eva2/server/go/individuals/GPIndividualProgramData.java b/src/eva2/server/go/individuals/GPIndividualProgramData.java index 12a470e5..d2b6098c 100644 --- a/src/eva2/server/go/individuals/GPIndividualProgramData.java +++ b/src/eva2/server/go/individuals/GPIndividualProgramData.java @@ -303,7 +303,7 @@ public class GPIndividualProgramData extends AbstractEAIndividual implements Int /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "This is a GP individual suited to optimize Koza style program trees."; } diff --git a/src/eva2/server/go/individuals/OBGAIndividualPermutationData.java b/src/eva2/server/go/individuals/OBGAIndividualPermutationData.java index f25e5905..571cb904 100644 --- a/src/eva2/server/go/individuals/OBGAIndividualPermutationData.java +++ b/src/eva2/server/go/individuals/OBGAIndividualPermutationData.java @@ -265,7 +265,7 @@ public class OBGAIndividualPermutationData extends AbstractEAIndividual implemen /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "This is a GA individual coding permutations."; } } diff --git a/src/eva2/server/go/individuals/codings/gp/AbstractGPNode.java b/src/eva2/server/go/individuals/codings/gp/AbstractGPNode.java index 0038e282..ce7b8763 100644 --- a/src/eva2/server/go/individuals/codings/gp/AbstractGPNode.java +++ b/src/eva2/server/go/individuals/codings/gp/AbstractGPNode.java @@ -149,7 +149,7 @@ public abstract class AbstractGPNode implements InterfaceProgram, java.io.Serial * @return a list of available AbstractGPNode implementations */ public static Vector getNodeTypes() { - ArrayListcls = GenericObjectEditor.getClassesFromClassPath(AbstractGPNode.class.getCanonicalName()); + ArrayListcls = GenericObjectEditor.getClassesFromClassPath(AbstractGPNode.class.getCanonicalName(), null); Vector nodeTypes = new Vector(cls.size()); for (int i=0; i closestInfo = Population.getClosestFarthestIndy(loners.getEAIndividual(i), bests, metric, true); + // we have now the info about the closest best individual. If its closer than the threshold, we can assign the loner to that index + if (!strictNicheRadius || (closestInfo.tail()=0) { // it can be assigned to a peak + clusters[assoc[i]+1].add(rest.getEAIndividual(i)); + } else { // its a loner + clusters[0].add(rest.getEAIndividual(i)); + } + } + return clusters; + } + + public String initClustering(Population pop) { + return null; + } + + public boolean mergingSpecies(Population species1, Population species2, + Population referenceSet) { + // in our case just return true if the leaders are close enough + return (metric.distance(species1.getBestEAIndividual(), species2.getBestEAIndividual()) crossers = GenericObjectEditor.getClassesFromProperties("eva2.server.go.operators.crossover.InterfaceCrossover"); + ArrayList crossers = GenericObjectEditor.getClassesFromProperties(InterfaceCrossover.class.getCanonicalName(), null); tmpList = new InterfaceCrossover[crossers.size()]; for (int i = 0; i < crossers.size(); i++) { if (((String)crossers.get(i)).equals(this.getClass().getName())) continue; @@ -140,7 +140,7 @@ public class CrossoverEAMixer implements InterfaceCrossover, java.io.Serializabl /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "This meta-mutation operator allows you to combine multiple alternative mutation operators."; } diff --git a/src/eva2/server/go/operators/crossover/CrossoverESArithmetical.java b/src/eva2/server/go/operators/crossover/CrossoverESArithmetical.java index 46c61049..105577af 100644 --- a/src/eva2/server/go/operators/crossover/CrossoverESArithmetical.java +++ b/src/eva2/server/go/operators/crossover/CrossoverESArithmetical.java @@ -118,7 +118,7 @@ public class CrossoverESArithmetical implements InterfaceCrossover, java.io.Seri /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "This is an arithmetical crossover between m ES individuals."; } } diff --git a/src/eva2/server/go/operators/crossover/CrossoverESBLXAlpha.java b/src/eva2/server/go/operators/crossover/CrossoverESBLXAlpha.java index a38f4e8d..213fa631 100644 --- a/src/eva2/server/go/operators/crossover/CrossoverESBLXAlpha.java +++ b/src/eva2/server/go/operators/crossover/CrossoverESBLXAlpha.java @@ -124,7 +124,7 @@ public class CrossoverESBLXAlpha implements InterfaceCrossover, java.io.Serializ /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "The BLX crossover inits the values within the extreme values plus an additional alpha range (BLX-0.0 equals flat crossover)."; } diff --git a/src/eva2/server/go/operators/crossover/CrossoverESDefault.java b/src/eva2/server/go/operators/crossover/CrossoverESDefault.java index 2702cf23..c2f9ba5c 100644 --- a/src/eva2/server/go/operators/crossover/CrossoverESDefault.java +++ b/src/eva2/server/go/operators/crossover/CrossoverESDefault.java @@ -118,7 +118,7 @@ public class CrossoverESDefault implements InterfaceCrossover, java.io.Serializa /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "This is a discrete one-point crossover between m ES individuals."; } } diff --git a/src/eva2/server/go/operators/crossover/CrossoverESFlat.java b/src/eva2/server/go/operators/crossover/CrossoverESFlat.java index 37b4f363..390e9f1b 100644 --- a/src/eva2/server/go/operators/crossover/CrossoverESFlat.java +++ b/src/eva2/server/go/operators/crossover/CrossoverESFlat.java @@ -120,7 +120,7 @@ public class CrossoverESFlat implements InterfaceCrossover, java.io.Serializable /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "The flat crossover inits the values within the extreme values."; } } \ No newline at end of file diff --git a/src/eva2/server/go/operators/crossover/CrossoverESIntermediate.java b/src/eva2/server/go/operators/crossover/CrossoverESIntermediate.java index 51204955..e25d1dc1 100644 --- a/src/eva2/server/go/operators/crossover/CrossoverESIntermediate.java +++ b/src/eva2/server/go/operators/crossover/CrossoverESIntermediate.java @@ -107,7 +107,7 @@ public class CrossoverESIntermediate implements InterfaceCrossover, java.io.Seri /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "This is an intermediate crossover between m ES individuals."; } } diff --git a/src/eva2/server/go/operators/crossover/CrossoverESNPointDiscrete.java b/src/eva2/server/go/operators/crossover/CrossoverESNPointDiscrete.java index 78c4ea36..f455ca06 100644 --- a/src/eva2/server/go/operators/crossover/CrossoverESNPointDiscrete.java +++ b/src/eva2/server/go/operators/crossover/CrossoverESNPointDiscrete.java @@ -123,7 +123,7 @@ public class CrossoverESNPointDiscrete implements InterfaceCrossover, java.io.Se /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "This is a discrete n-point crossover between m ES individuals."; } diff --git a/src/eva2/server/go/operators/crossover/CrossoverESNPointDiscreteDislocation.java b/src/eva2/server/go/operators/crossover/CrossoverESNPointDiscreteDislocation.java index a4b7cb9f..efbed06f 100644 --- a/src/eva2/server/go/operators/crossover/CrossoverESNPointDiscreteDislocation.java +++ b/src/eva2/server/go/operators/crossover/CrossoverESNPointDiscreteDislocation.java @@ -135,7 +135,7 @@ public class CrossoverESNPointDiscreteDislocation implements InterfaceCrossover, /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "This is a discrete n-point crossover between m ES individuals with dislocation."; } diff --git a/src/eva2/server/go/operators/crossover/CrossoverESPCX.java b/src/eva2/server/go/operators/crossover/CrossoverESPCX.java index f12860e3..69e02256 100644 --- a/src/eva2/server/go/operators/crossover/CrossoverESPCX.java +++ b/src/eva2/server/go/operators/crossover/CrossoverESPCX.java @@ -288,7 +288,7 @@ public class CrossoverESPCX implements InterfaceCrossover, java.io.Serializable /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "This is the Parent Centric Crossover (PCX)."; } public void setEta(double a) { diff --git a/src/eva2/server/go/operators/crossover/CrossoverESSBX.java b/src/eva2/server/go/operators/crossover/CrossoverESSBX.java index f81a3aff..92b33827 100644 --- a/src/eva2/server/go/operators/crossover/CrossoverESSBX.java +++ b/src/eva2/server/go/operators/crossover/CrossoverESSBX.java @@ -192,7 +192,7 @@ public class CrossoverESSBX implements InterfaceCrossover, java.io.Serializable /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "The SBX crossover simulates a binary crossover (works only for two partners!)."; } diff --git a/src/eva2/server/go/operators/crossover/CrossoverESSPX.java b/src/eva2/server/go/operators/crossover/CrossoverESSPX.java index ed70b69c..5b702d2f 100644 --- a/src/eva2/server/go/operators/crossover/CrossoverESSPX.java +++ b/src/eva2/server/go/operators/crossover/CrossoverESSPX.java @@ -216,7 +216,7 @@ public class CrossoverESSPX implements InterfaceCrossover, java.io.Serializable /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "This is the Simplex Crossover (SPX)."; } diff --git a/src/eva2/server/go/operators/crossover/CrossoverESUNDX.java b/src/eva2/server/go/operators/crossover/CrossoverESUNDX.java index c3fba0a3..dbde0a7c 100644 --- a/src/eva2/server/go/operators/crossover/CrossoverESUNDX.java +++ b/src/eva2/server/go/operators/crossover/CrossoverESUNDX.java @@ -277,7 +277,7 @@ public class CrossoverESUNDX implements InterfaceCrossover, java.io.Serializable /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "This is the Unimodal Normally Distributed crossover (UNDX), typically use more than two parents."; } public void setEta(double a) { diff --git a/src/eva2/server/go/operators/crossover/CrossoverESUniformDiscrete.java b/src/eva2/server/go/operators/crossover/CrossoverESUniformDiscrete.java index 41dd928b..3ef07f4d 100644 --- a/src/eva2/server/go/operators/crossover/CrossoverESUniformDiscrete.java +++ b/src/eva2/server/go/operators/crossover/CrossoverESUniformDiscrete.java @@ -113,7 +113,7 @@ public class CrossoverESUniformDiscrete implements InterfaceCrossover, java.io.S /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "This is a discrete n-point crossover between m ES individuals."; } } diff --git a/src/eva2/server/go/operators/crossover/CrossoverGABitSimulated.java b/src/eva2/server/go/operators/crossover/CrossoverGABitSimulated.java index 510550d4..96a36445 100644 --- a/src/eva2/server/go/operators/crossover/CrossoverGABitSimulated.java +++ b/src/eva2/server/go/operators/crossover/CrossoverGABitSimulated.java @@ -114,7 +114,7 @@ public class CrossoverGABitSimulated implements InterfaceCrossover, java.io.Seri /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "This is a bit simulated crossover between m individuals."; } } diff --git a/src/eva2/server/go/operators/crossover/CrossoverGADefault.java b/src/eva2/server/go/operators/crossover/CrossoverGADefault.java index 65ebd093..b05286fd 100644 --- a/src/eva2/server/go/operators/crossover/CrossoverGADefault.java +++ b/src/eva2/server/go/operators/crossover/CrossoverGADefault.java @@ -141,7 +141,7 @@ public class CrossoverGADefault implements InterfaceCrossover, * * @return description */ - public String globalInfo() { + public static String globalInfo() { return "This is a one-point crossover between two individuals."; } } diff --git a/src/eva2/server/go/operators/crossover/CrossoverGANPoint.java b/src/eva2/server/go/operators/crossover/CrossoverGANPoint.java index 4b8bcea8..74dd0caf 100644 --- a/src/eva2/server/go/operators/crossover/CrossoverGANPoint.java +++ b/src/eva2/server/go/operators/crossover/CrossoverGANPoint.java @@ -128,7 +128,7 @@ public class CrossoverGANPoint implements InterfaceCrossover, java.io.Serializab /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "This is an n-point crossover between m individuals."; } diff --git a/src/eva2/server/go/operators/crossover/CrossoverGAUniform.java b/src/eva2/server/go/operators/crossover/CrossoverGAUniform.java index 5fce14ad..ad011669 100644 --- a/src/eva2/server/go/operators/crossover/CrossoverGAUniform.java +++ b/src/eva2/server/go/operators/crossover/CrossoverGAUniform.java @@ -112,7 +112,7 @@ public class CrossoverGAUniform implements InterfaceCrossover, java.io.Serializa /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "This is a uniform crossover between m individuals."; } } diff --git a/src/eva2/server/go/operators/crossover/CrossoverGIDefault.java b/src/eva2/server/go/operators/crossover/CrossoverGIDefault.java index 04a02b12..6edee2ce 100644 --- a/src/eva2/server/go/operators/crossover/CrossoverGIDefault.java +++ b/src/eva2/server/go/operators/crossover/CrossoverGIDefault.java @@ -119,7 +119,7 @@ public class CrossoverGIDefault implements InterfaceCrossover, java.io.Serializa /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "This is a discrete one-point crossover between m GI individuals."; } } diff --git a/src/eva2/server/go/operators/crossover/CrossoverGINPoint.java b/src/eva2/server/go/operators/crossover/CrossoverGINPoint.java index cd45ca2a..2a8b344a 100644 --- a/src/eva2/server/go/operators/crossover/CrossoverGINPoint.java +++ b/src/eva2/server/go/operators/crossover/CrossoverGINPoint.java @@ -125,7 +125,7 @@ public class CrossoverGINPoint implements InterfaceCrossover, java.io.Serializab /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "This is an n-point crossover between m individuals."; } diff --git a/src/eva2/server/go/operators/crossover/CrossoverGINPointVL.java b/src/eva2/server/go/operators/crossover/CrossoverGINPointVL.java index a54c4bf0..726f86c2 100644 --- a/src/eva2/server/go/operators/crossover/CrossoverGINPointVL.java +++ b/src/eva2/server/go/operators/crossover/CrossoverGINPointVL.java @@ -184,7 +184,7 @@ public class CrossoverGINPointVL implements InterfaceCrossover, java.io.Serializ /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "This is a variable length n-point crossover between m individuals."; } diff --git a/src/eva2/server/go/operators/crossover/CrossoverGIUniform.java b/src/eva2/server/go/operators/crossover/CrossoverGIUniform.java index 31eada1a..c4b60ead 100644 --- a/src/eva2/server/go/operators/crossover/CrossoverGIUniform.java +++ b/src/eva2/server/go/operators/crossover/CrossoverGIUniform.java @@ -116,7 +116,7 @@ public class CrossoverGIUniform implements InterfaceCrossover, java.io.Serializa /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "This is a uniform crossover between m individuals."; } } \ No newline at end of file diff --git a/src/eva2/server/go/operators/crossover/CrossoverGPDefault.java b/src/eva2/server/go/operators/crossover/CrossoverGPDefault.java index 09a8a965..2b5c6f7d 100644 --- a/src/eva2/server/go/operators/crossover/CrossoverGPDefault.java +++ b/src/eva2/server/go/operators/crossover/CrossoverGPDefault.java @@ -120,7 +120,7 @@ public class CrossoverGPDefault implements InterfaceCrossover, java.io.Serializa /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "This is a one-point crossover between two programs."; } } diff --git a/src/eva2/server/go/operators/crossover/CrossoverOBGAPMX.java b/src/eva2/server/go/operators/crossover/CrossoverOBGAPMX.java index c2ba6a37..cc602697 100644 --- a/src/eva2/server/go/operators/crossover/CrossoverOBGAPMX.java +++ b/src/eva2/server/go/operators/crossover/CrossoverOBGAPMX.java @@ -107,7 +107,7 @@ public class CrossoverOBGAPMX implements InterfaceCrossover, java.io.Serializabl /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "The infamous PMX crossover for Permutations."; } diff --git a/src/eva2/server/go/operators/crossover/CrossoverOBGAPMXUniform.java b/src/eva2/server/go/operators/crossover/CrossoverOBGAPMXUniform.java index c93d366b..8795e08d 100644 --- a/src/eva2/server/go/operators/crossover/CrossoverOBGAPMXUniform.java +++ b/src/eva2/server/go/operators/crossover/CrossoverOBGAPMXUniform.java @@ -103,7 +103,7 @@ public class CrossoverOBGAPMXUniform implements InterfaceCrossover, java.io.Seri /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "The infamous PMX uniform crossover for Permutations."; } diff --git a/src/eva2/server/go/operators/crossover/NoCrossover.java b/src/eva2/server/go/operators/crossover/NoCrossover.java index d8143dfb..a844d148 100644 --- a/src/eva2/server/go/operators/crossover/NoCrossover.java +++ b/src/eva2/server/go/operators/crossover/NoCrossover.java @@ -84,7 +84,7 @@ public class NoCrossover implements InterfaceCrossover, java.io.Serializable { /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "No crossover at all, even for occasional strategy paramters."; } } \ No newline at end of file diff --git a/src/eva2/server/go/operators/distancemetric/EuclideanMetric.java b/src/eva2/server/go/operators/distancemetric/EuclideanMetric.java index 550dc4af..83631361 100644 --- a/src/eva2/server/go/operators/distancemetric/EuclideanMetric.java +++ b/src/eva2/server/go/operators/distancemetric/EuclideanMetric.java @@ -76,7 +76,7 @@ public class EuclideanMetric implements InterfaceDistanceMetric { /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "The euclidean metric calculates euclidian distances for individuals which have a real valued interpretation."; } /** This method will return a naming String diff --git a/src/eva2/server/go/operators/distancemetric/GenotypeMetricBitSet.java b/src/eva2/server/go/operators/distancemetric/GenotypeMetricBitSet.java index 964e1f78..6a5d2b93 100644 --- a/src/eva2/server/go/operators/distancemetric/GenotypeMetricBitSet.java +++ b/src/eva2/server/go/operators/distancemetric/GenotypeMetricBitSet.java @@ -56,7 +56,7 @@ public class GenotypeMetricBitSet implements InterfaceDistanceMetric, java.io.Se /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "This is a genotype based distance metric suited for binary data. The hamming distance is computed and normalized by chromosome length."; } /** This method will return a naming String diff --git a/src/eva2/server/go/operators/distancemetric/IndividualDataMetric.java b/src/eva2/server/go/operators/distancemetric/IndividualDataMetric.java index 08c86ac4..a2665c1e 100644 --- a/src/eva2/server/go/operators/distancemetric/IndividualDataMetric.java +++ b/src/eva2/server/go/operators/distancemetric/IndividualDataMetric.java @@ -75,7 +75,7 @@ public class IndividualDataMetric implements InterfaceDistanceMetric, Serializab this.normedDistance = normedDistance; } - public String globalInfo() { + public static String globalInfo() { return "Uses individual object data (so far only double[]) to calculate the distance."; } } diff --git a/src/eva2/server/go/operators/distancemetric/ObjectiveSpaceMetric.java b/src/eva2/server/go/operators/distancemetric/ObjectiveSpaceMetric.java index 894e83d7..4c099171 100644 --- a/src/eva2/server/go/operators/distancemetric/ObjectiveSpaceMetric.java +++ b/src/eva2/server/go/operators/distancemetric/ObjectiveSpaceMetric.java @@ -47,7 +47,7 @@ public class ObjectiveSpaceMetric implements InterfaceDistanceMetric, java.io.Se /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "The objective space metric calculates euclidian distances on the fitness vectors."; } /** This method will return a naming String diff --git a/src/eva2/server/go/operators/distancemetric/PhenotypeMetric.java b/src/eva2/server/go/operators/distancemetric/PhenotypeMetric.java index 7cd46e08..470cf1bd 100644 --- a/src/eva2/server/go/operators/distancemetric/PhenotypeMetric.java +++ b/src/eva2/server/go/operators/distancemetric/PhenotypeMetric.java @@ -206,7 +206,7 @@ public class PhenotypeMetric implements InterfaceDistanceMetric, java.io.Seriali /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "This is a phenotype based metric which can be applied to binary, integer, double, permutation, and program data types. For the latter two, the Levenshtein distance is computed. All distance values are normed."; } /** This method will return a naming String diff --git a/src/eva2/server/go/operators/distancemetric/SigmaSingleMetricGlobalMutation.java b/src/eva2/server/go/operators/distancemetric/SigmaSingleMetricGlobalMutation.java index 689bc168..eabf9f05 100644 --- a/src/eva2/server/go/operators/distancemetric/SigmaSingleMetricGlobalMutation.java +++ b/src/eva2/server/go/operators/distancemetric/SigmaSingleMetricGlobalMutation.java @@ -63,7 +63,7 @@ public class SigmaSingleMetricGlobalMutation implements InterfaceDistanceMetric, /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "This is an experimental method for individuals using global ES mutation."; } /** This method will return a naming String diff --git a/src/eva2/server/go/operators/fitnessmodifier/FitnessAdaptiveClustering.java b/src/eva2/server/go/operators/fitnessmodifier/FitnessAdaptiveClustering.java index 8df06e87..4ab48dea 100644 --- a/src/eva2/server/go/operators/fitnessmodifier/FitnessAdaptiveClustering.java +++ b/src/eva2/server/go/operators/fitnessmodifier/FitnessAdaptiveClustering.java @@ -65,7 +65,7 @@ public class FitnessAdaptiveClustering implements java.io.Serializable, Interfac /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "This is a normation method based on Fitness Sharing. It adds a penalty for too similar individuals on the standard Normation method."; } diff --git a/src/eva2/server/go/operators/fitnessmodifier/FitnessModifierNone.java b/src/eva2/server/go/operators/fitnessmodifier/FitnessModifierNone.java index 255c2be5..53b1407a 100644 --- a/src/eva2/server/go/operators/fitnessmodifier/FitnessModifierNone.java +++ b/src/eva2/server/go/operators/fitnessmodifier/FitnessModifierNone.java @@ -35,7 +35,7 @@ public class FitnessModifierNone implements java.io.Serializable, InterfaceFitne /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "With this method the fitness remains unaltered."; } } diff --git a/src/eva2/server/go/operators/fitnessmodifier/FitnessSharing.java b/src/eva2/server/go/operators/fitnessmodifier/FitnessSharing.java index f69cfc58..3027d1c0 100644 --- a/src/eva2/server/go/operators/fitnessmodifier/FitnessSharing.java +++ b/src/eva2/server/go/operators/fitnessmodifier/FitnessSharing.java @@ -68,7 +68,7 @@ public class FitnessSharing implements java.io.Serializable, InterfaceFitnessMod /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "This is a normation method based on Fitness Sharing. It adds a penalty for too similar individuals on the standard Normation method."; } diff --git a/src/eva2/server/go/operators/migration/MOBestMigration.java b/src/eva2/server/go/operators/migration/MOBestMigration.java index b389e814..ae7ab27a 100644 --- a/src/eva2/server/go/operators/migration/MOBestMigration.java +++ b/src/eva2/server/go/operators/migration/MOBestMigration.java @@ -80,7 +80,7 @@ public class MOBestMigration implements InterfaceMigration, java.io.Serializable /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "This is multi-objective migration scheme."; } /** This method will return a naming String diff --git a/src/eva2/server/go/operators/migration/MOClusteringSeparation.java b/src/eva2/server/go/operators/migration/MOClusteringSeparation.java index 4b85a8ed..a10aff4d 100644 --- a/src/eva2/server/go/operators/migration/MOClusteringSeparation.java +++ b/src/eva2/server/go/operators/migration/MOClusteringSeparation.java @@ -348,7 +348,7 @@ public class MOClusteringSeparation implements InterfaceMigration, java.io.Seria /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "This is migration scheme, which implements a clustering based partitioning."; } /** This method will return a naming String diff --git a/src/eva2/server/go/operators/migration/MOConeSeparation.java b/src/eva2/server/go/operators/migration/MOConeSeparation.java index 75355900..646fb9f4 100644 --- a/src/eva2/server/go/operators/migration/MOConeSeparation.java +++ b/src/eva2/server/go/operators/migration/MOConeSeparation.java @@ -717,7 +717,7 @@ public class MOConeSeparation implements InterfaceMigration, java.io.Serializabl /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "This is migration scheme, which implements a cone separation based partitioning."; } /** This method will return a naming String diff --git a/src/eva2/server/go/operators/migration/MOXMeansSeparation.java b/src/eva2/server/go/operators/migration/MOXMeansSeparation.java index d0d593c7..99c06378 100644 --- a/src/eva2/server/go/operators/migration/MOXMeansSeparation.java +++ b/src/eva2/server/go/operators/migration/MOXMeansSeparation.java @@ -350,7 +350,7 @@ public class MOXMeansSeparation implements InterfaceMigration, java.io.Serializa /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "This is migration scheme, which implements a clustering based partitioning."; } /** This method will return a naming String diff --git a/src/eva2/server/go/operators/migration/SOBestMigration.java b/src/eva2/server/go/operators/migration/SOBestMigration.java index 8c7bae1d..b19abde5 100644 --- a/src/eva2/server/go/operators/migration/SOBestMigration.java +++ b/src/eva2/server/go/operators/migration/SOBestMigration.java @@ -77,7 +77,7 @@ public class SOBestMigration implements InterfaceMigration, java.io.Serializable /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "This is a single-objective migration scheme."; } /** This method will return a naming String diff --git a/src/eva2/server/go/operators/migration/SOMONoMigration.java b/src/eva2/server/go/operators/migration/SOMONoMigration.java index 08be7425..f6332452 100644 --- a/src/eva2/server/go/operators/migration/SOMONoMigration.java +++ b/src/eva2/server/go/operators/migration/SOMONoMigration.java @@ -47,7 +47,7 @@ public class SOMONoMigration implements InterfaceMigration, java.io.Serializable /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "This is actually no mirgation scheme, because no individuals are exchanged."; } /** This method will return a naming String diff --git a/src/eva2/server/go/operators/moso/MOSODynamicallyWeightedFitness.java b/src/eva2/server/go/operators/moso/MOSODynamicallyWeightedFitness.java index 1e64302b..8ccbaae8 100644 --- a/src/eva2/server/go/operators/moso/MOSODynamicallyWeightedFitness.java +++ b/src/eva2/server/go/operators/moso/MOSODynamicallyWeightedFitness.java @@ -94,7 +94,7 @@ public class MOSODynamicallyWeightedFitness implements InterfaceMOSOConverter, j /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "This method calcuates a dynamic weighted sum over TWO fitness values depending on the current generation."; } diff --git a/src/eva2/server/go/operators/moso/MOSOEpsilonConstraint.java b/src/eva2/server/go/operators/moso/MOSOEpsilonConstraint.java index 3c609c59..23620fa9 100644 --- a/src/eva2/server/go/operators/moso/MOSOEpsilonConstraint.java +++ b/src/eva2/server/go/operators/moso/MOSOEpsilonConstraint.java @@ -104,7 +104,7 @@ public class MOSOEpsilonConstraint implements InterfaceMOSOConverter, java.io.Se /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "This method uses n-1 objected as hard constraints."; } diff --git a/src/eva2/server/go/operators/moso/MOSOEpsilonThreshold.java b/src/eva2/server/go/operators/moso/MOSOEpsilonThreshold.java index 1b60e2ea..e340f820 100644 --- a/src/eva2/server/go/operators/moso/MOSOEpsilonThreshold.java +++ b/src/eva2/server/go/operators/moso/MOSOEpsilonThreshold.java @@ -126,7 +126,7 @@ public class MOSOEpsilonThreshold implements InterfaceMOSOConverter, java.io.Ser /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "This method uses n-1 objected as soft constraints."; } diff --git a/src/eva2/server/go/operators/moso/MOSOGoalProgramming.java b/src/eva2/server/go/operators/moso/MOSOGoalProgramming.java index 42a870d7..9e5e03f0 100644 --- a/src/eva2/server/go/operators/moso/MOSOGoalProgramming.java +++ b/src/eva2/server/go/operators/moso/MOSOGoalProgramming.java @@ -93,7 +93,7 @@ public class MOSOGoalProgramming implements InterfaceMOSOConverter, java.io.Seri /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "This method minimizes the delta to a given target fitness values."; } diff --git a/src/eva2/server/go/operators/moso/MOSOLpMetric.java b/src/eva2/server/go/operators/moso/MOSOLpMetric.java index 78fc5b4b..3b3dab70 100644 --- a/src/eva2/server/go/operators/moso/MOSOLpMetric.java +++ b/src/eva2/server/go/operators/moso/MOSOLpMetric.java @@ -115,7 +115,7 @@ public class MOSOLpMetric implements InterfaceMOSOConverter, java.io.Serializabl /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "This method minimizes the Lp metric to a given target fitness values, for (p<1) this equals the Tchebycheff metric."; } diff --git a/src/eva2/server/go/operators/moso/MOSOMOGARankBased.java b/src/eva2/server/go/operators/moso/MOSOMOGARankBased.java index 00a6beee..2a761386 100644 --- a/src/eva2/server/go/operators/moso/MOSOMOGARankBased.java +++ b/src/eva2/server/go/operators/moso/MOSOMOGARankBased.java @@ -92,7 +92,7 @@ public class MOSOMOGARankBased implements InterfaceMOSOConverter, java.io.Serial /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "This method calcuates the MOGA rank of each individual and uses the rank as fitness [Fonseca93Genetic]."; } } \ No newline at end of file diff --git a/src/eva2/server/go/operators/moso/MOSOMaxiMin.java b/src/eva2/server/go/operators/moso/MOSOMaxiMin.java index d939a555..1c074a50 100644 --- a/src/eva2/server/go/operators/moso/MOSOMaxiMin.java +++ b/src/eva2/server/go/operators/moso/MOSOMaxiMin.java @@ -144,7 +144,7 @@ public class MOSOMaxiMin implements InterfaceMOSOConverter, java.io.Serializable /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "This method calculate the maximum of minimum distance over all criterias over all individuals."; } // /** This method allows you to choose the ScalingFactor for diff --git a/src/eva2/server/go/operators/moso/MOSONoConvert.java b/src/eva2/server/go/operators/moso/MOSONoConvert.java index 51bd474b..72fd6f29 100644 --- a/src/eva2/server/go/operators/moso/MOSONoConvert.java +++ b/src/eva2/server/go/operators/moso/MOSONoConvert.java @@ -77,7 +77,7 @@ public class MOSONoConvert implements InterfaceMOSOConverter, java.io.Serializab /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "This method leaves everything the same."; } diff --git a/src/eva2/server/go/operators/moso/MOSORandomChoice.java b/src/eva2/server/go/operators/moso/MOSORandomChoice.java index c3daf8b8..101a6297 100644 --- a/src/eva2/server/go/operators/moso/MOSORandomChoice.java +++ b/src/eva2/server/go/operators/moso/MOSORandomChoice.java @@ -84,7 +84,7 @@ public class MOSORandomChoice implements InterfaceMOSOConverter, java.io.Serial /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "This method selects a random fitness value, actually this implements VEGA [Schaffer84Experiments]."; } } \ No newline at end of file diff --git a/src/eva2/server/go/operators/moso/MOSORandomWeight.java b/src/eva2/server/go/operators/moso/MOSORandomWeight.java index 2be33e54..d138931f 100644 --- a/src/eva2/server/go/operators/moso/MOSORandomWeight.java +++ b/src/eva2/server/go/operators/moso/MOSORandomWeight.java @@ -91,7 +91,7 @@ public class MOSORandomWeight implements InterfaceMOSOConverter, java.io.Seriali /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "This method calcuates a randomly weighted sum over all fitness values [Murata95MOGA]."; } } \ No newline at end of file diff --git a/src/eva2/server/go/operators/moso/MOSORankbased.java b/src/eva2/server/go/operators/moso/MOSORankbased.java index 5c92483e..fc380b3a 100644 --- a/src/eva2/server/go/operators/moso/MOSORankbased.java +++ b/src/eva2/server/go/operators/moso/MOSORankbased.java @@ -81,7 +81,7 @@ public class MOSORankbased implements InterfaceMOSOConverter, java.io.Serializab /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "This method calcuates the Pareto rank of each individual and uses the rank as fitness."; } } \ No newline at end of file diff --git a/src/eva2/server/go/operators/moso/MOSOUtilityFunction.java b/src/eva2/server/go/operators/moso/MOSOUtilityFunction.java index 1f8df02e..d49a3088 100644 --- a/src/eva2/server/go/operators/moso/MOSOUtilityFunction.java +++ b/src/eva2/server/go/operators/moso/MOSOUtilityFunction.java @@ -91,7 +91,7 @@ public class MOSOUtilityFunction implements InterfaceMOSOConverter, java.io.Seri /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "This method allows you to progamm an individual utility function."; } diff --git a/src/eva2/server/go/operators/moso/MOSOWeightedFitness.java b/src/eva2/server/go/operators/moso/MOSOWeightedFitness.java index 8e49a27e..80e5f8b3 100644 --- a/src/eva2/server/go/operators/moso/MOSOWeightedFitness.java +++ b/src/eva2/server/go/operators/moso/MOSOWeightedFitness.java @@ -102,7 +102,7 @@ public class MOSOWeightedFitness implements InterfaceMOSOConverter, java.io.Seri /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "This method calcuates the weighted sum over all fitness values."; } diff --git a/src/eva2/server/go/operators/moso/MOSOWeightedLPTchebycheff.java b/src/eva2/server/go/operators/moso/MOSOWeightedLPTchebycheff.java index 526c9b36..0f241651 100644 --- a/src/eva2/server/go/operators/moso/MOSOWeightedLPTchebycheff.java +++ b/src/eva2/server/go/operators/moso/MOSOWeightedLPTchebycheff.java @@ -127,7 +127,7 @@ public class MOSOWeightedLPTchebycheff implements InterfaceMOSOConverter, java.i /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "This method implements the Lp-problem and the Tchebycheff metric, the weighted version is also known as compromise programming."; } diff --git a/src/eva2/server/go/operators/mutation/MutateDefault.java b/src/eva2/server/go/operators/mutation/MutateDefault.java index d235cc69..9e818861 100644 --- a/src/eva2/server/go/operators/mutation/MutateDefault.java +++ b/src/eva2/server/go/operators/mutation/MutateDefault.java @@ -75,7 +75,7 @@ public class MutateDefault implements InterfaceMutation, java.io.Serializable { /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "The default mutation just uses the default method implemented in the individual."; } } diff --git a/src/eva2/server/go/operators/mutation/MutateEAMixer.java b/src/eva2/server/go/operators/mutation/MutateEAMixer.java index 9c0a261f..1644f1bc 100644 --- a/src/eva2/server/go/operators/mutation/MutateEAMixer.java +++ b/src/eva2/server/go/operators/mutation/MutateEAMixer.java @@ -25,7 +25,7 @@ public class MutateEAMixer implements InterfaceMutation, java.io.Serializable { public MutateEAMixer() { InterfaceMutation[] tmpList; - ArrayList mutators = GenericObjectEditor.getClassesFromProperties("eva2.server.go.operators.mutation.InterfaceMutation"); + ArrayList mutators = GenericObjectEditor.getClassesFromProperties(InterfaceMutation.class.getCanonicalName(), null); tmpList = new InterfaceMutation[mutators.size()]; for (int i = 0; i < mutators.size(); i++) { if (((String)mutators.get(i)).equals(this.getClass().getName())) continue; @@ -149,7 +149,7 @@ public class MutateEAMixer implements InterfaceMutation, java.io.Serializable { /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "This mmeta-mutation operator allows you to combine multiple alternative mutation operators."; } diff --git a/src/eva2/server/go/operators/mutation/MutateESCorrVector.java b/src/eva2/server/go/operators/mutation/MutateESCorrVector.java index 888e6de7..14cede99 100644 --- a/src/eva2/server/go/operators/mutation/MutateESCorrVector.java +++ b/src/eva2/server/go/operators/mutation/MutateESCorrVector.java @@ -194,7 +194,7 @@ public class MutateESCorrVector implements InterfaceMutation, java.io.Serializab /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "The correlated vector mutation stores a specific mutation vector per individual."; } diff --git a/src/eva2/server/go/operators/mutation/MutateESCorrolated.java b/src/eva2/server/go/operators/mutation/MutateESCorrolated.java index 9f8e411e..3ceb246c 100644 --- a/src/eva2/server/go/operators/mutation/MutateESCorrolated.java +++ b/src/eva2/server/go/operators/mutation/MutateESCorrolated.java @@ -259,7 +259,7 @@ public class MutateESCorrolated implements InterfaceMutation, java.io.Serializab /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "The local correlated mutation stores n sigmas for each double attribute and n(n-1) alphas."; } diff --git a/src/eva2/server/go/operators/mutation/MutateESCovarianceMatrixAdaption.java b/src/eva2/server/go/operators/mutation/MutateESCovarianceMatrixAdaption.java index 42f06e32..a97134ca 100644 --- a/src/eva2/server/go/operators/mutation/MutateESCovarianceMatrixAdaption.java +++ b/src/eva2/server/go/operators/mutation/MutateESCovarianceMatrixAdaption.java @@ -290,7 +290,7 @@ public class MutateESCovarianceMatrixAdaption implements InterfaceMutation, java /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "This is the most sophisticated CMA mutation."; } diff --git a/src/eva2/server/go/operators/mutation/MutateESFixedStepSize.java b/src/eva2/server/go/operators/mutation/MutateESFixedStepSize.java index 8373614e..4fd6758e 100644 --- a/src/eva2/server/go/operators/mutation/MutateESFixedStepSize.java +++ b/src/eva2/server/go/operators/mutation/MutateESFixedStepSize.java @@ -104,7 +104,7 @@ public class MutateESFixedStepSize implements InterfaceMutation, java.io.Seriali /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "The fixed step size mutation alters all elements with a fixed mutation step size."; } diff --git a/src/eva2/server/go/operators/mutation/MutateESGlobal.java b/src/eva2/server/go/operators/mutation/MutateESGlobal.java index d3038e95..e1a93a9e 100644 --- a/src/eva2/server/go/operators/mutation/MutateESGlobal.java +++ b/src/eva2/server/go/operators/mutation/MutateESGlobal.java @@ -146,7 +146,7 @@ public class MutateESGlobal implements InterfaceMutation, java.io.Serializable { /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "The global mutation stores only one sigma for all double attributes."; } diff --git a/src/eva2/server/go/operators/mutation/MutateESLocal.java b/src/eva2/server/go/operators/mutation/MutateESLocal.java index 8efdef95..1b0101f3 100644 --- a/src/eva2/server/go/operators/mutation/MutateESLocal.java +++ b/src/eva2/server/go/operators/mutation/MutateESLocal.java @@ -187,7 +187,7 @@ public class MutateESLocal implements InterfaceMutation, java.io.Serializable { /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "The local mutation stores n sigmas for each double attribute."; } diff --git a/src/eva2/server/go/operators/mutation/MutateESMainVectorAdaption.java b/src/eva2/server/go/operators/mutation/MutateESMainVectorAdaption.java index 5f7b30ee..7171d0a9 100644 --- a/src/eva2/server/go/operators/mutation/MutateESMainVectorAdaption.java +++ b/src/eva2/server/go/operators/mutation/MutateESMainVectorAdaption.java @@ -209,7 +209,7 @@ public class MutateESMainVectorAdaption implements InterfaceMutation, java.io.Se /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "This is the most sophisticated MVA mutation."; } diff --git a/src/eva2/server/go/operators/mutation/MutateESMutativeStepSizeControl.java b/src/eva2/server/go/operators/mutation/MutateESMutativeStepSizeControl.java index 570717e4..621d1167 100644 --- a/src/eva2/server/go/operators/mutation/MutateESMutativeStepSizeControl.java +++ b/src/eva2/server/go/operators/mutation/MutateESMutativeStepSizeControl.java @@ -131,7 +131,7 @@ public class MutateESMutativeStepSizeControl implements InterfaceMutation, java. /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "The mutative step size control mutation randomly increases/decreases the current step size."; } diff --git a/src/eva2/server/go/operators/mutation/MutateESPathLengthAdaption.java b/src/eva2/server/go/operators/mutation/MutateESPathLengthAdaption.java index 50dd5ca3..4c7bcdd2 100644 --- a/src/eva2/server/go/operators/mutation/MutateESPathLengthAdaption.java +++ b/src/eva2/server/go/operators/mutation/MutateESPathLengthAdaption.java @@ -177,7 +177,7 @@ public class MutateESPathLengthAdaption implements InterfaceMutation, java.io.Se /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "The single step size is controlled using the evolution path."; } diff --git a/src/eva2/server/go/operators/mutation/MutateESStandard.java b/src/eva2/server/go/operators/mutation/MutateESStandard.java index e195dd1c..95e714e8 100644 --- a/src/eva2/server/go/operators/mutation/MutateESStandard.java +++ b/src/eva2/server/go/operators/mutation/MutateESStandard.java @@ -100,7 +100,7 @@ // /** This method returns a global info string // * @return description // */ -// public String globalInfo() { +// public static String globalInfo() { // return "The standard mutation alters all elements of the double attributes with a fixed mutation step size."; // } // diff --git a/src/eva2/server/go/operators/mutation/MutateESSuccessRule.java b/src/eva2/server/go/operators/mutation/MutateESSuccessRule.java index fa588bac..00fa7c04 100644 --- a/src/eva2/server/go/operators/mutation/MutateESSuccessRule.java +++ b/src/eva2/server/go/operators/mutation/MutateESSuccessRule.java @@ -84,7 +84,7 @@ public class MutateESSuccessRule extends MutateESFixedStepSize implements Interf /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "The 1/5 success rule works only together with an ES optimizer."; } diff --git a/src/eva2/server/go/operators/mutation/MutateGAAdaptive.java b/src/eva2/server/go/operators/mutation/MutateGAAdaptive.java index bdc774ee..0ffd0351 100644 --- a/src/eva2/server/go/operators/mutation/MutateGAAdaptive.java +++ b/src/eva2/server/go/operators/mutation/MutateGAAdaptive.java @@ -113,7 +113,7 @@ public class MutateGAAdaptive implements InterfaceMutation, java.io.Serializable /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "The standard mutation switches n bits of the GA genotype."; } diff --git a/src/eva2/server/go/operators/mutation/MutateGAInvertBits.java b/src/eva2/server/go/operators/mutation/MutateGAInvertBits.java index cec2f20c..2536e118 100644 --- a/src/eva2/server/go/operators/mutation/MutateGAInvertBits.java +++ b/src/eva2/server/go/operators/mutation/MutateGAInvertBits.java @@ -112,7 +112,7 @@ public class MutateGAInvertBits implements InterfaceMutation, java.io.Serializab /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "This mutation operator inverts n succesive bits."; } diff --git a/src/eva2/server/go/operators/mutation/MutateGAStandard.java b/src/eva2/server/go/operators/mutation/MutateGAStandard.java index 53d98242..6784ccd2 100644 --- a/src/eva2/server/go/operators/mutation/MutateGAStandard.java +++ b/src/eva2/server/go/operators/mutation/MutateGAStandard.java @@ -102,7 +102,7 @@ public class MutateGAStandard implements InterfaceMutation, java.io.Serializable /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "The standard mutation switches n bits of the GA genotype."; } diff --git a/src/eva2/server/go/operators/mutation/MutateGASwapBits.java b/src/eva2/server/go/operators/mutation/MutateGASwapBits.java index fd6851e1..0d80cc46 100644 --- a/src/eva2/server/go/operators/mutation/MutateGASwapBits.java +++ b/src/eva2/server/go/operators/mutation/MutateGASwapBits.java @@ -108,7 +108,7 @@ public class MutateGASwapBits implements InterfaceMutation, java.io.Serializable /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "This mutation operator swaps n random bits."; } diff --git a/src/eva2/server/go/operators/mutation/MutateGAUniform.java b/src/eva2/server/go/operators/mutation/MutateGAUniform.java index b98f3464..fdbc0590 100644 --- a/src/eva2/server/go/operators/mutation/MutateGAUniform.java +++ b/src/eva2/server/go/operators/mutation/MutateGAUniform.java @@ -91,7 +91,7 @@ public class MutateGAUniform implements InterfaceMutation, Serializable { return "Uniform-GA-Mutation"; } - public String globalInfo() { + public static String globalInfo() { return "Uniform mutation mutates every GA bit with a fixed probability."; } } diff --git a/src/eva2/server/go/operators/mutation/MutateGIInsertDelete.java b/src/eva2/server/go/operators/mutation/MutateGIInsertDelete.java index 2c6de96e..47b91a1e 100644 --- a/src/eva2/server/go/operators/mutation/MutateGIInsertDelete.java +++ b/src/eva2/server/go/operators/mutation/MutateGIInsertDelete.java @@ -139,7 +139,7 @@ public class MutateGIInsertDelete implements InterfaceMutation, java.io.Serializ /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "This mutation operator inserts or adds elements to the array."; } diff --git a/src/eva2/server/go/operators/mutation/MutateGIInvert.java b/src/eva2/server/go/operators/mutation/MutateGIInvert.java index cbde4ae6..c04dea38 100644 --- a/src/eva2/server/go/operators/mutation/MutateGIInvert.java +++ b/src/eva2/server/go/operators/mutation/MutateGIInvert.java @@ -113,7 +113,7 @@ public class MutateGIInvert implements InterfaceMutation, java.io.Serializable { /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "The invert mutation inverts a segment of the int[]."; } diff --git a/src/eva2/server/go/operators/mutation/MutateGINominal.java b/src/eva2/server/go/operators/mutation/MutateGINominal.java index bf819202..d5a1e827 100644 --- a/src/eva2/server/go/operators/mutation/MutateGINominal.java +++ b/src/eva2/server/go/operators/mutation/MutateGINominal.java @@ -103,7 +103,7 @@ public class MutateGINominal implements InterfaceMutation, java.io.Serializable /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "The nominal mutation alters n element of the int attributes completely at random."; } diff --git a/src/eva2/server/go/operators/mutation/MutateGIOrdinal.java b/src/eva2/server/go/operators/mutation/MutateGIOrdinal.java index ceee809b..5752fd09 100644 --- a/src/eva2/server/go/operators/mutation/MutateGIOrdinal.java +++ b/src/eva2/server/go/operators/mutation/MutateGIOrdinal.java @@ -112,7 +112,7 @@ public class MutateGIOrdinal implements InterfaceMutation, java.io.Serializable /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "The ordinal mutation alters n element of the int attributes based on an ordinal ordering."; } diff --git a/src/eva2/server/go/operators/mutation/MutateGITranslocate.java b/src/eva2/server/go/operators/mutation/MutateGITranslocate.java index 82f78bce..28d73621 100644 --- a/src/eva2/server/go/operators/mutation/MutateGITranslocate.java +++ b/src/eva2/server/go/operators/mutation/MutateGITranslocate.java @@ -125,7 +125,7 @@ public class MutateGITranslocate implements InterfaceMutation, java.io.Serializa /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "This mutation translocates a segment of the int[]."; } diff --git a/src/eva2/server/go/operators/mutation/MutateGPAdaptive.java b/src/eva2/server/go/operators/mutation/MutateGPAdaptive.java index ca37a420..43a60a80 100644 --- a/src/eva2/server/go/operators/mutation/MutateGPAdaptive.java +++ b/src/eva2/server/go/operators/mutation/MutateGPAdaptive.java @@ -106,7 +106,7 @@ public class MutateGPAdaptive implements InterfaceMutation, java.io.Serializable /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "This mutation replaces a random node with a new random subtree."; } diff --git a/src/eva2/server/go/operators/mutation/MutateGPSingleNode.java b/src/eva2/server/go/operators/mutation/MutateGPSingleNode.java index c76a7f37..3be49cf8 100644 --- a/src/eva2/server/go/operators/mutation/MutateGPSingleNode.java +++ b/src/eva2/server/go/operators/mutation/MutateGPSingleNode.java @@ -112,7 +112,7 @@ public class MutateGPSingleNode implements InterfaceMutation, java.io.Serializab /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "The node mutation replaces a random node but keeps the descendants."; } } \ No newline at end of file diff --git a/src/eva2/server/go/operators/mutation/MutateOBGAFlip.java b/src/eva2/server/go/operators/mutation/MutateOBGAFlip.java index d5a70aed..53d9867f 100644 --- a/src/eva2/server/go/operators/mutation/MutateOBGAFlip.java +++ b/src/eva2/server/go/operators/mutation/MutateOBGAFlip.java @@ -94,7 +94,7 @@ public class MutateOBGAFlip implements InterfaceMutation, java.io.Serializable { /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "This mutation operators flips edges of the OBGA."; } public int getTimes() { diff --git a/src/eva2/server/go/operators/mutation/MutateOBGAInversion.java b/src/eva2/server/go/operators/mutation/MutateOBGAInversion.java index 3626526e..f690a964 100644 --- a/src/eva2/server/go/operators/mutation/MutateOBGAInversion.java +++ b/src/eva2/server/go/operators/mutation/MutateOBGAInversion.java @@ -91,7 +91,7 @@ public class MutateOBGAInversion implements java.io.Serializable, InterfaceMutat /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "This mutation operators inverts a certain section of the OBGA."; } diff --git a/src/eva2/server/go/operators/mutation/NoMutation.java b/src/eva2/server/go/operators/mutation/NoMutation.java index ca48721d..c785f3e5 100644 --- a/src/eva2/server/go/operators/mutation/NoMutation.java +++ b/src/eva2/server/go/operators/mutation/NoMutation.java @@ -75,7 +75,7 @@ public class NoMutation implements InterfaceMutation, java.io.Serializable { /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "This thing does nothing, really!"; } } \ No newline at end of file diff --git a/src/eva2/server/go/operators/paramcontrol/ConstantParameters.java b/src/eva2/server/go/operators/paramcontrol/ConstantParameters.java index 52f84e8a..f0de7703 100644 --- a/src/eva2/server/go/operators/paramcontrol/ConstantParameters.java +++ b/src/eva2/server/go/operators/paramcontrol/ConstantParameters.java @@ -34,7 +34,7 @@ public class ConstantParameters extends AbstractParameterControl implements Seri public void updateParameters(Object obj) { } - public String globalInfo() { + public static String globalInfo() { return "Parameters will not be changed."; } } diff --git a/src/eva2/server/go/operators/paramcontrol/ExponentialDecayAdaption.java b/src/eva2/server/go/operators/paramcontrol/ExponentialDecayAdaption.java index 7054d8de..eeec26e7 100644 --- a/src/eva2/server/go/operators/paramcontrol/ExponentialDecayAdaption.java +++ b/src/eva2/server/go/operators/paramcontrol/ExponentialDecayAdaption.java @@ -63,7 +63,7 @@ public class ExponentialDecayAdaption implements GenericParamAdaption, Serializa return "Exp. adapt. "+target+" ("+startValue + "/" + halvingTimePerCent + ")"; } - public String globalInfo() { + public static String globalInfo() { return "Exponential decay with a percentual halving time."; } diff --git a/src/eva2/server/go/operators/paramcontrol/LinearParamAdaption.java b/src/eva2/server/go/operators/paramcontrol/LinearParamAdaption.java index 730c23fd..80ff8f2b 100644 --- a/src/eva2/server/go/operators/paramcontrol/LinearParamAdaption.java +++ b/src/eva2/server/go/operators/paramcontrol/LinearParamAdaption.java @@ -40,7 +40,7 @@ public class LinearParamAdaption extends AbstractLinearParamAdaption implements this.target = target; } - public String globalInfo() { + public static String globalInfo() { return "Simple linear parameter adaption."; } } diff --git a/src/eva2/server/go/operators/paramcontrol/NoParamAdaption.java b/src/eva2/server/go/operators/paramcontrol/NoParamAdaption.java index 12daebbf..feaa3e83 100644 --- a/src/eva2/server/go/operators/paramcontrol/NoParamAdaption.java +++ b/src/eva2/server/go/operators/paramcontrol/NoParamAdaption.java @@ -24,7 +24,7 @@ public class NoParamAdaption implements ParamAdaption, Serializable { return null; } - public String globalInfo() { + public static String globalInfo() { return "A dummy implementation which will not change parameters."; } diff --git a/src/eva2/server/go/operators/paramcontrol/PSOActivityFeedbackControl.java b/src/eva2/server/go/operators/paramcontrol/PSOActivityFeedbackControl.java index 6351eabf..a2f6bd56 100644 --- a/src/eva2/server/go/operators/paramcontrol/PSOActivityFeedbackControl.java +++ b/src/eva2/server/go/operators/paramcontrol/PSOActivityFeedbackControl.java @@ -133,7 +133,7 @@ public class PSOActivityFeedbackControl implements ParamAdaption, Serializable { return "The additive change of the inertness in each adaption step."; } - public String globalInfo() { + public static String globalInfo() { return "Controls the inertness factor based on the average velocity."; } diff --git a/src/eva2/server/go/operators/paramcontrol/PSOInertnessAdaption.java b/src/eva2/server/go/operators/paramcontrol/PSOInertnessAdaption.java index 17513b43..9d88d395 100644 --- a/src/eva2/server/go/operators/paramcontrol/PSOInertnessAdaption.java +++ b/src/eva2/server/go/operators/paramcontrol/PSOInertnessAdaption.java @@ -32,7 +32,7 @@ public class PSOInertnessAdaption extends LinearParamAdaption implements Seriali return "End value for the inertness"; } - public String globalInfo() { + public static String globalInfo() { return "Adapt the inertnessOrChi value of PSO."; } } diff --git a/src/eva2/server/go/operators/paramcontrol/ParameterControlManager.java b/src/eva2/server/go/operators/paramcontrol/ParameterControlManager.java index ae965bdd..4fa181ff 100644 --- a/src/eva2/server/go/operators/paramcontrol/ParameterControlManager.java +++ b/src/eva2/server/go/operators/paramcontrol/ParameterControlManager.java @@ -139,7 +139,7 @@ public class ParameterControlManager implements InterfaceParameterControl, Seria this.singleAdapters = singleAdapters; } - public String globalInfo() { + public static String globalInfo() { return "Define a list of dynamically adapted parameters."; } diff --git a/src/eva2/server/go/operators/paretofrontmetrics/MetricD1ApproxParetoFront.java b/src/eva2/server/go/operators/paretofrontmetrics/MetricD1ApproxParetoFront.java index d9bcf4c8..7f95a189 100644 --- a/src/eva2/server/go/operators/paretofrontmetrics/MetricD1ApproxParetoFront.java +++ b/src/eva2/server/go/operators/paretofrontmetrics/MetricD1ApproxParetoFront.java @@ -136,7 +136,7 @@ public class MetricD1ApproxParetoFront implements eva2.server.go.operators.paret /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "This method calculates the mean distance of the approximated set to the true Pareto front."; } diff --git a/src/eva2/server/go/operators/paretofrontmetrics/MetricD1TrueParetoFront.java b/src/eva2/server/go/operators/paretofrontmetrics/MetricD1TrueParetoFront.java index 8de1950c..a5bd447b 100644 --- a/src/eva2/server/go/operators/paretofrontmetrics/MetricD1TrueParetoFront.java +++ b/src/eva2/server/go/operators/paretofrontmetrics/MetricD1TrueParetoFront.java @@ -139,7 +139,7 @@ public class MetricD1TrueParetoFront implements eva2.server.go.operators.paretof /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "This method calculates the mean distance of the true Pareto front to the approximated set."; } diff --git a/src/eva2/server/go/operators/paretofrontmetrics/MetricErrorRatio.java b/src/eva2/server/go/operators/paretofrontmetrics/MetricErrorRatio.java index e13f989f..b12bff16 100644 --- a/src/eva2/server/go/operators/paretofrontmetrics/MetricErrorRatio.java +++ b/src/eva2/server/go/operators/paretofrontmetrics/MetricErrorRatio.java @@ -145,7 +145,7 @@ public class MetricErrorRatio implements eva2.server.go.operators.paretofrontmet /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "This method calculates how many solutions are contained in the reference solution."; } diff --git a/src/eva2/server/go/operators/paretofrontmetrics/MetricMaximumParetoFrontError.java b/src/eva2/server/go/operators/paretofrontmetrics/MetricMaximumParetoFrontError.java index e486f06e..75385171 100644 --- a/src/eva2/server/go/operators/paretofrontmetrics/MetricMaximumParetoFrontError.java +++ b/src/eva2/server/go/operators/paretofrontmetrics/MetricMaximumParetoFrontError.java @@ -135,7 +135,7 @@ public class MetricMaximumParetoFrontError implements eva2.server.go.operators.p /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "This method calculates the maximum distance to the reference."; } diff --git a/src/eva2/server/go/operators/paretofrontmetrics/MetricOverallNonDominatedVectors.java b/src/eva2/server/go/operators/paretofrontmetrics/MetricOverallNonDominatedVectors.java index e847d80e..d41704df 100644 --- a/src/eva2/server/go/operators/paretofrontmetrics/MetricOverallNonDominatedVectors.java +++ b/src/eva2/server/go/operators/paretofrontmetrics/MetricOverallNonDominatedVectors.java @@ -68,7 +68,7 @@ public class MetricOverallNonDominatedVectors implements InterfaceParetoFrontMet /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "Calculating the number of non dominated individuals."; } } \ No newline at end of file diff --git a/src/eva2/server/go/operators/paretofrontmetrics/MetricS.java b/src/eva2/server/go/operators/paretofrontmetrics/MetricS.java index cc7a179e..2a13cb4b 100644 --- a/src/eva2/server/go/operators/paretofrontmetrics/MetricS.java +++ b/src/eva2/server/go/operators/paretofrontmetrics/MetricS.java @@ -214,7 +214,7 @@ public class MetricS implements InterfaceParetoFrontMetric, java.io.Serializable /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "Calculating the hybervolume UNDER the given Pareto-front."; } } \ No newline at end of file diff --git a/src/eva2/server/go/operators/paretofrontmetrics/MetricSWithReference.java b/src/eva2/server/go/operators/paretofrontmetrics/MetricSWithReference.java index 61d1deef..46a5e3b6 100644 --- a/src/eva2/server/go/operators/paretofrontmetrics/MetricSWithReference.java +++ b/src/eva2/server/go/operators/paretofrontmetrics/MetricSWithReference.java @@ -254,7 +254,7 @@ public class MetricSWithReference implements InterfaceParetoFrontMetric, java.io /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "Difference between the current SMetric and the reference SMetric (curSM - refSM)."; } diff --git a/src/eva2/server/go/operators/postprocess/PostProcessParams.java b/src/eva2/server/go/operators/postprocess/PostProcessParams.java index 18d43c39..9a7e3eca 100644 --- a/src/eva2/server/go/operators/postprocess/PostProcessParams.java +++ b/src/eva2/server/go/operators/postprocess/PostProcessParams.java @@ -122,7 +122,7 @@ public class PostProcessParams implements InterfacePostProcessParams, Serializab return "PostProcessing " + (postProcess ? (postProcessSteps + "/" + postProcessClusterSigma) : "off"); } - public String globalInfo() { + public static String globalInfo() { return "Combined clustering and hill-climbing for post-processing of solutions."; } diff --git a/src/eva2/server/go/operators/selection/SelectAll.java b/src/eva2/server/go/operators/selection/SelectAll.java index a88a6c32..3d8733e2 100644 --- a/src/eva2/server/go/operators/selection/SelectAll.java +++ b/src/eva2/server/go/operators/selection/SelectAll.java @@ -95,7 +95,7 @@ public class SelectAll implements InterfaceSelection, java.io.Serializable { /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "This method selects all individuals."; } diff --git a/src/eva2/server/go/operators/selection/SelectBestIndividuals.java b/src/eva2/server/go/operators/selection/SelectBestIndividuals.java index 25b349df..12601a1e 100644 --- a/src/eva2/server/go/operators/selection/SelectBestIndividuals.java +++ b/src/eva2/server/go/operators/selection/SelectBestIndividuals.java @@ -159,7 +159,7 @@ public class SelectBestIndividuals implements InterfaceSelection, java.io.Serial /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "This selection method will select the n-Best individuals." + "This is a single objective selecting method, it will select in respect to a random criterion."; } diff --git a/src/eva2/server/go/operators/selection/SelectBestSingle.java b/src/eva2/server/go/operators/selection/SelectBestSingle.java index 7c7fba8e..049da2b2 100644 --- a/src/eva2/server/go/operators/selection/SelectBestSingle.java +++ b/src/eva2/server/go/operators/selection/SelectBestSingle.java @@ -17,10 +17,15 @@ import eva2.tools.math.RNG; public class SelectBestSingle implements InterfaceSelection, java.io.Serializable { private boolean m_ObeyDebsConstViolationPrinciple = true; + private boolean excludeSelfAsPartner = true; // try to avoid selecting as a mating partner the individual itself - public SelectBestSingle() { + public SelectBestSingle() { } - + + public SelectBestSingle(boolean excludeSelfInPartners) { + this.excludeSelfAsPartner=excludeSelfInPartners; + } + public SelectBestSingle(SelectBestSingle a) { this.m_ObeyDebsConstViolationPrinciple = a.m_ObeyDebsConstViolationPrinciple; } @@ -93,13 +98,14 @@ public class SelectBestSingle implements InterfaceSelection, java.io.Serializabl } /** This method allows you to select >size< partners for a given Individual - * @param dad The already seleceted parent + * @param dad The already selected parent * @param avaiablePartners The mating pool. * @param size The number of partners needed. * @return The selected partners. */ public Population findPartnerFor(AbstractEAIndividual dad, Population avaiablePartners, int size) { - return this.selectFrom(avaiablePartners, size); + if (excludeSelfAsPartner) return this.selectFrom(avaiablePartners.filter(new Population().addToPop(dad)), size); + else return this.selectFrom(avaiablePartners, size); } /********************************************************************************************************************** * These are for GUI @@ -107,7 +113,7 @@ public class SelectBestSingle implements InterfaceSelection, java.io.Serializabl /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "This selection method will select the single Best individual (n-times if necessary)." + "This is a single objective selecting method, it will select in respect to a random criterion."; } @@ -131,4 +137,15 @@ public class SelectBestSingle implements InterfaceSelection, java.io.Serializabl public String obeyDebsConstViolationPrincipleToolTip() { return "Toggle the use of Deb's coonstraint violation principle."; } + + public boolean isExcludeSelfAsPartner() { + return excludeSelfAsPartner; + } + public void setExcludeSelfAsPartner(boolean excludeSelfAsPartner) { + this.excludeSelfAsPartner = excludeSelfAsPartner; + } + public String excludeSelfAsPartnerTipText() { + return "When employed for partner selection, the partners may be allowed to contain the parents itself or not."; + } } + diff --git a/src/eva2/server/go/operators/selection/SelectEPTournaments.java b/src/eva2/server/go/operators/selection/SelectEPTournaments.java index 142de166..85067198 100644 --- a/src/eva2/server/go/operators/selection/SelectEPTournaments.java +++ b/src/eva2/server/go/operators/selection/SelectEPTournaments.java @@ -166,7 +166,7 @@ public class SelectEPTournaments implements InterfaceSelection, java.io.Serializ /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "The EP tournament selection performs a number of tournaments per individual, the winner is assigned a point." + " The individuals with the most points are selected." + " This is a single objective selecting method, it will select in respect to a random criterion."; diff --git a/src/eva2/server/go/operators/selection/SelectHomologousMate.java b/src/eva2/server/go/operators/selection/SelectHomologousMate.java index 2622ee5e..d7ee6d3c 100644 --- a/src/eva2/server/go/operators/selection/SelectHomologousMate.java +++ b/src/eva2/server/go/operators/selection/SelectHomologousMate.java @@ -78,7 +78,7 @@ public class SelectHomologousMate extends SelectTournament implements java.io.Se /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "This selection will select n mates from all individuals within the mating distance (extends Tournament Selection)." + "This is a single objective selecting method, it will select in respect to a random criterion."; } diff --git a/src/eva2/server/go/operators/selection/SelectMOMAIIDominanceCounter.java b/src/eva2/server/go/operators/selection/SelectMOMAIIDominanceCounter.java index b357bb3a..a198d467 100644 --- a/src/eva2/server/go/operators/selection/SelectMOMAIIDominanceCounter.java +++ b/src/eva2/server/go/operators/selection/SelectMOMAIIDominanceCounter.java @@ -113,7 +113,7 @@ public class SelectMOMAIIDominanceCounter implements InterfaceSelection, java.io /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "This selection method only works for MOMA-II, it selects an individual depending on the number of non-dominated solutions."; } /** This method will return a naming String diff --git a/src/eva2/server/go/operators/selection/SelectMOMaxiMin.java b/src/eva2/server/go/operators/selection/SelectMOMaxiMin.java index 6f91f89d..e5ae1a3c 100644 --- a/src/eva2/server/go/operators/selection/SelectMOMaxiMin.java +++ b/src/eva2/server/go/operators/selection/SelectMOMaxiMin.java @@ -83,7 +83,7 @@ public class SelectMOMaxiMin implements InterfaceSelection, java.io.Serializable /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "This selection method will use the MaxiMin criteria to select individuals (use SelectBestIndividuals)."; } /** This method will return a naming String diff --git a/src/eva2/server/go/operators/selection/SelectMONSGAIICrowedTournament.java b/src/eva2/server/go/operators/selection/SelectMONSGAIICrowedTournament.java index 94347354..e6e4a521 100644 --- a/src/eva2/server/go/operators/selection/SelectMONSGAIICrowedTournament.java +++ b/src/eva2/server/go/operators/selection/SelectMONSGAIICrowedTournament.java @@ -150,7 +150,7 @@ public class SelectMONSGAIICrowedTournament implements InterfaceSelection, java. /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "The Crowded Tournament Selection first chooses the better Pareto Front and then the smaller Crowding Distance."; } diff --git a/src/eva2/server/go/operators/selection/SelectMONonDominated.java b/src/eva2/server/go/operators/selection/SelectMONonDominated.java index bd9ce481..48e17a38 100644 --- a/src/eva2/server/go/operators/selection/SelectMONonDominated.java +++ b/src/eva2/server/go/operators/selection/SelectMONonDominated.java @@ -123,7 +123,7 @@ public class SelectMONonDominated implements InterfaceSelection, java.io.Seriali /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "This selection method will select all non-dominated individuals. Therefore the target size of the selection may be exceeded."; } /** This method will return a naming String diff --git a/src/eva2/server/go/operators/selection/SelectMOPESA.java b/src/eva2/server/go/operators/selection/SelectMOPESA.java index 55b6d804..baac8249 100644 --- a/src/eva2/server/go/operators/selection/SelectMOPESA.java +++ b/src/eva2/server/go/operators/selection/SelectMOPESA.java @@ -96,7 +96,7 @@ public class SelectMOPESA implements InterfaceSelection, java.io.Serializable { /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "Performs a binary tournament selection, preferring the individual with the smaller squeezing factor."; } /** This method will return a naming String diff --git a/src/eva2/server/go/operators/selection/SelectMOPESAII.java b/src/eva2/server/go/operators/selection/SelectMOPESAII.java index e6e01c4e..93972577 100644 --- a/src/eva2/server/go/operators/selection/SelectMOPESAII.java +++ b/src/eva2/server/go/operators/selection/SelectMOPESAII.java @@ -133,7 +133,7 @@ public class SelectMOPESAII implements InterfaceSelection, java.io.Serializable /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "Performs a binary tournament selection, preferring the gridbox of smaller squeezing factor and selecting a random individual from the winner box."; } /** This method will return a naming String diff --git a/src/eva2/server/go/operators/selection/SelectMOSPEAII.java b/src/eva2/server/go/operators/selection/SelectMOSPEAII.java index e21092f3..6a0207d5 100644 --- a/src/eva2/server/go/operators/selection/SelectMOSPEAII.java +++ b/src/eva2/server/go/operators/selection/SelectMOSPEAII.java @@ -132,7 +132,7 @@ public class SelectMOSPEAII implements InterfaceSelection, java.io.Serializable /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "This selection method calucates the strength and selects using the strength."; } diff --git a/src/eva2/server/go/operators/selection/SelectParticleWheel.java b/src/eva2/server/go/operators/selection/SelectParticleWheel.java index acd0a3ef..32636b9c 100644 --- a/src/eva2/server/go/operators/selection/SelectParticleWheel.java +++ b/src/eva2/server/go/operators/selection/SelectParticleWheel.java @@ -152,7 +152,7 @@ public class SelectParticleWheel implements InterfaceSelection, java.io.Serializ /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "This method chooses individuals similar to the static roulette wheel. The chance for each individual to be selected depends on the selection probability. The selection probability is 1 for all Individuals with a fitness that is bigger than the midean fitness." + "This is a single objective selecting method, it will select in respect to a random criterion."; } diff --git a/src/eva2/server/go/operators/selection/SelectRandom.java b/src/eva2/server/go/operators/selection/SelectRandom.java index 6d8198a9..ea8bb309 100644 --- a/src/eva2/server/go/operators/selection/SelectRandom.java +++ b/src/eva2/server/go/operators/selection/SelectRandom.java @@ -109,7 +109,7 @@ public class SelectRandom implements InterfaceSelection, java.io.Serializable { /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "This method selects randomly. Therefore, it even works fine on Multiobjective fitness cases."; } diff --git a/src/eva2/server/go/operators/selection/SelectTournament.java b/src/eva2/server/go/operators/selection/SelectTournament.java index da087853..e51b150f 100644 --- a/src/eva2/server/go/operators/selection/SelectTournament.java +++ b/src/eva2/server/go/operators/selection/SelectTournament.java @@ -115,7 +115,7 @@ public class SelectTournament implements InterfaceSelection, java.io.Serializabl /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "The tournament selection compares the raw fitness of n individuals and takes the best." + "This is a single-objective method, it selects with respect to the first criterion in the multi-objective case."; } diff --git a/src/eva2/server/go/operators/selection/SelectXProbRouletteWheel.java b/src/eva2/server/go/operators/selection/SelectXProbRouletteWheel.java index 048ddd61..5ceb6b39 100644 --- a/src/eva2/server/go/operators/selection/SelectXProbRouletteWheel.java +++ b/src/eva2/server/go/operators/selection/SelectXProbRouletteWheel.java @@ -201,7 +201,7 @@ public class SelectXProbRouletteWheel implements InterfaceSelection, java.io.Ser /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "This method chooses individuals similar to the roulette wheel. The chance for each individual to be selected depends on the selection probability." + "This is a single objective selecting method, it select with respect to a random criterion."; } diff --git a/src/eva2/server/go/operators/selection/probability/SelProbBoltzman.java b/src/eva2/server/go/operators/selection/probability/SelProbBoltzman.java index 5b9448d3..f1cfcf1e 100644 --- a/src/eva2/server/go/operators/selection/probability/SelProbBoltzman.java +++ b/src/eva2/server/go/operators/selection/probability/SelProbBoltzman.java @@ -177,7 +177,7 @@ public class SelProbBoltzman extends AbstractSelProb implements java.io.Serializ /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "This is the Boltzman Normation."; } /** This method will return a naming String diff --git a/src/eva2/server/go/operators/selection/probability/SelProbFitnessSharing.java b/src/eva2/server/go/operators/selection/probability/SelProbFitnessSharing.java index 987694d3..a5f84e8c 100644 --- a/src/eva2/server/go/operators/selection/probability/SelProbFitnessSharing.java +++ b/src/eva2/server/go/operators/selection/probability/SelProbFitnessSharing.java @@ -75,7 +75,7 @@ public class SelProbFitnessSharing extends AbstractSelProb implements java.io.Se /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "This is a fitness sharing based normation method."; } /** This method will return a naming String diff --git a/src/eva2/server/go/operators/selection/probability/SelProbInvertByMax.java b/src/eva2/server/go/operators/selection/probability/SelProbInvertByMax.java index b2689dd2..78115034 100644 --- a/src/eva2/server/go/operators/selection/probability/SelProbInvertByMax.java +++ b/src/eva2/server/go/operators/selection/probability/SelProbInvertByMax.java @@ -88,7 +88,7 @@ public class SelProbInvertByMax extends AbstractSelProb { /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "This is a standard normation method inverted by maximum fitness."; } /** This method will return a naming String diff --git a/src/eva2/server/go/operators/selection/probability/SelProbLinearRanking.java b/src/eva2/server/go/operators/selection/probability/SelProbLinearRanking.java index 0d5f3b0c..bac6b630 100644 --- a/src/eva2/server/go/operators/selection/probability/SelProbLinearRanking.java +++ b/src/eva2/server/go/operators/selection/probability/SelProbLinearRanking.java @@ -156,7 +156,7 @@ public class SelProbLinearRanking extends AbstractSelProb implements java.io.Ser /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "This is linear ranking normation."; } /** This method will return a naming String diff --git a/src/eva2/server/go/operators/selection/probability/SelProbNonLinearRanking.java b/src/eva2/server/go/operators/selection/probability/SelProbNonLinearRanking.java index 659aae8f..45351d85 100644 --- a/src/eva2/server/go/operators/selection/probability/SelProbNonLinearRanking.java +++ b/src/eva2/server/go/operators/selection/probability/SelProbNonLinearRanking.java @@ -172,7 +172,7 @@ public class SelProbNonLinearRanking extends AbstractSelProb implements java.io. /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "This is non-linear ranking normation."; } /** This method will return a naming String diff --git a/src/eva2/server/go/operators/selection/probability/SelProbRanking.java b/src/eva2/server/go/operators/selection/probability/SelProbRanking.java index e676a561..3a07d1be 100644 --- a/src/eva2/server/go/operators/selection/probability/SelProbRanking.java +++ b/src/eva2/server/go/operators/selection/probability/SelProbRanking.java @@ -91,7 +91,7 @@ public class SelProbRanking extends AbstractSelProb implements java.io.Serializa /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "This is ranking normation."; } /** This method will return a naming String diff --git a/src/eva2/server/go/operators/selection/probability/SelProbStandard.java b/src/eva2/server/go/operators/selection/probability/SelProbStandard.java index 52c0b699..8fbad51c 100644 --- a/src/eva2/server/go/operators/selection/probability/SelProbStandard.java +++ b/src/eva2/server/go/operators/selection/probability/SelProbStandard.java @@ -96,7 +96,7 @@ public class SelProbStandard extends AbstractSelProb implements java.io.Serializ /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "This is a standard normation method using the exp function."; } /** This method will return a naming String diff --git a/src/eva2/server/go/operators/selection/probability/SelProbStandardScaling.java b/src/eva2/server/go/operators/selection/probability/SelProbStandardScaling.java index 61ef96a7..85861b01 100644 --- a/src/eva2/server/go/operators/selection/probability/SelProbStandardScaling.java +++ b/src/eva2/server/go/operators/selection/probability/SelProbStandardScaling.java @@ -128,7 +128,7 @@ public class SelProbStandardScaling extends AbstractSelProb implements java.io.S /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "This is a standard normation method with scaling."; } /** This method will return a naming String diff --git a/src/eva2/server/go/operators/selection/replacement/ReplaceDeterministicCrowding.java b/src/eva2/server/go/operators/selection/replacement/ReplaceDeterministicCrowding.java index ad6db654..2bc6879d 100644 --- a/src/eva2/server/go/operators/selection/replacement/ReplaceDeterministicCrowding.java +++ b/src/eva2/server/go/operators/selection/replacement/ReplaceDeterministicCrowding.java @@ -53,7 +53,7 @@ public class ReplaceDeterministicCrowding implements InterfaceReplacement, java. /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "This method replaces the most similar parent if better."; } /** This method will return a naming String diff --git a/src/eva2/server/go/operators/selection/replacement/ReplacePreselection.java b/src/eva2/server/go/operators/selection/replacement/ReplacePreselection.java index 4bbcf432..64d0cdc5 100644 --- a/src/eva2/server/go/operators/selection/replacement/ReplacePreselection.java +++ b/src/eva2/server/go/operators/selection/replacement/ReplacePreselection.java @@ -38,7 +38,7 @@ public class ReplacePreselection implements InterfaceReplacement, java.io.Serial /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "This method replaces the worst parent if better."; } /** This method will return a naming String diff --git a/src/eva2/server/go/operators/selection/replacement/ReplaceRandom.java b/src/eva2/server/go/operators/selection/replacement/ReplaceRandom.java index 5c525579..730cb17f 100644 --- a/src/eva2/server/go/operators/selection/replacement/ReplaceRandom.java +++ b/src/eva2/server/go/operators/selection/replacement/ReplaceRandom.java @@ -37,7 +37,7 @@ public class ReplaceRandom implements InterfaceReplacement, java.io.Serializable /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "This method replaces a random individual."; } /** This method will return a naming String diff --git a/src/eva2/server/go/operators/selection/replacement/ReplaceWorst.java b/src/eva2/server/go/operators/selection/replacement/ReplaceWorst.java index 681850d0..8188f553 100644 --- a/src/eva2/server/go/operators/selection/replacement/ReplaceWorst.java +++ b/src/eva2/server/go/operators/selection/replacement/ReplaceWorst.java @@ -38,7 +38,7 @@ public class ReplaceWorst implements InterfaceReplacement, java.io.Serializable /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "This method replaces the worst individual from the population."; } /** This method will return a naming String diff --git a/src/eva2/server/go/operators/selection/replacement/ReplaceWorstParent.java b/src/eva2/server/go/operators/selection/replacement/ReplaceWorstParent.java index c1722d36..bf112a29 100644 --- a/src/eva2/server/go/operators/selection/replacement/ReplaceWorstParent.java +++ b/src/eva2/server/go/operators/selection/replacement/ReplaceWorstParent.java @@ -45,7 +45,7 @@ public class ReplaceWorstParent implements InterfaceReplacement, java.io.Seriali /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "This method replaces the worst parent, if better."; } /** This method will return a naming String diff --git a/src/eva2/server/go/operators/selection/replacement/ReplacementCrowding.java b/src/eva2/server/go/operators/selection/replacement/ReplacementCrowding.java index dafd4a97..a610a6c1 100644 --- a/src/eva2/server/go/operators/selection/replacement/ReplacementCrowding.java +++ b/src/eva2/server/go/operators/selection/replacement/ReplacementCrowding.java @@ -70,7 +70,7 @@ public class ReplacementCrowding implements InterfaceReplacement, java.io.Serial /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "This method replaces the most similar individual from a random group if better."; } /** This method will return a naming String diff --git a/src/eva2/server/go/operators/selection/replacement/ReplacementNondominatedSortingDistanceCrowding.java b/src/eva2/server/go/operators/selection/replacement/ReplacementNondominatedSortingDistanceCrowding.java index 9af18070..0d1699da 100644 --- a/src/eva2/server/go/operators/selection/replacement/ReplacementNondominatedSortingDistanceCrowding.java +++ b/src/eva2/server/go/operators/selection/replacement/ReplacementNondominatedSortingDistanceCrowding.java @@ -66,7 +66,7 @@ public class ReplacementNondominatedSortingDistanceCrowding implements Interface pop.add(indy); Population []store=dummyArchive.getNonDomiatedSortedFronts(pop); - dummyArchive.calculateCrowdingDistance(store);//TODO die für das gesamte Archiv am Stück berechnen und nicht für die Einzelfronten! + dummyArchive.calculateCrowdingDistance(store);//TODO die f�r das gesamte Archiv am St�ck berechnen und nicht f�r die Einzelfronten! for(int i=0;i(sel,dist); } + + + /** + * Check if the given indy is closer than d to any individual in the population. + * @param indy + * @param pop + * @param d + * @return true if d(indy,pop)<=d, else false + */ + public boolean isWithinPopDist(AbstractEAIndividual indy, double d, InterfaceDistanceMetric metric) { + Pair closest = Population.getClosestFarthestIndy(indy, this, metric, true); + return (closest.tail()<=d); + } + /** * Calculate the average position of the population. * @@ -1975,6 +1994,17 @@ public class Population extends ArrayList implements PopulationInterface, Clonea return true; } + /** + * Put an equal data object into every individual. Old data may be overwritten. + * @param key + * @param obj + */ + public void putDataAllIndies(String key, Object obj) { + for (int i=0; i 1) add(m_ObjectChooser, BorderLayout.NORTH); else remove(m_ObjectChooser); diff --git a/src/eva2/server/modules/DEParameters.java b/src/eva2/server/modules/DEParameters.java index 169e5020..26bbd2cd 100644 --- a/src/eva2/server/modules/DEParameters.java +++ b/src/eva2/server/modules/DEParameters.java @@ -59,7 +59,7 @@ public class DEParameters extends AbstractGOParameters implements InterfaceGOPar /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "This is a Differential Evolution optimization method, limit DE to real-valued genotypes."; } diff --git a/src/eva2/server/modules/EPParameters.java b/src/eva2/server/modules/EPParameters.java index 51f1c1eb..9d86fed3 100644 --- a/src/eva2/server/modules/EPParameters.java +++ b/src/eva2/server/modules/EPParameters.java @@ -69,7 +69,7 @@ public class EPParameters extends AbstractGOParameters implements InterfaceGOPar /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "This is a Evolutionary Programming optimization method, limit EP to mutation operators only."; } diff --git a/src/eva2/server/modules/GAParameters.java b/src/eva2/server/modules/GAParameters.java index a3d8ff14..b02b97f1 100644 --- a/src/eva2/server/modules/GAParameters.java +++ b/src/eva2/server/modules/GAParameters.java @@ -65,7 +65,7 @@ public class GAParameters extends AbstractGOParameters implements InterfaceGOPar /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "This is a Genetic Algorithm, which transforms into a GP or GE if the appropriate problem and genotype is used."; } diff --git a/src/eva2/server/modules/GOParameters.java b/src/eva2/server/modules/GOParameters.java index 8527c438..1e9aee4b 100644 --- a/src/eva2/server/modules/GOParameters.java +++ b/src/eva2/server/modules/GOParameters.java @@ -86,7 +86,7 @@ public class GOParameters extends AbstractGOParameters implements InterfaceGOPar /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "Select the optimization parameters."; } } diff --git a/src/eva2/server/modules/HCParameters.java b/src/eva2/server/modules/HCParameters.java index 64cdb4eb..4e8aeea4 100644 --- a/src/eva2/server/modules/HCParameters.java +++ b/src/eva2/server/modules/HCParameters.java @@ -62,7 +62,7 @@ public class HCParameters extends AbstractGOParameters implements InterfaceGOPar /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "This is a Hill-Climber, use a population size > 1 for a Multi-Start Hill-Climber."; } diff --git a/src/eva2/server/modules/MCParameters.java b/src/eva2/server/modules/MCParameters.java index 48e2d31e..3e167131 100644 --- a/src/eva2/server/modules/MCParameters.java +++ b/src/eva2/server/modules/MCParameters.java @@ -64,7 +64,7 @@ public class MCParameters extends AbstractGOParameters implements InterfaceGOPar /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "This is a simple Monte-Carlo Search, use big populations sizes for faster drawing."; } diff --git a/src/eva2/server/modules/MOEAParameters.java b/src/eva2/server/modules/MOEAParameters.java index e053f078..6591e71f 100644 --- a/src/eva2/server/modules/MOEAParameters.java +++ b/src/eva2/server/modules/MOEAParameters.java @@ -58,7 +58,7 @@ public class MOEAParameters extends AbstractGOParameters implements InterfaceGOP /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "This is a multi-objective evoluationary algorithm, limit MOEA to multi-objective problems (due to the given framework only the fitness of objective one will be plotted)."; } diff --git a/src/eva2/server/modules/PBILParameters.java b/src/eva2/server/modules/PBILParameters.java index 93d158fb..6d345d55 100644 --- a/src/eva2/server/modules/PBILParameters.java +++ b/src/eva2/server/modules/PBILParameters.java @@ -51,9 +51,9 @@ public class PBILParameters extends AbstractGOParameters implements InterfaceGOP /** This method returns a global info string * @return description */ - public String globalInfo() { - return ((PopulationBasedIncrementalLearning)this.m_Optimizer).globalInfo(); - } +// public static String globalInfo() { +// return ((PopulationBasedIncrementalLearning)this.m_Optimizer).globalInfo(); +// } public void setOptimizer(InterfaceOptimizer optimizer) { // i'm a Monte Carlo Search Algorithm diff --git a/src/eva2/server/modules/PSOParameters.java b/src/eva2/server/modules/PSOParameters.java index b7e39124..9d4ff572 100644 --- a/src/eva2/server/modules/PSOParameters.java +++ b/src/eva2/server/modules/PSOParameters.java @@ -61,8 +61,8 @@ public class PSOParameters extends AbstractGOParameters implements InterfaceGOPa /** This method returns a global info string * @return description */ - public String globalInfo() { - return ((ParticleSwarmOptimization)m_Optimizer).globalInfo(); + public static String globalInfo() { + return ParticleSwarmOptimization.globalInfo(); } /** diff --git a/src/eva2/server/modules/SAParameters.java b/src/eva2/server/modules/SAParameters.java index d64ae5e9..41881bfc 100644 --- a/src/eva2/server/modules/SAParameters.java +++ b/src/eva2/server/modules/SAParameters.java @@ -70,7 +70,7 @@ public class SAParameters extends AbstractGOParameters implements InterfaceGOPar /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "This is a simple Simulated Annealing algorithm."; } diff --git a/src/eva2/server/modules/SSGAParameters.java b/src/eva2/server/modules/SSGAParameters.java index 2241e7a2..3fe4caf0 100644 --- a/src/eva2/server/modules/SSGAParameters.java +++ b/src/eva2/server/modules/SSGAParameters.java @@ -62,7 +62,7 @@ public class SSGAParameters extends AbstractGOParameters implements InterfaceGOP /** This method returns a global info string * @return description */ - public String globalInfo() { + public static String globalInfo() { return "This is a steady-state GA."; } diff --git a/src/eva2/server/stat/AbstractStatistics.java b/src/eva2/server/stat/AbstractStatistics.java index ff736328..8a45412b 100644 --- a/src/eva2/server/stat/AbstractStatistics.java +++ b/src/eva2/server/stat/AbstractStatistics.java @@ -204,6 +204,8 @@ public abstract class AbstractStatistics implements InterfaceTextListener, Inter public void stopOptPerformed(boolean normal, String stopMessage) { if (TRACE) System.out.println("AbstractStatistics.stopOptPerformed"); + if (lastSols==null) System.err.println("WARNING, possibly there was no call to createNextGenerationPerformed before calling stopOptPerformed (AnstractStatistics)."); + if (runIterCnt < meanCollection.size()) { // no good: later run was shorter than the first one. What to do? Discard the longer one: if (TRACE) System.err.println("Error in AbstractStatistics: later run was shorter than earlier one... discarding rest..."); diff --git a/src/eva2/server/stat/InterfaceStatisticsParameter.java b/src/eva2/server/stat/InterfaceStatisticsParameter.java index 73ac87a5..86c9665f 100644 --- a/src/eva2/server/stat/InterfaceStatisticsParameter.java +++ b/src/eva2/server/stat/InterfaceStatisticsParameter.java @@ -26,7 +26,7 @@ import eva2.tools.StringSelection; public interface InterfaceStatisticsParameter { public String getName(); public void saveInstance(); - public String globalInfo(); +// public String globalInfo(); // public void setTextoutput(int i); public void setPlotoutput(int i); public int GetPlotoutput(); diff --git a/src/eva2/server/stat/StatsParameter.java b/src/eva2/server/stat/StatsParameter.java index 0ecfa750..f4c326a7 100644 --- a/src/eva2/server/stat/StatsParameter.java +++ b/src/eva2/server/stat/StatsParameter.java @@ -172,7 +172,7 @@ public class StatsParameter implements InterfaceStatisticsParameter, Serializabl return m_Name; } - public String globalInfo() { + public static String globalInfo() { return "Configure statistics and output of the optimization run."; }