Some updates to the ant-file, RandomNumberGenerator has been reunified with RNG

This commit is contained in:
Marcel Kronfeld committed 2008-04-17 16:36:21 +00:00
1 parent 0105c97c41
commit b72d2a86b4
135 files changed
+829 -1087

No files matched your search

+4
View File
@@ -2,5 +2,9 @@
<classpath> <classpath>
<classpathentry kind="src" path="src"/> <classpathentry kind="src" path="src"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/> <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="lib" path="lib/asm-3.1.jar"/>
<classpathentry kind="lib" path="lib/jaxen-1.1.1.jar"/>
<classpathentry kind="lib" path="lib/junit-4.4.jar"/>
<classpathentry kind="lib" path="lib/pmd-4.2.1.jar"/>
<classpathentry kind="output" path="build"/> <classpathentry kind="output" path="build"/>
</classpath> </classpath>
+64 -116
View File
@@ -1,6 +1,6 @@
<!--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ <!--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Filename: $RCSfile$ Filename: $RCSfile$
Purpose: Ant build file for JavaEvA. Purpose: Ant build file for EvA2.
Ant-Download: http://jakarta.apache.org/ant Ant-Download: http://jakarta.apache.org/ant
Ant-Manual: http://jakarta.apache.org/ant/manual/index.html Ant-Manual: http://jakarta.apache.org/ant/manual/index.html
@@ -11,14 +11,14 @@
Language: XML Language: XML
Compiler: Ant Compiler: Ant
Authors: Holger Ulmer, Felix Streichert, Joerg Wegner Authors: M.Kronfeld, H.Planatscher, Holger Ulmer, Felix Streichert, Joerg Wegner
Version: $Revision: 284 $ Version: $Revision: 284 $
$Date: 2007-11-27 14:37:05 +0100 (Tue, 27 Nov 2007) $ $Date: 2007-11-27 14:37:05 +0100 (Tue, 27 Nov 2007) $
$Author: mkron $ $Author: mkron $
Copyright (c) Dept. Computer Architecture, University of Tuebingen, Germany Copyright (c) Dept. Computer Architecture, University of Tuebingen, Germany
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--> +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-->
<project name="JavaEvA" default="compile" basedir=".."> <project name="EvA2" default="compile" basedir="..">
<!--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ <!--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Set properties Set properties
@@ -38,17 +38,21 @@
<property name="check.libraries.ant" value="ant/check.xml" /> <property name="check.libraries.ant" value="ant/check.xml" />
<property name="windows.libraries" value="${library.directory}/windows" /> <property name="windows.libraries" value="${library.directory}/windows" />
<property name="unix.libraries" value="${library.directory}/linux" /> <property name="unix.libraries" value="${library.directory}/linux" />
<!--
<property name="library.SNNS" value="SNNS_jkr" /> <property name="library.SNNS" value="SNNS_jkr" />
<property name="library.JMatLink" value="JMatLink" /> <property name="library.JMatLink" value="JMatLink" />
<property name="library.WSI.ant" value="../java" /> <property name="library.WSI.ant" value="../java" />
<property name="library.WSI.original" value="${library.WSI.ant}/dist/wsi.jar" /> <property name="library.WSI.original" value="${library.WSI.ant}/dist/wsi.jar" />
<property name="library.WSI" value="lib/wsi2.jar" /> <property name="library.WSI" value="lib/wsi2.jar" />
-->
<!-- SET THE JAVA BINARY LIBRARIES PROPERTIES --> <!-- SET THE JAVA BINARY LIBRARIES PROPERTIES -->
<property name="ant.java.version" value="1.5" /> <property name="ant.java.version" value="1.5" />
<!-- SET CLASSPATH --> <!-- SET CLASSPATH -->
<path id="project.class.path"> <path id="project.class.path">
<pathelement location="." />
<!-- shouldnt be required for EvA2
<pathelement location="${env.JAVA_HOME}/jre/lib/rt.jar" /> <pathelement location="${env.JAVA_HOME}/jre/lib/rt.jar" />
<pathelement location="${env.JAVA_HOME}/lib/dt.jar" /> <pathelement location="${env.JAVA_HOME}/lib/dt.jar" />
<pathelement location="${env.JAVA_HOME}/lib/tools.jar" /> <pathelement location="${env.JAVA_HOME}/lib/tools.jar" />
@@ -60,6 +64,7 @@
<fileset dir="${library.directory}"> <fileset dir="${library.directory}">
<include name="*.jar" /> <include name="*.jar" />
</fileset> </fileset>
-->
</path> </path>
<!-- SET THE CVS RELEVANT PROPERTIES --> <!-- SET THE CVS RELEVANT PROPERTIES -->
@@ -89,7 +94,7 @@
binaryDist - will create a complete binary distribution binaryDist - will create a complete binary distribution
clean - will clean up files, except the source files and the api clean - will clean up files, except the source files and the api
documentation documentation
run - will start JavaEvA run - will start EvA2
use 'ant -projecthelp' for further Main targets use 'ant -projecthelp' for further Main targets
</echo> </echo>
@@ -148,29 +153,15 @@
</target> </target>
<target name="cleanAll" depends="init, clean"> <target name="cleanAll" depends="init, clean">
<!--
<ant inheritAll="false" antfile="build.xml" dir="${library.WSI.ant}" target="clean"> <ant inheritAll="false" antfile="build.xml" dir="${library.WSI.ant}" target="clean">
<property name="silent" value="true"/> <property name="silent" value="true"/>
</ant> </ant>-->
</target> </target>
<!--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ <!--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Update libraries Update libraries
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--> +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-->
<target name="update.library.WSI" depends="init"> <target name="update.libraries">
<!--<ant inheritAll="false" antfile="build.xml" dir="${library.WSI.ant}" target="compile">
<property name="silent" value="true"/>
</ant>
-->
<ant inheritAll="false" antfile="build.xml"
dir="${library.WSI.ant}" target="dist4JOpt">
<property name="silent" value="true"/>
</ant>
<delete>
<fileset dir="${library.directory}" includes="wsi*jar" />
</delete>
<copy file="${library.WSI.original}" tofile="${library.WSI}"/>
</target>
<target name="update.libraries" depends="update.library.WSI">
</target> </target>
<!--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ <!--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Compile Compile
@@ -221,67 +212,20 @@
<copy todir="${build.directory}/resources"> <copy todir="${build.directory}/resources">
<fileset dir="${resources.directory}" includes="**/*" /> <fileset dir="${resources.directory}" includes="**/*" />
</copy> </copy>
<!--
<copy todir="${build.directory}/resources/images">
<fileset dir="${resources.directory}/images" includes="*gif" />
</copy>
<copy todir="${build.directory}/resources/images">
<fileset dir="${resources.directory}/images" includes="*jpg" />
</copy>
<copy todir="${build.directory}/resources/images">
<fileset dir="${resources.directory}/images" includes="*png" />
</copy>
<copy todir="${build.directory}/resources/">
<fileset dir="${resources.directory}" includes="*html" />
</copy>
<copy todir="${build.directory}/resources/ORLibrary">
<fileset dir="${resources.directory}/ORLibrary" includes="*txt" />
</copy>
<copy todir="${build.directory}/resources/Altana">
<fileset dir="${resources.directory}/Altana" includes="*dat" />
</copy>
<copy todir="${build.directory}/resources/TSP">
<fileset dir="${resources.directory}/TSP" includes="*" />
</copy>
<copy todir="${build.directory}/resources/TSP/euc2d">
<fileset dir="${resources.directory}/TSP/euc2d" includes="*tsp" />
</copy>
<copy todir="${build.directory}/resources/TSP/instances">
<fileset dir="${resources.directory}/TSP/instances" includes="*tsp" />
</copy>
-->
</target> </target>
<!-- =================================================================== --> <!-- =================================================================== -->
<!-- Jars all classes into one jar file --> <!-- Jars all classes into one jar file -->
<!-- =================================================================== --> <!-- =================================================================== -->
<target name="bundle" depends="compile" description="Compiles the project and puts the whole stuff into a jar-file.."> <target name="bundle" depends="compile" description="Compiles the project and puts the whole stuff into a jar-file..">
<property name="bin.dist.dir" value="${binary.distribution.directory}/javaeva-${DSTAMP}" /> <property name="bin.dist.dir" value="${binary.distribution.directory}/eva2-${DSTAMP}" />
<mkdir dir="${bin.dist.dir}" /> <mkdir dir="${bin.dist.dir}" />
<mkdir dir="${bin.dist.dir}/${library.directory}" /> <mkdir dir="${bin.dist.dir}/${library.directory}" />
<delete> <fileset dir="${bin.dist.dir}/${library.directory}" includes="*JavaEvA*jar" /> </delete> <delete> <fileset dir="${bin.dist.dir}/${library.directory}" includes="*EvA*jar" /> </delete>
<jar jarfile="${bin.dist.dir}/${library.directory}/JavaEvA.jar" basedir="${build.directory}"> <jar jarfile="${bin.dist.dir}/${library.directory}/EvA2Base.jar" basedir="${build.directory}">
<!-- JKW: That's bad practice, if we have internal dependencies -->
<!-- JKW: Use a correct shell script or ant task to run application, which -->
<!-- JKW: resolves the classpath automatically from all libraries in the library directory -->
<zipgroupfileset dir="${library.directory}">
<include name="jdom.jar"/>
<include name="activation.jar"/>
<include name="imap.jar"/>
<include name="joelib.jar"/>
<include name="log4j.jar"/>
<include name="mail.jar"/>
<include name="mailapi.jar"/>
<include name="pop3.jar"/>
<include name="smtp.jar"/>
<include name="xalan2.jar"/>
<include name="wsi.jar"/>
</zipgroupfileset>
<!--<fileset dir="${classes.dir}" excludes="*test*"/>--> <!--<fileset dir="${classes.dir}" excludes="*test*"/>-->
<manifest> <attribute name="Main-Class" value="javaeva.client.EvAClient"/> </manifest> <manifest> <attribute name="Main-Class" value="eva2.client.EvAClient"/> </manifest>
</jar> </jar>
</target> </target>
@@ -292,13 +236,13 @@
<!-- =================================================================== <!-- ===================================================================
--> -->
<target name="bundlehannes" depends="compile" description="Compiles the project and puts the whole stuff into a jar-file.."> <target name="bundlehannes" depends="compile" description="Compiles the project and puts the whole stuff into a jar-file..">
<property name="bin.dist.dir" value="${binary.distribution.directory}/javaeva-${DSTAMP}" /> <property name="bin.dist.dir" value="${binary.distribution.directory}/eva2-${DSTAMP}" />
<mkdir dir="${bin.dist.dir}" /> <mkdir dir="${bin.dist.dir}" />
<mkdir dir="${bin.dist.dir}/${library.directory}" /> <mkdir dir="${bin.dist.dir}/${library.directory}" />
<delete> <delete>
<fileset dir="${bin.dist.dir}/${library.directory}" includes="*JavaEvA*jar" /> <fileset dir="${bin.dist.dir}/${library.directory}" includes="*EvA*jar" />
</delete> </delete>
<jar jarfile="${bin.dist.dir}/${library.directory}/JavaEvA.jar" basedir="${build.directory}" filesetmanifest="mergewithoutmain"> <jar jarfile="${bin.dist.dir}/${library.directory}/EvA2Base.jar" basedir="${build.directory}" filesetmanifest="mergewithoutmain">
<!-- JKW: That's bad practice, if we have internal dependencies --> <!-- JKW: That's bad practice, if we have internal dependencies -->
<!-- JKW: Use a correct shell script or ant task to run application, which --> <!-- JKW: Use a correct shell script or ant task to run application, which -->
<!-- JKW: resolves the classpath automatically from all libraries in the library directory --> <!-- JKW: resolves the classpath automatically from all libraries in the library directory -->
@@ -308,7 +252,7 @@
<!-- <fileset dir="${classes.dir}" excludes="*test*"/> <!-- <fileset dir="${classes.dir}" excludes="*test*"/>
--> -->
<manifest> <manifest>
<attribute name="Main-Class" value="javaeva.client.EvAClient" /> <attribute name="Main-Class" value="eva2.client.EvAClient" />
</manifest> </manifest>
</jar> </jar>
</target> </target>
@@ -317,16 +261,15 @@
Binary Distribution Binary Distribution
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--> +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-->
<target name="binaryDist" depends="compile" description="Compiles the project and puts the whole stuff into a jar-file.."> <target name="binaryDist" depends="compile" description="Compiles the project and puts the whole stuff into a jar-file..">
<property name="bin.dist.dir" value="${binary.distribution.directory}/javaeva-${DSTAMP}" /> <property name="bin.dist.dir" value="${binary.distribution.directory}/eva-${DSTAMP}" />
<mkdir dir="${bin.dist.dir}" /> <mkdir dir="${bin.dist.dir}" />
<mkdir dir="${bin.dist.dir}/${library.directory}" /> <mkdir dir="${bin.dist.dir}/${library.directory}" />
<delete> <delete>
<fileset dir="${bin.dist.dir}/${library.directory}" includes="*JavaEvA*jar" /> <fileset dir="${bin.dist.dir}/${library.directory}" includes="*EvA*jar" />
</delete> </delete>
<!-- <jar jarfile="${bin.dist.dir}/${library.directory}/JavaEvA.jar" manifest="project/javaeva.man" basedir="${build.directory}" /> --> <jar jarfile="${bin.dist.dir}/${library.directory}/EvA2Base.jar" basedir="${build.directory}" >
<jar jarfile="${bin.dist.dir}/${library.directory}/JavaEvA.jar" basedir="${build.directory}" > <manifest> <attribute name="Main-Class" value="eva2.client.EvAClient"/> </manifest>
<manifest> <attribute name="Main-Class" value="javaeva.client.EvAClient"/> </manifest>
</jar> </jar>
<copy todir="${bin.dist.dir}/${library.directory}"> <copy todir="${bin.dist.dir}/${library.directory}">
<fileset dir="${library.directory}"> <fileset dir="${library.directory}">
@@ -379,17 +322,17 @@
</copy> </copy>
--> -->
<tar tarfile="${distribution.directory}/javaeva-bin-${DSTAMP}.tar"> <tar tarfile="${distribution.directory}/eva2-bin-${DSTAMP}.tar">
<tarfileset dir="${binary.distribution.directory}"> <tarfileset dir="${binary.distribution.directory}">
<include name="**" /> <include name="**" />
<exclude name="*.tar*, *.zip" /> <exclude name="*.tar*, *.zip" />
</tarfileset> </tarfileset>
</tar> </tar>
<gzip zipfile="${distribution.directory}/javaeva-bin-${DSTAMP}.tar.gz" <gzip zipfile="${distribution.directory}/eva2-bin-${DSTAMP}.tar.gz"
src="${distribution.directory}/javaeva-bin-${DSTAMP}.tar" /> src="${distribution.directory}/eva2-bin-${DSTAMP}.tar" />
<delete file="${distribution.directory}/javaeva-bin-${DSTAMP}.tar" /> <delete file="${distribution.directory}/eva2-bin-${DSTAMP}.tar" />
<zip zipfile="${distribution.directory}/javaeva-bin-${DSTAMP}.zip"> <zip zipfile="${distribution.directory}/eva2-bin-${DSTAMP}.zip">
<zipfileset dir="${binary.distribution.directory}"> <zipfileset dir="${binary.distribution.directory}">
<include name="**" /> <include name="**" />
<exclude name="*.tar*, *.zip" /> <exclude name="*.tar*, *.zip" />
@@ -404,7 +347,7 @@
<target name="sourceDist" depends="init"> <target name="sourceDist" depends="init">
<fail message="Not properly supported yet!"/> <fail message="Not properly supported yet!"/>
<property name="src.dist.dir" value="${source.distribution.directory}/javaeva-${DSTAMP}" /> <property name="src.dist.dir" value="${source.distribution.directory}/eva2-${DSTAMP}" />
<mkdir dir="${src.dist.dir}" /> <mkdir dir="${src.dist.dir}" />
<copy todir="${src.dist.dir}"> <copy todir="${src.dist.dir}">
@@ -445,13 +388,13 @@
</fileset> </fileset>
</copy> </copy>
<tar tarfile="${distribution.directory}/javaeva-src-${DSTAMP}.tar" <tar tarfile="${distribution.directory}/eva2-src-${DSTAMP}.tar"
basedir="${source.distribution.directory}" includes="**" excludes="*.tar*, *.zip"/> basedir="${source.distribution.directory}" includes="**" excludes="*.tar*, *.zip"/>
<gzip zipfile="${distribution.directory}/javaeva-src-${DSTAMP}.tar.gz" <gzip zipfile="${distribution.directory}/eva2-src-${DSTAMP}.tar.gz"
src="${distribution.directory}/javaeva-src-${DSTAMP}.tar" /> src="${distribution.directory}/eva2-src-${DSTAMP}.tar" />
<delete file="${distribution.directory}/javaeva-src-${DSTAMP}.tar" /> <delete file="${distribution.directory}/eva2-src-${DSTAMP}.tar" />
<zip zipfile="${distribution.directory}/javaeva-src-${DSTAMP}.zip"> <zip zipfile="${distribution.directory}/eva2-src-${DSTAMP}.zip">
<zipfileset dir="${source.distribution.directory}"> <zipfileset dir="${source.distribution.directory}">
<include name="**" /> <include name="**" />
<exclude name="*.tar*, *.zip" /> <exclude name="*.tar*, *.zip" />
@@ -467,50 +410,50 @@
</target> </target>
<!--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ <!--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Run JavaEvA Run EvA2
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--> +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-->
<target name="run" description="Runs JavaEvA."> <target name="run" description="Runs EvA2.">
<java classname="javaeva.client.EvAClient" fork="yes"> <java classname="eva2.client.EvAClient" fork="yes">
<jvmarg value="-Xmx512m"/> <jvmarg value="-Xmx512m"/>
<classpath refid="project.class.path" /> <classpath refid="project.class.path" />
</java> </java>
</target> </target>
<!--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ <!--++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Run JavaEvA Run EvA2
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--> +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-->
<target name="Altana" description="Runs Altana CombiLib Problem."> <target name="Altana" description="Runs Altana CombiLib Problem.">
<java classname="javaeva.server.oa.go.GOAltana" fork="yes"> <java classname="eva2.server.oa.go.GOAltana" fork="yes">
<jvmarg value="-Xmx512m"/> <jvmarg value="-Xmx512m"/>
<classpath refid="project.class.path" /> <classpath refid="project.class.path" />
</java> </java>
</target> </target>
<target name="Portfolio" description="Runs GOPortfolio."> <target name="Portfolio" description="Runs GOPortfolio.">
<java classname="javaeva.server.oa.go.GOPortfolio" fork="yes"> <java classname="eva2.server.oa.go.GOPortfolio" fork="yes">
<jvmarg value="-Xmx512m" /> <jvmarg value="-Xmx512m" />
<classpath refid="project.class.path" /> <classpath refid="project.class.path" />
</java> </java>
</target> </target>
<target name="PortfolioLS" description="Runs GOPortfolioLS."> <target name="PortfolioLS" description="Runs GOPortfolioLS.">
<java classname="javaeva.server.oa.go.GOPortfolioLS" fork="yes"> <java classname="eva2.server.oa.go.GOPortfolioLS" fork="yes">
<jvmarg value="-Xmx512m" /> <jvmarg value="-Xmx512m" />
<classpath refid="project.class.path" /> <classpath refid="project.class.path" />
</java> </java>
</target> </target>
<target name="PMOEA" description="Runs ParallelMOEAs."> <target name="PMOEA" description="Runs ParallelMOEAs.">
<java classname="javaeva.server.oa.go.GOParallelMOEA" fork="yes"> <java classname="eva2.server.oa.go.GOParallelMOEA" fork="yes">
<jvmarg value="-Xmx512m" /> <jvmarg value="-Xmx512m" />
<classpath refid="project.class.path" /> <classpath refid="project.class.path" />
</java> </java>
</target> </target>
<target name="GridMC" description="Runs a Grid Search for GO."> <target name="GridMC" description="Runs a Grid Search for GO.">
<java classname="javaeva.server.oa.go.GOGridSearchTwo" fork="yes"> <java classname="eva2.server.oa.go.GOGridSearchTwo" fork="yes">
<jvmarg value="-Xmx512m" /> <jvmarg value="-Xmx512m" />
<classpath refid="project.class.path" /> <classpath refid="project.class.path" />
</java> </java>
@@ -518,49 +461,49 @@
<target name="GOSSFirst" description="Runs a comparison on system identification."> <target name="GOSSFirst" description="Runs a comparison on system identification.">
<java classname="javaeva.server.oa.go.GOSystemComparing" fork="yes"> <java classname="eva2.server.oa.go.GOSystemComparing" fork="yes">
<jvmarg value="-Xmx512m" /> <jvmarg value="-Xmx512m" />
<classpath refid="project.class.path" /> <classpath refid="project.class.path" />
</java> </java>
</target> </target>
<target name="GOSSMSHC" description="Runs a comparison on system identification."> <target name="GOSSMSHC" description="Runs a comparison on system identification.">
<java classname="javaeva.server.oa.go.GOSystemMSHC" fork="yes"> <java classname="eva2.server.oa.go.GOSystemMSHC" fork="yes">
<jvmarg value="-Xmx512m" /> <jvmarg value="-Xmx512m" />
<classpath refid="project.class.path" /> <classpath refid="project.class.path" />
</java> </java>
</target> </target>
<target name="GOSSESPopSize" description="Runs a comparison on system identification."> <target name="GOSSESPopSize" description="Runs a comparison on system identification.">
<java classname="javaeva.server.oa.go.GOSystemESPopSize" fork="yes"> <java classname="eva2.server.oa.go.GOSystemESPopSize" fork="yes">
<jvmarg value="-Xmx512m" /> <jvmarg value="-Xmx512m" />
<classpath refid="project.class.path" /> <classpath refid="project.class.path" />
</java> </java>
</target> </target>
<target name="GOSSPmPc" description="Runs a comparison on system identification."> <target name="GOSSPmPc" description="Runs a comparison on system identification.">
<java classname="javaeva.server.oa.go.GOSystemPmPc" fork="yes"> <java classname="eva2.server.oa.go.GOSystemPmPc" fork="yes">
<jvmarg value="-Xmx512m" /> <jvmarg value="-Xmx512m" />
<classpath refid="project.class.path" /> <classpath refid="project.class.path" />
</java> </java>
</target> </target>
<target name="GOSSESMutation" description="Runs a comparison on system identification."> <target name="GOSSESMutation" description="Runs a comparison on system identification.">
<java classname="javaeva.server.oa.go.GOSystemESMutation" fork="yes"> <java classname="eva2.server.oa.go.GOSystemESMutation" fork="yes">
<jvmarg value="-Xmx512m" /> <jvmarg value="-Xmx512m" />
<classpath refid="project.class.path" /> <classpath refid="project.class.path" />
</java> </java>
</target> </target>
<target name="GOSSGACrossover" description="Runs a comparison on system identification."> <target name="GOSSGACrossover" description="Runs a comparison on system identification.">
<java classname="javaeva.server.oa.go.GOSystemGACrossover" fork="yes"> <java classname="eva2.server.oa.go.GOSystemGACrossover" fork="yes">
<jvmarg value="-Xmx512m" /> <jvmarg value="-Xmx512m" />
<classpath refid="project.class.path" /> <classpath refid="project.class.path" />
</java> </java>
</target> </target>
<target name="GOSSMALSLI" description="Runs a comparison on system identification."> <target name="GOSSMALSLI" description="Runs a comparison on system identification.">
<java classname="javaeva.server.oa.go.GOSystemMA" fork="yes"> <java classname="eva2.server.oa.go.GOSystemMA" fork="yes">
<jvmarg value="-Xmx512m" /> <jvmarg value="-Xmx512m" />
<classpath refid="project.class.path" /> <classpath refid="project.class.path" />
</java> </java>
@@ -571,9 +514,9 @@
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--> +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-->
<target name="javadoc" description="Generates the JavaDoc-API Documentation."> <target name="javadoc" description="Generates the JavaDoc-API Documentation.">
<javadoc packagenames="javaeva.*" <javadoc packagenames="eva2.*"
windowtitle ="JavaEvA API Documentation" windowtitle ="EvA2 API Documentation"
doctitle ="JavaEvA API Documentation" doctitle ="EvA2 API Documentation"
author ="true" author ="true"
version ="true" version ="true"
use ="true" use ="true"
@@ -586,23 +529,28 @@
<doctitle><![CDATA[<h1>Test</h1>]]></doctitle> <doctitle><![CDATA[<h1>Test</h1>]]></doctitle>
<header><![CDATA[<font size="-1"><b><i> <header><![CDATA[<font size="-1"><b><i>
<A HREF="http://www-ra.informatik.uni-tuebingen.de/forschung/" <A HREF="http://www.ra.cs.uni-tuebingen.de/forschung/"
target="_top">JavaEvA target="_top">EvA2
</A> </A>
</b></i></font>]]> </b></i></font>]]>
</header> </header>
<!--
<footer><![CDATA[javaeva<br> <footer><![CDATA[javaeva<br>
<A HREF="http://www-ra.informatik.uni-tuebingen.de/forschung/" <A HREF="http://www.ra.cs.uni-tuebingen.de/forschung/"
target="_top">JavaEvA target="_top">JavaEvA
</A><BR> </A><BR>
E-Mail: E-Mail:
<A HREF="mailto:ulmer@informatik.uni-tuebingen.de"> <A HREF="mailto:ulmer@informatik.uni-tuebingen.de">
ulmer@informatik.uni-tuebingen.de ulmer@informatik.uni-tuebingen.de
</A>]]> </A>]]>
</footer> </footer>
-->
<footer><![CDATA[eva2<br>
<A HREF="http://www.ra.cs.uni-tuebingen.de/forschung/"
target="_top">EvA2
</A>]]>
</footer>
<link offline="true" <link offline="true"
href="http://java.sun.com/j2se/jdk1.5.0_03/docs/api/" href="http://java.sun.com/j2se/jdk1.5.0_03/docs/api/"
packagelistLoc="${env.JAVA_HOME}/docs/api" packagelistLoc="${env.JAVA_HOME}/docs/api"
+1 -1
View File
@@ -240,7 +240,7 @@ public class OptimizerFactory {
InterfacePopulationChangedEventListener listener) { InterfacePopulationChangedEventListener listener) {
problem.initProblem(); problem.initProblem();
// RandomNumberGenerator.setRandomSeed(100); // RNG.setRandomSeed(100);
AbstractEAIndividual tmpIndi = problem.getIndividualTemplate(); AbstractEAIndividual tmpIndi = problem.getIndividualTemplate();
tmpIndi.setMutationOperator(mutationoperator); tmpIndi.setMutationOperator(mutationoperator);
+5 -5
View File
@@ -27,11 +27,11 @@ import eva2.server.stat.StatisticsStandalone;
* *
*/ */
public class OptimizerRunnable implements Runnable { public class OptimizerRunnable implements Runnable {
Processor proc; private Processor proc;
boolean isFinished = false; private boolean isFinished = false;
boolean doRestart = false; // indicate whether start or restart should be done --> whether pop will be reinitialized. private boolean doRestart = false; // indicate whether start or restart should be done --> whether pop will be reinitialized.
boolean postProcessOnly = false; private boolean postProcessOnly = false;
InterfaceTextListener listener = null; private InterfaceTextListener listener = null;
public OptimizerRunnable(GOParameters params, String outputFilePrefix) { public OptimizerRunnable(GOParameters params, String outputFilePrefix) {
this(params, outputFilePrefix, false); this(params, outputFilePrefix, false);
+5 -4
View File
@@ -78,6 +78,7 @@ public class EvAClient implements RemoteStateListener, Serializable {
private static Properties EVA_PROPERTIES; private static Properties EVA_PROPERTIES;
public static final String iconLocation = "resources/images/icon3.gif"; public static final String iconLocation = "resources/images/icon3.gif";
private static final String splashLocation = "resources/images/splashScreen2.png"; private static final String splashLocation = "resources/images/splashScreen2.png";
private static final String infoTitle = "EvA2 Information";
final int splashScreenTime = 1500; final int splashScreenTime = 1500;
public static boolean TRACE = false; public static boolean TRACE = false;
@@ -510,7 +511,7 @@ public class EvAClient implements RemoteStateListener, Serializable {
if (selectedModule == null) { // show a dialog and ask for a module if (selectedModule == null) { // show a dialog and ask for a module
String[] ModuleNameList = m_ComAdapter.getModuleNameList(); String[] ModuleNameList = m_ComAdapter.getModuleNameList();
if (ModuleNameList == null) { if (ModuleNameList == null) {
JOptionPane.showMessageDialog(m_Frame.getContentPane(), "No modules available on " + m_ComAdapter.getHostName(), "EvA2 Information", 1); JOptionPane.showMessageDialog(m_Frame.getContentPane(), "No modules available on " + m_ComAdapter.getHostName(), infoTitle, 1);
} else { } else {
String LastModuleName = Serializer.loadString("lastmodule.ser"); String LastModuleName = Serializer.loadString("lastmodule.ser");
if (LastModuleName == null) LastModuleName = ModuleNameList[0]; if (LastModuleName == null) LastModuleName = ModuleNameList[0];
@@ -643,7 +644,7 @@ public class EvAClient implements RemoteStateListener, Serializable {
} }
private void showPleaseWaitDialog() { private void showPleaseWaitDialog() {
JOptionPane.showMessageDialog(m_Frame.getContentPane(), "Please wait one moment.", "EvA2 Information", 1); JOptionPane.showMessageDialog(m_Frame.getContentPane(), "Please wait one moment.", infoTitle, 1);
} }
private void showAboutDialog() { private void showAboutDialog() {
@@ -651,11 +652,11 @@ public class EvAClient implements RemoteStateListener, Serializable {
(m_Frame, (m_Frame,
m_ProductName + m_ProductName +
"\n University of Tuebingen\n Computer Architecture\n H. Ulmer & F. Streichert & H. Planatscher & M. de Paly & M. Kronfeld\n Prof. Dr. Andreas Zell \n (c) 2008 \n Version " + "\n University of Tuebingen\n Computer Architecture\n H. Ulmer & F. Streichert & H. Planatscher & M. de Paly & M. Kronfeld\n Prof. Dr. Andreas Zell \n (c) 2008 \n Version " +
EvAServer.Version + " \n http://www.ra.cs.uni-tuebingen.de/software/EvA2", "EvA2 Information", 1); EvAServer.Version + " \n http://www.ra.cs.uni-tuebingen.de/software/EvA2", infoTitle, 1);
} }
private void showNoHostFoundDialog() { private void showNoHostFoundDialog() {
JOptionPane.showMessageDialog(m_Frame.getContentPane(), "No host with running EVASERVER found. Please start one or \nadd the correct address to the properties list.", "EvA2 Information", 1); JOptionPane.showMessageDialog(m_Frame.getContentPane(), "No host with running EVASERVER found. Please start one or \nadd the correct address to the properties list.", infoTitle, 1);
} }
/** /**
+3 -2
View File
@@ -431,7 +431,8 @@ public class BeanInspector {
continue; continue;
} }
StringBuffer memberInfoBf = new StringBuffer("Member:\t"); StringBuffer memberInfoBf = new StringBuffer(40);
memberInfoBf.append("Member:\t");
memberInfoBf.append(name); memberInfoBf.append(name);
memberInfoBf.append("\tType: "); memberInfoBf.append("\tType: ");
@@ -530,7 +531,7 @@ public class BeanInspector {
public static Object doubleToPrimitive(Double d, Class<?> destType) { public static Object doubleToPrimitive(Double d, Class<?> destType) {
if ((destType == Double.class) || (destType == double.class)) return d; if ((destType == Double.class) || (destType == double.class)) return d;
if ((destType == Integer.class) || (destType == int.class)) return new Integer(d.intValue()); if ((destType == Integer.class) || (destType == int.class)) return new Integer(d.intValue());
else if ((destType == Boolean.class) || (destType == boolean.class)) return new Boolean(d != 0); else if ((destType == Boolean.class) || (destType == boolean.class)) return (d!=0) ? Boolean.TRUE : Boolean.FALSE;
else if ((destType == Byte.class) || (destType == byte.class)) return new Byte(d.byteValue()); else if ((destType == Byte.class) || (destType == byte.class)) return new Byte(d.byteValue());
else if ((destType == Short.class) || (destType == short.class)) return new Short(d.shortValue()); else if ((destType == Short.class) || (destType == short.class)) return new Short(d.shortValue());
else if ((destType == Long.class) || (destType == long.class)) return new Long(d.longValue()); else if ((destType == Long.class) || (destType == long.class)) return new Long(d.longValue());
+2 -2
View File
@@ -121,9 +121,9 @@ public class PropertyRemoteServers implements java.io.Serializable {
*/ */
public String[] getServerNodes() { public String[] getServerNodes() {
String[] result; String[] result;
ArrayList tmpList = new ArrayList(); ArrayList<String> tmpList = new ArrayList<String>();
for (int i = 0; i < this.m_AvailableNodes.length; i++) { for (int i = 0; i < this.m_AvailableNodes.length; i++) {
for (int j = 0; j < this.m_AvailableNodes[i].m_CPUs; i++) { for (int j = 0; j < this.m_AvailableNodes[i].m_CPUs; j++) {
tmpList.add(this.m_AvailableNodes[i].m_ServerName); tmpList.add(this.m_AvailableNodes[i].m_ServerName);
} }
} }
+7 -8
View File
@@ -25,6 +25,8 @@ import javax.swing.JProgressBar;
import javax.swing.JTabbedPane; import javax.swing.JTabbedPane;
import javax.swing.SwingUtilities; import javax.swing.SwingUtilities;
import wsi.ra.jproxy.ThreadProxy;
import wsi.ra.math.RNG;
import eva2.client.EvAClient; import eva2.client.EvAClient;
import eva2.gui.JParaPanel; import eva2.gui.JParaPanel;
import eva2.server.go.individuals.AbstractEAIndividual; import eva2.server.go.individuals.AbstractEAIndividual;
@@ -42,12 +44,9 @@ import eva2.server.go.problems.F1Problem;
import eva2.server.go.strategies.EvolutionStrategies; import eva2.server.go.strategies.EvolutionStrategies;
import eva2.server.go.strategies.GeneticAlgorithm; import eva2.server.go.strategies.GeneticAlgorithm;
import eva2.server.go.strategies.InterfaceOptimizer; import eva2.server.go.strategies.InterfaceOptimizer;
import eva2.server.go.tools.RandomNumberGenerator;
import eva2.server.modules.GOParameters; import eva2.server.modules.GOParameters;
import eva2.tools.TokenHolder; import eva2.tools.TokenHolder;
import wsi.ra.jproxy.ThreadProxy;
/** /**
* Created by IntelliJ IDEA. * Created by IntelliJ IDEA.
* User: streiche * User: streiche
@@ -113,7 +112,7 @@ public class GOStandaloneVersion implements InterfaceGOStandalone, InterfacePopu
this.m_GO = GOParameters.getInstance(); this.m_GO = GOParameters.getInstance();
this.m_ExperimentName = this.m_GO.getOptimizer().getName()+"-"+this.m_PerformedRuns.size(); this.m_ExperimentName = this.m_GO.getOptimizer().getName()+"-"+this.m_PerformedRuns.size();
this.m_GO.addPopulationChangedEventListener(this); this.m_GO.addPopulationChangedEventListener(this);
RandomNumberGenerator.setRandomSeed(m_GO.getSeed()); RNG.setRandomSeed(m_GO.getSeed());
} }
/** This method allows you to get the current GO parameters /** This method allows you to get the current GO parameters
@@ -370,7 +369,7 @@ public class GOStandaloneVersion implements InterfaceGOStandalone, InterfacePopu
this.m_GO.saveInstance(); this.m_GO.saveInstance();
if (this.show) this.m_StatusField.setText("Optimizing..."); if (this.show) this.m_StatusField.setText("Optimizing...");
RandomNumberGenerator.setRandomSeed(m_GO.getSeed()); RNG.setRandomSeed(m_GO.getSeed());
// opening output file... // opening output file...
if (!this.m_OutputFileName.equalsIgnoreCase("none")) { if (!this.m_OutputFileName.equalsIgnoreCase("none")) {
String name = ""; String name = "";
@@ -541,7 +540,7 @@ public class GOStandaloneVersion implements InterfaceGOStandalone, InterfacePopu
app.setShow(false); app.setShow(false);
} else { } else {
GOStandaloneVersion program = new GOStandaloneVersion(); GOStandaloneVersion program = new GOStandaloneVersion();
RandomNumberGenerator.setRandomSeed(1); RNG.setRandomSeed(1);
program.initFrame(); program.initFrame();
program.setShow(true); program.setShow(true);
} }
@@ -646,10 +645,10 @@ public class GOStandaloneVersion implements InterfaceGOStandalone, InterfacePopu
*/ */
// MK: These methods have nothing to do with the seed parameter from the m_GO object which is actually used, so I comment them out // MK: These methods have nothing to do with the seed parameter from the m_GO object which is actually used, so I comment them out
// public void setSeed(long seed) { // public void setSeed(long seed) {
// RandomNumberGenerator.setseed(seed); // RNG.setseed(seed);
// } // }
// public long getSeed() { // public long getSeed() {
// return RandomNumberGenerator.getRandomSeed(); // return RNG.getRandomSeed();
// } // }
// public String seedTipText() { // public String seedTipText() {
// return "Choose the seed for the random number generator."; // return "Choose the seed for the random number generator.";
@@ -6,6 +6,7 @@ import java.util.BitSet;
import java.util.LinkedList; import java.util.LinkedList;
import java.util.List; import java.util.List;
import wsi.ra.math.RNG;
import eva2.gui.BeanInspector; import eva2.gui.BeanInspector;
import eva2.server.go.IndividualInterface; import eva2.server.go.IndividualInterface;
import eva2.server.go.individuals.codings.gp.InterfaceProgram; import eva2.server.go.individuals.codings.gp.InterfaceProgram;
@@ -16,8 +17,6 @@ import eva2.server.go.operators.mutation.InterfaceMutation;
import eva2.server.go.operators.mutation.NoMutation; import eva2.server.go.operators.mutation.NoMutation;
import eva2.server.go.populations.Population; import eva2.server.go.populations.Population;
import eva2.server.go.problems.InterfaceOptimizationProblem; import eva2.server.go.problems.InterfaceOptimizationProblem;
import eva2.server.go.tools.GONamingBox;
import eva2.server.go.tools.RandomNumberGenerator;
/** This is the abstract EA individual implementing the most important methods giving /** This is the abstract EA individual implementing the most important methods giving
* access to mutation and crossover rates and operators, fitness values and selection * access to mutation and crossover rates and operators, fitness values and selection
@@ -243,7 +242,7 @@ public abstract class AbstractEAIndividual implements IndividualInterface, java.
/** This method will mutate the individual randomly /** This method will mutate the individual randomly
*/ */
public void mutate() { public void mutate() {
if (RandomNumberGenerator.flipCoin(this.m_MutationProbability)) this.m_MutationOperator.mutate(this); if (RNG.flipCoin(this.m_MutationProbability)) this.m_MutationOperator.mutate(this);
} }
/** /**
@@ -257,7 +256,7 @@ public abstract class AbstractEAIndividual implements IndividualInterface, java.
*/ */
public AbstractEAIndividual[] mateWith(Population partners) { public AbstractEAIndividual[] mateWith(Population partners) {
AbstractEAIndividual[] result; AbstractEAIndividual[] result;
if (RandomNumberGenerator.flipCoin(this.m_CrossoverProbability)) { if (RNG.flipCoin(this.m_CrossoverProbability)) {
result = this.m_CrossoverOperator.mate(this, partners); result = this.m_CrossoverOperator.mate(this, partners);
if (logParentLen > 0) { if (logParentLen > 0) {
for (int i = 0; i < result.length; i++) { for (int i = 0; i < result.length; i++) {
@@ -2,12 +2,11 @@ package eva2.server.go.individuals;
import java.util.BitSet; import java.util.BitSet;
import eva2.server.go.IndividualInterface; import wsi.ra.math.RNG;
import eva2.server.go.operators.crossover.CrossoverESDefault; import eva2.server.go.operators.crossover.CrossoverESDefault;
import eva2.server.go.operators.mutation.InterfaceMutation; import eva2.server.go.operators.mutation.InterfaceMutation;
import eva2.server.go.operators.mutation.MutateESGlobal; import eva2.server.go.operators.mutation.MutateESGlobal;
import eva2.server.go.problems.InterfaceOptimizationProblem; import eva2.server.go.problems.InterfaceOptimizationProblem;
import eva2.server.go.tools.RandomNumberGenerator;
/** This individual uses a real-valued genotype to code for binary values, either /** This individual uses a real-valued genotype to code for binary values, either
@@ -127,7 +126,7 @@ public class ESIndividualBinaryData extends AbstractEAIndividual implements Inte
} else { } else {
// in this case the value of the genotype is interpreted as a probability // in this case the value of the genotype is interpreted as a probability
for (int i = 0; i < this.m_Genotype.length; i++) { for (int i = 0; i < this.m_Genotype.length; i++) {
if (RandomNumberGenerator.flipCoin(this.m_Genotype[i])) { if (RNG.flipCoin(this.m_Genotype[i])) {
this.m_Phenotype.set(i); this.m_Phenotype.set(i);
} else { } else {
this.m_Phenotype.clear(i); this.m_Phenotype.clear(i);
@@ -159,8 +158,8 @@ public class ESIndividualBinaryData extends AbstractEAIndividual implements Inte
this.SetBinaryData(binaryData); this.SetBinaryData(binaryData);
for (int i = 0; i < this.m_Genotype.length; i++) { for (int i = 0; i < this.m_Genotype.length; i++) {
if (this.m_UseHardSwitch) { if (this.m_UseHardSwitch) {
if (binaryData.get(i)) this.m_Genotype[i] = RandomNumberGenerator.randomDouble(0.55,1.0); if (binaryData.get(i)) this.m_Genotype[i] = RNG.randomDouble(0.55,1.0);
else this.m_Genotype[i] = RandomNumberGenerator.randomDouble(0.0,0.45); else this.m_Genotype[i] = RNG.randomDouble(0.0,0.45);
} else { } else {
if (binaryData.get(i)) this.m_Genotype[i] = 0.9; if (binaryData.get(i)) this.m_Genotype[i] = 0.9;
else this.m_Genotype[i] = 0.1; else this.m_Genotype[i] = 0.1;
@@ -258,8 +257,8 @@ public class ESIndividualBinaryData extends AbstractEAIndividual implements Inte
/** This method performs a simple one element mutation on the double vector /** This method performs a simple one element mutation on the double vector
*/ */
public void defaultMutate() { public void defaultMutate() {
int mutationIndex = RandomNumberGenerator.randomInt(0, this.m_Genotype.length-1); int mutationIndex = RNG.randomInt(0, this.m_Genotype.length-1);
this.m_Genotype[mutationIndex] += ((this.m_Range[mutationIndex][1] - this.m_Range[mutationIndex][0])/2)*RandomNumberGenerator.gaussianDouble(0.05f); this.m_Genotype[mutationIndex] += ((this.m_Range[mutationIndex][1] - this.m_Range[mutationIndex][0])/2)*RNG.gaussianDouble(0.05f);
if (this.m_Genotype[mutationIndex] < this.m_Range[mutationIndex][0]) this.m_Genotype[mutationIndex] = this.m_Range[mutationIndex][0]; if (this.m_Genotype[mutationIndex] < this.m_Range[mutationIndex][0]) this.m_Genotype[mutationIndex] = this.m_Range[mutationIndex][0];
if (this.m_Genotype[mutationIndex] > this.m_Range[mutationIndex][1]) this.m_Genotype[mutationIndex] = this.m_Range[mutationIndex][1]; if (this.m_Genotype[mutationIndex] > this.m_Range[mutationIndex][1]) this.m_Genotype[mutationIndex] = this.m_Range[mutationIndex][1];
} }
@@ -268,7 +267,7 @@ public class ESIndividualBinaryData extends AbstractEAIndividual implements Inte
*/ */
public void defaultInit() { public void defaultInit() {
for (int i = 0; i < this.m_Genotype.length; i++) { for (int i = 0; i < this.m_Genotype.length; i++) {
this.m_Genotype[i] = RandomNumberGenerator.randomDouble(this.m_Range[i][0], this.m_Range[i][1]); this.m_Genotype[i] = RNG.randomDouble(this.m_Range[i][0], this.m_Range[i][1]);
} }
} }
/********************************************************************************************************************** /**********************************************************************************************************************
@@ -8,7 +8,7 @@ import eva2.server.go.operators.crossover.CrossoverESDefault;
import eva2.server.go.operators.mutation.InterfaceMutation; import eva2.server.go.operators.mutation.InterfaceMutation;
import eva2.server.go.operators.mutation.MutateESGlobal; import eva2.server.go.operators.mutation.MutateESGlobal;
import eva2.server.go.problems.InterfaceOptimizationProblem; import eva2.server.go.problems.InterfaceOptimizationProblem;
import eva2.server.go.tools.RandomNumberGenerator; import wsi.ra.math.RNG;
/** This individual uses a real-valued genotype to code for double values. /** This individual uses a real-valued genotype to code for double values.
* Created by IntelliJ IDEA. * Created by IntelliJ IDEA.
@@ -279,8 +279,8 @@ public class ESIndividualDoubleData extends AbstractEAIndividual implements Inte
/** This method performs a simple one element mutation on the double vector /** This method performs a simple one element mutation on the double vector
*/ */
public void defaultMutate() { public void defaultMutate() {
int mutationIndex = RandomNumberGenerator.randomInt(0, this.m_Genotype.length-1); int mutationIndex = RNG.randomInt(0, this.m_Genotype.length-1);
this.m_Genotype[mutationIndex] += ((this.m_Range[mutationIndex][1] - this.m_Range[mutationIndex][0])/2)*RandomNumberGenerator.gaussianDouble(0.05f); this.m_Genotype[mutationIndex] += ((this.m_Range[mutationIndex][1] - this.m_Range[mutationIndex][0])/2)*RNG.gaussianDouble(0.05f);
if (this.m_Genotype[mutationIndex] < this.m_Range[mutationIndex][0]) this.m_Genotype[mutationIndex] = this.m_Range[mutationIndex][0]; if (this.m_Genotype[mutationIndex] < this.m_Range[mutationIndex][0]) this.m_Genotype[mutationIndex] = this.m_Range[mutationIndex][0];
if (this.m_Genotype[mutationIndex] > this.m_Range[mutationIndex][1]) this.m_Genotype[mutationIndex] = this.m_Range[mutationIndex][1]; if (this.m_Genotype[mutationIndex] > this.m_Range[mutationIndex][1]) this.m_Genotype[mutationIndex] = this.m_Range[mutationIndex][1];
} }
@@ -289,7 +289,7 @@ public class ESIndividualDoubleData extends AbstractEAIndividual implements Inte
*/ */
public void defaultInit() { public void defaultInit() {
for (int i = 0; i < this.m_Genotype.length; i++) { for (int i = 0; i < this.m_Genotype.length; i++) {
this.m_Genotype[i] = RandomNumberGenerator.randomDouble(this.m_Range[i][0], this.m_Range[i][1]); this.m_Genotype[i] = RNG.randomDouble(this.m_Range[i][0], this.m_Range[i][1]);
} }
} }
@@ -8,7 +8,7 @@ import eva2.server.go.operators.crossover.CrossoverESDefault;
import eva2.server.go.operators.mutation.InterfaceMutation; import eva2.server.go.operators.mutation.InterfaceMutation;
import eva2.server.go.operators.mutation.MutateESGlobal; import eva2.server.go.operators.mutation.MutateESGlobal;
import eva2.server.go.problems.InterfaceOptimizationProblem; import eva2.server.go.problems.InterfaceOptimizationProblem;
import eva2.server.go.tools.RandomNumberGenerator; import wsi.ra.math.RNG;
/** This individual uses a real-valued genotype to code for integer values. /** This individual uses a real-valued genotype to code for integer values.
* Created by IntelliJ IDEA. * Created by IntelliJ IDEA.
@@ -255,8 +255,8 @@ public class ESIndividualIntegerData extends AbstractEAIndividual implements Int
/** This method performs a simple one element mutation on the double vector /** This method performs a simple one element mutation on the double vector
*/ */
public void defaultMutate() { public void defaultMutate() {
int mutationIndex = RandomNumberGenerator.randomInt(0, this.m_Genotype.length-1); int mutationIndex = RNG.randomInt(0, this.m_Genotype.length-1);
this.m_Genotype[mutationIndex] += ((this.m_Range[mutationIndex][1] - this.m_Range[mutationIndex][0])/2)*RandomNumberGenerator.gaussianDouble(0.05f); this.m_Genotype[mutationIndex] += ((this.m_Range[mutationIndex][1] - this.m_Range[mutationIndex][0])/2)*RNG.gaussianDouble(0.05f);
if (this.m_Genotype[mutationIndex] < this.m_Range[mutationIndex][0]) this.m_Genotype[mutationIndex] = this.m_Range[mutationIndex][0]; if (this.m_Genotype[mutationIndex] < this.m_Range[mutationIndex][0]) this.m_Genotype[mutationIndex] = this.m_Range[mutationIndex][0];
if (this.m_Genotype[mutationIndex] > this.m_Range[mutationIndex][1]) this.m_Genotype[mutationIndex] = this.m_Range[mutationIndex][1]; if (this.m_Genotype[mutationIndex] > this.m_Range[mutationIndex][1]) this.m_Genotype[mutationIndex] = this.m_Range[mutationIndex][1];
} }
@@ -277,7 +277,7 @@ public class ESIndividualIntegerData extends AbstractEAIndividual implements Int
*/ */
public void defaultInit() { public void defaultInit() {
for (int i = 0; i < this.m_Genotype.length; i++) { for (int i = 0; i < this.m_Genotype.length; i++) {
this.m_Genotype[i] = RandomNumberGenerator.randomInt(this.m_Range[i][0], this.m_Range[i][1]); this.m_Genotype[i] = RNG.randomInt(this.m_Range[i][0], this.m_Range[i][1]);
} }
} }
/********************************************************************************************************************** /**********************************************************************************************************************
@@ -5,7 +5,7 @@ import eva2.server.go.operators.crossover.CrossoverESDefault;
import eva2.server.go.operators.mutation.InterfaceMutation; import eva2.server.go.operators.mutation.InterfaceMutation;
import eva2.server.go.operators.mutation.MutateESGlobal; import eva2.server.go.operators.mutation.MutateESGlobal;
import eva2.server.go.problems.InterfaceOptimizationProblem; import eva2.server.go.problems.InterfaceOptimizationProblem;
import eva2.server.go.tools.RandomNumberGenerator; import wsi.ra.math.RNG;
/** This individual uses a real-valued genotype to code for a permutations, /** This individual uses a real-valued genotype to code for a permutations,
* the sorting of the real-valued genotype gives the permutation. * the sorting of the real-valued genotype gives the permutation.
@@ -180,7 +180,7 @@ public class ESIndividualPermutationData extends AbstractEAIndividual implements
for (int j = 0; j < this.m_Genotype[p].length; j++) { for (int j = 0; j < this.m_Genotype[p].length; j++) {
if ((i != j) && (this.m_Genotype[p][i] == this.m_Genotype[p][j])) { if ((i != j) && (this.m_Genotype[p][i] == this.m_Genotype[p][j])) {
notValid = true; notValid = true;
this.m_Genotype[p][j] = RandomNumberGenerator.randomDouble(0, 1); this.m_Genotype[p][j] = RNG.randomDouble(0, 1);
} }
} }
} }
@@ -320,8 +320,8 @@ public class ESIndividualPermutationData extends AbstractEAIndividual implements
*/ */
public void defaultMutate() { public void defaultMutate() {
for (int i = 0; i < m_Genotype.length; i++) { for (int i = 0; i < m_Genotype.length; i++) {
int mutationIndex = RandomNumberGenerator.randomInt(0, this.m_Genotype[i].length-1); int mutationIndex = RNG.randomInt(0, this.m_Genotype[i].length-1);
this.m_Genotype[i][mutationIndex] += ((this.m_Range[i][mutationIndex][1] - this.m_Range[i][mutationIndex][0])/2)*RandomNumberGenerator.gaussianDouble(0.05f); this.m_Genotype[i][mutationIndex] += ((this.m_Range[i][mutationIndex][1] - this.m_Range[i][mutationIndex][0])/2)*RNG.gaussianDouble(0.05f);
if (this.m_Genotype[i][mutationIndex] < this.m_Range[i][mutationIndex][0]) this.m_Genotype[i][mutationIndex] = this.m_Range[i][mutationIndex][0]; if (this.m_Genotype[i][mutationIndex] < this.m_Range[i][mutationIndex][0]) this.m_Genotype[i][mutationIndex] = this.m_Range[i][mutationIndex][0];
if (this.m_Genotype[i][mutationIndex] > this.m_Range[i][mutationIndex][1]) this.m_Genotype[i][mutationIndex] = this.m_Range[i][mutationIndex][1]; if (this.m_Genotype[i][mutationIndex] > this.m_Range[i][mutationIndex][1]) this.m_Genotype[i][mutationIndex] = this.m_Range[i][mutationIndex][1];
} }
@@ -333,7 +333,7 @@ public class ESIndividualPermutationData extends AbstractEAIndividual implements
public void defaultInit() { public void defaultInit() {
for (int i = 0; i < this.m_Genotype.length; i++) { for (int i = 0; i < this.m_Genotype.length; i++) {
for (int j = 0; j < this.m_Genotype[i].length; j++) { for (int j = 0; j < this.m_Genotype[i].length; j++) {
this.m_Genotype[i][j] = RandomNumberGenerator.randomDouble(this.m_Range[i][j][0], this.m_Range[i][j][1]); this.m_Genotype[i][j] = RNG.randomDouble(this.m_Range[i][j][0], this.m_Range[i][j][1]);
} }
} }
} }
@@ -6,7 +6,7 @@ import java.util.BitSet;
import eva2.server.go.operators.mutation.InterfaceMutation; import eva2.server.go.operators.mutation.InterfaceMutation;
import eva2.server.go.populations.Population; import eva2.server.go.populations.Population;
import eva2.server.go.problems.InterfaceOptimizationProblem; import eva2.server.go.problems.InterfaceOptimizationProblem;
import eva2.server.go.tools.RandomNumberGenerator; import wsi.ra.math.RNG;
/** This individual combines a binary and a real-valued phenotype. /** This individual combines a binary and a real-valued phenotype.
* Created by IntelliJ IDEA. * Created by IntelliJ IDEA.
@@ -99,8 +99,8 @@ public class GAESIndividualBinaryDoubleData extends AbstractEAIndividual impleme
/** This method will mutate the individual randomly /** This method will mutate the individual randomly
*/ */
public void mutate() { public void mutate() {
if (RandomNumberGenerator.flipCoin(this.m_MutationProbability))((AbstractEAIndividual)this.m_Numbers).mutate(); if (RNG.flipCoin(this.m_MutationProbability))((AbstractEAIndividual)this.m_Numbers).mutate();
if (RandomNumberGenerator.flipCoin(this.m_MutationProbability))((AbstractEAIndividual)this.m_BitSet).mutate(); if (RNG.flipCoin(this.m_MutationProbability))((AbstractEAIndividual)this.m_BitSet).mutate();
} }
/** This method will mate the Individual with given other individuals /** This method will mate the Individual with given other individuals
@@ -110,7 +110,7 @@ public class GAESIndividualBinaryDoubleData extends AbstractEAIndividual impleme
*/ */
public AbstractEAIndividual[] mateWith(Population partners) { public AbstractEAIndividual[] mateWith(Population partners) {
AbstractEAIndividual[] result; AbstractEAIndividual[] result;
if (RandomNumberGenerator.flipCoin(this.m_CrossoverProbability)) { if (RNG.flipCoin(this.m_CrossoverProbability)) {
AbstractEAIndividual[] resNum, resBin; AbstractEAIndividual[] resNum, resBin;
AbstractEAIndividual numTmp, binTmp; AbstractEAIndividual numTmp, binTmp;
Population numPop, binPop; Population numPop, binPop;
@@ -12,7 +12,7 @@ import eva2.server.go.operators.mutation.MutateGADefault;
import eva2.server.go.operators.mutation.MutateGAStandard; import eva2.server.go.operators.mutation.MutateGAStandard;
import eva2.server.go.operators.mutation.NoMutation; import eva2.server.go.operators.mutation.NoMutation;
import eva2.server.go.problems.InterfaceOptimizationProblem; import eva2.server.go.problems.InterfaceOptimizationProblem;
import eva2.server.go.tools.RandomNumberGenerator; import wsi.ra.math.RNG;
/** This individual uses a binary genotype to code for binary values. /** This individual uses a binary genotype to code for binary values.
* Created by IntelliJ IDEA. * Created by IntelliJ IDEA.
@@ -183,7 +183,7 @@ public class GAIndividualBinaryData extends AbstractEAIndividual implements Inte
*/ */
public void defaultInit() { public void defaultInit() {
for (int i = 0; i < this.m_GenotypeLength; i++) { for (int i = 0; i < this.m_GenotypeLength; i++) {
if (RandomNumberGenerator.flipCoin(0.5)) this.m_Genotype.set(i); if (RNG.flipCoin(0.5)) this.m_Genotype.set(i);
else this.m_Genotype.clear(i); else this.m_Genotype.clear(i);
} }
} }
@@ -191,7 +191,7 @@ public class GAIndividualBinaryData extends AbstractEAIndividual implements Inte
/** This method performs a simple one point mutation in the genotype /** This method performs a simple one point mutation in the genotype
*/ */
public void defaultMutate() { public void defaultMutate() {
int mutationIndex = RandomNumberGenerator.randomInt(0, this.m_GenotypeLength); int mutationIndex = RNG.randomInt(0, this.m_GenotypeLength);
//if (mutationIndex > 28) System.out.println("Mutate: " + this.getSolutionRepresentationFor()); //if (mutationIndex > 28) System.out.println("Mutate: " + this.getSolutionRepresentationFor());
if (this.m_Genotype.get(mutationIndex)) this.m_Genotype.clear(mutationIndex); if (this.m_Genotype.get(mutationIndex)) this.m_Genotype.clear(mutationIndex);
else this.m_Genotype.set(mutationIndex); else this.m_Genotype.set(mutationIndex);
@@ -12,7 +12,7 @@ import eva2.server.go.operators.mutation.InterfaceMutation;
import eva2.server.go.operators.mutation.MutateGADefault; import eva2.server.go.operators.mutation.MutateGADefault;
import eva2.server.go.operators.mutation.MutateGAStandard; import eva2.server.go.operators.mutation.MutateGAStandard;
import eva2.server.go.problems.InterfaceOptimizationProblem; import eva2.server.go.problems.InterfaceOptimizationProblem;
import eva2.server.go.tools.RandomNumberGenerator; import wsi.ra.math.RNG;
/** This individual uses a binary genotype to code for double values /** This individual uses a binary genotype to code for double values
* using two alternative encodings. * using two alternative encodings.
@@ -296,7 +296,7 @@ public class GAIndividualDoubleData extends AbstractEAIndividual implements Inte
*/ */
public void defaultInit() { public void defaultInit() {
for (int i = 0; i < this.m_GenotypeLength; i++) { for (int i = 0; i < this.m_GenotypeLength; i++) {
if (RandomNumberGenerator.flipCoin(0.5)) this.m_Genotype.set(i); if (RNG.flipCoin(0.5)) this.m_Genotype.set(i);
else this.m_Genotype.clear(i); else this.m_Genotype.clear(i);
} }
} }
@@ -304,7 +304,7 @@ public class GAIndividualDoubleData extends AbstractEAIndividual implements Inte
/** This method performs a simple one point mutation in the genotype /** This method performs a simple one point mutation in the genotype
*/ */
public void defaultMutate() { public void defaultMutate() {
int mutationIndex = RandomNumberGenerator.randomInt(0, this.m_GenotypeLength); int mutationIndex = RNG.randomInt(0, this.m_GenotypeLength);
if (this.m_Genotype.get(mutationIndex)) this.m_Genotype.clear(mutationIndex); if (this.m_Genotype.get(mutationIndex)) this.m_Genotype.clear(mutationIndex);
else this.m_Genotype.set(mutationIndex); else this.m_Genotype.set(mutationIndex);
} }
@@ -11,7 +11,7 @@ import eva2.server.go.operators.crossover.CrossoverGANPoint;
import eva2.server.go.operators.mutation.InterfaceMutation; import eva2.server.go.operators.mutation.InterfaceMutation;
import eva2.server.go.operators.mutation.MutateGAStandard; import eva2.server.go.operators.mutation.MutateGAStandard;
import eva2.server.go.problems.InterfaceOptimizationProblem; import eva2.server.go.problems.InterfaceOptimizationProblem;
import eva2.server.go.tools.RandomNumberGenerator; import wsi.ra.math.RNG;
/** This individual uses a binary genotype to code for binary values using /** This individual uses a binary genotype to code for binary values using
* two alternative encodings. * two alternative encodings.
@@ -313,7 +313,7 @@ public class GAIndividualIntegerData extends AbstractEAIndividual implements Int
int overallLength = 0; int overallLength = 0;
for (int i = 0; i < this.m_CodingLenghts.length; i++) overallLength += this.m_CodingLenghts[i]; for (int i = 0; i < this.m_CodingLenghts.length; i++) overallLength += this.m_CodingLenghts[i];
for (int i = 0; i < overallLength; i++) { for (int i = 0; i < overallLength; i++) {
if (RandomNumberGenerator.flipCoin(0.5)) this.m_Genotype.set(i); if (RNG.flipCoin(0.5)) this.m_Genotype.set(i);
else this.m_Genotype.clear(i); else this.m_Genotype.clear(i);
} }
} }
@@ -323,7 +323,7 @@ public class GAIndividualIntegerData extends AbstractEAIndividual implements Int
public void defaultMutate() { public void defaultMutate() {
int overallLength = 0; int overallLength = 0;
for (int i = 0; i < this.m_CodingLenghts.length; i++) overallLength += this.m_CodingLenghts[i]; for (int i = 0; i < this.m_CodingLenghts.length; i++) overallLength += this.m_CodingLenghts[i];
int mutationIndex = RandomNumberGenerator.randomInt(0, overallLength); int mutationIndex = RNG.randomInt(0, overallLength);
if (this.m_Genotype.get(mutationIndex)) this.m_Genotype.clear(mutationIndex); if (this.m_Genotype.get(mutationIndex)) this.m_Genotype.clear(mutationIndex);
else this.m_Genotype.set(mutationIndex); else this.m_Genotype.set(mutationIndex);
} }
@@ -350,7 +350,7 @@ public class GAIndividualIntegerData extends AbstractEAIndividual implements Int
System.out.println(tmp+"}"); System.out.println(tmp+"}");
tmp = "Setting {"; tmp = "Setting {";
for (int i = 0; i < data.length; i++) { for (int i = 0; i < data.length; i++) {
data[i] = RandomNumberGenerator.randomInt(range[i][0], range[i][1]); data[i] = RNG.randomInt(range[i][0], range[i][1]);
tmp += data[i] + "; "; tmp += data[i] + "; ";
} }
System.out.println(tmp+"}"); System.out.println(tmp+"}");
@@ -14,7 +14,7 @@ import eva2.server.go.operators.mutation.MutateESDefault;
import eva2.server.go.operators.mutation.MutateGPDefault; import eva2.server.go.operators.mutation.MutateGPDefault;
import eva2.server.go.populations.Population; import eva2.server.go.populations.Population;
import eva2.server.go.problems.InterfaceOptimizationProblem; import eva2.server.go.problems.InterfaceOptimizationProblem;
import eva2.server.go.tools.RandomNumberGenerator; import wsi.ra.math.RNG;
/** This individual combines a real-valued phenotype with a tree-based phenotype. /** This individual combines a real-valued phenotype with a tree-based phenotype.
* Created by IntelliJ IDEA. * Created by IntelliJ IDEA.
@@ -107,8 +107,8 @@ public class GAPIndividualProgramData extends AbstractEAIndividual implements In
/** This method will mutate the individual randomly /** This method will mutate the individual randomly
*/ */
public void mutate() { public void mutate() {
if (RandomNumberGenerator.flipCoin(this.m_MutationProbability))((AbstractEAIndividual)this.m_Numbers).mutate(); if (RNG.flipCoin(this.m_MutationProbability))((AbstractEAIndividual)this.m_Numbers).mutate();
if (RandomNumberGenerator.flipCoin(this.m_MutationProbability))((AbstractEAIndividual)this.m_Program).mutate(); if (RNG.flipCoin(this.m_MutationProbability))((AbstractEAIndividual)this.m_Program).mutate();
} }
/** This method will mate the Individual with given other individuals /** This method will mate the Individual with given other individuals
@@ -118,7 +118,7 @@ public class GAPIndividualProgramData extends AbstractEAIndividual implements In
*/ */
public AbstractEAIndividual[] mateWith(Population partners) { public AbstractEAIndividual[] mateWith(Population partners) {
AbstractEAIndividual[] result; AbstractEAIndividual[] result;
if (RandomNumberGenerator.flipCoin(this.m_CrossoverProbability)) { if (RNG.flipCoin(this.m_CrossoverProbability)) {
AbstractEAIndividual[] resNum, resBin; AbstractEAIndividual[] resNum, resBin;
AbstractEAIndividual numTmp, binTmp; AbstractEAIndividual numTmp, binTmp;
Population numPop, binPop; Population numPop, binPop;
@@ -11,7 +11,7 @@ import eva2.server.go.operators.crossover.CrossoverGADefault;
import eva2.server.go.operators.mutation.InterfaceMutation; import eva2.server.go.operators.mutation.InterfaceMutation;
import eva2.server.go.operators.mutation.MutateGADefault; import eva2.server.go.operators.mutation.MutateGADefault;
import eva2.server.go.problems.InterfaceOptimizationProblem; import eva2.server.go.problems.InterfaceOptimizationProblem;
import eva2.server.go.tools.RandomNumberGenerator; import wsi.ra.math.RNG;
/** This individual uses a binary genotype to code for a tree-based representation /** This individual uses a binary genotype to code for a tree-based representation
* using a BNF grammar, see also Grammatical Evolution. * using a BNF grammar, see also Grammatical Evolution.
@@ -578,7 +578,7 @@ public class GEIndividualProgramData extends AbstractEAIndividual implements Int
*/ */
public void defaultInit() { public void defaultInit() {
for (int i = 0; i < this.m_GenotypeLengthPerProgram*this.m_Area.length; i++) { for (int i = 0; i < this.m_GenotypeLengthPerProgram*this.m_Area.length; i++) {
if (RandomNumberGenerator.flipCoin(0.5)) this.m_Genotype.set(i); if (RNG.flipCoin(0.5)) this.m_Genotype.set(i);
else this.m_Genotype.clear(i); else this.m_Genotype.clear(i);
} }
} }
@@ -586,7 +586,7 @@ public class GEIndividualProgramData extends AbstractEAIndividual implements Int
/** This method performs a simple one point mutation in the genotype /** This method performs a simple one point mutation in the genotype
*/ */
public void defaultMutate() { public void defaultMutate() {
int mutationIndex = RandomNumberGenerator.randomInt(0, this.m_GenotypeLengthPerProgram*this.m_Area.length); int mutationIndex = RNG.randomInt(0, this.m_GenotypeLengthPerProgram*this.m_Area.length);
//if (mutationIndex > 28) System.out.println("Mutate: " + this.getSolutionRepresentationFor()); //if (mutationIndex > 28) System.out.println("Mutate: " + this.getSolutionRepresentationFor());
if (this.m_Genotype.get(mutationIndex)) this.m_Genotype.clear(mutationIndex); if (this.m_Genotype.get(mutationIndex)) this.m_Genotype.clear(mutationIndex);
else this.m_Genotype.set(mutationIndex); else this.m_Genotype.set(mutationIndex);
@@ -4,7 +4,7 @@ import eva2.server.go.operators.crossover.CrossoverGIDefault;
import eva2.server.go.operators.mutation.InterfaceMutation; import eva2.server.go.operators.mutation.InterfaceMutation;
import eva2.server.go.operators.mutation.MutateGIDefault; import eva2.server.go.operators.mutation.MutateGIDefault;
import eva2.server.go.problems.InterfaceOptimizationProblem; import eva2.server.go.problems.InterfaceOptimizationProblem;
import eva2.server.go.tools.RandomNumberGenerator; import wsi.ra.math.RNG;
/** This individual uses a integer genotype to code for integer values. /** This individual uses a integer genotype to code for integer values.
* Created by IntelliJ IDEA. * Created by IntelliJ IDEA.
@@ -275,15 +275,15 @@ public class GIIndividualIntegerData extends AbstractEAIndividual implements Int
/** This method performs a simple one point mutation in the genotype /** This method performs a simple one point mutation in the genotype
*/ */
public void defaultMutate() { public void defaultMutate() {
int mutationIndex = RandomNumberGenerator.randomInt(0, this.m_Genotype.length-1); int mutationIndex = RNG.randomInt(0, this.m_Genotype.length-1);
this.m_Genotype[mutationIndex] = RandomNumberGenerator.randomInt(this.m_Range[mutationIndex][0], this.m_Range[mutationIndex][1]); this.m_Genotype[mutationIndex] = RNG.randomInt(this.m_Range[mutationIndex][0], this.m_Range[mutationIndex][1]);
} }
/** This method initializes the GA genotype randomly /** This method initializes the GA genotype randomly
*/ */
public void defaultInit() { public void defaultInit() {
for (int i = 0; i < this.m_Genotype.length; i++) { for (int i = 0; i < this.m_Genotype.length; i++) {
this.m_Genotype[i] = RandomNumberGenerator.randomInt(this.m_Range[i][0], this.m_Range[i][1]); this.m_Genotype[i] = RNG.randomInt(this.m_Range[i][0], this.m_Range[i][1]);
} }
} }
@@ -6,7 +6,7 @@ import java.util.BitSet;
import eva2.server.go.operators.mutation.InterfaceMutation; import eva2.server.go.operators.mutation.InterfaceMutation;
import eva2.server.go.populations.Population; import eva2.server.go.populations.Population;
import eva2.server.go.problems.InterfaceOptimizationProblem; import eva2.server.go.problems.InterfaceOptimizationProblem;
import eva2.server.go.tools.RandomNumberGenerator; import wsi.ra.math.RNG;
/** This individual combines a binary and a real-valued phenotype. /** This individual combines a binary and a real-valued phenotype.
* Created by IntelliJ IDEA. * Created by IntelliJ IDEA.
@@ -99,8 +99,8 @@ public class GIOBGAIndividualIntegerPermutationData extends AbstractEAIndividual
/** This method will mutate the individual randomly /** This method will mutate the individual randomly
*/ */
public void mutate() { public void mutate() {
if (RandomNumberGenerator.flipCoin(this.m_MutationProbability))((AbstractEAIndividual)this.m_Integer).mutate(); if (RNG.flipCoin(this.m_MutationProbability))((AbstractEAIndividual)this.m_Integer).mutate();
if (RandomNumberGenerator.flipCoin(this.m_MutationProbability))((AbstractEAIndividual)this.m_Permutation).mutate(); if (RNG.flipCoin(this.m_MutationProbability))((AbstractEAIndividual)this.m_Permutation).mutate();
} }
/** This method will mate the Individual with given other individuals /** This method will mate the Individual with given other individuals
@@ -110,7 +110,7 @@ public class GIOBGAIndividualIntegerPermutationData extends AbstractEAIndividual
*/ */
public AbstractEAIndividual[] mateWith(Population partners) { public AbstractEAIndividual[] mateWith(Population partners) {
AbstractEAIndividual[] result; AbstractEAIndividual[] result;
if (RandomNumberGenerator.flipCoin(this.m_CrossoverProbability)) { if (RNG.flipCoin(this.m_CrossoverProbability)) {
AbstractEAIndividual[] resNum, resBin; AbstractEAIndividual[] resNum, resBin;
AbstractEAIndividual numTmp, binTmp; AbstractEAIndividual numTmp, binTmp;
Population numPop, binPop; Population numPop, binPop;
@@ -10,7 +10,7 @@ import eva2.server.go.operators.crossover.CrossoverGPDefault;
import eva2.server.go.operators.mutation.InterfaceMutation; import eva2.server.go.operators.mutation.InterfaceMutation;
import eva2.server.go.operators.mutation.MutateGPDefault; import eva2.server.go.operators.mutation.MutateGPDefault;
import eva2.server.go.problems.InterfaceOptimizationProblem; import eva2.server.go.problems.InterfaceOptimizationProblem;
import eva2.server.go.tools.RandomNumberGenerator; import wsi.ra.math.RNG;
import eva2.tools.EVAERROR; import eva2.tools.EVAERROR;
import eva2.tools.EVAHELP; import eva2.tools.EVAHELP;
@@ -270,7 +270,7 @@ public class GPIndividualProgramData extends AbstractEAIndividual implements Int
ArrayList allNodes = new ArrayList(); ArrayList allNodes = new ArrayList();
for (int i = 0; i < this.m_Genotype.length; i++) { for (int i = 0; i < this.m_Genotype.length; i++) {
this.m_Genotype[i].addNodesTo(allNodes); this.m_Genotype[i].addNodesTo(allNodes);
AbstractGPNode nodeToMutate = (AbstractGPNode) allNodes.get(RandomNumberGenerator.randomInt(0, allNodes.size()-1)); AbstractGPNode nodeToMutate = (AbstractGPNode) allNodes.get(RNG.randomInt(0, allNodes.size()-1));
if (nodeToMutate.getParent() == null) { if (nodeToMutate.getParent() == null) {
this.defaultInit(); this.defaultInit();
} else { } else {
@@ -292,8 +292,8 @@ public class GPIndividualProgramData extends AbstractEAIndividual implements Int
} else { } else {
this.m_Genotype[i] = (AbstractGPNode)(this.m_Area[i].getRandomNonTerminal()).clone(); this.m_Genotype[i] = (AbstractGPNode)(this.m_Area[i].getRandomNonTerminal()).clone();
this.m_Genotype[i].setDepth(0); this.m_Genotype[i].setDepth(0);
int targetDepth = RandomNumberGenerator.randomInt(1, this.m_InitDepth); int targetDepth = RNG.randomInt(1, this.m_InitDepth);
if (RandomNumberGenerator.flipCoin(this.m_InitFullGrowRatio)) if (RNG.flipCoin(this.m_InitFullGrowRatio))
this.m_Genotype[i].initFull(this.m_Area[i], targetDepth); this.m_Genotype[i].initFull(this.m_Area[i], targetDepth);
else else
this.m_Genotype[i].initGrow(this.m_Area[i], targetDepth); this.m_Genotype[i].initGrow(this.m_Area[i], targetDepth);
@@ -7,7 +7,7 @@ import eva2.server.go.operators.crossover.CrossoverOBGAPMX;
import eva2.server.go.operators.mutation.InterfaceMutation; import eva2.server.go.operators.mutation.InterfaceMutation;
import eva2.server.go.operators.mutation.MutateOBGAFlip; import eva2.server.go.operators.mutation.MutateOBGAFlip;
import eva2.server.go.problems.InterfaceOptimizationProblem; import eva2.server.go.problems.InterfaceOptimizationProblem;
import eva2.server.go.tools.RandomNumberGenerator; import wsi.ra.math.RNG;
/** This individual uses a permutation based genotype to code for /** This individual uses a permutation based genotype to code for
* permutations. * permutations.
@@ -170,8 +170,8 @@ public class OBGAIndividualPermutationData extends AbstractEAIndividual implemen
int[][] permmatrix = this.getPermutationData(); int[][] permmatrix = this.getPermutationData();
for (int i = 0; i < permmatrix.length; i++) { for (int i = 0; i < permmatrix.length; i++) {
int[] perm = permmatrix[i]; int[] perm = permmatrix[i];
int p1 = RandomNumberGenerator.randomInt(0,perm.length-1); int p1 = RNG.randomInt(0,perm.length-1);
int p2 = RandomNumberGenerator.randomInt(0,perm.length-1); int p2 = RNG.randomInt(0,perm.length-1);
int temp = perm[p1]; int temp = perm[p1];
perm[p1] = perm[p2]; perm[p1] = perm[p2];
perm[p2] = temp; perm[p2] = temp;
@@ -192,7 +192,7 @@ public class OBGAIndividualPermutationData extends AbstractEAIndividual implemen
} }
int i = 0; int i = 0;
while (!pot.isEmpty()) { while (!pot.isEmpty()) {
perm[p][i] = ((Integer) (pot.remove(RandomNumberGenerator.randomInt(0, pot.size() - 1)))).intValue(); perm[p][i] = ((Integer) (pot.remove(RNG.randomInt(0, pot.size() - 1)))).intValue();
i++; i++;
} }
} }
@@ -3,7 +3,7 @@ package eva2.server.go.individuals.codings.ga;
import java.util.BitSet; import java.util.BitSet;
import eva2.server.go.tools.RandomNumberGenerator; import wsi.ra.math.RNG;
/** This gives the gray coding for double with a variable number of bits for coding /** This gives the gray coding for double with a variable number of bits for coding
* As far as i recall the least significant bit is to the left. * As far as i recall the least significant bit is to the left.
@@ -86,7 +86,7 @@ public class GAGrayCodingDouble implements InterfaceGADoubleCoding, java.io.Seri
range[0] = -10; range[0] = -10;
range[1] = 10; range[1] = 10;
for (int i = 0; i < 10; i++) { for (int i = 0; i < 10; i++) {
value = RandomNumberGenerator.randomDouble(range[0], range[1]); value = RNG.randomDouble(range[0], range[1]);
tmp = value; tmp = value;
System.out.println("Coding Value : " + value); System.out.println("Coding Value : " + value);
t.codeValue(value, range, tmpBitSet, locus); t.codeValue(value, range, tmpBitSet, locus);
@@ -3,7 +3,7 @@ package eva2.server.go.individuals.codings.ga;
import java.util.BitSet; import java.util.BitSet;
import eva2.server.go.tools.RandomNumberGenerator; import wsi.ra.math.RNG;
/** The traditional binary coding for integer number, no variable number of bits here, sorry. /** The traditional binary coding for integer number, no variable number of bits here, sorry.
* Created by IntelliJ IDEA. * Created by IntelliJ IDEA.
@@ -55,7 +55,7 @@ public class GAStandardCodingInteger implements InterfaceGAIntegerCoding, java.i
//System.out.print("Korregiere: " + tmpV + " > " + u_max); //System.out.print("Korregiere: " + tmpV + " > " + u_max);
if (correction) { if (correction) {
// a new value within the bounds is generated // a new value within the bounds is generated
tmpV = RandomNumberGenerator.randomInt(u_min, u_max); tmpV = RNG.randomInt(u_min, u_max);
//System.out.println("zu: " + tmpV); //System.out.println("zu: " + tmpV);
codeValue((int)tmpV, range, refBitSet, locus); codeValue((int)tmpV, range, refBitSet, locus);
} else { } else {
@@ -3,7 +3,7 @@ package eva2.server.go.individuals.codings.gp;
import java.util.ArrayList; import java.util.ArrayList;
import eva2.server.go.tools.RandomNumberGenerator; import wsi.ra.math.RNG;
/** This class gives the area of GPNodes for a GP problem. The area gives /** This class gives the area of GPNodes for a GP problem. The area gives
* the range of possible nodes to select from for a GP. * the range of possible nodes to select from for a GP.
@@ -114,14 +114,14 @@ public class GPArea implements java.io.Serializable {
if (((AbstractGPNode)this.m_ReducedList.get(i)).getArity() == targetarity) tmpArray.add(this.m_ReducedList.get(i)); if (((AbstractGPNode)this.m_ReducedList.get(i)).getArity() == targetarity) tmpArray.add(this.m_ReducedList.get(i));
} }
if (tmpArray.size() == 0) return null; if (tmpArray.size() == 0) return null;
else return (AbstractGPNode)tmpArray.get(RandomNumberGenerator.randomInt(0, tmpArray.size()-1)); else return (AbstractGPNode)tmpArray.get(RNG.randomInt(0, tmpArray.size()-1));
} }
/** This method will return a random node. /** This method will return a random node.
*/ */
public AbstractGPNode getRandomNode() { public AbstractGPNode getRandomNode() {
if (this.m_ReducedList.size() == 0) return null; if (this.m_ReducedList.size() == 0) return null;
else return (AbstractGPNode)this.m_ReducedList.get(RandomNumberGenerator.randomInt(0, this.m_ReducedList.size()-1)); else return (AbstractGPNode)this.m_ReducedList.get(RNG.randomInt(0, this.m_ReducedList.size()-1));
} }
/** This method will return a non terminal /** This method will return a non terminal
@@ -132,6 +132,6 @@ public class GPArea implements java.io.Serializable {
if (((AbstractGPNode)this.m_ReducedList.get(i)).getArity() > 0) tmpArray.add(this.m_ReducedList.get(i)); if (((AbstractGPNode)this.m_ReducedList.get(i)).getArity() > 0) tmpArray.add(this.m_ReducedList.get(i));
} }
if (tmpArray.size() == 0) return null; if (tmpArray.size() == 0) return null;
else return (AbstractGPNode)tmpArray.get(RandomNumberGenerator.randomInt(0, tmpArray.size()-1)); else return (AbstractGPNode)tmpArray.get(RNG.randomInt(0, tmpArray.size()-1));
} }
} }
@@ -13,7 +13,7 @@ import eva2.server.go.operators.moso.MOSOLpMetric;
import eva2.server.go.problems.AbstractMultiObjectiveOptimizationProblem; import eva2.server.go.problems.AbstractMultiObjectiveOptimizationProblem;
import eva2.server.go.strategies.IslandModelEA; import eva2.server.go.strategies.IslandModelEA;
import eva2.server.go.tools.GeneralGOEProperty; import eva2.server.go.tools.GeneralGOEProperty;
import eva2.server.go.tools.RandomNumberGenerator; import wsi.ra.math.RNG;
import java.awt.*; import java.awt.*;
import java.awt.event.ActionListener; import java.awt.event.ActionListener;
@@ -235,7 +235,7 @@ public class MOCCOParameterizeRefPoint extends MOCCOPhase implements InterfacePr
for (int i = 0; i < m_Perturbations; i++) { for (int i = 0; i < m_Perturbations; i++) {
tmpD = new double[m_RefPoint.length]; tmpD = new double[m_RefPoint.length];
for (int j = 0; j < tmpD.length; j++) { for (int j = 0; j < tmpD.length; j++) {
if (i > 0) tmpD[j] = m_RefPoint[j] + RandomNumberGenerator.gaussianDouble(m_Perturbation); if (i > 0) tmpD[j] = m_RefPoint[j] + RNG.gaussianDouble(m_Perturbation);
else tmpD[j] = m_RefPoint[j]; else tmpD[j] = m_RefPoint[j];
} }
tmpLPs[i] = (MOSOLpMetric)m_LpMetric.clone(); tmpLPs[i] = (MOSOLpMetric)m_LpMetric.clone();
@@ -13,7 +13,7 @@ import eva2.server.go.operators.moso.MOSOWeightedLPTchebycheff;
import eva2.server.go.problems.AbstractMultiObjectiveOptimizationProblem; import eva2.server.go.problems.AbstractMultiObjectiveOptimizationProblem;
import eva2.server.go.strategies.IslandModelEA; import eva2.server.go.strategies.IslandModelEA;
import eva2.server.go.tools.GeneralGOEProperty; import eva2.server.go.tools.GeneralGOEProperty;
import eva2.server.go.tools.RandomNumberGenerator; import wsi.ra.math.RNG;
import java.awt.*; import java.awt.*;
import java.awt.event.ActionListener; import java.awt.event.ActionListener;
@@ -257,7 +257,7 @@ public class MOCCOParameterizeTchebycheff extends MOCCOPhase implements Interfac
u = l; l = t; u = l; l = t;
} }
if (i > 0) tmpD[j] = RandomNumberGenerator.randomDouble(l,u); if (i > 0) tmpD[j] = RNG.randomDouble(l,u);
else tmpD[j] = 1; else tmpD[j] = 1;
sum += tmpD[j]; sum += tmpD[j];
} }
@@ -8,7 +8,7 @@ import eva2.server.go.IndividualInterface;
import eva2.server.go.individuals.AbstractEAIndividual; import eva2.server.go.individuals.AbstractEAIndividual;
import eva2.server.go.individuals.ESIndividualDoubleData; import eva2.server.go.individuals.ESIndividualDoubleData;
import eva2.server.go.populations.Population; import eva2.server.go.populations.Population;
import eva2.server.go.tools.RandomNumberGenerator; import wsi.ra.math.RNG;
import wsi.ra.chart2d.DPoint; import wsi.ra.chart2d.DPoint;
import wsi.ra.chart2d.DPointIcon; import wsi.ra.chart2d.DPointIcon;
@@ -11,7 +11,7 @@ import eva2.gui.*;
import eva2.server.go.IndividualInterface; import eva2.server.go.IndividualInterface;
import eva2.server.go.individuals.AbstractEAIndividual; import eva2.server.go.individuals.AbstractEAIndividual;
import eva2.server.go.populations.Population; import eva2.server.go.populations.Population;
import eva2.server.go.tools.RandomNumberGenerator; import wsi.ra.math.RNG;
/** The Pareto envelope sorting algorithm using a hybergrid and /** The Pareto envelope sorting algorithm using a hybergrid and
* the so called squezze factor. * the so called squezze factor.
@@ -145,7 +145,7 @@ public class ArchivingPESAII extends AbstractArchiving implements java.io.Serial
bigSqueeze = squeezeFactor[i]; bigSqueeze = squeezeFactor[i];
index = i; index = i;
} }
if ((bigSqueeze == squeezeFactor[i]) && RandomNumberGenerator.flipCoin(0.5)) index = i; if ((bigSqueeze == squeezeFactor[i]) && RNG.flipCoin(0.5)) index = i;
} }
archive.remove(index); archive.remove(index);
} }
@@ -1,7 +1,7 @@
package eva2.server.go.operators.archiving; package eva2.server.go.operators.archiving;
import eva2.server.go.populations.Population; import eva2.server.go.populations.Population;
import eva2.server.go.tools.RandomNumberGenerator; import wsi.ra.math.RNG;
/** This information retrieval method simply add the retrieved solutions /** This information retrieval method simply add the retrieved solutions
* to the current population. * to the current population.
@@ -34,7 +34,7 @@ public class InformationRetrievalReplacing implements InterfaceInformationRetrie
tmp.addPopulation(archive); tmp.addPopulation(archive);
while (tmp.size() < archive.getPopulationSize()) { while (tmp.size() < archive.getPopulationSize()) {
tmp.add(pop.get(RandomNumberGenerator.randomInt(0,pop.size()-1))); tmp.add(pop.get(RNG.randomInt(0,pop.size()-1)));
} }
pop.clear(); pop.clear();
@@ -2,7 +2,7 @@ package eva2.server.go.operators.archiving;
import eva2.server.go.individuals.AbstractEAIndividual; import eva2.server.go.individuals.AbstractEAIndividual;
import eva2.server.go.populations.Population; import eva2.server.go.populations.Population;
import eva2.server.go.tools.RandomNumberGenerator; import wsi.ra.math.RNG;
/** This class removes surplus individuals based on bounding /** This class removes surplus individuals based on bounding
* hybercube, which can be calculated in objective or decision * hybercube, which can be calculated in objective or decision
@@ -50,7 +50,7 @@ public class RemoveSurplusIndividualsDynamicHyperCube implements InterfaceRemove
if (space[i] < space[indexSmallHyperCube]) indexSmallHyperCube = i; if (space[i] < space[indexSmallHyperCube]) indexSmallHyperCube = i;
else { else {
// if they are equal give them a fair chance to exchange between them // if they are equal give them a fair chance to exchange between them
if ((space[i] == space[indexSmallHyperCube]) && (RandomNumberGenerator.flipCoin(0.5))) { if ((space[i] == space[indexSmallHyperCube]) && (RNG.flipCoin(0.5))) {
indexSmallHyperCube = i; indexSmallHyperCube = i;
} }
} }
@@ -2,7 +2,7 @@ package eva2.server.go.operators.archiving;
import eva2.server.go.individuals.AbstractEAIndividual; import eva2.server.go.individuals.AbstractEAIndividual;
import eva2.server.go.populations.Population; import eva2.server.go.populations.Population;
import eva2.server.go.tools.RandomNumberGenerator; import wsi.ra.math.RNG;
/** This class removes surplus individuals based on bounding /** This class removes surplus individuals based on bounding
* hybercube, which can be calculated in objective or decision * hybercube, which can be calculated in objective or decision
@@ -59,7 +59,7 @@ public class RemoveSurplusIndividualsStaticHyperCube extends RemoveSurplusIndivi
indexSmallHyperCube = i; indexSmallHyperCube = i;
} else { } else {
// if they are equal give them a fair chance to exchange between them // if they are equal give them a fair chance to exchange between them
if ((tmpS == smallestHyperCube) && (RandomNumberGenerator.flipCoin(0.5))) { if ((tmpS == smallestHyperCube) && (RNG.flipCoin(0.5))) {
smallestHyperCube = tmpS; smallestHyperCube = tmpS;
indexSmallHyperCube = i; indexSmallHyperCube = i;
} }
@@ -3,7 +3,7 @@ package eva2.server.go.operators.classification;
import javax.swing.*; import javax.swing.*;
import eva2.gui.Chart2DDPointIconCross; import eva2.gui.Chart2DDPointIconCross;
import eva2.server.go.tools.RandomNumberGenerator; import wsi.ra.math.RNG;
import wsi.ra.chart2d.*; import wsi.ra.chart2d.*;
import java.awt.event.WindowAdapter; import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent; import java.awt.event.WindowEvent;
@@ -124,7 +124,7 @@ public class ClassificationSelfOrganizingMaps implements java.io.Serializable, I
for (int i = 0; i < this.m_SOM.length; i++) { for (int i = 0; i < this.m_SOM.length; i++) {
for (int j = 0; j < this.m_SOM[0].length; j++) { for (int j = 0; j < this.m_SOM[0].length; j++) {
for (int k = 0; k < this.m_SOM[0][0].length; k++) { for (int k = 0; k < this.m_SOM[0][0].length; k++) {
this.m_SOM[i][j][k] = 0*RandomNumberGenerator.randomDouble( this.m_SOM[i][j][k] = 0*RNG.randomDouble(
(this.m_Range[k][0] - this.m_Range[k][2])/(1+this.m_Range[k][3]), (this.m_Range[k][0] - this.m_Range[k][2])/(1+this.m_Range[k][3]),
(this.m_Range[k][1] - this.m_Range[k][2])/(1+this.m_Range[k][3])); (this.m_Range[k][1] - this.m_Range[k][2])/(1+this.m_Range[k][3]));
} }
@@ -155,7 +155,7 @@ public class ClassificationSelfOrganizingMaps implements java.io.Serializable, I
int[] winner; int[] winner;
for (int t = 0; t < this.m_TrainingCycles; t++) { for (int t = 0; t < this.m_TrainingCycles; t++) {
// train the full set // train the full set
order = RandomNumberGenerator.randomPermutation(space.length); order = RNG.randomPermutation(space.length);
for (int i = 0; i < order.length; i++) { for (int i = 0; i < order.length; i++) {
winner = this.findWinningNeuron(space[order[i]]); winner = this.findWinningNeuron(space[order[i]]);
// now i got the winning neuron *puh* // now i got the winning neuron *puh*
@@ -453,11 +453,11 @@ public class ClassificationSelfOrganizingMaps implements java.io.Serializable, I
double[][] data = new double[num*2][2]; double[][] data = new double[num*2][2];
int[] type = new int[num*2]; int[] type = new int[num*2];
for (int i = 0; i < num; i++) { for (int i = 0; i < num; i++) {
data[i][0] = -0.8 + RandomNumberGenerator.gaussianDouble(0.3); data[i][0] = -0.8 + RNG.gaussianDouble(0.3);
data[i][1] = -0.5 + RandomNumberGenerator.gaussianDouble(0.1); data[i][1] = -0.5 + RNG.gaussianDouble(0.1);
type[i] = 0; type[i] = 0;
data[i+num][0] = 0.1 + RandomNumberGenerator.gaussianDouble(0.1); data[i+num][0] = 0.1 + RNG.gaussianDouble(0.1);
data[i+num][1] = 0.2 + RandomNumberGenerator.gaussianDouble(0.1); data[i+num][1] = 0.2 + RNG.gaussianDouble(0.1);
type[i+num] = 1; type[i+num] = 1;
} }
som.init(data, type); som.init(data, type);
@@ -9,7 +9,7 @@ import eva2.server.go.individuals.ESIndividualDoubleData;
import eva2.server.go.individuals.InterfaceDataTypeDouble; import eva2.server.go.individuals.InterfaceDataTypeDouble;
import eva2.server.go.populations.Population; import eva2.server.go.populations.Population;
import eva2.server.go.problems.F1Problem; import eva2.server.go.problems.F1Problem;
import eva2.server.go.tools.RandomNumberGenerator; import wsi.ra.math.RNG;
import wsi.ra.chart2d.DPoint; import wsi.ra.chart2d.DPoint;
/** The k-mean clustering algorithms. I guess it is not a hierachical /** The k-mean clustering algorithms. I guess it is not a hierachical
@@ -65,7 +65,7 @@ public class ClusteringKMeans implements InterfaceClustering, java.io.Serializab
this.m_C = new double[this.m_K][]; this.m_C = new double[this.m_K][];
// now choose random initial Cs // now choose random initial Cs
for (int i = 0; i < this.m_C.length; i++) { for (int i = 0; i < this.m_C.length; i++) {
this.m_C[i] = data[RandomNumberGenerator.randomInt(0, data.length-1)]; this.m_C[i] = data[RNG.randomInt(0, data.length-1)];
//this.m_C[i] = data[i]; // This works!! //this.m_C[i] = data[i]; // This works!!
// we won't check for double instances assuming that double instances // we won't check for double instances assuming that double instances
// will be ironed out during clustering and to prevent infinite loops // will be ironed out during clustering and to prevent infinite loops
@@ -9,7 +9,7 @@ import eva2.server.go.individuals.ESIndividualDoubleData;
import eva2.server.go.individuals.InterfaceDataTypeDouble; import eva2.server.go.individuals.InterfaceDataTypeDouble;
import eva2.server.go.populations.Population; import eva2.server.go.populations.Population;
import eva2.server.go.problems.F1Problem; import eva2.server.go.problems.F1Problem;
import eva2.server.go.tools.RandomNumberGenerator; import wsi.ra.math.RNG;
import wsi.ra.chart2d.DPoint; import wsi.ra.chart2d.DPoint;
/** The x-means clustering method should be able to determine a /** The x-means clustering method should be able to determine a
@@ -285,28 +285,28 @@ public class ClusteringXMeans implements InterfaceClustering, java.io.Serializab
x = ((InterfaceDataTypeDouble)pop.get(i)).getDoubleData(); x = ((InterfaceDataTypeDouble)pop.get(i)).getDoubleData();
switch (i%k) { switch (i%k) {
case 0 : { case 0 : {
x[0] = 0 + RandomNumberGenerator.gaussianDouble(1.2); x[0] = 0 + RNG.gaussianDouble(1.2);
x[1] = -1 + RandomNumberGenerator.gaussianDouble(1.5); x[1] = -1 + RNG.gaussianDouble(1.5);
break; break;
} }
case 1 : { case 1 : {
x[0] = 3 + RandomNumberGenerator.gaussianDouble(1.8); x[0] = 3 + RNG.gaussianDouble(1.8);
x[1] = 8 + RandomNumberGenerator.gaussianDouble(0.9); x[1] = 8 + RNG.gaussianDouble(0.9);
break; break;
} }
case 2 : { case 2 : {
x[0] = -4 + RandomNumberGenerator.gaussianDouble(1.2); x[0] = -4 + RNG.gaussianDouble(1.2);
x[1] = -8 + RandomNumberGenerator.gaussianDouble(1.2); x[1] = -8 + RNG.gaussianDouble(1.2);
break; break;
} }
case 3 : { case 3 : {
x[0] = 7 + RandomNumberGenerator.gaussianDouble(1.1); x[0] = 7 + RNG.gaussianDouble(1.1);
x[1] = -5 + RandomNumberGenerator.gaussianDouble(1.0); x[1] = -5 + RNG.gaussianDouble(1.0);
break; break;
} }
default : { default : {
x[0] = -2 + RandomNumberGenerator.gaussianDouble(1.2); x[0] = -2 + RNG.gaussianDouble(1.2);
x[1] = 5 + RandomNumberGenerator.gaussianDouble(1.2); x[1] = 5 + RNG.gaussianDouble(1.2);
} }
} }
if (i == 0) { if (i == 0) {
@@ -6,7 +6,7 @@ import eva2.gui.GenericObjectEditor;
import eva2.server.go.individuals.AbstractEAIndividual; import eva2.server.go.individuals.AbstractEAIndividual;
import eva2.server.go.populations.Population; import eva2.server.go.populations.Population;
import eva2.server.go.problems.InterfaceOptimizationProblem; import eva2.server.go.problems.InterfaceOptimizationProblem;
import eva2.server.go.tools.RandomNumberGenerator; import wsi.ra.math.RNG;
/** /**
@@ -119,7 +119,7 @@ public class CrossoverEAMixer implements InterfaceCrossover, java.io.Serializabl
double[] probs = this.m_Crossers.getWeights(); double[] probs = this.m_Crossers.getWeights();
if (this.m_UseSelfAdaption) { if (this.m_UseSelfAdaption) {
for (int i = 0; i < probs.length; i++) { for (int i = 0; i < probs.length; i++) {
probs[i] = probs[i] * Math.exp(this.m_Tau1 * RandomNumberGenerator.gaussianDouble(1)); probs[i] = probs[i] * Math.exp(this.m_Tau1 * RNG.gaussianDouble(1));
if (probs[i] <= this.m_LowerLimitChance) probs[i] = this.m_LowerLimitChance; if (probs[i] <= this.m_LowerLimitChance) probs[i] = this.m_LowerLimitChance;
if (probs[i] >= 1) probs[i] = 1; if (probs[i] >= 1) probs[i] = 1;
} }
@@ -127,14 +127,14 @@ public class CrossoverEAMixer implements InterfaceCrossover, java.io.Serializabl
} }
InterfaceCrossover[] crossover = this.m_Crossers.getSelectedCrossers(); InterfaceCrossover[] crossover = this.m_Crossers.getSelectedCrossers();
double pointer = RandomNumberGenerator.randomFloat(0, 1); double pointer = RNG.randomFloat(0, 1);
double dum = probs[0]; double dum = probs[0];
int index = 0; int index = 0;
while ((pointer > dum) && (index < probs.length-1)) { while ((pointer > dum) && (index < probs.length-1)) {
index++; index++;
dum += probs[index]; dum += probs[index];
} }
if (index == probs.length) index = RandomNumberGenerator.randomInt(0, probs.length-1); if (index == probs.length) index = RNG.randomInt(0, probs.length-1);
// System.out.println("Using : " + mutators[index].getStringRepresentation()); // System.out.println("Using : " + mutators[index].getStringRepresentation());
// for (int i = 0; i < probs.length; i++) { // for (int i = 0; i < probs.length; i++) {
// System.out.println(""+mutators[i].getStringRepresentation()+" : "+ probs[i]); // System.out.println(""+mutators[i].getStringRepresentation()+" : "+ probs[i]);
@@ -4,7 +4,7 @@ import eva2.server.go.individuals.AbstractEAIndividual;
import eva2.server.go.individuals.InterfaceESIndividual; import eva2.server.go.individuals.InterfaceESIndividual;
import eva2.server.go.populations.Population; import eva2.server.go.populations.Population;
import eva2.server.go.problems.InterfaceOptimizationProblem; import eva2.server.go.problems.InterfaceOptimizationProblem;
import eva2.server.go.tools.RandomNumberGenerator; import wsi.ra.math.RNG;
/** /**
* Created by IntelliJ IDEA. * Created by IntelliJ IDEA.
@@ -61,7 +61,7 @@ public class CrossoverESArithmetical implements InterfaceCrossover, java.io.Seri
for (int i = 0; i < children.length; i++) { for (int i = 0; i < children.length; i++) {
sum = 0; sum = 0;
for (int j = 0; j < alpha.length; j++) { for (int j = 0; j < alpha.length; j++) {
alpha[j] = RandomNumberGenerator.randomDouble(0,1); alpha[j] = RNG.randomDouble(0,1);
sum += alpha[j]; sum += alpha[j];
} }
for (int j = 0; j <alpha.length; j++) alpha[j] = alpha[j]/sum; for (int j = 0; j <alpha.length; j++) alpha[j] = alpha[j]/sum;
@@ -4,7 +4,7 @@ import eva2.server.go.individuals.AbstractEAIndividual;
import eva2.server.go.individuals.InterfaceESIndividual; import eva2.server.go.individuals.InterfaceESIndividual;
import eva2.server.go.populations.Population; import eva2.server.go.populations.Population;
import eva2.server.go.problems.InterfaceOptimizationProblem; import eva2.server.go.problems.InterfaceOptimizationProblem;
import eva2.server.go.tools.RandomNumberGenerator; import wsi.ra.math.RNG;
/** /**
* Created by IntelliJ IDEA. * Created by IntelliJ IDEA.
@@ -71,7 +71,7 @@ public class CrossoverESBLXAlpha implements InterfaceCrossover, java.io.Serializ
for (int i = 0; i < children.length; i++) { for (int i = 0; i < children.length; i++) {
for(int j = 0; j < children[i].length; j++) { for(int j = 0; j < children[i].length; j++) {
I = (extremeValues[j][1] - extremeValues[j][0])*this.m_Alpha; I = (extremeValues[j][1] - extremeValues[j][0])*this.m_Alpha;
children[i][j] = RandomNumberGenerator.randomDouble(extremeValues[j][0]-I, extremeValues[j][1]+I); children[i][j] = RNG.randomDouble(extremeValues[j][0]-I, extremeValues[j][1]+I);
} }
} }
// write the result back // write the result back
@@ -4,7 +4,7 @@ import eva2.server.go.individuals.AbstractEAIndividual;
import eva2.server.go.individuals.InterfaceESIndividual; import eva2.server.go.individuals.InterfaceESIndividual;
import eva2.server.go.populations.Population; import eva2.server.go.populations.Population;
import eva2.server.go.problems.InterfaceOptimizationProblem; import eva2.server.go.problems.InterfaceOptimizationProblem;
import eva2.server.go.tools.RandomNumberGenerator; import wsi.ra.math.RNG;
/** /**
* Created by IntelliJ IDEA. * Created by IntelliJ IDEA.
@@ -48,8 +48,8 @@ public class CrossoverESDefault implements InterfaceCrossover, java.io.Serializa
//for (int i = 0; i < result.length; i++) System.out.println("Before Crossover: " +result[i].getSolutionRepresentationFor()); //for (int i = 0; i < result.length; i++) System.out.println("Before Crossover: " +result[i].getSolutionRepresentationFor());
if ((indy1 instanceof InterfaceESIndividual) && (partners.get(0) instanceof InterfaceESIndividual)) { if ((indy1 instanceof InterfaceESIndividual) && (partners.get(0) instanceof InterfaceESIndividual)) {
int crossoverpoint = RandomNumberGenerator.randomInt(0,((InterfaceESIndividual)indy1).getDGenotype().length-1); int crossoverpoint = RNG.randomInt(0,((InterfaceESIndividual)indy1).getDGenotype().length-1);
boolean switcher = RandomNumberGenerator.randomBoolean(); boolean switcher = RNG.randomBoolean();
parents = new double[result.length][]; parents = new double[result.length][];
children = new double[result.length][]; children = new double[result.length][];
for (int i = 0; i < result.length; i++) { for (int i = 0; i < result.length; i++) {
@@ -8,7 +8,7 @@ import eva2.server.go.individuals.AbstractEAIndividual;
import eva2.server.go.individuals.InterfaceESIndividual; import eva2.server.go.individuals.InterfaceESIndividual;
import eva2.server.go.populations.Population; import eva2.server.go.populations.Population;
import eva2.server.go.problems.InterfaceOptimizationProblem; import eva2.server.go.problems.InterfaceOptimizationProblem;
import eva2.server.go.tools.RandomNumberGenerator; import wsi.ra.math.RNG;
/** /**
* Created by IntelliJ IDEA. * Created by IntelliJ IDEA.
@@ -71,7 +71,7 @@ public class CrossoverESFlat implements InterfaceCrossover, java.io.Serializable
for (int i = 0; i < children.length; i++) { for (int i = 0; i < children.length; i++) {
for(int j = 0; j < children[i].length; j++) { for(int j = 0; j < children[i].length; j++) {
children[i][j] = RandomNumberGenerator.randomDouble(extremeValues[j][0], extremeValues[j][1]); children[i][j] = RNG.randomDouble(extremeValues[j][0], extremeValues[j][1]);
} }
} }
// write the result back // write the result back
@@ -1,10 +1,10 @@
package eva2.server.go.operators.crossover; package eva2.server.go.operators.crossover;
import wsi.ra.math.RNG;
import eva2.server.go.individuals.AbstractEAIndividual; import eva2.server.go.individuals.AbstractEAIndividual;
import eva2.server.go.individuals.InterfaceESIndividual; import eva2.server.go.individuals.InterfaceESIndividual;
import eva2.server.go.populations.Population; import eva2.server.go.populations.Population;
import eva2.server.go.problems.InterfaceOptimizationProblem; import eva2.server.go.problems.InterfaceOptimizationProblem;
import eva2.server.go.tools.RandomNumberGenerator;
/** /**
* Created by IntelliJ IDEA. * Created by IntelliJ IDEA.
@@ -51,7 +51,7 @@ public class CrossoverESNPointDiscrete implements InterfaceCrossover, java.io.Se
if ((indy1 instanceof InterfaceESIndividual) && (partners.get(0) instanceof InterfaceESIndividual)) { if ((indy1 instanceof InterfaceESIndividual) && (partners.get(0) instanceof InterfaceESIndividual)) {
int length = ((InterfaceESIndividual)result[0]).getDGenotype().length; int length = ((InterfaceESIndividual)result[0]).getDGenotype().length;
int mixer = RandomNumberGenerator.randomInt(0, partners.size()); int mixer = RNG.randomInt(0, partners.size());
int[] crossoverPoints = new int[this.m_NumberOfCrossovers]; int[] crossoverPoints = new int[this.m_NumberOfCrossovers];
parents = new double[partners.size()+1][]; parents = new double[partners.size()+1][];
children = new double[partners.size()+1][]; children = new double[partners.size()+1][];
@@ -62,7 +62,7 @@ public class CrossoverESNPointDiscrete implements InterfaceCrossover, java.io.Se
System.arraycopy(((InterfaceESIndividual)result[i]).getDGenotype(), 0, children[i], 0, parents[i].length); System.arraycopy(((InterfaceESIndividual)result[i]).getDGenotype(), 0, children[i], 0, parents[i].length);
} }
for (int i = 0; i < this.m_NumberOfCrossovers; i++) { for (int i = 0; i < this.m_NumberOfCrossovers; i++) {
crossoverPoints[i] = RandomNumberGenerator.randomInt(0, length-1); crossoverPoints[i] = RNG.randomInt(0, length-1);
} }
for (int i = 0; i < length; i++) { for (int i = 0; i < length; i++) {
for (int j = 0; j < this.m_NumberOfCrossovers; j++) { for (int j = 0; j < this.m_NumberOfCrossovers; j++) {
@@ -4,7 +4,7 @@ import eva2.server.go.individuals.AbstractEAIndividual;
import eva2.server.go.individuals.InterfaceESIndividual; import eva2.server.go.individuals.InterfaceESIndividual;
import eva2.server.go.populations.Population; import eva2.server.go.populations.Population;
import eva2.server.go.problems.InterfaceOptimizationProblem; import eva2.server.go.problems.InterfaceOptimizationProblem;
import eva2.server.go.tools.RandomNumberGenerator; import wsi.ra.math.RNG;
/** /**
* Created by IntelliJ IDEA. * Created by IntelliJ IDEA.
@@ -51,7 +51,7 @@ public class CrossoverESNPointDiscreteDislocation implements InterfaceCrossover,
if ((indy1 instanceof InterfaceESIndividual) && (partners.get(0) instanceof InterfaceESIndividual)) { if ((indy1 instanceof InterfaceESIndividual) && (partners.get(0) instanceof InterfaceESIndividual)) {
int length = ((InterfaceESIndividual)result[0]).getDGenotype().length; int length = ((InterfaceESIndividual)result[0]).getDGenotype().length;
int mixer = RandomNumberGenerator.randomInt(0, partners.size()); int mixer = RNG.randomInt(0, partners.size());
int[] crossoverPoints = new int[this.m_NumberOfCrossovers+1]; int[] crossoverPoints = new int[this.m_NumberOfCrossovers+1];
parents = new double[partners.size()+1][]; parents = new double[partners.size()+1][];
children = new double[partners.size()+1][]; children = new double[partners.size()+1][];
@@ -62,9 +62,9 @@ public class CrossoverESNPointDiscreteDislocation implements InterfaceCrossover,
System.arraycopy(((InterfaceESIndividual)result[i]).getDGenotype(), 0, children[i], 0, parents[i].length); System.arraycopy(((InterfaceESIndividual)result[i]).getDGenotype(), 0, children[i], 0, parents[i].length);
} }
for (int i = 0; i < crossoverPoints.length; i++) { for (int i = 0; i < crossoverPoints.length; i++) {
crossoverPoints[i] = RandomNumberGenerator.randomInt(0, length-1); crossoverPoints[i] = RNG.randomInt(0, length-1);
} }
crossoverPoints[RandomNumberGenerator.randomInt(0,this.m_NumberOfCrossovers)] = 0; crossoverPoints[RNG.randomInt(0,this.m_NumberOfCrossovers)] = 0;
int parIndex = 0; int parIndex = 0;
int chiIndex = 0; int chiIndex = 0;
boolean bol; boolean bol;
@@ -10,7 +10,7 @@ import eva2.server.go.individuals.InterfaceESIndividual;
import eva2.server.go.populations.Population; import eva2.server.go.populations.Population;
import eva2.server.go.problems.F1Problem; import eva2.server.go.problems.F1Problem;
import eva2.server.go.problems.InterfaceOptimizationProblem; import eva2.server.go.problems.InterfaceOptimizationProblem;
import eva2.server.go.tools.RandomNumberGenerator; import wsi.ra.math.RNG;
/** /**
* Created by IntelliJ IDEA. * Created by IntelliJ IDEA.
@@ -97,12 +97,12 @@ public class CrossoverESPCX implements InterfaceCrossover, java.io.Serializable
// first the parent and the d // first the parent and the d
for (int j = 0; j < parents[i].length; j++) { for (int j = 0; j < parents[i].length; j++) {
children[i][j] = parents[i][j]; children[i][j] = parents[i][j];
children[i][j] += RandomNumberGenerator.gaussianDouble(this.m_Zeta)*tmpD[j]; children[i][j] += RNG.gaussianDouble(this.m_Zeta)*tmpD[j];
} }
// then the other parents // then the other parents
for (int j = 1; j < subSpace.size(); j++) { for (int j = 1; j < subSpace.size(); j++) {
tmpD = (double[])subSpace.get(j); tmpD = (double[])subSpace.get(j);
w = RandomNumberGenerator.gaussianDouble(this.m_Zeta); w = RNG.gaussianDouble(this.m_Zeta);
children[i] = this.addVector(children[i], this.scalarMultVector(w, tmpD)); children[i] = this.addVector(children[i], this.scalarMultVector(w, tmpD));
} }
} }
@@ -162,7 +162,7 @@ public class CrossoverESPCX implements InterfaceCrossover, java.io.Serializable
private double[] randomVector(int n) { private double[] randomVector(int n) {
double[] result = new double[n]; double[] result = new double[n];
for (int i = 0; i < result.length; i++) { for (int i = 0; i < result.length; i++) {
result[i] = RandomNumberGenerator.gaussianDouble(1); result[i] = RNG.gaussianDouble(1);
} }
return this.getNormalizedVector(result); return this.getNormalizedVector(result);
} }
@@ -287,7 +287,7 @@ public class CrossoverESPCX implements InterfaceCrossover, java.io.Serializable
F1Problem prob = new F1Problem(); F1Problem prob = new F1Problem();
int n = 2; int n = 2;
//RandomNumberGenerator.setseed(1); //RNG.setseed(1);
// init individual // init individual
indy1 = new ESIndividualDoubleData(); indy1 = new ESIndividualDoubleData();
double[][] range = new double[n][2]; double[][] range = new double[n][2];
@@ -7,7 +7,7 @@ import eva2.server.go.individuals.InterfaceESIndividual;
import eva2.server.go.populations.Population; import eva2.server.go.populations.Population;
import eva2.server.go.problems.F1Problem; import eva2.server.go.problems.F1Problem;
import eva2.server.go.problems.InterfaceOptimizationProblem; import eva2.server.go.problems.InterfaceOptimizationProblem;
import eva2.server.go.tools.RandomNumberGenerator; import wsi.ra.math.RNG;
/** /**
* Created by IntelliJ IDEA. * Created by IntelliJ IDEA.
@@ -63,7 +63,7 @@ public class CrossoverESSBX implements InterfaceCrossover, java.io.Serializable
} }
for (int i = 0; i < children[0].length; i++) { for (int i = 0; i < children[0].length; i++) {
u = RandomNumberGenerator.randomDouble(0,1); u = RNG.randomDouble(0,1);
if (u <= 0.5) { if (u <= 0.5) {
beta = Math.pow((2*u), 1/(this.m_Eta + 1)); beta = Math.pow((2*u), 1/(this.m_Eta + 1));
} else { } else {
@@ -10,7 +10,7 @@ import eva2.server.go.individuals.InterfaceESIndividual;
import eva2.server.go.populations.Population; import eva2.server.go.populations.Population;
import eva2.server.go.problems.F1Problem; import eva2.server.go.problems.F1Problem;
import eva2.server.go.problems.InterfaceOptimizationProblem; import eva2.server.go.problems.InterfaceOptimizationProblem;
import eva2.server.go.tools.RandomNumberGenerator; import wsi.ra.math.RNG;
/** /**
* Created by IntelliJ IDEA. * Created by IntelliJ IDEA.
@@ -89,7 +89,7 @@ public class CrossoverESSPX implements InterfaceCrossover, java.io.Serializable
C = new double[Y.length][]; C = new double[Y.length][];
C[0] = this.nullVector(parents[0].length); C[0] = this.nullVector(parents[0].length);
for (int j = 1; j < Y.length; j++) { for (int j = 1; j < Y.length; j++) {
r = Math.pow(RandomNumberGenerator.randomDouble(0, 1), 1/((double)j)); r = Math.pow(RNG.randomDouble(0, 1), 1/((double)j));
C[j] = this.addVector(Y[j-1], C[j-1]); C[j] = this.addVector(Y[j-1], C[j-1]);
C[j] = this.subVector(C[j], Y[j]); C[j] = this.subVector(C[j], Y[j]);
C[j] = this.scalarMultVector(r, C[j]); C[j] = this.scalarMultVector(r, C[j]);
@@ -187,7 +187,7 @@ public class CrossoverESSPX implements InterfaceCrossover, java.io.Serializable
F1Problem prob = new F1Problem(); F1Problem prob = new F1Problem();
int n = 2; int n = 2;
RandomNumberGenerator.setRandomSeed(1); RNG.setRandomSeed(1);
// init individual // init individual
indy1 = new ESIndividualDoubleData(); indy1 = new ESIndividualDoubleData();
double[][] range = new double[n][2]; double[][] range = new double[n][2];
@@ -10,7 +10,7 @@ import eva2.server.go.individuals.InterfaceESIndividual;
import eva2.server.go.populations.Population; import eva2.server.go.populations.Population;
import eva2.server.go.problems.F1Problem; import eva2.server.go.problems.F1Problem;
import eva2.server.go.problems.InterfaceOptimizationProblem; import eva2.server.go.problems.InterfaceOptimizationProblem;
import eva2.server.go.tools.RandomNumberGenerator; import wsi.ra.math.RNG;
/** /**
* Created by IntelliJ IDEA. * Created by IntelliJ IDEA.
@@ -83,13 +83,13 @@ public class CrossoverESUNDX implements InterfaceCrossover, java.io.Serializable
// then the given coordinates // then the given coordinates
for (int j = 0; j < givenCoordinates.size(); j++) { for (int j = 0; j < givenCoordinates.size(); j++) {
tmpD = (double[])givenCoordinates.get(j); tmpD = (double[])givenCoordinates.get(j);
w = RandomNumberGenerator.gaussianDouble(this.m_Zeta); w = RNG.gaussianDouble(this.m_Zeta);
children[i] = this.addVector(children[i], this.scalarMultVector(w, tmpD)); children[i] = this.addVector(children[i], this.scalarMultVector(w, tmpD));
} }
// now the missing stuff // now the missing stuff
for (int j = 0; j < missingCorrdinates.size(); j++) { for (int j = 0; j < missingCorrdinates.size(); j++) {
tmpD = (double[])missingCorrdinates.get(j); tmpD = (double[])missingCorrdinates.get(j);
w = RandomNumberGenerator.gaussianDouble(this.m_Eta); w = RNG.gaussianDouble(this.m_Eta);
children[i] = this.addVector(children[i], this.scalarMultVector(w, tmpD)); children[i] = this.addVector(children[i], this.scalarMultVector(w, tmpD));
} }
} }
@@ -162,7 +162,7 @@ public class CrossoverESUNDX implements InterfaceCrossover, java.io.Serializable
private double[] randomVector(int n) { private double[] randomVector(int n) {
double[] result = new double[n]; double[] result = new double[n];
for (int i = 0; i < result.length; i++) { for (int i = 0; i < result.length; i++) {
result[i] = RandomNumberGenerator.gaussianDouble(1); result[i] = RNG.gaussianDouble(1);
} }
return this.getNormalizedVector(result); return this.getNormalizedVector(result);
} }
@@ -287,7 +287,7 @@ public class CrossoverESUNDX implements InterfaceCrossover, java.io.Serializable
F1Problem prob = new F1Problem(); F1Problem prob = new F1Problem();
int n = 2; int n = 2;
RandomNumberGenerator.setRandomSeed(1); RNG.setRandomSeed(1);
// init individual // init individual
indy1 = new ESIndividualDoubleData(); indy1 = new ESIndividualDoubleData();
double[][] range = new double[n][2]; double[][] range = new double[n][2];
@@ -4,7 +4,7 @@ import eva2.server.go.individuals.AbstractEAIndividual;
import eva2.server.go.individuals.InterfaceESIndividual; import eva2.server.go.individuals.InterfaceESIndividual;
import eva2.server.go.populations.Population; import eva2.server.go.populations.Population;
import eva2.server.go.problems.InterfaceOptimizationProblem; import eva2.server.go.problems.InterfaceOptimizationProblem;
import eva2.server.go.tools.RandomNumberGenerator; import wsi.ra.math.RNG;
/** /**
* Created by IntelliJ IDEA. * Created by IntelliJ IDEA.
@@ -49,7 +49,7 @@ public class CrossoverESUniformDiscrete implements InterfaceCrossover, java.io.S
if ((indy1 instanceof InterfaceESIndividual) && (partners.get(0) instanceof InterfaceESIndividual)) { if ((indy1 instanceof InterfaceESIndividual) && (partners.get(0) instanceof InterfaceESIndividual)) {
int length = ((InterfaceESIndividual)result[0]).getDGenotype().length; int length = ((InterfaceESIndividual)result[0]).getDGenotype().length;
int mixer = RandomNumberGenerator.randomInt(0, partners.size()); int mixer = RNG.randomInt(0, partners.size());
parents = new double[partners.size()+1][]; parents = new double[partners.size()+1][];
children = new double[partners.size()+1][]; children = new double[partners.size()+1][];
@@ -61,7 +61,7 @@ public class CrossoverESUniformDiscrete implements InterfaceCrossover, java.io.S
} }
for (int i = 0; i < length; i++) { for (int i = 0; i < length; i++) {
mixer = RandomNumberGenerator.randomInt(0, children.length-1); mixer = RNG.randomInt(0, children.length-1);
for (int j = 0; j < children.length; j++) { for (int j = 0; j < children.length; j++) {
children[j][i] = parents[(j + mixer) % parents.length][i]; children[j][i] = parents[(j + mixer) % parents.length][i];
} }
@@ -7,7 +7,7 @@ import eva2.server.go.individuals.AbstractEAIndividual;
import eva2.server.go.individuals.InterfaceGAIndividual; import eva2.server.go.individuals.InterfaceGAIndividual;
import eva2.server.go.populations.Population; import eva2.server.go.populations.Population;
import eva2.server.go.problems.InterfaceOptimizationProblem; import eva2.server.go.problems.InterfaceOptimizationProblem;
import eva2.server.go.tools.RandomNumberGenerator; import wsi.ra.math.RNG;
/** /**
* Created by IntelliJ IDEA. * Created by IntelliJ IDEA.
@@ -64,7 +64,7 @@ public class CrossoverGABitSimulated implements InterfaceCrossover, java.io.Seri
for (int j = 0; j < tmpBitSet[0].length; j++) if (tmpBitSet[0][j].get(i)) current++; for (int j = 0; j < tmpBitSet[0].length; j++) if (tmpBitSet[0][j].get(i)) current++;
current = current/(double)(tmpBitSet[0].length); current = current/(double)(tmpBitSet[0].length);
for (int j = 0; j < tmpBitSet[0].length; j++) { for (int j = 0; j < tmpBitSet[0].length; j++) {
if (RandomNumberGenerator.flipCoin(current)) tmpBitSet[1][j].set(i); if (RNG.flipCoin(current)) tmpBitSet[1][j].set(i);
else tmpBitSet[1][j].clear(i); else tmpBitSet[1][j].clear(i);
} }
} }
@@ -7,7 +7,7 @@ import eva2.server.go.individuals.AbstractEAIndividual;
import eva2.server.go.individuals.InterfaceGAIndividual; import eva2.server.go.individuals.InterfaceGAIndividual;
import eva2.server.go.populations.Population; import eva2.server.go.populations.Population;
import eva2.server.go.problems.InterfaceOptimizationProblem; import eva2.server.go.problems.InterfaceOptimizationProblem;
import eva2.server.go.tools.RandomNumberGenerator; import wsi.ra.math.RNG;
/** /**
* Created by IntelliJ IDEA. User: streiche Date: 03.04.2003 Time: 10:34:17 To * Created by IntelliJ IDEA. User: streiche Date: 03.04.2003 Time: 10:34:17 To
@@ -57,7 +57,7 @@ public class CrossoverGADefault implements InterfaceCrossover,
if ((indy1 instanceof InterfaceGAIndividual) if ((indy1 instanceof InterfaceGAIndividual)
&& (partners.get(0) instanceof InterfaceGAIndividual)) { && (partners.get(0) instanceof InterfaceGAIndividual)) {
// Currently we will only handle two parents // Currently we will only handle two parents
int crossoverpoint = RandomNumberGenerator.randomInt(0, int crossoverpoint = RNG.randomInt(0,
((InterfaceGAIndividual) indy1).getGenotypeLength() - 1); ((InterfaceGAIndividual) indy1).getGenotypeLength() - 1);
boolean tmpValue; boolean tmpValue;
BitSet[] tmpBitSets = new BitSet[2]; BitSet[] tmpBitSets = new BitSet[2];
@@ -7,7 +7,7 @@ import eva2.server.go.individuals.AbstractEAIndividual;
import eva2.server.go.individuals.InterfaceGAIndividual; import eva2.server.go.individuals.InterfaceGAIndividual;
import eva2.server.go.populations.Population; import eva2.server.go.populations.Population;
import eva2.server.go.problems.InterfaceOptimizationProblem; import eva2.server.go.problems.InterfaceOptimizationProblem;
import eva2.server.go.tools.RandomNumberGenerator; import wsi.ra.math.RNG;
/** /**
* Created by IntelliJ IDEA. * Created by IntelliJ IDEA.
@@ -51,7 +51,7 @@ public class CrossoverGANPoint implements InterfaceCrossover, java.io.Serializab
//for (int i = 0; i < result.length; i++) System.out.println("Before Crossover: " +result[i].getSolutionRepresentationFor()); //for (int i = 0; i < result.length; i++) System.out.println("Before Crossover: " +result[i].getSolutionRepresentationFor());
if ((indy1 instanceof InterfaceGAIndividual) && (partners.get(0) instanceof InterfaceGAIndividual)) { if ((indy1 instanceof InterfaceGAIndividual) && (partners.get(0) instanceof InterfaceGAIndividual)) {
int length = ((InterfaceGAIndividual)indy1).getGenotypeLength(); int length = ((InterfaceGAIndividual)indy1).getGenotypeLength();
int mixer = RandomNumberGenerator.randomInt(0, partners.size()); int mixer = RNG.randomInt(0, partners.size());
int[] crossoverPoints = new int[this.m_NumberOfCrossovers]; int[] crossoverPoints = new int[this.m_NumberOfCrossovers];
BitSet[][] tmpBitSet = new BitSet[2][partners.size()+1]; BitSet[][] tmpBitSet = new BitSet[2][partners.size()+1];
@@ -64,7 +64,7 @@ public class CrossoverGANPoint implements InterfaceCrossover, java.io.Serializab
} }
for (int i = 0; i < this.m_NumberOfCrossovers; i++) { for (int i = 0; i < this.m_NumberOfCrossovers; i++) {
crossoverPoints[i] = RandomNumberGenerator.randomInt(0, length-1); crossoverPoints[i] = RNG.randomInt(0, length-1);
//System.out.println("crpoint: "+crossoverPoints[i]); //System.out.println("crpoint: "+crossoverPoints[i]);
} }
for (int i = 0; i < length; i++) { for (int i = 0; i < length; i++) {
@@ -7,7 +7,7 @@ import eva2.server.go.individuals.AbstractEAIndividual;
import eva2.server.go.individuals.InterfaceGAIndividual; import eva2.server.go.individuals.InterfaceGAIndividual;
import eva2.server.go.populations.Population; import eva2.server.go.populations.Population;
import eva2.server.go.problems.InterfaceOptimizationProblem; import eva2.server.go.problems.InterfaceOptimizationProblem;
import eva2.server.go.tools.RandomNumberGenerator; import wsi.ra.math.RNG;
/** /**
* Created by IntelliJ IDEA. * Created by IntelliJ IDEA.
@@ -48,7 +48,7 @@ public class CrossoverGAUniform implements InterfaceCrossover, java.io.Serializa
//for (int i = 0; i < result.length; i++) System.out.println("Before Crossover: " +result[i].getSolutionRepresentationFor()); //for (int i = 0; i < result.length; i++) System.out.println("Before Crossover: " +result[i].getSolutionRepresentationFor());
if ((indy1 instanceof InterfaceGAIndividual) && (partners.get(0) instanceof InterfaceGAIndividual)) { if ((indy1 instanceof InterfaceGAIndividual) && (partners.get(0) instanceof InterfaceGAIndividual)) {
int length = ((InterfaceGAIndividual)indy1).getGenotypeLength(); int length = ((InterfaceGAIndividual)indy1).getGenotypeLength();
int mixer = RandomNumberGenerator.randomInt(0, partners.size()); int mixer = RNG.randomInt(0, partners.size());
BitSet[][] tmpBitSet = new BitSet[2][partners.size()+1]; BitSet[][] tmpBitSet = new BitSet[2][partners.size()+1];
tmpBitSet[0][0] = ((InterfaceGAIndividual)indy1).getBGenotype(); tmpBitSet[0][0] = ((InterfaceGAIndividual)indy1).getBGenotype();
@@ -60,7 +60,7 @@ public class CrossoverGAUniform implements InterfaceCrossover, java.io.Serializa
} }
for (int i = 0; i < length; i++) { for (int i = 0; i < length; i++) {
mixer = RandomNumberGenerator.randomInt(0, partners.size()); mixer = RNG.randomInt(0, partners.size());
for (int j = 0; j < tmpBitSet[0].length; j++) { for (int j = 0; j < tmpBitSet[0].length; j++) {
if (tmpBitSet[0][(j + mixer) % tmpBitSet[0].length].get(i)) tmpBitSet[1][j].set(i); if (tmpBitSet[0][(j + mixer) % tmpBitSet[0].length].get(i)) tmpBitSet[1][j].set(i);
else tmpBitSet[1][j].clear(i); else tmpBitSet[1][j].clear(i);
@@ -4,7 +4,7 @@ import eva2.server.go.individuals.AbstractEAIndividual;
import eva2.server.go.individuals.InterfaceGIIndividual; import eva2.server.go.individuals.InterfaceGIIndividual;
import eva2.server.go.populations.Population; import eva2.server.go.populations.Population;
import eva2.server.go.problems.InterfaceOptimizationProblem; import eva2.server.go.problems.InterfaceOptimizationProblem;
import eva2.server.go.tools.RandomNumberGenerator; import wsi.ra.math.RNG;
/** /**
* Created by IntelliJ IDEA. * Created by IntelliJ IDEA.
@@ -49,8 +49,8 @@ public class CrossoverGIDefault implements InterfaceCrossover, java.io.Serializa
if ((indy1 instanceof InterfaceGIIndividual) && (partners.get(0) instanceof InterfaceGIIndividual)) { if ((indy1 instanceof InterfaceGIIndividual) && (partners.get(0) instanceof InterfaceGIIndividual)) {
if (((InterfaceGIIndividual)indy1).getIGenotype().length <= 1) return result; if (((InterfaceGIIndividual)indy1).getIGenotype().length <= 1) return result;
int crossoverpoint = RandomNumberGenerator.randomInt(0,((InterfaceGIIndividual)indy1).getIGenotype().length-1); int crossoverpoint = RNG.randomInt(0,((InterfaceGIIndividual)indy1).getIGenotype().length-1);
boolean switcher = RandomNumberGenerator.randomBoolean(); boolean switcher = RNG.randomBoolean();
parents = new int[partners.size()+1][]; parents = new int[partners.size()+1][];
children = new int[partners.size()+1][]; children = new int[partners.size()+1][];
for (int i = 0; i < result.length; i++) { for (int i = 0; i < result.length; i++) {
@@ -4,7 +4,7 @@ import eva2.server.go.individuals.AbstractEAIndividual;
import eva2.server.go.individuals.InterfaceGIIndividual; import eva2.server.go.individuals.InterfaceGIIndividual;
import eva2.server.go.populations.Population; import eva2.server.go.populations.Population;
import eva2.server.go.problems.InterfaceOptimizationProblem; import eva2.server.go.problems.InterfaceOptimizationProblem;
import eva2.server.go.tools.RandomNumberGenerator; import wsi.ra.math.RNG;
/** /**
* Created by IntelliJ IDEA. * Created by IntelliJ IDEA.
@@ -48,7 +48,7 @@ public class CrossoverGINPoint implements InterfaceCrossover, java.io.Serializab
//for (int i = 0; i < result.length; i++) System.out.println("Before Crossover: " +result[i].getSolutionRepresentationFor()); //for (int i = 0; i < result.length; i++) System.out.println("Before Crossover: " +result[i].getSolutionRepresentationFor());
if ((indy1 instanceof InterfaceGIIndividual) && (partners.get(0) instanceof InterfaceGIIndividual)) { if ((indy1 instanceof InterfaceGIIndividual) && (partners.get(0) instanceof InterfaceGIIndividual)) {
int length = ((InterfaceGIIndividual)indy1).getGenotypeLength(); int length = ((InterfaceGIIndividual)indy1).getGenotypeLength();
int mixer = RandomNumberGenerator.randomInt(0, partners.size()); int mixer = RNG.randomInt(0, partners.size());
int[] crossoverPoints = new int[this.m_NumberOfCrossovers]; int[] crossoverPoints = new int[this.m_NumberOfCrossovers];
int[][][] tmpInts = new int[2][partners.size()+1][]; int[][][] tmpInts = new int[2][partners.size()+1][];
@@ -62,7 +62,7 @@ public class CrossoverGINPoint implements InterfaceCrossover, java.io.Serializab
} }
for (int i = 0; i < this.m_NumberOfCrossovers; i++) { for (int i = 0; i < this.m_NumberOfCrossovers; i++) {
crossoverPoints[i] = RandomNumberGenerator.randomInt(0, length-1); crossoverPoints[i] = RNG.randomInt(0, length-1);
//System.out.println("crpoint: "+crossoverPoints[i]); //System.out.println("crpoint: "+crossoverPoints[i]);
} }
for (int i = 0; i < length; i++) { for (int i = 0; i < length; i++) {
@@ -8,7 +8,7 @@ import eva2.server.go.individuals.AbstractEAIndividual;
import eva2.server.go.individuals.InterfaceGIIndividual; import eva2.server.go.individuals.InterfaceGIIndividual;
import eva2.server.go.populations.Population; import eva2.server.go.populations.Population;
import eva2.server.go.problems.InterfaceOptimizationProblem; import eva2.server.go.problems.InterfaceOptimizationProblem;
import eva2.server.go.tools.RandomNumberGenerator; import wsi.ra.math.RNG;
/** /**
* Created by IntelliJ IDEA. * Created by IntelliJ IDEA.
@@ -52,7 +52,7 @@ public class CrossoverGINPointVL implements InterfaceCrossover, java.io.Serializ
//for (int i = 0; i < result.length; i++) System.out.println("Before Crossover: " +result[i].getSolutionRepresentationFor()); //for (int i = 0; i < result.length; i++) System.out.println("Before Crossover: " +result[i].getSolutionRepresentationFor());
if ((indy1 instanceof InterfaceGIIndividual) && (partners.get(0) instanceof InterfaceGIIndividual)) { if ((indy1 instanceof InterfaceGIIndividual) && (partners.get(0) instanceof InterfaceGIIndividual)) {
int[] length = new int[partners.size()+1]; int[] length = new int[partners.size()+1];
int mixer = RandomNumberGenerator.randomInt(0, partners.size()); int mixer = RNG.randomInt(0, partners.size());
int[][] crossoverPoints = new int[length.length][this.m_NumberOfCrossovers]; int[][] crossoverPoints = new int[length.length][this.m_NumberOfCrossovers];
int[][] parents = new int[partners.size()+1][]; int[][] parents = new int[partners.size()+1][];
int[][] offsprings = new int[partners.size()+1][]; int[][] offsprings = new int[partners.size()+1][];
@@ -131,7 +131,7 @@ public class CrossoverGINPointVL implements InterfaceCrossover, java.io.Serializ
BitSet bitset = new BitSet(length); BitSet bitset = new BitSet(length);
while (bitset.cardinality() < this.m_NumberOfCrossovers) { while (bitset.cardinality() < this.m_NumberOfCrossovers) {
bitset.set(RandomNumberGenerator.randomInt(1, length-2)); bitset.set(RNG.randomInt(1, length-2));
} }
int index = 0; int index = 0;
for (int i = 0; i < length; i++) { for (int i = 0; i < length; i++) {
@@ -7,7 +7,7 @@ import eva2.server.go.individuals.AbstractEAIndividual;
import eva2.server.go.individuals.InterfaceGIIndividual; import eva2.server.go.individuals.InterfaceGIIndividual;
import eva2.server.go.populations.Population; import eva2.server.go.populations.Population;
import eva2.server.go.problems.InterfaceOptimizationProblem; import eva2.server.go.problems.InterfaceOptimizationProblem;
import eva2.server.go.tools.RandomNumberGenerator; import wsi.ra.math.RNG;
/** /**
* Created by IntelliJ IDEA. * Created by IntelliJ IDEA.
@@ -49,7 +49,7 @@ public class CrossoverGIUniform implements InterfaceCrossover, java.io.Serializa
//for (int i = 0; i < result.length; i++) System.out.println("Before Crossover: " +result[i].getSolutionRepresentationFor()); //for (int i = 0; i < result.length; i++) System.out.println("Before Crossover: " +result[i].getSolutionRepresentationFor());
if ((indy1 instanceof InterfaceGIIndividual) && (partners.get(0) instanceof InterfaceGIIndividual)) { if ((indy1 instanceof InterfaceGIIndividual) && (partners.get(0) instanceof InterfaceGIIndividual)) {
int length = ((InterfaceGIIndividual)indy1).getGenotypeLength(); int length = ((InterfaceGIIndividual)indy1).getGenotypeLength();
int mixer = RandomNumberGenerator.randomInt(0, partners.size()); int mixer = RNG.randomInt(0, partners.size());
int[][][] tmpInts = new int[2][partners.size()+1][]; int[][][] tmpInts = new int[2][partners.size()+1][];
tmpInts[0][0] = ((InterfaceGIIndividual)indy1).getIGenotype(); tmpInts[0][0] = ((InterfaceGIIndividual)indy1).getIGenotype();
@@ -62,7 +62,7 @@ public class CrossoverGIUniform implements InterfaceCrossover, java.io.Serializa
} }
for (int i = 0; i < length; i++) { for (int i = 0; i < length; i++) {
mixer = RandomNumberGenerator.randomInt(0, partners.size()); mixer = RNG.randomInt(0, partners.size());
for (int j = 0; j < tmpInts[0].length; j++) { for (int j = 0; j < tmpInts[0].length; j++) {
if ((tmpInts[0][(j + mixer) % tmpInts[0].length].length > i) && if ((tmpInts[0][(j + mixer) % tmpInts[0].length].length > i) &&
(tmpInts[1][j].length > i)) { (tmpInts[1][j].length > i)) {
@@ -8,7 +8,7 @@ import eva2.server.go.individuals.InterfaceGPIndividual;
import eva2.server.go.individuals.codings.gp.AbstractGPNode; import eva2.server.go.individuals.codings.gp.AbstractGPNode;
import eva2.server.go.populations.Population; import eva2.server.go.populations.Population;
import eva2.server.go.problems.InterfaceOptimizationProblem; import eva2.server.go.problems.InterfaceOptimizationProblem;
import eva2.server.go.tools.RandomNumberGenerator; import wsi.ra.math.RNG;
/** /**
* Created by IntelliJ IDEA. * Created by IntelliJ IDEA.
@@ -53,7 +53,7 @@ public class CrossoverGPDefault implements InterfaceCrossover, java.io.Serializa
for (int t = 0; t < nodes.length; t++) { for (int t = 0; t < nodes.length; t++) {
allNodes = new ArrayList(); allNodes = new ArrayList();
((InterfaceGPIndividual)result[0]).getPGenotype()[t].addNodesTo(allNodes); ((InterfaceGPIndividual)result[0]).getPGenotype()[t].addNodesTo(allNodes);
AbstractGPNode oldNode = (AbstractGPNode) allNodes.get(RandomNumberGenerator.randomInt(0, allNodes.size()-1)); AbstractGPNode oldNode = (AbstractGPNode) allNodes.get(RNG.randomInt(0, allNodes.size()-1));
AbstractGPNode newNode, memorizingNode = oldNode, tmpNode; AbstractGPNode newNode, memorizingNode = oldNode, tmpNode;
AbstractGPNode oldParent, newParent; AbstractGPNode oldParent, newParent;
oldParent = oldNode.getParent(); oldParent = oldNode.getParent();
@@ -61,7 +61,7 @@ public class CrossoverGPDefault implements InterfaceCrossover, java.io.Serializa
// choose Node from i and add it to i-1 // choose Node from i and add it to i-1
allNodes = new ArrayList(); allNodes = new ArrayList();
((InterfaceGPIndividual)result[i]).getPGenotype()[t].addNodesTo(allNodes); ((InterfaceGPIndividual)result[i]).getPGenotype()[t].addNodesTo(allNodes);
newNode = (AbstractGPNode) allNodes.get(RandomNumberGenerator.randomInt(0, allNodes.size()-1)); newNode = (AbstractGPNode) allNodes.get(RNG.randomInt(0, allNodes.size()-1));
tmpNode = newNode; tmpNode = newNode;
newParent = tmpNode.getParent(); newParent = tmpNode.getParent();
if (oldParent == null) ((InterfaceGPIndividual)result[i-1]).SetPGenotype(newNode, t); if (oldParent == null) ((InterfaceGPIndividual)result[i-1]).SetPGenotype(newNode, t);
@@ -6,7 +6,7 @@ import eva2.server.go.individuals.InterfaceOBGAIndividual;
import eva2.server.go.operators.crossover.InterfaceCrossover; import eva2.server.go.operators.crossover.InterfaceCrossover;
import eva2.server.go.populations.Population; import eva2.server.go.populations.Population;
import eva2.server.go.problems.InterfaceOptimizationProblem; import eva2.server.go.problems.InterfaceOptimizationProblem;
import eva2.server.go.tools.RandomNumberGenerator; import wsi.ra.math.RNG;
/** /**
* <p>Title: The JavaEvA</p> * <p>Title: The JavaEvA</p>
@@ -47,8 +47,8 @@ public class CrossoverOBGAPMX implements InterfaceCrossover, java.io.Serializabl
int[] perm1 = (int[])((InterfaceOBGAIndividual) result[0]).getOBGenotype()[i].clone(); int[] perm1 = (int[])((InterfaceOBGAIndividual) result[0]).getOBGenotype()[i].clone();
int[] perm2 = (int[])((InterfaceOBGAIndividual) result[1]).getOBGenotype()[i].clone(); int[] perm2 = (int[])((InterfaceOBGAIndividual) result[1]).getOBGenotype()[i].clone();
int begin = RandomNumberGenerator.randomInt(0,perm1.length-2); int begin = RNG.randomInt(0,perm1.length-2);
int end = RandomNumberGenerator.randomInt(begin,perm1.length-1); int end = RNG.randomInt(begin,perm1.length-1);
for (int pos = begin; pos <= end; pos++) { for (int pos = begin; pos <= end; pos++) {
int crosspoint = pos; int crosspoint = pos;
int p1inp2 = 0; int p1inp2 = 0;
@@ -5,7 +5,7 @@ import eva2.server.go.individuals.InterfaceOBGAIndividual;
import eva2.server.go.operators.crossover.InterfaceCrossover; import eva2.server.go.operators.crossover.InterfaceCrossover;
import eva2.server.go.populations.Population; import eva2.server.go.populations.Population;
import eva2.server.go.problems.InterfaceOptimizationProblem; import eva2.server.go.problems.InterfaceOptimizationProblem;
import eva2.server.go.tools.RandomNumberGenerator; import wsi.ra.math.RNG;
/** /**
* <p>Title: The JavaEvA</p> * <p>Title: The JavaEvA</p>
@@ -47,10 +47,10 @@ public class CrossoverOBGAPMXUniform implements InterfaceCrossover, java.io.Seri
int[] perm1 = (int[])((InterfaceOBGAIndividual) result[0]).getOBGenotype()[i].clone(); int[] perm1 = (int[])((InterfaceOBGAIndividual) result[0]).getOBGenotype()[i].clone();
int[] perm2 = (int[])((InterfaceOBGAIndividual) result[1]).getOBGenotype()[i].clone(); int[] perm2 = (int[])((InterfaceOBGAIndividual) result[1]).getOBGenotype()[i].clone();
int crossnumber = RandomNumberGenerator.randomInt(1, perm1.length); int crossnumber = RNG.randomInt(1, perm1.length);
for (int iter = 0; iter < crossnumber; iter++) { for (int iter = 0; iter < crossnumber; iter++) {
int crosspoint = RandomNumberGenerator.randomInt(0, perm1.length - 1); int crosspoint = RNG.randomInt(0, perm1.length - 1);
int p1inp2 = 0; int p1inp2 = 0;
int p2inp1 = 0; int p2inp1 = 0;
while (perm1[p2inp1] != perm2[crosspoint]) p2inp1++; while (perm1[p2inp1] != perm2[crosspoint]) p2inp1++;
@@ -5,7 +5,7 @@ import eva2.gui.Chart2DDPointIconText;
import eva2.gui.GraphPointSet; import eva2.gui.GraphPointSet;
import eva2.server.go.individuals.AbstractEAIndividual; import eva2.server.go.individuals.AbstractEAIndividual;
import eva2.server.go.populations.Population; import eva2.server.go.populations.Population;
import eva2.server.go.tools.RandomNumberGenerator; import wsi.ra.math.RNG;
import wsi.ra.chart2d.DPoint; import wsi.ra.chart2d.DPoint;
/** /**
@@ -109,7 +109,7 @@ public class MOSOMaxiMin implements InterfaceMOSOConverter, java.io.Serializable
tmpFit = indy.getFitness(); tmpFit = indy.getFitness();
indy.SetData("MOFitness", tmpFit); indy.SetData("MOFitness", tmpFit);
System.out.println("The MaxiMin MOSO can not be applied to single individuals! I default to random criteria."); System.out.println("The MaxiMin MOSO can not be applied to single individuals! I default to random criteria.");
resultFit[0] = tmpFit[RandomNumberGenerator.randomInt(0, tmpFit.length)]; resultFit[0] = tmpFit[RNG.randomInt(0, tmpFit.length)];
indy.SetFitness(resultFit); indy.SetFitness(resultFit);
} }
@@ -2,7 +2,7 @@ package eva2.server.go.operators.moso;
import eva2.server.go.individuals.AbstractEAIndividual; import eva2.server.go.individuals.AbstractEAIndividual;
import eva2.server.go.populations.Population; import eva2.server.go.populations.Population;
import eva2.server.go.tools.RandomNumberGenerator; import wsi.ra.math.RNG;
/** /**
* Created by IntelliJ IDEA. * Created by IntelliJ IDEA.
@@ -42,7 +42,7 @@ public class MOSONoConvert implements InterfaceMOSOConverter, java.io.Serializab
tmpFit = indy.getFitness(); tmpFit = indy.getFitness();
indy.SetData("MOFitness", tmpFit); indy.SetData("MOFitness", tmpFit);
// resultFit[0] = tmpFit[RandomNumberGenerator.randomInt(0, tmpFit.length)]; // resultFit[0] = tmpFit[RNG.randomInt(0, tmpFit.length)];
// indy.SetFitness(resultFit); // indy.SetFitness(resultFit);
} }
@@ -2,7 +2,7 @@ package eva2.server.go.operators.moso;
import eva2.server.go.individuals.AbstractEAIndividual; import eva2.server.go.individuals.AbstractEAIndividual;
import eva2.server.go.populations.Population; import eva2.server.go.populations.Population;
import eva2.server.go.tools.RandomNumberGenerator; import wsi.ra.math.RNG;
/** /**
* Created by IntelliJ IDEA. * Created by IntelliJ IDEA.
@@ -46,7 +46,7 @@ public class MOSORandomChoice implements InterfaceMOSOConverter, java.io.Serial
tmpFit = indy.getFitness(); tmpFit = indy.getFitness();
indy.SetData("MOFitness", tmpFit); indy.SetData("MOFitness", tmpFit);
resultFit[0] = tmpFit[RandomNumberGenerator.randomInt(0, tmpFit.length-1)]; resultFit[0] = tmpFit[RNG.randomInt(0, tmpFit.length-1)];
indy.SetFitness(resultFit); indy.SetFitness(resultFit);
} }
@@ -3,7 +3,7 @@ package eva2.server.go.operators.moso;
import eva2.gui.PropertyDoubleArray; import eva2.gui.PropertyDoubleArray;
import eva2.server.go.individuals.AbstractEAIndividual; import eva2.server.go.individuals.AbstractEAIndividual;
import eva2.server.go.populations.Population; import eva2.server.go.populations.Population;
import eva2.server.go.tools.RandomNumberGenerator; import wsi.ra.math.RNG;
/** /**
* Created by IntelliJ IDEA. * Created by IntelliJ IDEA.
@@ -47,7 +47,7 @@ public class MOSORandomWeight implements InterfaceMOSOConverter, java.io.Seriali
indy.SetData("MOFitness", tmpFit); indy.SetData("MOFitness", tmpFit);
tmpWeight = new double[tmpFit.length]; tmpWeight = new double[tmpFit.length];
for (int i = 0; i < tmpWeight.length; i++) { for (int i = 0; i < tmpWeight.length; i++) {
tmpWeight[i] = RandomNumberGenerator.randomDouble(0,1); tmpWeight[i] = RNG.randomDouble(0,1);
sum += tmpWeight[i]; sum += tmpWeight[i];
} }
if (sum <= 0.0000001) { if (sum <= 0.0000001) {
@@ -3,7 +3,7 @@ package eva2.server.go.operators.moso;
import eva2.server.go.individuals.AbstractEAIndividual; import eva2.server.go.individuals.AbstractEAIndividual;
import eva2.server.go.operators.archiving.ArchivingNSGAII; import eva2.server.go.operators.archiving.ArchivingNSGAII;
import eva2.server.go.populations.Population; import eva2.server.go.populations.Population;
import eva2.server.go.tools.RandomNumberGenerator; import wsi.ra.math.RNG;
/** /**
* Created by IntelliJ IDEA. * Created by IntelliJ IDEA.
@@ -6,7 +6,7 @@ import eva2.gui.GenericObjectEditor;
import eva2.server.go.individuals.AbstractEAIndividual; import eva2.server.go.individuals.AbstractEAIndividual;
import eva2.server.go.populations.Population; import eva2.server.go.populations.Population;
import eva2.server.go.problems.InterfaceOptimizationProblem; import eva2.server.go.problems.InterfaceOptimizationProblem;
import eva2.server.go.tools.RandomNumberGenerator; import wsi.ra.math.RNG;
/** /**
@@ -118,7 +118,7 @@ public class MutateEAMixer implements InterfaceMutation, java.io.Serializable {
double[] probs = this.m_Mutators.getWeights(); double[] probs = this.m_Mutators.getWeights();
if (this.m_UseSelfAdaption) { if (this.m_UseSelfAdaption) {
for (int i = 0; i < probs.length; i++) { for (int i = 0; i < probs.length; i++) {
probs[i] = probs[i] * Math.exp(this.m_Tau1 * RandomNumberGenerator.gaussianDouble(1)); probs[i] = probs[i] * Math.exp(this.m_Tau1 * RNG.gaussianDouble(1));
if (probs[i] <= this.m_LowerLimitChance) probs[i] = this.m_LowerLimitChance; if (probs[i] <= this.m_LowerLimitChance) probs[i] = this.m_LowerLimitChance;
if (probs[i] >= 1) probs[i] = 1; if (probs[i] >= 1) probs[i] = 1;
} }
@@ -126,14 +126,14 @@ public class MutateEAMixer implements InterfaceMutation, java.io.Serializable {
} }
InterfaceMutation[] mutators = this.m_Mutators.getSelectedMutators(); InterfaceMutation[] mutators = this.m_Mutators.getSelectedMutators();
double pointer = RandomNumberGenerator.randomFloat(0, 1); double pointer = RNG.randomFloat(0, 1);
double dum = probs[0]; double dum = probs[0];
int index = 0; int index = 0;
while ((pointer > dum) && (index < probs.length-1)) { while ((pointer > dum) && (index < probs.length-1)) {
index++; index++;
dum += probs[index]; dum += probs[index];
} }
if (index == probs.length) index = RandomNumberGenerator.randomInt(0, probs.length-1); if (index == probs.length) index = RNG.randomInt(0, probs.length-1);
//System.out.println("Using : " + mutators[index].getStringRepresentation()); //System.out.println("Using : " + mutators[index].getStringRepresentation());
// for (int i = 0; i < probs.length; i++) { // for (int i = 0; i < probs.length; i++) {
// System.out.println(""+mutators[i].getStringRepresentation()+" : "+ probs[i]); // System.out.println(""+mutators[i].getStringRepresentation()+" : "+ probs[i]);
@@ -4,7 +4,7 @@ import eva2.server.go.individuals.AbstractEAIndividual;
import eva2.server.go.individuals.InterfaceESIndividual; import eva2.server.go.individuals.InterfaceESIndividual;
import eva2.server.go.populations.Population; import eva2.server.go.populations.Population;
import eva2.server.go.problems.InterfaceOptimizationProblem; import eva2.server.go.problems.InterfaceOptimizationProblem;
import eva2.server.go.tools.RandomNumberGenerator; import wsi.ra.math.RNG;
/** /**
* Created by IntelliJ IDEA. * Created by IntelliJ IDEA.
@@ -97,7 +97,7 @@ public class MutateESCorrolated implements InterfaceMutation, java.io.Serializab
// double[] x = ((InterfaceESIndividual)individual).getDGenotype(); // double[] x = ((InterfaceESIndividual)individual).getDGenotype();
// double[] xCopy = ((InterfaceESIndividual)individual).getDGenotype(); // double[] xCopy = ((InterfaceESIndividual)individual).getDGenotype();
// double[][] range = ((InterfaceESIndividual)individual).getDoubleRange(); // double[][] range = ((InterfaceESIndividual)individual).getDoubleRange();
// double tmpR = RandomNumberGenerator.gaussianDouble(1); // double tmpR = RNG.gaussianDouble(1);
// if (this.m_Sigmas == null) { // if (this.m_Sigmas == null) {
// // init the Sigmas // // init the Sigmas
// this.m_Sigmas = new double[x.length]; // this.m_Sigmas = new double[x.length];
@@ -106,7 +106,7 @@ public class MutateESCorrolated implements InterfaceMutation, java.io.Serializab
// //
// //Mutate Sigmas // //Mutate Sigmas
// for (int i = 0; i < x.length; i++) { // for (int i = 0; i < x.length; i++) {
// this.m_Sigmas[i] = this.m_Sigmas[i] * Math.exp(this.m_Tau1 * tmpR + this.m_Tau2 * RandomNumberGenerator.gaussianDouble(1)); // this.m_Sigmas[i] = this.m_Sigmas[i] * Math.exp(this.m_Tau1 * tmpR + this.m_Tau2 * RNG.gaussianDouble(1));
// if (this.m_Sigmas[i] < this.m_LowerLimitStepSize) this.m_Sigmas[i] = this.m_LowerLimitStepSize; // if (this.m_Sigmas[i] < this.m_LowerLimitStepSize) this.m_Sigmas[i] = this.m_LowerLimitStepSize;
// } // }
// //
@@ -118,14 +118,14 @@ public class MutateESCorrolated implements InterfaceMutation, java.io.Serializab
// //
//// //Mutate Alphas //// //Mutate Alphas
//// for (int i = 0; i < this.m_Alphas.length; i++) { //// for (int i = 0; i < this.m_Alphas.length; i++) {
//// this.m_Alphas[i] = this.m_Alphas[i] + RandomNumberGenerator.gaussianDouble(0.01); //// this.m_Alphas[i] = this.m_Alphas[i] + RNG.gaussianDouble(0.01);
//// if (this.m_Alphas[i] < -m_PI/2) this.m_Alphas[i] = -m_PI/2; //// if (this.m_Alphas[i] < -m_PI/2) this.m_Alphas[i] = -m_PI/2;
//// if (this.m_Alphas[i] > m_PI/2) this.m_Alphas[i] = m_PI/2; //// if (this.m_Alphas[i] > m_PI/2) this.m_Alphas[i] = m_PI/2;
//// } //// }
// //
// //Generate mutationvector in unitspace modified by sigmas // //Generate mutationvector in unitspace modified by sigmas
// for (int i = 0; i < x.length; i++) { // for (int i = 0; i < x.length; i++) {
// xCopy[i] = RandomNumberGenerator.gaussianDouble(this.m_Sigmas[i]); // xCopy[i] = RNG.gaussianDouble(this.m_Sigmas[i]);
// } // }
// //
// //modify genotype // //modify genotype
@@ -156,7 +156,7 @@ public class MutateESCorrolated implements InterfaceMutation, java.io.Serializab
double[] x = ((InterfaceESIndividual)individual).getDGenotype(); double[] x = ((InterfaceESIndividual)individual).getDGenotype();
double[] xCopy = new double[x.length]; double[] xCopy = new double[x.length];
double[][] range = ((InterfaceESIndividual)individual).getDoubleRange(); double[][] range = ((InterfaceESIndividual)individual).getDoubleRange();
double tmpR = RandomNumberGenerator.gaussianDouble(1); double tmpR = RNG.gaussianDouble(1);
if (this.m_Sigmas == null) { if (this.m_Sigmas == null) {
// init the Sigmas // init the Sigmas
@@ -165,7 +165,7 @@ public class MutateESCorrolated implements InterfaceMutation, java.io.Serializab
} }
//Mutate Sigmas //Mutate Sigmas
for (int i = 0; i < x.length; i++) { for (int i = 0; i < x.length; i++) {
this.m_Sigmas[i] = this.m_Sigmas[i] * Math.exp(this.m_Tau1 * tmpR + this.m_Tau2 * RandomNumberGenerator.gaussianDouble(1)); this.m_Sigmas[i] = this.m_Sigmas[i] * Math.exp(this.m_Tau1 * tmpR + this.m_Tau2 * RNG.gaussianDouble(1));
if (this.m_Sigmas[i] < this.m_LowerLimitStepSize) this.m_Sigmas[i] = this.m_LowerLimitStepSize; if (this.m_Sigmas[i] < this.m_LowerLimitStepSize) this.m_Sigmas[i] = this.m_LowerLimitStepSize;
} }
@@ -176,14 +176,14 @@ public class MutateESCorrolated implements InterfaceMutation, java.io.Serializab
} }
//Mutate Alphas //Mutate Alphas
for (int i = 0; i < this.m_Alphas.length; i++) { for (int i = 0; i < this.m_Alphas.length; i++) {
this.m_Alphas[i] = this.m_Alphas[i] + RandomNumberGenerator.gaussianDouble(0.2); this.m_Alphas[i] = this.m_Alphas[i] + RNG.gaussianDouble(0.2);
if (this.m_Alphas[i] < -Math.PI/2) this.m_Alphas[i] = -Math.PI/2; if (this.m_Alphas[i] < -Math.PI/2) this.m_Alphas[i] = -Math.PI/2;
if (this.m_Alphas[i] > Math.PI/2) this.m_Alphas[i] = Math.PI/2; if (this.m_Alphas[i] > Math.PI/2) this.m_Alphas[i] = Math.PI/2;
} }
//Generate mutationvector in unitspace modified by sigmas //Generate mutationvector in unitspace modified by sigmas
for (int i = 0; i < x.length; i++) { for (int i = 0; i < x.length; i++) {
xCopy[i] = RandomNumberGenerator.gaussianDouble(this.m_Sigmas[i]); xCopy[i] = RNG.gaussianDouble(this.m_Sigmas[i]);
} }
//turn mutationvector with alphas //turn mutationvector with alphas
@@ -4,7 +4,7 @@ import eva2.server.go.individuals.AbstractEAIndividual;
import eva2.server.go.individuals.InterfaceESIndividual; import eva2.server.go.individuals.InterfaceESIndividual;
import eva2.server.go.populations.Population; import eva2.server.go.populations.Population;
import eva2.server.go.problems.InterfaceOptimizationProblem; import eva2.server.go.problems.InterfaceOptimizationProblem;
import eva2.server.go.tools.RandomNumberGenerator; import wsi.ra.math.RNG;
import wsi.ra.math.Jama.EigenvalueDecomposition; import wsi.ra.math.Jama.EigenvalueDecomposition;
import wsi.ra.math.Jama.Matrix; import wsi.ra.math.Jama.Matrix;
@@ -183,7 +183,7 @@ public class MutateESCovarianceMartixAdaption implements InterfaceMutation, java
// if (Double.isNaN((x[0]))) System.out.println("treffer in cma "+ x[0]); // if (Double.isNaN((x[0]))) System.out.println("treffer in cma "+ x[0]);
// if (Double.isNaN((m_C.get(0,0)))) System.out.println("treffer in cma"); // if (Double.isNaN((m_C.get(0,0)))) System.out.println("treffer in cma");
// for (int i=0;i<N;i++) { // evaluate new random values // for (int i=0;i<N;i++) { // evaluate new random values
// m_Z[i] = RandomNumberGenerator.gaussianDouble(1.0); // m_Z[i] = RNG.gaussianDouble(1.0);
// } // }
// m_C = (m_C.plus(m_C.transpose()).times(0.5)); // MAKE C SYMMETRIC // m_C = (m_C.plus(m_C.transpose()).times(0.5)); // MAKE C SYMMETRIC
// EigenvalueDecomposition helper = new EigenvalueDecomposition(m_C); // EigenvalueDecomposition helper = new EigenvalueDecomposition(m_C);
@@ -215,7 +215,7 @@ public class MutateESCovarianceMartixAdaption implements InterfaceMutation, java
// for (int i = 0; i < N; i++) x[i] = tmpD[i]; // for (int i = 0; i < N; i++) x[i] = tmpD[i];
// conservation of mutaion direction: // conservation of mutaion direction:
double[] old = (double[]) this.m_Z.clone(); double[] old = (double[]) this.m_Z.clone();
for (int i = 0; i < this.m_D; i++) this.m_Z[i] = RandomNumberGenerator.gaussianDouble(1.0); for (int i = 0; i < this.m_D; i++) this.m_Z[i] = RNG.gaussianDouble(1.0);
this.m_C = (this.m_C.plus(this.m_C.transpose()).times(0.5)); // MAKE C SYMMETRIC this.m_C = (this.m_C.plus(this.m_C.transpose()).times(0.5)); // MAKE C SYMMETRIC
this.m_Counter++; this.m_Counter++;
@@ -242,7 +242,7 @@ public class MutateESCovarianceMartixAdaption implements InterfaceMutation, java
for (int i = 0; i < m_D; i++) { for (int i = 0; i < m_D; i++) {
if (x[i] < range[i][0] || x[i] > range[i][1]) { if (x[i] < range[i][0] || x[i] > range[i][1]) {
for (int j = 0; j < this.m_D; j++) x[j] = x[j] - this.m_SigmaGlobal * this.Bz[j]; for (int j = 0; j < this.m_D; j++) x[j] = x[j] - this.m_SigmaGlobal * this.Bz[j];
this.m_Z[i] = RandomNumberGenerator.gaussianDouble(1.0); this.m_Z[i] = RNG.gaussianDouble(1.0);
constraint = false; constraint = false;
counter++; counter++;
break; break;
@@ -4,7 +4,7 @@ import eva2.server.go.individuals.AbstractEAIndividual;
import eva2.server.go.individuals.InterfaceESIndividual; import eva2.server.go.individuals.InterfaceESIndividual;
import eva2.server.go.populations.Population; import eva2.server.go.populations.Population;
import eva2.server.go.problems.InterfaceOptimizationProblem; import eva2.server.go.problems.InterfaceOptimizationProblem;
import eva2.server.go.tools.RandomNumberGenerator; import wsi.ra.math.RNG;
/** /**
* Created by IntelliJ IDEA. * Created by IntelliJ IDEA.
@@ -74,7 +74,7 @@ public class MutateESDerandomized implements InterfaceMutation, java.io.Serializ
else this.m_c = 1.0; else this.m_c = 1.0;
this.m_Z = new double[this.m_D]; this.m_Z = new double[this.m_D];
this.m_Path = new double[this.m_D]; this.m_Path = new double[this.m_D];
for (int i = 0; i < this.m_D; i++) this.m_Z[i] = RandomNumberGenerator.gaussianDouble(1.0); for (int i = 0; i < this.m_D; i++) this.m_Z[i] = RNG.gaussianDouble(1.0);
evaluateNewObjectX(x, ranges); evaluateNewObjectX(x, ranges);
} }
@@ -88,7 +88,7 @@ public class MutateESDerandomized implements InterfaceMutation, java.io.Serializ
double[] x = ((InterfaceESIndividual)individual).getDGenotype(); double[] x = ((InterfaceESIndividual)individual).getDGenotype();
double[][] ranges = ((InterfaceESIndividual)individual).getDoubleRange(); double[][] ranges = ((InterfaceESIndividual)individual).getDoubleRange();
this.adaptStrategy(); this.adaptStrategy();
for (int i = 0; i < m_D; i++) m_Z[i] = RandomNumberGenerator.gaussianDouble(1.0); for (int i = 0; i < m_D; i++) m_Z[i] = RNG.gaussianDouble(1.0);
this.evaluateNewObjectX(x, ranges); this.evaluateNewObjectX(x, ranges);
for (int i = 0; i < x.length; i++) { for (int i = 0; i < x.length; i++) {
if (x[i] < ranges[i][0]) x[i] = ranges[i][0]; if (x[i] < ranges[i][0]) x[i] = ranges[i][0];
@@ -4,7 +4,7 @@ import eva2.server.go.individuals.AbstractEAIndividual;
import eva2.server.go.individuals.InterfaceESIndividual; import eva2.server.go.individuals.InterfaceESIndividual;
import eva2.server.go.populations.Population; import eva2.server.go.populations.Population;
import eva2.server.go.problems.InterfaceOptimizationProblem; import eva2.server.go.problems.InterfaceOptimizationProblem;
import eva2.server.go.tools.RandomNumberGenerator; import wsi.ra.math.RNG;
/** /**
* Created by IntelliJ IDEA. * Created by IntelliJ IDEA.
@@ -65,7 +65,7 @@ public class MutateESFixedStepSize implements InterfaceMutation, java.io.Seriali
double[] x = ((InterfaceESIndividual)individual).getDGenotype(); double[] x = ((InterfaceESIndividual)individual).getDGenotype();
double[][] range = ((InterfaceESIndividual)individual).getDoubleRange(); double[][] range = ((InterfaceESIndividual)individual).getDoubleRange();
for (int i = 0; i < x.length; i++) { for (int i = 0; i < x.length; i++) {
x[i] += ((range[i][1] -range[i][0])/2)*RandomNumberGenerator.gaussianDouble(this.m_Sigma); x[i] += ((range[i][1] -range[i][0])/2)*RNG.gaussianDouble(this.m_Sigma);
if (range[i][0] > x[i]) x[i] = range[i][0]; if (range[i][0] > x[i]) x[i] = range[i][0];
if (range[i][1] < x[i]) x[i] = range[i][1]; if (range[i][1] < x[i]) x[i] = range[i][1];
} }
@@ -6,7 +6,7 @@ import eva2.server.go.individuals.AbstractEAIndividual;
import eva2.server.go.individuals.InterfaceESIndividual; import eva2.server.go.individuals.InterfaceESIndividual;
import eva2.server.go.populations.Population; import eva2.server.go.populations.Population;
import eva2.server.go.problems.InterfaceOptimizationProblem; import eva2.server.go.problems.InterfaceOptimizationProblem;
import eva2.server.go.tools.RandomNumberGenerator; import wsi.ra.math.RNG;
import eva2.tools.SelectedTag; import eva2.tools.SelectedTag;
@@ -81,10 +81,10 @@ public class MutateESGlobal implements InterfaceMutation, java.io.Serializable {
if (individual instanceof InterfaceESIndividual) { if (individual instanceof InterfaceESIndividual) {
double[] x = ((InterfaceESIndividual)individual).getDGenotype(); double[] x = ((InterfaceESIndividual)individual).getDGenotype();
double[][] range = ((InterfaceESIndividual)individual).getDoubleRange(); double[][] range = ((InterfaceESIndividual)individual).getDoubleRange();
this.m_MutationStepSize = this.m_MutationStepSize * Math.exp(this.m_Tau1 * RandomNumberGenerator.gaussianDouble(1)); this.m_MutationStepSize = this.m_MutationStepSize * Math.exp(this.m_Tau1 * RNG.gaussianDouble(1));
if (this.m_MutationStepSize < this.m_LowerLimitStepSize) this.m_MutationStepSize = this.m_LowerLimitStepSize; if (this.m_MutationStepSize < this.m_LowerLimitStepSize) this.m_MutationStepSize = this.m_LowerLimitStepSize;
for (int i = 0; i < x.length; i++) { for (int i = 0; i < x.length; i++) {
x[i] += ((range[i][1] -range[i][0])/2)*RandomNumberGenerator.gaussianDouble(this.m_MutationStepSize); 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][0] > x[i]) x[i] = range[i][0];
if (range[i][1] < x[i]) x[i] = range[i][1]; if (range[i][1] < x[i]) x[i] = range[i][1];
} }
@@ -116,7 +116,7 @@ public class MutateESGlobal implements InterfaceMutation, java.io.Serializable {
break; break;
} }
case 2 : { case 2 : {
this.m_MutationStepSize = list[RandomNumberGenerator.randomInt(0, list.length-1)]; this.m_MutationStepSize = list[RNG.randomInt(0, list.length-1)];
break; break;
} }
default : { default : {
@@ -8,7 +8,7 @@ import eva2.server.go.individuals.InterfaceDataTypeDouble;
import eva2.server.go.individuals.InterfaceESIndividual; import eva2.server.go.individuals.InterfaceESIndividual;
import eva2.server.go.populations.Population; import eva2.server.go.populations.Population;
import eva2.server.go.problems.InterfaceOptimizationProblem; import eva2.server.go.problems.InterfaceOptimizationProblem;
import eva2.server.go.tools.RandomNumberGenerator; import wsi.ra.math.RNG;
import eva2.tools.SelectedTag; import eva2.tools.SelectedTag;
import eva2.tools.Tag; import eva2.tools.Tag;
@@ -99,12 +99,12 @@ public class MutateESLocal implements InterfaceMutation, java.io.Serializable {
if (individual instanceof InterfaceESIndividual) { if (individual instanceof InterfaceESIndividual) {
double[] x = ((InterfaceESIndividual)individual).getDGenotype(); double[] x = ((InterfaceESIndividual)individual).getDGenotype();
double[][] range = ((InterfaceESIndividual)individual).getDoubleRange(); double[][] range = ((InterfaceESIndividual)individual).getDoubleRange();
double tmpR = RandomNumberGenerator.gaussianDouble(1); double tmpR = RNG.gaussianDouble(1);
for (int i = 0; i < x.length; i++) { for (int i = 0; i < x.length; i++) {
this.m_Sigmas[i] = this.m_Sigmas[i] * Math.exp(this.m_Tau1 * tmpR + this.m_Tau2 * RandomNumberGenerator.gaussianDouble(1)); this.m_Sigmas[i] = this.m_Sigmas[i] * Math.exp(this.m_Tau1 * tmpR + this.m_Tau2 * RNG.gaussianDouble(1));
if (this.m_Sigmas[i] < this.m_LowerLimitStepSize) this.m_Sigmas[i] = this.m_LowerLimitStepSize; if (this.m_Sigmas[i] < this.m_LowerLimitStepSize) this.m_Sigmas[i] = this.m_LowerLimitStepSize;
x[i] += ((range[i][1] -range[i][0])/2)*RandomNumberGenerator.gaussianDouble(this.m_Sigmas[i]); x[i] += ((range[i][1] -range[i][0])/2)*RNG.gaussianDouble(this.m_Sigmas[i]);
if (range[i][0] > x[i]) x[i] = range[i][0]; if (range[i][0] > x[i]) x[i] = range[i][0];
if (range[i][1] < x[i]) x[i] = range[i][1]; if (range[i][1] < x[i]) x[i] = range[i][1];
} }
@@ -151,10 +151,10 @@ public class MutateESLocal implements InterfaceMutation, java.io.Serializable {
break; break;
} }
case 2 : { case 2 : {
int rn = RandomNumberGenerator.randomInt(0, listA.length-1); int rn = RNG.randomInt(0, listA.length-1);
this.m_MutationStepSize = listA[rn]; this.m_MutationStepSize = listA[rn];
for (int i = 0; i < this.m_Sigmas.length; i++) { for (int i = 0; i < this.m_Sigmas.length; i++) {
rn = RandomNumberGenerator.randomInt(0, listA.length-1); rn = RNG.randomInt(0, listA.length-1);
this.m_Sigmas[i] = listB[rn][i]; this.m_Sigmas[i] = listB[rn][i];
} }
break; break;
@@ -4,7 +4,7 @@ import eva2.server.go.individuals.AbstractEAIndividual;
import eva2.server.go.individuals.InterfaceESIndividual; import eva2.server.go.individuals.InterfaceESIndividual;
import eva2.server.go.populations.Population; import eva2.server.go.populations.Population;
import eva2.server.go.problems.InterfaceOptimizationProblem; import eva2.server.go.problems.InterfaceOptimizationProblem;
import eva2.server.go.tools.RandomNumberGenerator; import wsi.ra.math.RNG;
/** /**
* Created by IntelliJ IDEA. * Created by IntelliJ IDEA.
@@ -98,8 +98,8 @@ public class MutateESMainVectorAdaption implements InterfaceMutation, java.io.Se
this.m_main_v[i] = 0; this.m_main_v[i] = 0;
}; };
this.xi_dach = Math.sqrt(this.N - 0.5); this.xi_dach = Math.sqrt(this.N - 0.5);
for (int i = 0; i < this.N; i++) this.m_Z[i] = RandomNumberGenerator.gaussianDouble(1.0); for (int i = 0; i < this.N; i++) this.m_Z[i] = RNG.gaussianDouble(1.0);
this.Z1 = RandomNumberGenerator.gaussianDouble(1.0); this.Z1 = RNG.gaussianDouble(1.0);
evaluateNewObjectX(x, ranges); evaluateNewObjectX(x, ranges);
} }
@@ -113,8 +113,8 @@ public class MutateESMainVectorAdaption implements InterfaceMutation, java.io.Se
double[] x = ((InterfaceESIndividual)individual).getDGenotype(); double[] x = ((InterfaceESIndividual)individual).getDGenotype();
double[][] ranges = ((InterfaceESIndividual)individual).getDoubleRange(); double[][] ranges = ((InterfaceESIndividual)individual).getDoubleRange();
this.adaptStrategy(); this.adaptStrategy();
for (int i = 0; i < N; i++) m_Z[i] = RandomNumberGenerator.gaussianDouble(1.0); for (int i = 0; i < N; i++) m_Z[i] = RNG.gaussianDouble(1.0);
Z1 = RandomNumberGenerator.gaussianDouble(1.0); Z1 = RNG.gaussianDouble(1.0);
evaluateNewObjectX(x, ranges); evaluateNewObjectX(x, ranges);
((InterfaceESIndividual)individual).SetDGenotype(x); ((InterfaceESIndividual)individual).SetDGenotype(x);
@@ -4,7 +4,7 @@ import eva2.server.go.individuals.AbstractEAIndividual;
import eva2.server.go.individuals.InterfaceESIndividual; import eva2.server.go.individuals.InterfaceESIndividual;
import eva2.server.go.populations.Population; import eva2.server.go.populations.Population;
import eva2.server.go.problems.InterfaceOptimizationProblem; import eva2.server.go.problems.InterfaceOptimizationProblem;
import eva2.server.go.tools.RandomNumberGenerator; import wsi.ra.math.RNG;
/** /**
* Created by IntelliJ IDEA. * Created by IntelliJ IDEA.
@@ -65,13 +65,13 @@ public class MutateESMutativeStepSizeControl implements InterfaceMutation, java.
if (individual instanceof InterfaceESIndividual) { if (individual instanceof InterfaceESIndividual) {
double[] x = ((InterfaceESIndividual)individual).getDGenotype(); double[] x = ((InterfaceESIndividual)individual).getDGenotype();
double[][] range = ((InterfaceESIndividual)individual).getDoubleRange(); double[][] range = ((InterfaceESIndividual)individual).getDoubleRange();
if (RandomNumberGenerator.flipCoin(0.5)) if (RNG.flipCoin(0.5))
this.m_MutationStepSize = this.m_MutationStepSize * this.m_Alpha; this.m_MutationStepSize = this.m_MutationStepSize * this.m_Alpha;
else else
this.m_MutationStepSize = this.m_MutationStepSize / this.m_Alpha; this.m_MutationStepSize = this.m_MutationStepSize / this.m_Alpha;
if (this.m_MutationStepSize < this.m_LowerLimitStepSize) this.m_MutationStepSize = this.m_LowerLimitStepSize; if (this.m_MutationStepSize < this.m_LowerLimitStepSize) this.m_MutationStepSize = this.m_LowerLimitStepSize;
for (int i = 0; i < x.length; i++) { for (int i = 0; i < x.length; i++) {
x[i] += ((range[i][1] -range[i][0])/2)*RandomNumberGenerator.gaussianDouble(this.m_MutationStepSize); 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][0] > x[i]) x[i] = range[i][0];
if (range[i][1] < x[i]) x[i] = range[i][1]; if (range[i][1] < x[i]) x[i] = range[i][1];
} }
@@ -5,7 +5,7 @@ import eva2.server.go.individuals.InterfaceDataTypeDouble;
import eva2.server.go.individuals.InterfaceESIndividual; import eva2.server.go.individuals.InterfaceESIndividual;
import eva2.server.go.populations.Population; import eva2.server.go.populations.Population;
import eva2.server.go.problems.InterfaceOptimizationProblem; import eva2.server.go.problems.InterfaceOptimizationProblem;
import eva2.server.go.tools.RandomNumberGenerator; import wsi.ra.math.RNG;
/** /**
* Created by IntelliJ IDEA. * Created by IntelliJ IDEA.
@@ -61,7 +61,7 @@ public class MutateESStandard implements InterfaceMutation, java.io.Serializable
double[] x = ((InterfaceESIndividual)individual).getDGenotype(); double[] x = ((InterfaceESIndividual)individual).getDGenotype();
double[][] range = ((InterfaceESIndividual)individual).getDoubleRange(); double[][] range = ((InterfaceESIndividual)individual).getDoubleRange();
for (int i = 0; i < x.length; i++) { for (int i = 0; i < x.length; i++) {
x[i] += ((range[i][1] -range[i][0])/2)*RandomNumberGenerator.gaussianDouble(this.m_MutationStepSize); 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][0] > x[i]) x[i] = range[i][0];
if (range[i][1] < x[i]) x[i] = range[i][1]; if (range[i][1] < x[i]) x[i] = range[i][1];
} }
@@ -4,7 +4,7 @@ import eva2.server.go.individuals.AbstractEAIndividual;
import eva2.server.go.individuals.InterfaceESIndividual; import eva2.server.go.individuals.InterfaceESIndividual;
import eva2.server.go.populations.Population; import eva2.server.go.populations.Population;
import eva2.server.go.problems.InterfaceOptimizationProblem; import eva2.server.go.problems.InterfaceOptimizationProblem;
import eva2.server.go.tools.RandomNumberGenerator; import wsi.ra.math.RNG;
/** /**
* Created by IntelliJ IDEA. * Created by IntelliJ IDEA.
@@ -70,7 +70,7 @@ public class MutateESSuccessRule implements InterfaceMutation, java.io.Serializa
double[] x = ((InterfaceESIndividual)individual).getDGenotype(); double[] x = ((InterfaceESIndividual)individual).getDGenotype();
double[][] range = ((InterfaceESIndividual)individual).getDoubleRange(); double[][] range = ((InterfaceESIndividual)individual).getDoubleRange();
for (int i = 0; i < x.length; i++) { for (int i = 0; i < x.length; i++) {
x[i] += ((range[i][1] -range[i][0])/2)*RandomNumberGenerator.gaussianDouble(this.m_MutationStepSize); 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][0] > x[i]) x[i] = range[i][0];
if (range[i][1] < x[i]) x[i] = range[i][1]; if (range[i][1] < x[i]) x[i] = range[i][1];
} }
@@ -7,7 +7,7 @@ import eva2.server.go.individuals.AbstractEAIndividual;
import eva2.server.go.individuals.InterfaceGAIndividual; import eva2.server.go.individuals.InterfaceGAIndividual;
import eva2.server.go.populations.Population; import eva2.server.go.populations.Population;
import eva2.server.go.problems.InterfaceOptimizationProblem; import eva2.server.go.problems.InterfaceOptimizationProblem;
import eva2.server.go.tools.RandomNumberGenerator; import wsi.ra.math.RNG;
/** /**
* The mutation probability is adapted using a parameter tau and stored in the individual. * The mutation probability is adapted using a parameter tau and stored in the individual.
@@ -71,10 +71,10 @@ public class MutateGAAdaptive implements InterfaceMutation, java.io.Serializable
//System.out.println("Before Mutate: " +((GAIndividual)individual).getSolutionRepresentationFor()); //System.out.println("Before Mutate: " +((GAIndividual)individual).getSolutionRepresentationFor());
if (individual instanceof InterfaceGAIndividual) { if (individual instanceof InterfaceGAIndividual) {
BitSet tmpBitSet = ((InterfaceGAIndividual)individual).getBGenotype(); BitSet tmpBitSet = ((InterfaceGAIndividual)individual).getBGenotype();
this.m_MutationStep = this.m_MutationStep * Math.exp(this.m_Tau1 * RandomNumberGenerator.gaussianDouble(1)); this.m_MutationStep = this.m_MutationStep * Math.exp(this.m_Tau1 * RNG.gaussianDouble(1));
if (this.m_MutationStep < this.m_LowerLimitStepSize) this.m_MutationStep = this.m_LowerLimitStepSize; if (this.m_MutationStep < this.m_LowerLimitStepSize) this.m_MutationStep = this.m_LowerLimitStepSize;
for (int i = 0; i < ((InterfaceGAIndividual)individual).getGenotypeLength(); i++) { for (int i = 0; i < ((InterfaceGAIndividual)individual).getGenotypeLength(); i++) {
if (RandomNumberGenerator.flipCoin(this.m_MutationStep/((InterfaceGAIndividual)individual).getGenotypeLength())) { if (RNG.flipCoin(this.m_MutationStep/((InterfaceGAIndividual)individual).getGenotypeLength())) {
tmpBitSet.flip(i); tmpBitSet.flip(i);
} }
} }
@@ -7,7 +7,7 @@ import eva2.server.go.individuals.AbstractEAIndividual;
import eva2.server.go.individuals.InterfaceGAIndividual; import eva2.server.go.individuals.InterfaceGAIndividual;
import eva2.server.go.populations.Population; import eva2.server.go.populations.Population;
import eva2.server.go.problems.InterfaceOptimizationProblem; import eva2.server.go.problems.InterfaceOptimizationProblem;
import eva2.server.go.tools.RandomNumberGenerator; import wsi.ra.math.RNG;
/** /**
* Created by IntelliJ IDEA. * Created by IntelliJ IDEA.
@@ -67,8 +67,8 @@ public class MutateGAInvertBits implements InterfaceMutation, java.io.Serializab
BitSet tmpBitSet = ((InterfaceGAIndividual)individual).getBGenotype(); BitSet tmpBitSet = ((InterfaceGAIndividual)individual).getBGenotype();
int[][] mutationIndices = new int[this.m_NumberOfMutations][2]; int[][] mutationIndices = new int[this.m_NumberOfMutations][2];
for (int i = 0; i < mutationIndices.length; i++) { for (int i = 0; i < mutationIndices.length; i++) {
mutationIndices[i][0] = RandomNumberGenerator.randomInt(0, ((InterfaceGAIndividual)individual).getGenotypeLength());; mutationIndices[i][0] = RNG.randomInt(0, ((InterfaceGAIndividual)individual).getGenotypeLength());;
mutationIndices[i][1] = RandomNumberGenerator.randomInt(0, this.m_MaxInveredBits);; mutationIndices[i][1] = RNG.randomInt(0, this.m_MaxInveredBits);;
} }
// double instances of mutationIndices could be checked here... *sigh* // double instances of mutationIndices could be checked here... *sigh*
for (int i = 0; i < mutationIndices.length; i++) { for (int i = 0; i < mutationIndices.length; i++) {
@@ -7,7 +7,7 @@ import eva2.server.go.individuals.AbstractEAIndividual;
import eva2.server.go.individuals.InterfaceGAIndividual; import eva2.server.go.individuals.InterfaceGAIndividual;
import eva2.server.go.populations.Population; import eva2.server.go.populations.Population;
import eva2.server.go.problems.InterfaceOptimizationProblem; import eva2.server.go.problems.InterfaceOptimizationProblem;
import eva2.server.go.tools.RandomNumberGenerator; import wsi.ra.math.RNG;
/** /**
* Created by IntelliJ IDEA. * Created by IntelliJ IDEA.
@@ -62,7 +62,7 @@ public class MutateGAStandard implements InterfaceMutation, java.io.Serializable
if (individual instanceof InterfaceGAIndividual) { if (individual instanceof InterfaceGAIndividual) {
BitSet tmpBitSet = ((InterfaceGAIndividual)individual).getBGenotype(); BitSet tmpBitSet = ((InterfaceGAIndividual)individual).getBGenotype();
int[] mutationIndices = new int[this.m_NumberOfMutations]; int[] mutationIndices = new int[this.m_NumberOfMutations];
for (int i = 0; i < mutationIndices.length; i++) mutationIndices[i] = RandomNumberGenerator.randomInt(0, ((InterfaceGAIndividual)individual).getGenotypeLength());; for (int i = 0; i < mutationIndices.length; i++) mutationIndices[i] = RNG.randomInt(0, ((InterfaceGAIndividual)individual).getGenotypeLength());;
// double instances of mutationIndices could be checked here... *sigh* // double instances of mutationIndices could be checked here... *sigh*
for (int i = 0; i < mutationIndices.length; i++) { for (int i = 0; i < mutationIndices.length; i++) {
tmpBitSet.flip(mutationIndices[i]); tmpBitSet.flip(mutationIndices[i]);
@@ -7,7 +7,7 @@ import eva2.server.go.individuals.AbstractEAIndividual;
import eva2.server.go.individuals.InterfaceGAIndividual; import eva2.server.go.individuals.InterfaceGAIndividual;
import eva2.server.go.populations.Population; import eva2.server.go.populations.Population;
import eva2.server.go.problems.InterfaceOptimizationProblem; import eva2.server.go.problems.InterfaceOptimizationProblem;
import eva2.server.go.tools.RandomNumberGenerator; import wsi.ra.math.RNG;
/** /**
* Created by IntelliJ IDEA. * Created by IntelliJ IDEA.
@@ -73,8 +73,8 @@ public class MutateGASwapBits implements InterfaceMutation, java.io.Serializable
int[][] mutationIndices = new int[this.m_NumberOfMutations][2]; int[][] mutationIndices = new int[this.m_NumberOfMutations][2];
boolean tmpBit; boolean tmpBit;
for (int i = 0; i < mutationIndices.length; i++) { for (int i = 0; i < mutationIndices.length; i++) {
mutationIndices[i][0] = RandomNumberGenerator.randomInt(0, ((InterfaceGAIndividual)individual).getGenotypeLength());; mutationIndices[i][0] = RNG.randomInt(0, ((InterfaceGAIndividual)individual).getGenotypeLength());;
mutationIndices[i][1] = RandomNumberGenerator.randomInt(0, ((InterfaceGAIndividual)individual).getGenotypeLength());; mutationIndices[i][1] = RNG.randomInt(0, ((InterfaceGAIndividual)individual).getGenotypeLength());;
} }
// double instances of mutationIndices could be checked here... *sigh* // double instances of mutationIndices could be checked here... *sigh*
for (int i = 0; i < mutationIndices.length; i++) { for (int i = 0; i < mutationIndices.length; i++) {
@@ -4,7 +4,7 @@ import eva2.server.go.individuals.AbstractEAIndividual;
import eva2.server.go.individuals.InterfaceGIIndividual; import eva2.server.go.individuals.InterfaceGIIndividual;
import eva2.server.go.populations.Population; import eva2.server.go.populations.Population;
import eva2.server.go.problems.InterfaceOptimizationProblem; import eva2.server.go.problems.InterfaceOptimizationProblem;
import eva2.server.go.tools.RandomNumberGenerator; import wsi.ra.math.RNG;
/** /**
* Created by IntelliJ IDEA. * Created by IntelliJ IDEA.
@@ -73,12 +73,12 @@ public class MutateGIInsertDelete implements InterfaceMutation, java.io.Serializ
int[][] newRange; int[][] newRange;
int length, position; int length, position;
//this.pintInt("Before ", x); //this.pintInt("Before ", x);
length = RandomNumberGenerator.randomInt(1, this.m_MaxLengthOfInsDel); length = RNG.randomInt(1, this.m_MaxLengthOfInsDel);
boolean insert = RandomNumberGenerator.flipCoin(0.5); boolean insert = RNG.flipCoin(0.5);
if ((!insert) && (length >= x.length-1)) insert = true; if ((!insert) && (length >= x.length-1)) insert = true;
if (insert) { if (insert) {
// insert // insert
position = RandomNumberGenerator.randomInt(0, x.length-1); position = RNG.randomInt(0, x.length-1);
newX = new int[x.length + length]; newX = new int[x.length + length];
newRange = new int[range.length + length][2]; newRange = new int[range.length + length][2];
for (int i = 0; i < position; i++) { for (int i = 0; i < position; i++) {
@@ -86,7 +86,7 @@ public class MutateGIInsertDelete implements InterfaceMutation, java.io.Serializ
newRange[i] = range[i]; newRange[i] = range[i];
} }
for (int i = position; i < position+length; i++) { for (int i = position; i < position+length; i++) {
newX[i] = RandomNumberGenerator.randomInt(range[position][0], range[position][1]); newX[i] = RNG.randomInt(range[position][0], range[position][1]);
newRange[i][0] = range[position][0]; newRange[i][0] = range[position][0];
newRange[i][1] = range[position][1]; newRange[i][1] = range[position][1];
} }
@@ -96,7 +96,7 @@ public class MutateGIInsertDelete implements InterfaceMutation, java.io.Serializ
} }
} else { } else {
// delete // delete
position = RandomNumberGenerator.randomInt(0, x.length-1-length); position = RNG.randomInt(0, x.length-1-length);
newX = new int[x.length - length]; newX = new int[x.length - length];
newRange = new int[range.length - length][2]; newRange = new int[range.length - length][2];
if (newX.length <=1) return; if (newX.length <=1) return;
@@ -4,7 +4,7 @@ import eva2.server.go.individuals.AbstractEAIndividual;
import eva2.server.go.individuals.InterfaceGIIndividual; import eva2.server.go.individuals.InterfaceGIIndividual;
import eva2.server.go.populations.Population; import eva2.server.go.populations.Population;
import eva2.server.go.problems.InterfaceOptimizationProblem; import eva2.server.go.problems.InterfaceOptimizationProblem;
import eva2.server.go.tools.RandomNumberGenerator; import wsi.ra.math.RNG;
/** /**
* Created by IntelliJ IDEA. * Created by IntelliJ IDEA.
@@ -61,9 +61,9 @@ public class MutateGIInvert implements InterfaceMutation, java.io.Serializable {
int[] x = ((InterfaceGIIndividual)individual).getIGenotype(); int[] x = ((InterfaceGIIndividual)individual).getIGenotype();
int range, center, index = 0; int range, center, index = 0;
//this.pintInt("Before ", x); //this.pintInt("Before ", x);
range = RandomNumberGenerator.randomInt(1, this.m_MaxLengthOfInvert); range = RNG.randomInt(1, this.m_MaxLengthOfInvert);
if (2*range >= x.length) return; if (2*range >= x.length) return;
center = RandomNumberGenerator.randomInt(0+range, x.length-1-range); center = RNG.randomInt(0+range, x.length-1-range);
//System.out.println("Range: " + range + " Center: " + center); //System.out.println("Range: " + range + " Center: " + center);
int[] tmp = new int[x.length]; int[] tmp = new int[x.length];
System.arraycopy(x, 0, tmp, 0, x.length); System.arraycopy(x, 0, tmp, 0, x.length);
@@ -4,7 +4,7 @@ import eva2.server.go.individuals.AbstractEAIndividual;
import eva2.server.go.individuals.InterfaceGIIndividual; import eva2.server.go.individuals.InterfaceGIIndividual;
import eva2.server.go.populations.Population; import eva2.server.go.populations.Population;
import eva2.server.go.problems.InterfaceOptimizationProblem; import eva2.server.go.problems.InterfaceOptimizationProblem;
import eva2.server.go.tools.RandomNumberGenerator; import wsi.ra.math.RNG;
/** /**
* Created by IntelliJ IDEA. * Created by IntelliJ IDEA.
@@ -63,11 +63,11 @@ public class MutateGINominal implements InterfaceMutation, java.io.Serializable
int mutInd = 0; int mutInd = 0;
for (int k = 0; k < this.m_NumberOfMutations; k++) { for (int k = 0; k < this.m_NumberOfMutations; k++) {
try { try {
mutInd = RandomNumberGenerator.randomInt(0, x.length-1); mutInd = RNG.randomInt(0, x.length-1);
} catch (java.lang.ArithmeticException e) { } catch (java.lang.ArithmeticException e) {
System.out.println("x.length " + x.length); System.out.println("x.length " + x.length);
} }
x[mutInd] = RandomNumberGenerator.randomInt(range[mutInd][0], range[mutInd][1]); x[mutInd] = RNG.randomInt(range[mutInd][0], range[mutInd][1]);
} }
((InterfaceGIIndividual)individual).SetIGenotype(x); ((InterfaceGIIndividual)individual).SetIGenotype(x);
} }
@@ -4,7 +4,7 @@ import eva2.server.go.individuals.AbstractEAIndividual;
import eva2.server.go.individuals.InterfaceGIIndividual; import eva2.server.go.individuals.InterfaceGIIndividual;
import eva2.server.go.populations.Population; import eva2.server.go.populations.Population;
import eva2.server.go.problems.InterfaceOptimizationProblem; import eva2.server.go.problems.InterfaceOptimizationProblem;
import eva2.server.go.tools.RandomNumberGenerator; import wsi.ra.math.RNG;
/** /**
* Created by IntelliJ IDEA. * Created by IntelliJ IDEA.
@@ -66,12 +66,12 @@ public class MutateGIOrdinal implements InterfaceMutation, java.io.Serializable
int mutInd, mut; int mutInd, mut;
double mutate; double mutate;
for (int k = 0; k < this.m_NumberOfMutations; k++) { for (int k = 0; k < this.m_NumberOfMutations; k++) {
mutInd = RandomNumberGenerator.randomInt(0, x.length-1); mutInd = RNG.randomInt(0, x.length-1);
mutate = RandomNumberGenerator.gaussianDouble(this.m_StepSize); mutate = RNG.gaussianDouble(this.m_StepSize);
mutate = mutate * (range[mutInd][1] - range[mutInd][1]); mutate = mutate * (range[mutInd][1] - range[mutInd][1]);
mut = (int)Math.round(mutate); mut = (int)Math.round(mutate);
if (mut == 0) { if (mut == 0) {
if (RandomNumberGenerator.flipCoin(0.5)) mut = -1; if (RNG.flipCoin(0.5)) mut = -1;
else mut = 1; else mut = 1;
} }
x[mutInd] += mut; x[mutInd] += mut;
@@ -4,7 +4,7 @@ import eva2.server.go.individuals.AbstractEAIndividual;
import eva2.server.go.individuals.InterfaceGIIndividual; import eva2.server.go.individuals.InterfaceGIIndividual;
import eva2.server.go.populations.Population; import eva2.server.go.populations.Population;
import eva2.server.go.problems.InterfaceOptimizationProblem; import eva2.server.go.problems.InterfaceOptimizationProblem;
import eva2.server.go.tools.RandomNumberGenerator; import wsi.ra.math.RNG;
/** /**
@@ -61,10 +61,10 @@ public class MutateGITranslocate implements InterfaceMutation, java.io.Serializa
if (individual instanceof InterfaceGIIndividual) { if (individual instanceof InterfaceGIIndividual) {
int[] x = ((InterfaceGIIndividual)individual).getIGenotype(); int[] x = ((InterfaceGIIndividual)individual).getIGenotype();
int from, to, length; int from, to, length;
length = RandomNumberGenerator.randomInt(1, this.m_MaxLengthOfTranslocate); length = RNG.randomInt(1, this.m_MaxLengthOfTranslocate);
if (x.length < length+2) return; if (x.length < length+2) return;
from = RandomNumberGenerator.randomInt(0, x.length - 1 - length); from = RNG.randomInt(0, x.length - 1 - length);
to = RandomNumberGenerator.randomInt(0, x.length - 1 - length); to = RNG.randomInt(0, x.length - 1 - length);
//this.pintInt("Before ", x); //this.pintInt("Before ", x);
int[] tmp = new int[x.length]; int[] tmp = new int[x.length];
int[] without = new int[x.length - length]; int[] without = new int[x.length - length];
@@ -8,7 +8,7 @@ import eva2.server.go.individuals.InterfaceGAIndividual;
import eva2.server.go.individuals.InterfaceGPIndividual; import eva2.server.go.individuals.InterfaceGPIndividual;
import eva2.server.go.populations.Population; import eva2.server.go.populations.Population;
import eva2.server.go.problems.InterfaceOptimizationProblem; import eva2.server.go.problems.InterfaceOptimizationProblem;
import eva2.server.go.tools.RandomNumberGenerator; import wsi.ra.math.RNG;
/** /**
* Created by IntelliJ IDEA. * Created by IntelliJ IDEA.
@@ -70,10 +70,10 @@ public class MutateGPAdaptive implements InterfaceMutation, java.io.Serializable
public void mutate(AbstractEAIndividual individual) { public void mutate(AbstractEAIndividual individual) {
//System.out.println("Before Mutate: " +((GAIndividual)individual).getSolutionRepresentationFor()); //System.out.println("Before Mutate: " +((GAIndividual)individual).getSolutionRepresentationFor());
if (individual instanceof InterfaceGPIndividual) { if (individual instanceof InterfaceGPIndividual) {
this.m_MutationStep = this.m_MutationStep * Math.exp(this.m_Tau1 * RandomNumberGenerator.gaussianDouble(1) + this.m_Tau2 * RandomNumberGenerator.gaussianDouble(1)); this.m_MutationStep = this.m_MutationStep * Math.exp(this.m_Tau1 * RNG.gaussianDouble(1) + this.m_Tau2 * RNG.gaussianDouble(1));
if (this.m_MutationStep < this.m_LowerLimitStepSize) this.m_MutationStep = this.m_LowerLimitStepSize; if (this.m_MutationStep < this.m_LowerLimitStepSize) this.m_MutationStep = this.m_LowerLimitStepSize;
if (this.m_MutationStep > 1) this.m_MutationStep = 1; if (this.m_MutationStep > 1) this.m_MutationStep = 1;
if (RandomNumberGenerator.flipCoin(this.m_MutationStep)) ((InterfaceGPIndividual)individual).defaultMutate(); if (RNG.flipCoin(this.m_MutationStep)) ((InterfaceGPIndividual)individual).defaultMutate();
} }
//System.out.println("After Mutate: " +((GAIndividual)individual).getSolutionRepresentationFor()); //System.out.println("After Mutate: " +((GAIndividual)individual).getSolutionRepresentationFor());
} }
@@ -10,7 +10,7 @@ import eva2.server.go.individuals.codings.gp.AbstractGPNode;
import eva2.server.go.individuals.codings.gp.GPArea; import eva2.server.go.individuals.codings.gp.GPArea;
import eva2.server.go.populations.Population; import eva2.server.go.populations.Population;
import eva2.server.go.problems.InterfaceOptimizationProblem; import eva2.server.go.problems.InterfaceOptimizationProblem;
import eva2.server.go.tools.RandomNumberGenerator; import wsi.ra.math.RNG;
/** /**
* Created by IntelliJ IDEA. * Created by IntelliJ IDEA.
@@ -58,7 +58,7 @@ public class MutateGPSingleNode implements InterfaceMutation, java.io.Serializab
GPArea[] areas = (GPArea[])((InterfaceGPIndividual)individual).getFunctionArea(); GPArea[] areas = (GPArea[])((InterfaceGPIndividual)individual).getFunctionArea();
for (int i = 0; i < programs.length; i++) { for (int i = 0; i < programs.length; i++) {
programs[i].addNodesTo(allNodes); programs[i].addNodesTo(allNodes);
AbstractGPNode nodeToMutate = (AbstractGPNode) allNodes.get(RandomNumberGenerator.randomInt(0, allNodes.size()-1)); AbstractGPNode nodeToMutate = (AbstractGPNode) allNodes.get(RNG.randomInt(0, allNodes.size()-1));
int orgArity = nodeToMutate.getArity(); int orgArity = nodeToMutate.getArity();
AbstractGPNode newNode = (AbstractGPNode)areas[i].getRandomNodeWithArity(orgArity).clone(); AbstractGPNode newNode = (AbstractGPNode)areas[i].getRandomNodeWithArity(orgArity).clone();
// System.out.println("OldNode "+ nodeToMutate.getName() + ":"+nodeToMutate.getArity() + " / NewNode "+newNode.getName() + ":"+newNode.getArity()); // System.out.println("OldNode "+ nodeToMutate.getName() + ":"+nodeToMutate.getArity() + " / NewNode "+newNode.getName() + ":"+newNode.getArity());
@@ -5,7 +5,7 @@ import eva2.server.go.individuals.InterfaceDataTypePermutation;
import eva2.server.go.individuals.InterfaceOBGAIndividual; import eva2.server.go.individuals.InterfaceOBGAIndividual;
import eva2.server.go.populations.Population; import eva2.server.go.populations.Population;
import eva2.server.go.problems.InterfaceOptimizationProblem; import eva2.server.go.problems.InterfaceOptimizationProblem;
import eva2.server.go.tools.RandomNumberGenerator; import wsi.ra.math.RNG;
/** /**
@@ -54,8 +54,8 @@ public class MutateOBGAFlip implements InterfaceMutation, java.io.Serializable {
getOBGenotype(); getOBGenotype();
for (int p = 0; p < perm.length; p++) { for (int p = 0; p < perm.length; p++) {
for (int i = 0; i < times; i++) { for (int i = 0; i < times; i++) {
int p1 = RandomNumberGenerator.randomInt(0, perm[p].length - 1); int p1 = RNG.randomInt(0, perm[p].length - 1);
int p2 = RandomNumberGenerator.randomInt(0, perm[p].length - 1); int p2 = RNG.randomInt(0, perm[p].length - 1);
int temp = perm[p][p1]; int temp = perm[p][p1];
perm[p][p1] = perm[p][p2]; perm[p][p1] = perm[p][p2];
perm[p][p2] = temp; perm[p][p2] = temp;
@@ -5,7 +5,7 @@ import eva2.server.go.individuals.InterfaceDataTypePermutation;
import eva2.server.go.individuals.InterfaceOBGAIndividual; import eva2.server.go.individuals.InterfaceOBGAIndividual;
import eva2.server.go.populations.Population; import eva2.server.go.populations.Population;
import eva2.server.go.problems.InterfaceOptimizationProblem; import eva2.server.go.problems.InterfaceOptimizationProblem;
import eva2.server.go.tools.RandomNumberGenerator; import wsi.ra.math.RNG;
/** /**
@@ -52,8 +52,8 @@ public class MutateOBGAInversion implements java.io.Serializable, InterfaceMutat
int[][] permnew = (int[][]) ((InterfaceOBGAIndividual) individual). getOBGenotype().clone(); int[][] permnew = (int[][]) ((InterfaceOBGAIndividual) individual). getOBGenotype().clone();
int[][] perm = ((InterfaceDataTypePermutation) individual).getPermutationData(); int[][] perm = ((InterfaceDataTypePermutation) individual).getPermutationData();
for (int p = 0; p < perm.length; p++) { for (int p = 0; p < perm.length; p++) {
int p1 = RandomNumberGenerator.randomInt(0, perm[p].length - 1); int p1 = RNG.randomInt(0, perm[p].length - 1);
int p2 = RandomNumberGenerator.randomInt(p1, perm[p].length - 1); int p2 = RNG.randomInt(p1, perm[p].length - 1);
for (int i = 0; i <= (p2-p1); i++) { for (int i = 0; i <= (p2-p1); i++) {
permnew[p][p1+i] = perm[p][p2-i]; permnew[p][p1+i] = perm[p][p2-i];
} }
@@ -2,7 +2,7 @@ package eva2.server.go.operators.selection;
import eva2.server.go.individuals.AbstractEAIndividual; import eva2.server.go.individuals.AbstractEAIndividual;
import eva2.server.go.populations.Population; import eva2.server.go.populations.Population;
import eva2.server.go.tools.RandomNumberGenerator; import wsi.ra.math.RNG;
/** Simple method to selecet all. /** Simple method to selecet all.
* In case of multiple fitness values the selection * In case of multiple fitness values the selection
@@ -2,7 +2,7 @@ package eva2.server.go.operators.selection;
import eva2.server.go.individuals.AbstractEAIndividual; import eva2.server.go.individuals.AbstractEAIndividual;
import eva2.server.go.populations.Population; import eva2.server.go.populations.Population;
import eva2.server.go.tools.RandomNumberGenerator; import wsi.ra.math.RNG;
/** Select best individual multiple times if necessary. /** Select best individual multiple times if necessary.
@@ -55,7 +55,7 @@ public class SelectBest implements InterfaceSelection, java.io.Serializable {
result.setPopulationSize(size); result.setPopulationSize(size);
if (this.m_ObeyDebsConstViolationPrinciple) { if (this.m_ObeyDebsConstViolationPrinciple) {
for (int i = 0; i < size; i++) { for (int i = 0; i < size; i++) {
currentCriteria = RandomNumberGenerator.randomInt(0, critSize-1); currentCriteria = RNG.randomInt(0, critSize-1);
currentBestValue = Double.POSITIVE_INFINITY; currentBestValue = Double.POSITIVE_INFINITY;
tmpIndy = null; tmpIndy = null;
for (int j = 0; j < population.size(); j++) { for (int j = 0; j < population.size(); j++) {
@@ -78,7 +78,7 @@ public class SelectBest implements InterfaceSelection, java.io.Serializable {
} }
} else { } else {
for (int i = 0; i < size; i++) { for (int i = 0; i < size; i++) {
currentCriteria = RandomNumberGenerator.randomInt(0, critSize-1); currentCriteria = RNG.randomInt(0, critSize-1);
currentBestValue = Double.POSITIVE_INFINITY; currentBestValue = Double.POSITIVE_INFINITY;
for (int j = 0; j < population.size(); j++) { for (int j = 0; j < population.size(); j++) {
if (((AbstractEAIndividual)population.get(j)).getFitness(currentCriteria) < currentBestValue) { if (((AbstractEAIndividual)population.get(j)).getFitness(currentCriteria) < currentBestValue) {
@@ -5,7 +5,7 @@ import java.util.ArrayList;
import eva2.server.go.individuals.AbstractEAIndividual; import eva2.server.go.individuals.AbstractEAIndividual;
import eva2.server.go.populations.Population; import eva2.server.go.populations.Population;
import eva2.server.go.tools.RandomNumberGenerator; import wsi.ra.math.RNG;
/** Select the best individuals. /** Select the best individuals.
* In case of multiple fitness values the selection * In case of multiple fitness values the selection
@@ -64,7 +64,7 @@ public class SelectBestIndividuals implements InterfaceSelection, java.io.Serial
// now get the actual result from the tmp list // now get the actual result from the tmp list
for (int i = 0; i < size; i++) { for (int i = 0; i < size; i++) {
currentCriteria = RandomNumberGenerator.randomInt(0, critSize-1); currentCriteria = RNG.randomInt(0, critSize-1);
result.add(bestIndividuals[currentCriteria].get(0)); result.add(bestIndividuals[currentCriteria].get(0));
bestIndividuals[currentCriteria].remove(0); bestIndividuals[currentCriteria].remove(0);
} }
@@ -121,7 +121,7 @@ public class SelectBestIndividuals implements InterfaceSelection, java.io.Serial
} }
} }
if (index >= 0) return pop.get(index); if (index >= 0) return pop.get(index);
else return pop.get(RandomNumberGenerator.randomInt(0, pop.size()-1)); else return pop.get(RNG.randomInt(0, pop.size()-1));
} }
} else { } else {
for (int i = 0; i < pop.size(); i++) { for (int i = 0; i < pop.size(); i++) {
@@ -140,7 +140,7 @@ public class SelectBestIndividuals implements InterfaceSelection, java.io.Serial
} }
} }
if (index >= 0) return pop.get(index); if (index >= 0) return pop.get(index);
else return pop.get(RandomNumberGenerator.randomInt(0, pop.size()-1)); else return pop.get(RNG.randomInt(0, pop.size()-1));
} }
} }
@@ -5,7 +5,7 @@ import java.util.ArrayList;
import eva2.server.go.individuals.AbstractEAIndividual; import eva2.server.go.individuals.AbstractEAIndividual;
import eva2.server.go.populations.Population; import eva2.server.go.populations.Population;
import eva2.server.go.tools.RandomNumberGenerator; import wsi.ra.math.RNG;
/** This method implements the multiple tournament scheme /** This method implements the multiple tournament scheme
* for EP. * for EP.
@@ -60,7 +60,7 @@ public class SelectEPTournaments implements InterfaceSelection, java.io.Serializ
} }
// perform tournament // perform tournament
for (int k = 0; k < this.m_TournamentSize; k++) { for (int k = 0; k < this.m_TournamentSize; k++) {
rand = RandomNumberGenerator.randomInt(0, population.size()-1); rand = RNG.randomInt(0, population.size()-1);
tmpIndy = ((AbstractEAIndividual)population.get(rand)); tmpIndy = ((AbstractEAIndividual)population.get(rand));
for (int l = 0; l < best.length; l++) { for (int l = 0; l < best.length; l++) {
if (this.m_ObeyDebsConstViolationPrinciple) { if (this.m_ObeyDebsConstViolationPrinciple) {
@@ -102,7 +102,7 @@ public class SelectEPTournaments implements InterfaceSelection, java.io.Serializ
// now get the actual result from the tmp list // now get the actual result from the tmp list
for (int i = 0; i < size; i++) { for (int i = 0; i < size; i++) {
currentCriteria = RandomNumberGenerator.randomInt(0, critSize-1); currentCriteria = RNG.randomInt(0, critSize-1);
result.add(bestIndividuals[currentCriteria].get(0)); result.add(bestIndividuals[currentCriteria].get(0));
bestIndividuals[currentCriteria].remove(0); bestIndividuals[currentCriteria].remove(0);
} }
@@ -139,7 +139,7 @@ public class SelectEPTournaments implements InterfaceSelection, java.io.Serializ
} }
} }
if (index >= 0) return pop.get(index); if (index >= 0) return pop.get(index);
else return pop.get(RandomNumberGenerator.randomInt(0, pop.size()-1)); else return pop.get(RNG.randomInt(0, pop.size()-1));
} }
/** This method allows you to select partners for a given Individual /** This method allows you to select partners for a given Individual
@@ -6,7 +6,7 @@ import eva2.server.go.individuals.AbstractEAIndividual;
import eva2.server.go.operators.distancemetric.InterfaceDistanceMetric; import eva2.server.go.operators.distancemetric.InterfaceDistanceMetric;
import eva2.server.go.operators.distancemetric.ObjectiveSpaceMetric; import eva2.server.go.operators.distancemetric.ObjectiveSpaceMetric;
import eva2.server.go.populations.Population; import eva2.server.go.populations.Population;
import eva2.server.go.tools.RandomNumberGenerator; import wsi.ra.math.RNG;
/** An experimential implementation for mating restriction. /** An experimential implementation for mating restriction.
* Possibly defunct. * Possibly defunct.
@@ -58,7 +58,9 @@ public class SelectMOMAIIDominanceCounter implements InterfaceSelection, java.io
tmpObj = tmpIndy1.getData("MOMAII"); tmpObj = tmpIndy1.getData("MOMAII");
if ((tmpObj != null) && (tmpObj instanceof MOMultipleSolutions)) { if ((tmpObj != null) && (tmpObj instanceof MOMultipleSolutions)) {
malta = (MOMultipleSolutions)tmpObj; malta = (MOMultipleSolutions)tmpObj;
for (int j = i+1; j < population.size(); i++) { //for (int j = i+1; j < population.size(); i++) {
// MK: Im rather sure the i++ was intended to become a j++
for (int j = i+1; j < population.size(); j++) {
tmpIndy2 = (AbstractEAIndividual)population.get(j); tmpIndy2 = (AbstractEAIndividual)population.get(j);
tmpObj = tmpIndy2.getData("MOMAII"); tmpObj = tmpIndy2.getData("MOMAII");
if ((tmpObj != null) && (tmpObj instanceof MOMultipleSolutions)) { if ((tmpObj != null) && (tmpObj instanceof MOMultipleSolutions)) {
@@ -3,7 +3,7 @@ package eva2.server.go.operators.selection;
import eva2.server.go.individuals.AbstractEAIndividual; import eva2.server.go.individuals.AbstractEAIndividual;
import eva2.server.go.operators.moso.MOSOMaxiMin; import eva2.server.go.operators.moso.MOSOMaxiMin;
import eva2.server.go.populations.Population; import eva2.server.go.populations.Population;
import eva2.server.go.tools.RandomNumberGenerator; import wsi.ra.math.RNG;
/** A multi-objective selection criterion based on the maximin /** A multi-objective selection criterion based on the maximin
* method. * method.
@@ -3,7 +3,7 @@ package eva2.server.go.operators.selection;
import eva2.server.go.individuals.AbstractEAIndividual; import eva2.server.go.individuals.AbstractEAIndividual;
import eva2.server.go.operators.archiving.ArchivingNSGAII; import eva2.server.go.operators.archiving.ArchivingNSGAII;
import eva2.server.go.populations.Population; import eva2.server.go.populations.Population;
import eva2.server.go.tools.RandomNumberGenerator; import wsi.ra.math.RNG;
/** The infamous NSGA-II selection scheme for multi-objective /** The infamous NSGA-II selection scheme for multi-objective
* optimization based on Pareto ranks and hybergrids. * optimization based on Pareto ranks and hybergrids.
@@ -73,7 +73,7 @@ public class SelectMONSGAIICrowedTournament implements InterfaceSelection, java.
try { try {
for (int i = 0; i < this.m_TournamentSize; i++) { for (int i = 0; i < this.m_TournamentSize; i++) {
tmpIndy = (AbstractEAIndividual) population.get(RandomNumberGenerator.randomInt(0, population.size()-1)); tmpIndy = (AbstractEAIndividual) population.get(RNG.randomInt(0, population.size()-1));
tmpL = ((Integer)tmpIndy.getData("ParetoLevel")).intValue(); tmpL = ((Integer)tmpIndy.getData("ParetoLevel")).intValue();
if (tmpL < smallestLevel) smallestLevel = tmpL; if (tmpL < smallestLevel) smallestLevel = tmpL;
if (tmpIndy.getConstraintViolation() > 0) infeasiblePop.add(tmpIndy); if (tmpIndy.getConstraintViolation() > 0) infeasiblePop.add(tmpIndy);
@@ -2,7 +2,7 @@ package eva2.server.go.operators.selection;
import eva2.server.go.individuals.AbstractEAIndividual; import eva2.server.go.individuals.AbstractEAIndividual;
import eva2.server.go.populations.Population; import eva2.server.go.populations.Population;
import eva2.server.go.tools.RandomNumberGenerator; import wsi.ra.math.RNG;
/** This multi-objective selection method preferrs non-dominated /** This multi-objective selection method preferrs non-dominated
* individuals over dominated ones. Actually, this fails in case * individuals over dominated ones. Actually, this fails in case
@@ -47,7 +47,7 @@ public class SelectMONonDominated implements InterfaceSelection, java.io.Seriali
*/ */
public Population selectFrom(Population population, int size) { public Population selectFrom(Population population, int size) {
Population result = new Population(); Population result = new Population();
int index = RandomNumberGenerator.randomInt(0, population.size()-1); int index = RNG.randomInt(0, population.size()-1);
if (this.m_ObeyDebsConstViolationPrinciple) { if (this.m_ObeyDebsConstViolationPrinciple) {
boolean feasible = false; boolean feasible = false;
@@ -4,7 +4,7 @@ import eva2.server.go.individuals.AbstractEAIndividual;
import eva2.server.go.operators.archiving.ArchivingPESAII; import eva2.server.go.operators.archiving.ArchivingPESAII;
import eva2.server.go.operators.moso.MOSOMaxiMin; import eva2.server.go.operators.moso.MOSOMaxiMin;
import eva2.server.go.populations.Population; import eva2.server.go.populations.Population;
import eva2.server.go.tools.RandomNumberGenerator; import wsi.ra.math.RNG;
/** The multi-objective PESA selection method. /** The multi-objective PESA selection method.
* Created by IntelliJ IDEA. * Created by IntelliJ IDEA.
@@ -67,9 +67,9 @@ public class SelectMOPESA implements InterfaceSelection, java.io.Serializable {
int winner, tmp; int winner, tmp;
try { try {
winner = RandomNumberGenerator.randomInt(0, population.size()-1); winner = RNG.randomInt(0, population.size()-1);
for (int i = 1; i < this.m_TournamentSize; i++) { for (int i = 1; i < this.m_TournamentSize; i++) {
tmp = RandomNumberGenerator.randomInt(0, population.size()-1); tmp = RNG.randomInt(0, population.size()-1);
if (this.m_Squeeze[tmp] < this.m_Squeeze[winner]) winner = tmp; if (this.m_Squeeze[tmp] < this.m_Squeeze[winner]) winner = tmp;
} }
resultIndy = (AbstractEAIndividual) population.get(winner); resultIndy = (AbstractEAIndividual) population.get(winner);
@@ -8,7 +8,7 @@ import java.util.Enumeration;
import eva2.server.go.individuals.AbstractEAIndividual; import eva2.server.go.individuals.AbstractEAIndividual;
import eva2.server.go.operators.archiving.ArchivingPESAII; import eva2.server.go.operators.archiving.ArchivingPESAII;
import eva2.server.go.populations.Population; import eva2.server.go.populations.Population;
import eva2.server.go.tools.RandomNumberGenerator; import wsi.ra.math.RNG;
/** The multi-objective PESA II selection criteria based on a n-dimensional /** The multi-objective PESA II selection criteria based on a n-dimensional
* grid using a squezzing factor. * grid using a squezzing factor.
@@ -102,13 +102,13 @@ public class SelectMOPESAII implements InterfaceSelection, java.io.Serializable
int winner, tmp; int winner, tmp;
try { try {
box1 = (ArrayList)this.m_GridBoxes.get(RandomNumberGenerator.randomInt(0, this.m_GridBoxes.size()-1)); box1 = (ArrayList)this.m_GridBoxes.get(RNG.randomInt(0, this.m_GridBoxes.size()-1));
box2 = (ArrayList)this.m_GridBoxes.get(RandomNumberGenerator.randomInt(0, this.m_GridBoxes.size()-1)); box2 = (ArrayList)this.m_GridBoxes.get(RNG.randomInt(0, this.m_GridBoxes.size()-1));
if (((Integer)((AbstractEAIndividual)box1.get(0)).getData("SqueezeFactor")).intValue() if (((Integer)((AbstractEAIndividual)box1.get(0)).getData("SqueezeFactor")).intValue()
< ((Integer)((AbstractEAIndividual)box2.get(0)).getData("SqueezeFactor")).intValue()) { < ((Integer)((AbstractEAIndividual)box2.get(0)).getData("SqueezeFactor")).intValue()) {
resultIndy = (AbstractEAIndividual) (box1.get(RandomNumberGenerator.randomInt(0, box1.size()-1))); resultIndy = (AbstractEAIndividual) (box1.get(RNG.randomInt(0, box1.size()-1)));
} else { } else {
resultIndy = (AbstractEAIndividual) (box2.get(RandomNumberGenerator.randomInt(0, box2.size()-1))); resultIndy = (AbstractEAIndividual) (box2.get(RNG.randomInt(0, box2.size()-1)));
} }
} catch (java.lang.IndexOutOfBoundsException e) { } catch (java.lang.IndexOutOfBoundsException e) {
System.out.println("Tournament Selection produced IndexOutOfBoundsException!"); System.out.println("Tournament Selection produced IndexOutOfBoundsException!");
@@ -8,7 +8,7 @@ import eva2.server.go.individuals.AbstractEAIndividual;
import eva2.server.go.operators.archiving.ArchivingNSGAII; import eva2.server.go.operators.archiving.ArchivingNSGAII;
import eva2.server.go.operators.archiving.ArchivingSPEAII; import eva2.server.go.operators.archiving.ArchivingSPEAII;
import eva2.server.go.populations.Population; import eva2.server.go.populations.Population;
import eva2.server.go.tools.RandomNumberGenerator; import wsi.ra.math.RNG;
import wsi.ra.chart2d.DPoint; import wsi.ra.chart2d.DPoint;
/** The SPEA II selection criteria using strength and raw fitness to determine /** The SPEA II selection criteria using strength and raw fitness to determine
Loaded 100 of 135 files, more files were not shown because too many files have changed in this diff. Show more