pySTEP / News: Recent posts

pySTEP is still ongoing.

Due to my thesis writing, things are a bit slow on the side of pySTEP.
I still intend to adapt it to Python 3k. Unfortunately, there is still no python 3k version available of psyco and numpy.
I wait for these packages to be ported to the latest version to do the modifications.
Tutorial based on real word data coming soon.

Posted by Mehdi Khoury 2010-02-10

pySTEP updated to version 1.20 !

There has been a lot of improvement going on since the first version:

- The Koza Strongly-Typed flavoured build methods have been simplified and optimized (around 10 times faster for a code length reduced by five!)

- It is now possible to use a specific function-terminal sets for each of the children node. And these children node are built in the order they appear in the tree constraints (this feature only existed for ADF in the previous version). This makes pySTEP very competitive and gives it a serious advantage over existing Strongly typed GP packages :) ... read more

Posted by Mehdi Khoury 2009-04-15

pySTEP: what is being worked on at the moment.

Just to give some news of what I have been doing lately with pySTEP.... These features will be integrated in the next release (I think in about 1-1.5 month) in a version 1.5.
- I have just implemented a numpy array version of symbolic regression. That stuff is 10 times faster at least than using a list of data points, and it allowed me to play with evolution with matrices :)
- I have integrated the parameters of the tournament selection in the main function that calls the evolutionary run.
- I am presently working on a journal paper linked to 3D human motion understanding that will make use of pySTEP to generate classifying rules for 3d motion capture data. Once published, the work will be added as a "real-world-research" tutorial example...

Posted by Mehdi Khoury 2009-04-07

Error in tutorial 4 corrected

Just noticed that the example in tutorial 4 was producing trees with 2 children per ADF defining branch !
There should only be one child per ADF defining branch...
To correct that (I have put a corrected version of the package, now a file called
In tutorial4 file I replaced:
treeRules = {'root':[[(2,2,'adf1'),(2,2,'adf2')],[]],
treeRules = {'root':[[(2,1,'adf1'),(2,1,'adf2')],[]],... read more

Posted by Mehdi Khoury 2009-03-31

List of future changes

Several modifications are planned:
- now that a new version of numpy (numeric and matrix calculation package for python) is available for python 2.6, I would like to use it to be able to use matrix calculations when applying arithmetic operators...
- the user must be able to set an order of appearance for the n children nodes for a specific parent node (this future only exist for ADF)
- the user must be able to use a specific function terminal sets for each of these n ordered children node.
- 2 points-crossover must be present.
- simplify calls to the fitness function.
- the user should be able to modify the size of the tournament selection directly in the main function as a parameter (tournament selection is the selection scheme the most used and prized by the GP literature - it also is valid for co-evolution ; so I just use it by default)
- the user should be able to integrate some chosen individual (from a former run for example) into the initial population of a new run. This way, building blocks evolved can be reused.
- a function that goes through the database of the run and produces detailed statistics on each generation+ eventually links to some graph package for some pretty pictures...

Posted by Mehdi Khoury 2009-03-27

stable version of pySTEP submitted

pySTEP 1.00 now available.
No major change in the code. Just documentation adjustment...
Also, decided of one major modification that will be present in the next version:
the user will be able to specify for every node a set of possible children in a specific order (at the moment, order just applies to ADFs nodes).
So, in other words, we should soon be able to specify the following: a function node IF should have 3 different children : one first child would be chosen from specific logical function set and terminal set, a "then" second child should have different function set and terminal set, and a "else" third child should have different function and terminal sets. Order would matter for this parent node when building an individual or during crossover or mutation.

Posted by Mehdi Khoury 2009-03-25

pySTEP user manual available

The first version of the pySTEP user manual is now available with a detailed how-to section :)
Available in the pySTEP website at

Posted by Mehdi Khoury 2009-03-24

pySTEP uploaded today!

A python package done to make strongly typed evolution easy...
Presently functional, running and, as far as I can see, stable.

I still consider it to be beta as I wish to add more tutorials, add extra features for reading the populations from the database, features from the GP litterature such as co-evolution, more fency operators and modify some of the crossover code.

First open-source package submitted ever...
Any advice highly welcomed :)

Posted by Mehdi Khoury 2009-03-19

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:

No, thanks