Killed JavaEvA from comments and ressources, some maths refactored.

This commit is contained in:
Marcel Kronfeld
2008-04-18 14:36:52 +00:00
parent fdbfa5fe85
commit fb20da9657
173 changed files with 918 additions and 2221 deletions

View File

@@ -54,7 +54,7 @@ import eva2.server.modules.GOParameters;
* </p>
* <p>
* On the other hand this class provides an almost complete list of all
* currently available optimization procedures in JavaEvA. The arguments passed
* currently available optimization procedures in EvA2. The arguments passed
* to the methods initialize the respective optimization procedure. To perform
* an optimization one has to do the following: <code>
* InterfaceOptimizer optimizer = OptimizerFactory.createCertainOptimizer(arguments);

View File

@@ -1,6 +1,6 @@
package eva2.gui;
/*
* Title: JavaEvA
* Title: EvA2
* Description:
* Copyright: Copyright (c) 2003
* Company: University of Tuebingen, Computer Architecture

View File

@@ -1,6 +1,6 @@
package eva2.gui;
/*
* Title: JavaEvA
* Title: EvA2
* Description:
* Copyright: Copyright (c) 2003
* Company: University of Tuebingen, Computer Architecture
@@ -37,9 +37,7 @@ public class BigStringEditor implements PropertyEditor {
try {
m_finished=false;
BigStringEditor editor = new BigStringEditor();
//Source so = new Source ("\\javaeva\\server\\problems\\bench\\Problem_f1.java");
// Source so = new Source (file);
// editor.setValue(so);
PropertyDialog frame = new PropertyDialog(editor,file, 50, 50);
//frame.setSize(200, 200);
frame.addWindowListener(new WindowAdapter() {
@@ -189,8 +187,7 @@ public class BigStringEditor implements PropertyEditor {
public static void main (String[] args) {
try {
BigStringEditor editor = new BigStringEditor();
// Source so = new Source ("\\javaeva\\server\\problems\\bench\\Problem_f1.java");
// editor.setValue(so);
PropertyDialog frame = new PropertyDialog(editor, "test", 50, 50);
frame.setSize(200, 200);
frame.addWindowListener(new WindowAdapter() {

View File

@@ -1,6 +1,6 @@
package eva2.gui;
/*
* Title: JavaEvA
* Title: EvA2
* Description:
* Copyright: Copyright (c) 2003
* Company: University of Tuebingen, Computer Architecture

View File

@@ -1,6 +1,6 @@
package eva2.gui;
/*
* Title: JavaEvA
* Title: EvA2
* Description:
* Copyright: Copyright (c) 2003
* Company: University of Tuebingen, Computer Architecture

View File

@@ -1,6 +1,6 @@
package eva2.gui;
/*
* Title: JavaEvA
* Title: EvA2
* Description:
* Copyright: Copyright (c) 2003
* Company: University of Tuebingen, Computer Architecture

View File

@@ -1,6 +1,6 @@
package eva2.gui;
/*
* Title: JavaEvA
* Title: EvA2
* Description:
* Copyright: Copyright (c) 2003
* Company: University of Tuebingen, Computer Architecture

View File

@@ -1,6 +1,6 @@
package eva2.gui;
/*
* Title: JavaEvA
* Title: EvA2
* Description:
* Copyright: Copyright (c) 2003
* Company: University of Tuebingen, Computer Architecture

View File

@@ -1,6 +1,6 @@
package eva2.gui;
/*
* Title: JavaEvA
* Title: EvA2
* Description:
* Copyright: Copyright (c) 2003
* Company: University of Tuebingen, Computer Architecture

View File

@@ -1,6 +1,6 @@
package eva2.gui;
/*
* Title: JavaEvA
* Title: EvA2
* Description:
* Copyright: Copyright (c) 2003
* Company: University of Tuebingen, Computer Architecture

View File

@@ -1,7 +1,7 @@
package eva2.gui;
/*
* Title: JavaEvA
* Title: EvA2
* Description:
* Copyright: Copyright (c) 2003
* Company: University of Tuebingen, Computer Architecture

View File

@@ -1,6 +1,6 @@
package eva2.gui;
/*
* Title: JavaEvA
* Title: EvA2
* Description:
* Copyright: Copyright (c) 2003
* Company: University of Tuebingen, Computer Architecture

View File

@@ -1,6 +1,6 @@
package eva2.gui;
/*
* Title: JavaEvA
* Title: EvA2
* Description:
* Copyright: Copyright (c) 2003
* Company: University of Tuebingen, Computer Architecture

View File

@@ -3,7 +3,7 @@ package eva2.gui;
import java.io.Serializable;
/*
* Title: JavaEvA
* Title: EvA2
* Description:
* Copyright: Copyright (c) 2003
* Company: University of Tuebingen, Computer Architecture

View File

@@ -1,6 +1,6 @@
package eva2.gui;
/*
* Title: JavaEvA
* Title: EvA2
* Description:
* Copyright: Copyright (c) 2003
* Company: University of Tuebingen, Computer Architecture

View File

@@ -1,6 +1,6 @@
package eva2.gui;
/*
* Title: JavaEvA
* Title: EvA2
* Description:
* Copyright: Copyright (c) 2003
* Company: University of Tuebingen, Computer Architecture

View File

@@ -1,6 +1,6 @@
package eva2.gui;
/*
* Title: JavaEvA
* Title: EvA2
* Description:
* Copyright: Copyright (c) 2003
* Company: University of Tuebingen, Computer Architecture

View File

@@ -1,6 +1,6 @@
package eva2.gui;
/*
* Title: JavaEvA
* Title: EvA2
* Description:
* Copyright: Copyright (c) 2003
* Company: University of Tuebingen, Computer Architecture

View File

@@ -1,6 +1,6 @@
package eva2.gui;
/*
* Title: JavaEvA
* Title: EvA2
* Description:
* Copyright: Copyright (c) 2003
* Company: University of Tuebingen, Computer Architecture

View File

@@ -1,6 +1,6 @@
package eva2.gui;
/*
* Title: JavaEvA
* Title: EvA2
* Description:
* Copyright: Copyright (c) 2003
* Company: University of Tuebingen, Computer Architecture
@@ -17,15 +17,6 @@ import java.awt.event.WindowEvent;
import java.awt.event.*;
import java.awt.*;
/**
* Title: The JavaEvA
* Description:
* Copyright: Copyright (c) 2003
* Company:
* @author
* @version 1.0
*/
public class JEFrame extends JFrame {
public JEFrame() {

View File

@@ -1,7 +1,7 @@
package eva2.gui;
import java.util.ArrayList;
/*
* Title: JavaEvA
* Title: EvA2
* Description:
* Copyright: Copyright (c) 2003
* Company: University of Tuebingen, Computer Architecture

View File

@@ -1,6 +1,6 @@
package eva2.gui;
/*
* Title: JavaEvA
* Title: EvA2
* Description:
* Copyright: Copyright (c) 2003
* Company: University of Tuebingen, Computer Architecture

View File

@@ -1,6 +1,6 @@
package eva2.gui;
/*
* Title: JavaEvA
* Title: EvA2
* Description:
* Copyright: Copyright (c) 2003
* Company: University of Tuebingen, Computer Architecture

View File

@@ -1,6 +1,6 @@
package eva2.gui;
/*
* Title: JavaEvA
* Title: EvA2
* Description:
* Copyright: Copyright (c) 2003
* Company: University of Tuebingen, Computer Architecture

View File

@@ -1,6 +1,6 @@
package eva2.gui;
/*
* Title: JavaEvA
* Title: EvA2
* Description:
* Copyright: Copyright (c) 2003
* Company: University of Tuebingen, Computer Architecture

View File

@@ -1,6 +1,6 @@
package eva2.gui;
/*
* Title: JavaEvA
* Title: EvA2
* Description:
* Copyright: Copyright (c) 2003
* Company: University of Tuebingen, Computer Architecture

View File

@@ -1,7 +1,7 @@
package eva2.gui;
/*
* Title: JavaEvA
* Title: EvA2
* Description:
* Copyright: Copyright (c) 2003
* Company: University of Tuebingen, Computer Architecture

View File

@@ -1,6 +1,6 @@
package eva2.gui;
/*
* Title: JavaEvA
* Title: EvA2
* Description:
* Copyright: Copyright (c) 2003
* Company: University of Tuebingen, Computer Architecture

View File

@@ -1,6 +1,6 @@
package eva2.gui;
/*
* Title: JavaEvA
* Title: EvA2
* Description:
* Copyright: Copyright (c) 2003
* Company: University of Tuebingen, Computer Architecture

View File

@@ -1,6 +1,6 @@
package eva2.gui;
/*
* Title: JavaEvA
* Title: EvA2
* Description:
* Copyright: Copyright (c) 2003
* Company: University of Tuebingen, Computer Architecture

View File

@@ -3,7 +3,7 @@ package eva2.gui;
import eva2.server.stat.InterfaceTextListener;
/*
* Title: JavaEvA
* Title: EvA2
* Description:
* Copyright: Copyright (c) 2003
* Company: University of Tuebingen, Computer Architecture

View File

@@ -1,6 +1,6 @@
package eva2.gui;
/*
* Title: JavaEvA
* Title: EvA2
* Description:
* Copyright: Copyright (c) 2003
* Company: University of Tuebingen, Computer Architecture
@@ -112,7 +112,6 @@ public class LogPanel extends JPanel {
frame.pack();
frame.setVisible(true);
panel.logMessage("HI!");
// panel.statusMessage("Hi JavaEvA");
panel.logMessage("Test");
} catch (Exception e) {

View File

@@ -1,10 +1,6 @@
package eva2.gui;
/**
* <p>Title: The JavaEvA</p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2003</p>
* <p>Company: </p>
* @author not attributable
* @version 1.0
*/

View File

@@ -6,7 +6,7 @@ import java.awt.event.*;
/**
* <p>Title: The JavaEvA</p>
* <p>Title: EvA2</p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2003</p>
* <p>Company: </p>

View File

@@ -1,6 +1,6 @@
package eva2.gui;
/*
* Title: JavaEvA
* Title: EvA2
* Description:
* Copyright: Copyright (c) 2003
* Company: University of Tuebingen, Computer Architecture

View File

@@ -1,6 +1,6 @@
package eva2.gui;
/*
* Title: JavaEvA
* Title: EvA2
* Description:
* Copyright: Copyright (c) 2003
* Company: University of Tuebingen, Computer Architecture

View File

@@ -1,6 +1,6 @@
package eva2.gui;
/*
* Title: JavaEvA
* Title: EvA2
* Description:
* Copyright: Copyright (c) 2003
* Company: University of Tuebingen, Computer Architecture

View File

@@ -1,6 +1,6 @@
package eva2.gui;
/*
* Title: JavaEvA
* Title: EvA2
* Description:
* Copyright: Copyright (c) 2003
* Company: University of Tuebingen, Computer Architecture

View File

@@ -1,6 +1,6 @@
package eva2.gui;
/*
* Title: JavaEvA
* Title: EvA2
* Description:
* Copyright: Copyright (c) 2003
* Company: University of Tuebingen, Computer Architecture

View File

@@ -1,6 +1,5 @@
package eva2.gui;
//import javaeva.tools.ServerStarter;
import java.rmi.Naming;
import java.util.ArrayList;

View File

@@ -1,6 +1,6 @@
package eva2.gui;
/*
* Title: JavaEvA
* Title: EvA2
* Description:
* Copyright: Copyright (c) 2003
* Company: University of Tuebingen, Computer Architecture

View File

@@ -1,6 +1,6 @@
package eva2.gui;
/*
* Title: JavaEvA
* Title: EvA2
* Description:
* Copyright: Copyright (c) 2003
* Company: University of Tuebingen, Computer Architecture

View File

@@ -1,6 +1,6 @@
package eva2.gui;
/*
* Title: JavaEvA
* Title: EvA2
* Description:
* Copyright: Copyright (c) 2003
* Company: University of Tuebingen, Computer Architecture

View File

@@ -1,6 +1,6 @@
package eva2.gui;
/*
* Title: JavaEvA
* Title: EvA2
* Description:
* Copyright: Copyright (c) 2003
* Company: University of Tuebingen, Computer Architecture

View File

@@ -1,6 +1,6 @@
package eva2.gui;
/*
* Title: JavaEvA
* Title: EvA2
* Description:
* Copyright: Copyright (c) 2003
* Company: University of Tuebingen, Computer Architecture

View File

@@ -1,6 +1,6 @@
package eva2.gui;
/*
* Title: JavaEvA
* Title: EvA2
* Description:
* Copyright: Copyright (c) 2003
* Company: University of Tuebingen, Computer Architecture

View File

@@ -1,6 +1,6 @@
package eva2.gui;
/*
* Title: JavaEvA
* Title: EvA2
* Description:
* Copyright: Copyright (c) 2003
* Company: University of Tuebingen, Computer Architecture

View File

@@ -1,6 +1,6 @@
package eva2.gui;
/*
* Title: JavaEvA
* Title: EvA2
* Description:
* Copyright: Copyright (c) 2003
* Company: University of Tuebingen, Computer Architecture

View File

@@ -1,6 +1,6 @@
package eva2.gui;
/*
* Title: JavaEvA
* Title: EvA2
* Description:
* Copyright: Copyright (c) 2003
* Company: University of Tuebingen, Computer Architecture

View File

@@ -1,6 +1,6 @@
package eva2.gui;
/*
* Title: JavaEvA
* Title: EvA2
* Description:
* Copyright: Copyright (c) 2003
* Company: University of Tuebingen, Computer Architecture

View File

@@ -1,67 +0,0 @@
package eva2.gui;
//package javaeva.gui;
///*==========================================================================*
// * IMPORTS
// *==========================================================================*/
//import javaeva.client.EvAClient;
//import javax.swing.event.InternalFrameListener;
//import javax.swing.event.InternalFrameEvent;
//import javax.swing.JOptionPane;
//import java.awt.event.ActionEvent;
///*==========================================================================*
//* CLASS DECLARATION
//*==========================================================================*/
///**
// *
// */
//public class WindowCloseAction extends ExtAction implements InternalFrameListener{
// private EvAClient m_App;
// /**
// *
// */
// public WindowCloseAction(String s,String toolTip,EvAClient App){
// super(s, toolTip);
// m_App = App;
// }
// /**
// *
// */
// private void close(JDocFrame f){
// if(f == null) return;
// boolean doClose = false;
// if(f.isChanged()){
// switch(JOptionPane.showConfirmDialog(m_App.getDesktop(), "M<>chten Sie die <20>nderungen an "
// + f.getTitle() + " speichern?", "Frage", JOptionPane.YES_NO_CANCEL_OPTION)){
// case JOptionPane.YES_OPTION:
// System.out.println(f.getTitle() + " geschlossen, <20>nderungen gespeichert.");
// doClose = true;
// break;
// case JOptionPane.NO_OPTION:
// doClose = true;
// break;
// case JOptionPane.CANCEL_OPTION:;
// }
// }
// else
// doClose = true;
// if(doClose) f.dispose();
// }
// /**
// *
// */
// public void actionPerformed(ActionEvent e){
// close((JDocFrame)((ExtDesktopManager)m_App.getDesktop().getDesktopManager()).getActiveFrame());
// }
// public void internalFrameOpened(InternalFrameEvent e){}
// public void internalFrameClosed(InternalFrameEvent e){}
// public void internalFrameIconified(InternalFrameEvent e){}
// public void internalFrameDeiconified(InternalFrameEvent e){}
// public void internalFrameActivated(InternalFrameEvent e){}
// public void internalFrameDeactivated(InternalFrameEvent e){}
// /**
// *
// */
// public void internalFrameClosing(InternalFrameEvent e){
// close((JDocFrame)e.getSource());
// }
//}

View File

@@ -1,6 +1,6 @@
package eva2.server;
/**
* Title: javaeva
* Title: EvA2
* Description: API for distributed and parallel computing.
* Copyright: Copyright (c) 2004
* Company: University of Tuebingen

View File

@@ -1,6 +1,6 @@
package eva2.server;
/*
* Title: JavaEvA
* Title: EvA2
* Description:
* Copyright: Copyright (c) 2003
* Company: University of Tuebingen, Computer Architecture

View File

@@ -1,7 +1,7 @@
package eva2.server;
/*
* Title: JavaEvA
* Title: EvA2
* Description:
* Copyright: Copyright (c) 2003
* Company: University of Tuebingen, Computer Architecture

View File

@@ -1,6 +1,6 @@
package eva2.server.go;
/*
* Title: JavaEvA
* Title: EvA2
* Description:
* Copyright: Copyright (c) 2003
* Company: University of Tuebingen, Computer Architecture

View File

@@ -1,6 +1,6 @@
package eva2.server.go;
/*
* Title: JavaEvA
* Title: EvA2
* Description:
* Copyright: Copyright (c) 2003
* Company: University of Tuebingen, Computer Architecture

View File

@@ -3,7 +3,7 @@ package eva2.server.go;
import wsi.ra.jproxy.RemoteStateListener;
/*
* Title: JavaEvA
* Title: EvA2
* Description:
* Copyright: Copyright (c) 2003
* Company: University of Tuebingen, Computer Architecture

View File

@@ -1,6 +1,6 @@
package eva2.server.go;
/*
* Title: JavaEvA
* Title: EvA2
* Description:
* Copyright: Copyright (c) 2003
* Company: University of Tuebingen, Computer Architecture

View File

@@ -1,24 +0,0 @@
package eva2.server.go;
/*
* Title: JavaEvA
* Description:
* Copyright: Copyright (c) 2003
* Company: University of Tuebingen, Computer Architecture
* @author Holger Ulmer, Felix Streichert, Hannes Planatscher
* @version: $Revision: 306 $
* $Date: 2007-12-04 14:22:52 +0100 (Tue, 04 Dec 2007) $
* $Author: mkron $
*/
/*==========================================================================*
* IMPORTS
*==========================================================================*/
import eva2.server.stat.InterfaceStatistics;
/*==========================================================================*
* INTERFACE DECLARATION
*==========================================================================*/
/**
*
*/
public interface MutationInterface {
public void addStatisticsListner(InterfaceStatistics e);
}

View File

@@ -1,7 +1,7 @@
package eva2.server.go;
/*
* Title: JavaEvA
* Title: EvA2
* Description:
* Copyright: Copyright (c) 2003
* Company: University of Tuebingen, Computer Architecture

View File

@@ -1,24 +0,0 @@
package eva2.server.go;
/*
* Title: JavaEvA
* Description:
* Copyright: Copyright (c) 2003
* Company: University of Tuebingen, Computer Architecture
* @author Holger Ulmer, Felix Streichert, Hannes Planatscher
* @version: $Revision: 306 $
* $Date: 2007-12-04 14:22:52 +0100 (Tue, 04 Dec 2007) $
* $Author: mkron $
*/
/*==========================================================================*
* IMPORTS
*==========================================================================*/
import eva2.server.stat.InterfaceStatistics;
/*==========================================================================*
* INTERFACE DECLARATION
*==========================================================================*/
/**
*
*/
public interface SelectionInterface {
public void addListener(InterfaceStatistics e);
}

View File

@@ -17,6 +17,7 @@ import eva2.server.go.operators.mutation.InterfaceMutation;
import eva2.server.go.operators.mutation.NoMutation;
import eva2.server.go.populations.Population;
import eva2.server.go.problems.InterfaceOptimizationProblem;
import eva2.tools.EVAERROR;
/** This is the abstract EA individual implementing the most important methods giving
* access to mutation and crossover rates and operators, fitness values and selection
@@ -824,6 +825,25 @@ public abstract class AbstractEAIndividual implements IndividualInterface, java.
return getDefaultStringRepresentation(this);
}
/**
* For any AbstractEAIndividual try to convert its position to double[] and return it.
*
* @param indy
* @return double valued position of an individual
*/
public static double[] getDoublePosition(AbstractEAIndividual indy) {
if (indy instanceof InterfaceDataTypeDouble) {
return ((InterfaceDataTypeDouble)indy).getDoubleData();
} else if (indy instanceof InterfaceDataTypeInteger) {
int[] intData = ((InterfaceDataTypeInteger)indy).getIntegerData();
double[] pos = new double[intData.length];
for (int i=0; i<intData.length; i++) pos[i] = (double)intData[i];
return pos;
} // TODO some more here?
EVAERROR.errorMsgOnce("Unhandled case in AbstractEAIndividual.getPosition()!");
return null;
}
/**********************************************************************************************************************
* Implementing the Individual Interface
*/

View File

@@ -62,7 +62,6 @@ public class ESIndividualDoubleData extends AbstractEAIndividual implements Inte
this.m_Fitness[i] = individual.m_Fitness[i];
}
cloneAEAObjects((AbstractEAIndividual) individual);
}
public Object clone() {

View File

@@ -4,7 +4,7 @@ package eva2.server.go.individuals;
/** This interface gives access to a permutation phenotype and except
* for problemspecific operators should only be used by the
* optimization problem.
* <p>Title: The JavaEvA</p>
* <p>Title: EvA2</p>
*
* <p>Description: </p>
*

View File

@@ -2,7 +2,7 @@ package eva2.server.go.individuals;
/** This interface gives access to a permutation genotype and should
* only be used by mutation and crossover operators.
* <p>Title: The JavaEvA</p>
* <p>Title: EvA2</p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2003</p>
* <p>Company: </p>

View File

@@ -11,7 +11,7 @@ import wsi.ra.math.RNG;
/** This individual uses a permutation based genotype to code for
* permutations.
* <p>Title: The JavaEvA</p>
* <p>Title: EvA2</p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2003</p>
* <p>Company: </p>

View File

@@ -104,7 +104,7 @@ public abstract class MOCCOPhase implements InterfaceProcessElement {
}
}
/** This method makes a helptext element similar to that used in JavaEvA
/** This method makes a helptext element similar to that used in EvA
* @param help The text to display
* @return the helptext component
*/
@@ -112,7 +112,7 @@ public abstract class MOCCOPhase implements InterfaceProcessElement {
return this.makeInformationText("Info", help);
}
/** This method makes a helptext element similar to that used in JavaEvA
/** This method makes a helptext element similar to that used in EvA
* @param title The title of the help text
* @param help The text to display
* @return the helptext component

View File

@@ -56,7 +56,6 @@ public class MOCCOProblemInitialization extends MOCCOPhase implements InterfaceP
JComponent tmpC = new JPanel();
tmpC.setLayout(new BorderLayout());
// this.m_ProblemChooser.setModel(new DefaultComboBoxModel(this.getClassAlternatives4("javaeva.server.oa.go.OptimizationProblems.InterfaceMultiObjectiveDeNovoProblem")));
Class[] altern = null;
try {
altern = ReflectPackage.getAssignableClassesInPackage("eva2.server.oa.go.OptimizationProblems", Class.forName("eva2.server.oa.go.OptimizationProblems.InterfaceMultiObjectiveDeNovoProblem"), true, true);

View File

@@ -100,7 +100,7 @@ public class ArchivingNSGAII extends ArchivingNSGA implements java.io.Serializab
pop.SetArchive(archive);
}
/** This method will dissect a given populaiton into n pareto-fronts
/** This method will dissect a given population into n pareto-fronts
* @param pop The population to analyse
* @return Population[] the n pareto-fronts
*/

View File

@@ -116,7 +116,7 @@ public class ArchivingSPEAII extends AbstractArchiving implements java.io.Serial
// this.tz = true;
// this.calculateRawFitness(tmpPop);
// this.tz = false;
// this.m_Plot = new javaeva.gui.Plot("Debug SPEAII", "Y1", "Y2");
// this.m_Plot = new eva2.gui.Plot("Debug SPEAII", "Y1", "Y2");
// // plot the population
// this.m_Plot.setUnconnectedPoint(0, 0, 11);
// this.m_Plot.setUnconnectedPoint(1.2, 2.0, 11);

View File

@@ -87,7 +87,7 @@ public class ClusteringDensityBased implements InterfaceClustering, java.io.Seri
ConnectionMatrix = new boolean[pop.size()][pop.size()];
Clustered = new boolean[pop.size()];
AbstractEAIndividual tmpIndy1, tmpIndy2;
Population PopulationOfUnclustered = new Population(), Cluster, template;
Population PopulationOfUnclustered, Cluster, template;
ArrayList<Population> ClusteredPopulations = new ArrayList<Population>();
template = (Population)pop.clone();

View File

@@ -202,19 +202,24 @@ public class ClusteringKMeans implements InterfaceClustering, java.io.Serializab
return result;
}
/** This mehtod allows you to cluster a population using m_C
/** This method allows you to cluster a population using m_C
* @param pop The population
* @param c The centroids
* @return The clusters as populaitons
* @return The clusters as populations
*/
public Population[] cluster(Population pop, double[][] c) {
Population[] result = new Population[c.length];
double[][] data = this.extractClusterDataFrom(pop);
int clusterAssigned;
for (int i = 0; i < result.length; i++) {
result[i] = new Population();
result[i].setSameParams(pop);
try {
for (int i = 0; i < result.length; i++) {
result[i] = pop.getClass().newInstance();
result[i].setSameParams(pop);
}
} catch(Exception e) {
System.err.println("problems instantiating " + pop.getClass().getName() + " for clustering!");
e.printStackTrace();
}
// let's assign the elements of the population to a c
for (int i = 0; i < data.length; i++) {

View File

@@ -246,7 +246,7 @@ public class ClusteringXMeans implements InterfaceClustering, java.io.Serializab
/** This mehtod allows you to cluster a population using m_C
* @param pop The population
* @param c The centroids
* @return The clusters as populaitons
* @return The clusters as populations
*/
public Population[] cluster(Population pop, double[][] c) {
Population[] result = new Population[c.length];

View File

@@ -22,10 +22,14 @@ public interface InterfaceClustering {
*/
public Object clone();
/** This method allows you to search for clusters in a given population. The method
/**
* This method allows you to search for clusters in a given population. The method
* returns Number of populations. The first population contains all individuals that
* could not be associated with any cluster and may be empty.
* All other populations group individuals into clusters.
* It should make sure that the returned Population instances are of the same type
* as the given one, which may be a subclass of Population.
*
* @param pop The population of individuals that is to be clustered.
* @return Population[]
*/

View File

@@ -55,31 +55,6 @@ public class CrossoverEAMixer implements InterfaceCrossover, java.io.Serializabl
this.m_Tau1 = mutator.m_Tau1;
this.m_LowerLimitChance = mutator.m_LowerLimitChance;
}
//
// private Vector getClassesFromProperties(String mySelf, String myInterface) {
// Vector classes = new Vector();
// String typeOptions = EvAClient.getProperty(myInterface);
// if (typeOptions == null) {
// System.out.println("Warning: No configuration property found in: " +EvAClient.EVA_PROPERTY_FILE + " "+"for javaeva.server.oa.go.Operators.Mutation.InterfaceMutation");
// } else {
// StringTokenizer st = new StringTokenizer(typeOptions, ", ");
// while (st.hasMoreTokens()) {
// String current = st.nextToken().trim();
// if (!current.equalsIgnoreCase(mySelf)) {
// try {
// Class c = Class.forName(current);
// classes.addElement(current);
// } catch (Exception ex) {
// System.out.println("Couldn't load class with name: " + current);
// System.out.println("ex:"+ex.getMessage());
// ex.printStackTrace();
// }
// }
// }
// }
// return classes;
// }
/** This method will enable you to clone a given mutation operator
* @return The clone

View File

@@ -78,7 +78,7 @@ public class CrossoverESPCX implements InterfaceCrossover, java.io.Serializable
subSpace = this.getCoordinates(g, i, parents);
// Plot plot = new javaeva.gui.Plot("SBX Test", "x", "y", true);
// Plot plot = new eva2.gui.Plot("SBX Test", "x", "y", true);
// plot.setUnconnectedPoint(-2, -2, 0);
// plot.setUnconnectedPoint(2, 2, 0);
// for (int z = 0; z < parents.length; z++) {
@@ -104,7 +104,7 @@ public class CrossoverESPCX implements InterfaceCrossover, java.io.Serializable
for (int j = 1; j < subSpace.size(); j++) {
tmpD = (double[])subSpace.get(j);
w = RNG.gaussianDouble(this.m_Zeta);
children[i] = Mathematics.vvAdd(children[i], Mathematics.scalarMultVector(w, tmpD));
children[i] = Mathematics.vvAdd(children[i], Mathematics.svMult(w, tmpD));
}
}
@@ -122,19 +122,19 @@ public class CrossoverESPCX implements InterfaceCrossover, java.io.Serializable
double[] tmpVec, toro;
double tmpD;
tmpVec = Mathematics.subVector(parents[index], mean);
tmpVec = Mathematics.vvSub(parents[index], mean);
result.add(tmpVec);
for (int i = 0; i < parents.length; i++) {
if (i != index) {
tmpVec = Mathematics.subVector(parents[i], mean);
tmpVec = Mathematics.vvSub(parents[i], mean);
if (this.isValidVec(tmpVec)) {
// apply the infamous Gram-Schmidt
for (int j = 0; j < result.size(); j++) {
toro = (double[]) result.get(j);
tmpD = Mathematics.vvMult(toro, tmpVec)/Mathematics.vvMult(toro, toro);
toro = Mathematics.scalarMultVector(tmpD, toro);
tmpVec = Mathematics.subVector(tmpVec, toro);
toro = Mathematics.svMult(tmpD, toro);
tmpVec = Mathematics.vvSub(tmpVec, toro);
}
if (this.isValidVec(tmpVec)) result.add(tmpVec);
}
@@ -145,15 +145,15 @@ public class CrossoverESPCX implements InterfaceCrossover, java.io.Serializable
double tmpMean;
for (int i = 1; i < result.size(); i++) {
toro = (double[]) result.get(i);
toro = Mathematics.getNormalizedVector(toro);
Mathematics.normVect(toro, toro);
tmpMean = 0;
for (int j = 0; j < parents.length; j++) {
if (j != index) {
tmpMean += Math.abs(Mathematics.vvMult(toro, Mathematics.subVector(parents[j], mean)));
tmpMean += Math.abs(Mathematics.vvMult(toro, Mathematics.vvSub(parents[j], mean)));
}
}
tmpMean = tmpMean/((double)(result.size()-1));
toro = Mathematics.scalarMultVector(tmpMean, toro);
toro = Mathematics.svMult(tmpMean, toro);
result.set(i, toro);
}

View File

@@ -72,18 +72,18 @@ public class CrossoverESSPX implements InterfaceCrossover, java.io.Serializable
// calculate the Y vectors
for (int i = 0; i < parents.length; i++) {
Y[i] = Mathematics.vvAdd(g, Mathematics.scalarMultVector(this.m_Epsilon, Mathematics.subVector(parents[i], g)));
Y[i] = Mathematics.vvAdd(g, Mathematics.svMult(this.m_Epsilon, Mathematics.vvSub(parents[i], g)));
}
// now for each child the C vectors and the result
for (int i = 0; i < children.length; i++) {
C = new double[Y.length][];
C[0] = Mathematics.nullVector(parents[0].length);
C[0] = Mathematics.zeroes(parents[0].length);
for (int j = 1; j < Y.length; j++) {
r = Math.pow(RNG.randomDouble(0, 1), 1/((double)j));
C[j] = Mathematics.vvAdd(Y[j-1], C[j-1]);
C[j] = Mathematics.subVector(C[j], Y[j]);
C[j] = Mathematics.scalarMultVector(r, C[j]);
C[j] = Mathematics.vvSub(C[j], Y[j]);
C[j] = Mathematics.svMult(r, C[j]);
//C[j] = this.scalarMultVector(r, this.subVector(Y[j-1], this.addVector(Y[j], C[j-1])));
}
// now the children results from

View File

@@ -85,13 +85,13 @@ public class CrossoverESUNDX implements InterfaceCrossover, java.io.Serializable
for (int j = 0; j < givenCoordinates.size(); j++) {
tmpD = (double[])givenCoordinates.get(j);
w = RNG.gaussianDouble(this.m_Zeta);
children[i] = Mathematics.vvAdd(children[i], Mathematics.scalarMultVector(w, tmpD));
children[i] = Mathematics.vvAdd(children[i], Mathematics.svMult(w, tmpD));
}
// now the missing stuff
for (int j = 0; j < missingCorrdinates.size(); j++) {
tmpD = (double[])missingCorrdinates.get(j);
w = RNG.gaussianDouble(this.m_Eta);
children[i] = Mathematics.vvAdd(children[i], Mathematics.scalarMultVector(w, tmpD));
children[i] = Mathematics.vvAdd(children[i], Mathematics.svMult(w, tmpD));
}
}
@@ -110,7 +110,7 @@ public class CrossoverESUNDX implements InterfaceCrossover, java.io.Serializable
double tmpD;
for (int i = 0; i < parents.length; i++) {
tmpVec = Mathematics.subVector(parents[i], mean);
tmpVec = Mathematics.vvSub(parents[i], mean);
if (Mathematics.isValidVec(tmpVec)) {
if (result.size() == 0) {
result.add(tmpVec);
@@ -119,8 +119,8 @@ public class CrossoverESUNDX implements InterfaceCrossover, java.io.Serializable
for (int j = 0; j < result.size(); j++) {
toro = (double[]) result.get(j);
tmpD = Mathematics.vvMult(toro, tmpVec)/Mathematics.vvMult(toro, toro);
toro = Mathematics.scalarMultVector(tmpD, toro);
tmpVec = Mathematics.subVector(tmpVec, toro);
toro = Mathematics.svMult(tmpD, toro);
tmpVec = Mathematics.vvSub(tmpVec, toro);
}
if (Mathematics.isValidVec(tmpVec)) result.add(tmpVec);
}
@@ -145,12 +145,12 @@ public class CrossoverESUNDX implements InterfaceCrossover, java.io.Serializable
for (int j = 0; j < completeList.size(); j++) {
toro = (double[]) completeList.get(j);
tmpD = Mathematics.vvMult(toro, tmpVec)/Mathematics.vvMult(toro, toro);
toro = Mathematics.scalarMultVector(tmpD, toro);
tmpVec = Mathematics.subVector(tmpVec, toro);
toro = Mathematics.svMult(tmpD, toro);
tmpVec = Mathematics.vvSub(tmpVec, toro);
}
if (Mathematics.isValidVec(tmpVec)) {
tmpVec = Mathematics.getNormalizedVector(tmpVec);
tmpVec = Mathematics.scalarMultVector(Mathematics.vvMult(theOther, tmpVec), tmpVec);
Mathematics.normVect(tmpVec, tmpVec);
tmpVec = Mathematics.svMult(Mathematics.vvMult(theOther, tmpVec), tmpVec);
result.add(tmpVec);
completeList.add(tmpVec);
}

View File

@@ -9,7 +9,7 @@ import eva2.server.go.problems.InterfaceOptimizationProblem;
import wsi.ra.math.RNG;
/**
* <p>Title: The JavaEvA</p>
* <p>Title: EvA2</p>
* <p>Description: PMX-Crossover as defined in http://www.cs.rit.edu/usr/local/pub/pga/Genetic/Slides_etc/ga_5_og.pdf</p>
* <p>Copyright: Copyright (c) 2003</p>
* <p>Company: </p>

View File

@@ -8,7 +8,7 @@ import eva2.server.go.problems.InterfaceOptimizationProblem;
import wsi.ra.math.RNG;
/**
* <p>Title: The JavaEvA</p>
* <p>Title: EvA2</p>
* <p>Description: PMX-Crossover as defined in http://www.cs.rit.edu/usr/local/pub/pga/Genetic/Slides_etc/ga_5_og.pdf</p>
* <p>Copyright: Copyright (c) 2003</p>
* <p>Company: </p>

View File

@@ -106,7 +106,7 @@ public class MOClusteringSeparation implements InterfaceMigration, java.io.Seria
// double[] tmpD = new double[2];
// tmpD[0] = 0;
// tmpD[1] = 0;
// plot = new javaeva.gui.Plot("Debugging Clustering Separation", "Y1", "Y2", tmpD, tmpD);
// plot = new eva2.gui.Plot("Debugging Clustering Separation", "Y1", "Y2", tmpD, tmpD);
// GraphPointSet mySet;
// DPoint myPoint;
// Chart2DDPointIconText tmp;

View File

@@ -137,7 +137,7 @@ public class MOConeSeparation implements InterfaceMigration, java.io.Serializabl
// double[] tmpD = new double[2];
// tmpD[0] = 0;
// tmpD[1] = 0;
// plot = new javaeva.gui.Plot("Debugging Cone Separation", "Y1", "Y2", tmpD, tmpD);
// plot = new eva2.gui.Plot("Debugging Cone Separation", "Y1", "Y2", tmpD, tmpD);
// GraphPointSet mySet;
// DPoint myPoint;
// Chart2DDPointIconText tmp;

View File

@@ -101,7 +101,7 @@ public class MOXMeansSeparation implements InterfaceMigration, java.io.Serializa
// double[] tmpD = new double[2];
// tmpD[0] = 0;
// tmpD[1] = 0;
// plot = new javaeva.gui.Plot("Debugging Clustering Separation", "Y1", "Y2", tmpD, tmpD);
// plot = new eva2.gui.Plot("Debugging Clustering Separation", "Y1", "Y2", tmpD, tmpD);
// GraphPointSet mySet;
// DPoint myPoint;
// Chart2DDPointIconText tmp;

View File

@@ -73,7 +73,7 @@ public class MOSOMaxiMin implements InterfaceMOSOConverter, java.io.Serializable
}
////////////////////////////////////////////////////////////////////////////////////
// if (false) {
// this.m_Plot = new javaeva.gui.Plot("Debug MaxiMin", "Y1", "Y2");
// this.m_Plot = new eva2.gui.Plot("Debug MaxiMin", "Y1", "Y2");
// this.m_Plot.setUnconnectedPoint(0, 0, 11);
// this.m_Plot.setUnconnectedPoint(1.2, 2.0, 11);
// double[][] trueFitness, moFitness;

View File

@@ -14,10 +14,8 @@ import eva2.server.go.populations.Population;
public class MOSOUtilityFunction implements InterfaceMOSOConverter, java.io.Serializable {
private int m_OutputDimension = 2;
//private Source m_Source = new Source ("\\src\\javaeva\\server\\oa\\go\\Operators\\MOSOConverter\\MOSOUtilityFunction.java");
public MOSOUtilityFunction () {
// m_Source = new Source ("\\src\\javaeva\\server\\oa\\go\\Operators\\MOSOConverter\\MOSOUtilityFunction.java");
}
public MOSOUtilityFunction(MOSOUtilityFunction b) {
System.out.println("Warning no source!");

View File

@@ -55,31 +55,6 @@ public class MutateEAMixer implements InterfaceMutation, java.io.Serializable {
this.m_Tau1 = mutator.m_Tau1;
this.m_LowerLimitChance = mutator.m_LowerLimitChance;
}
//
// private Vector getClassesFromProperties(String mySelf, String myInterface) {
// Vector classes = new Vector();
// String typeOptions = EvAClient.getProperty(myInterface);
// if (typeOptions == null) {
// System.out.println("Warning: No configuration property found in: " +EvAClient.EVA_PROPERTY_FILE + " "+"for javaeva.server.oa.go.Operators.Mutation.InterfaceMutation");
// } else {
// StringTokenizer st = new StringTokenizer(typeOptions, ", ");
// while (st.hasMoreTokens()) {
// String current = st.nextToken().trim();
// if (!current.equalsIgnoreCase(mySelf)) {
// try {
// Class c = Class.forName(current);
// classes.addElement(current);
// } catch (Exception ex) {
// System.out.println("Couldn't load class with name: " + current);
// System.out.println("ex:"+ex.getMessage());
// ex.printStackTrace();
// }
// }
// }
// }
// return classes;
// }
/** This method will enable you to clone a given mutation operator
* @return The clone

View File

@@ -80,6 +80,6 @@ public class MutateESDefault implements InterfaceMutation, java.io.Serializable
* @return description
*/
public String globalInfo() {
return "The default mutation alters one element of the double attributes.";
return "The default mutation just uses the default method implemented in the individual.";
}
}

View File

@@ -15,7 +15,7 @@ import wsi.ra.math.RNG;
* To change this template use Options | File Templates.
*/
public class MutateESStandard implements InterfaceMutation, java.io.Serializable {
private double m_MutationStepSize = 0.1;
protected double m_MutationStepSize = 0.1;
public MutateESStandard() {
}
@@ -102,13 +102,14 @@ public class MutateESStandard implements InterfaceMutation, java.io.Serializable
* @return description
*/
public String globalInfo() {
return "The standart mutation alters all elements of the double attributes with a fixed mutation step size.";
return "The standard mutation alters all elements of the double attributes with a fixed mutation step size.";
}
/** This method allows you to set the fixed mutation step size
* @param step The new mutation step size
*/
public void setMutationStepSize(double step) {
if (step < 0) step = 0.0000001;
this.m_MutationStepSize = step;
}
public double getMutationStepSize() {

View File

@@ -7,24 +7,25 @@ import eva2.server.go.problems.InterfaceOptimizationProblem;
import wsi.ra.math.RNG;
/**
* Created by IntelliJ IDEA.
* Success rule implementation.
*
* User: streiche
* Date: 10.05.2005
* Time: 14:11:49
* To change this template use File | Settings | File Templates.
*/
public class MutateESSuccessRule implements InterfaceMutation, java.io.Serializable {
public class MutateESSuccessRule extends MutateESStandard implements InterfaceMutation, java.io.Serializable {
/*
* This is a bit of a cheat as the implementation does only hold some
* more parameters while the ES strategy really acts on it.
*/
// it would be quite nice to make this variable static, but in that case
// no one could runs n independent ES runs in parallel anymore *sigh*
// protected static double m_MutationStepSize = 0.2;
protected double m_MutationStepSize = 0.2;
// protected double m_MutationStepSize = 0.2; // now in base class
protected double m_SuccessRate = 0.2;
protected double m_Alpha = 1.2;
public MutateESSuccessRule() {
}
public MutateESSuccessRule(MutateESSuccessRule mutator) {
this.m_MutationStepSize = mutator.m_MutationStepSize;
this.m_SuccessRate = mutator.m_SuccessRate;
@@ -38,7 +39,7 @@ public class MutateESSuccessRule implements InterfaceMutation, java.io.Serializa
return new MutateESSuccessRule(this);
}
/** This method allows you to evaluate wether two mutation operators
/** This method allows you to evaluate whether two mutation operators
* are actually the same.
* @param mutator The other mutation operator
*/
@@ -51,44 +52,6 @@ public class MutateESSuccessRule implements InterfaceMutation, java.io.Serializa
return true;
} else return false;
}
/** This method allows you to init the mutation operator
* @param individual The individual that will be mutated.
* @param opt The optimization problem.
*/
public void init(AbstractEAIndividual individual, InterfaceOptimizationProblem opt) {
}
/** This method will mutate a given AbstractEAIndividual. If the individual
* doesn't implement InterfaceGAIndividual nothing happens.
* @param individual The individual that is to be mutated
*/
public void mutate(AbstractEAIndividual individual) {
//System.out.println("Before Mutate: " +((GAIndividual)individual).getSolutionRepresentationFor());
if (individual instanceof InterfaceESIndividual) {
double[] x = ((InterfaceESIndividual)individual).getDGenotype();
double[][] range = ((InterfaceESIndividual)individual).getDoubleRange();
for (int i = 0; i < x.length; i++) {
x[i] += ((range[i][1] -range[i][0])/2)*RNG.gaussianDouble(this.m_MutationStepSize);
if (range[i][0] > x[i]) x[i] = range[i][0];
if (range[i][1] < x[i]) x[i] = range[i][1];
}
((InterfaceESIndividual)individual).SetDGenotype(x);
}
//System.out.println("After Mutate: " +((GAIndividual)individual).getSolutionRepresentationFor());
}
/** This method allows you to perform either crossover on the strategy parameters
* or to deal in some other way with the crossover event.
* @param indy1 The original mother
* @param partners The original partners
*/
public void crossoverOnStrategyParameters(AbstractEAIndividual indy1, Population partners) {
// nothing to do here
}
/** This method allows you to get a string representation of the mutation
* operator
* @return A descriptive string.
@@ -122,20 +85,10 @@ public class MutateESSuccessRule implements InterfaceMutation, java.io.Serializa
* @return description
*/
public String globalInfo() {
return "The 1/5 success rule is something special and works only together with an ES optimizer.";
return "The 1/5 success rule works only together with an ES optimizer.";
}
/** Set the initial mutation step size with this method.
* @param d The mutation operator.
*/
public void setInitialMutationStepSize(double d) {
if (d < 0) d = 0.0000001;
this.m_MutationStepSize = d;
}
public double getInitialMutationStepSize() {
return this.m_MutationStepSize;
}
public String initialMutationStepSizeTipText() {
public String mutationStepSizeTipText() {
return "Choose the initial mutation step size.";
}

View File

@@ -9,7 +9,7 @@ import wsi.ra.math.RNG;
/**
* <p>Title: The JavaEvA</p>
* <p>Title: EvA2</p>
*
* <p>Description: </p>
*

View File

@@ -9,7 +9,7 @@ import wsi.ra.math.RNG;
/**
* <p>Title: The JavaEvA</p>
* <p>Title: EvA2</p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2003</p>
* <p>Company: </p>

View File

@@ -23,7 +23,7 @@ public abstract class AbstractSelProb implements InterfaceSelectionProbability,
public abstract Object clone();
/** This method computes the selection probability for each individual
* in the population. Note: Summed over the complete populaiton the selection
* in the population. Note: Summed over the complete population the selection
* probability sums up to one.
* @param population The population to compute.
* @param input The name of the input.
@@ -33,7 +33,7 @@ public abstract class AbstractSelProb implements InterfaceSelectionProbability,
}
/** This method computes the selection probability for each individual
* in the population. Note: Summed over the complete populaiton the selection
* in the population. Note: Summed over the complete population the selection
* probability sums up to one.
* @param population The population to compute.
* @param input The name of the input.

View File

@@ -21,7 +21,7 @@ public interface InterfaceSelectionProbability {
public Object clone();
/** This method computes the selection probability for each individual
* in the population. Note: Summed over the complete populaiton the selection
* in the population. Note: Summed over the complete population the selection
* probability sums up to one.
* @param population The population to compute.
* @param input The name of the input.
@@ -29,7 +29,7 @@ public interface InterfaceSelectionProbability {
public void computeSelectionProbability(Population population, String[] input, boolean obeyConst);
/** This method computes the selection probability for each individual
* in the population. Note: Summed over the complete populaiton the selection
* in the population. Note: Summed over the complete population the selection
* probability sums up to one.
* @param population The population to compute.
* @param input The name of the input.
@@ -37,7 +37,7 @@ public interface InterfaceSelectionProbability {
public void computeSelectionProbability(Population population, String input, boolean obeyConst);
/** This method computes the selection probability for each individual
* in the population. Note: Summed over the complete populaiton the selection
* in the population. Note: Summed over the complete population the selection
* probability sums up to one.
* @param population The population to compute.
* @param data The input data as double[][].

View File

@@ -32,7 +32,7 @@ public class SelProbBoltzman extends AbstractSelProb implements java.io.Serializ
}
/** This method computes the selection probability for each individual
* in the population. Note: Summed over the complete populaiton the selection
* in the population. Note: Summed over the complete population the selection
* probability sums up to one.
* @param population The population to compute.
* @param data The input data as double[][].

View File

@@ -36,7 +36,7 @@ public class SelProbFitnessSharing extends AbstractSelProb implements java.io.Se
}
/** This method computes the selection probability for each individual
* in the population. Note: Summed over the complete populaiton the selection
* in the population. Note: Summed over the complete population the selection
* probability sums up to one. Keep in mind that fitness is always to be
* minimizied! Small values for data => big values for selectionprob.
* @param population The population to compute.

View File

@@ -33,7 +33,7 @@ public class SelProbInvertByMax extends AbstractSelProb {
}
/** This method computes the selection probability for each individual
* in the population. Note: Summed over the complete populaiton the selection
* in the population. Note: Summed over the complete population the selection
* probability sums up to one.
* @param population The population to compute.
* @param data The input data as double[][].

View File

@@ -28,7 +28,7 @@ public class SelProbLinearRanking extends AbstractSelProb implements java.io.Ser
}
/** This method computes the selection probability for each individual
* in the population. Note: Summed over the complete populaiton the selection
* in the population. Note: Summed over the complete population the selection
* probability sums up to one.
* @param population The population to compute.
* @param data The input as double[][]

View File

@@ -27,7 +27,7 @@ public class SelProbNonLinearRanking extends AbstractSelProb implements java.io.
}
/** This method computes the selection probability for each individual
* in the population. Note: Summed over the complete populaiton the selection
* in the population. Note: Summed over the complete population the selection
* probability sums up to one.
* @param population The population to compute.
* @param data The input as double[][]

View File

@@ -24,7 +24,7 @@ public class SelProbRanking extends AbstractSelProb implements java.io.Serializa
}
/** This method computes the selection probability for each individual
* in the population. Note: Summed over the complete populaiton the selection
* in the population. Note: Summed over the complete population the selection
* probability sums up to one.
* @param population The population to compute.
* @param data The input as double[][]

View File

@@ -30,7 +30,7 @@ public class SelProbStandardScaling extends AbstractSelProb implements java.io.S
}
/** This method computes the selection probability for each individual
* in the population. Note: Summed over the complete populaiton the selection
* in the population. Note: Summed over the complete population the selection
* probability sums up to one.
* @param population The population to compute.
* @param data The input data as double[][].

Some files were not shown because too many files have changed in this diff Show More