Software Applications
GeneXproTools 5.0 GeneXproTools is a software package
for different types of data modeling. It's an application not only
for specialists in any field but also for everyone, as no knowledge
of statistics, mathematics, machine learning or programming is
necessary. GeneXproTools modeling frameworks include Function
Finding (Nonlinear Regression), Classification, Logistic
Regression, Time Series Prediction and Logic Synthesis.
And if you're only interested in learning about Gene Expression
Programming in particular and Evolutionary Computation in general,
GeneXproTools is also the right tool because the
Demo is free and
fully functional for a wide set of well-known real-world problems.
Indeed, GeneXproTools lets you experiment with a lot of settings and
see immediately how a particular setting affects evolution. For
example, you can change the population size, the genetic operators,
the fitness function, the chromosome architecture (program size,
number of genes and linking function), the function set (about 300
built-in functions to choose from), the learning algorithm, the
random numerical constants, the type of rounding threshold, experiment with
parsimony pressure and variable pressure, explore different modeling platforms, change the
model structure, simplify the evolved models, explore neutrality by
adding neutral genes, create your own fitness functions, design your
own mathematical/logical functions and then evolve models with them,
and even create your own grammars to generate code automatically
from GEP code in your favorite programming languages, and so
on.
Open Source Libraries
GEP4J GEP for Java Project.
Launched September 2010 by Jason Thomas, the GEP4J project is an open-source implementation of Gene Expression Programming in Java. From the project summary:
"This project is in the early phases, but you can already do useful things such as evolving decision trees (nominal, numeric, or mixed attributes) with ADF's (automatically defined functions), and evolve functions." GEP4J is available from Google Project Hosting:
https://code.google.com/p/gep4j/.
PyGEP Gene Expression Programming for Python.
PyGEP is maintained by
Ryan O'Neil, a graduate student from George Mason University. In his
words, "PyGEP is a simple library suitable for academic study of
Gene Expression Programming in Python 2.5, aiming for ease of use
and rapid implementation. It provides standard multigenic
chromosomes; a population class using elitism and fitness scaling
for selection; mutation, crossover and transposition operators; and
some standard GEP functions and linkers." PyGEP is hosted at
https://code.google.com/p/pygep/.
JGEP Java GEP toolkit.
Matthew Sottile released into the open source community a Java Gene Expression Programming toolkit. In his words, "My hope is that this toolkit can be used to rapidly build prototype codes that use GEP, which can then be written in a language such as C or Fortran for real speed. I decided to release it as an open source project to hopefully get others interested in contributing code and improving things." jGEP is hosted at Sourceforge:
https://sourceforge.net/projects/jgep/.
|
Executables
All the executables from the
Suite of Problems. The files aren't compressed and can be run from the command prompt without parameters.
(These executables are old and have only historical interest, as they
were created to show what Gene Expression Programming could do before
the publication of the algorithm.)
Symbolic regression with x4+x3+x2+x x4x3x2x-01.exe+> Sequence induction with 5j4+4j3+3j2+2j+1 SeqInd-01.exe+> Pythagorean theorem Pyth-01.exe+> Block stacking Stacking-01.exe+> Boolean 6-multiplexer Multiplexer6-01.exe+> Boolean 11-multiplexer Multiplexer11-01.exe+> GP rule GP_rule-01.exe+> Symbolic regression with complete evolutionary history SymbRegHistory.exe+> Sequence induction with complete evolutionary history SeqIndHistory.exe+>
The versions with the complete evolutionary history write the chromosomes of all the individuals of all populations of a run. The remaining programs write the expression tree of the first discovered solution to a file and ask if you want to evaluate the success rate over 100 identical runs.
An example of such an output for the symbolic regression problem would be:
Number of runs: 100
Number of generations: 50
Population size: 30
Absolute error: 0.01
Maximum fitness: 1000
Fitness cases:
terminal a f(a)
2.81 95.2425
6 1554
7.043 2866.55
8 4680
10 11110
11.38 18386
12 22620
14 41370
15 54240
20 168420
Function and terminal set:
* + - / a
Your solution with maximum fitness 1000:
Expression Tree:
+
++
//*-
*+-*+a*-
*+aa//aa*/**aa
aaaaaaaaaaaaaaaa
Success rate: 0.99
|
Subscribe to the GEP Mailing List
***
|