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:

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

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:



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

Sequence induction with 5j4+4j3+3j2+2j+1

Pythagorean theorem

Block stacking

Boolean 6-multiplexer

Boolean 11-multiplexer

GP rule

Symbolic regression with complete evolutionary history

Sequence induction with complete evolutionary history


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: 

Success rate: 0.99

Subscribe to the GEP Mailing List


Last update: 23/July/2013
Candida Ferreira
All rights reserved.