SharpNEAT 2005 Progress Report

 

Progress in 2005 was steady in comparison to the initial breakneck speed of development following project inception back in early 2004, back then a release every two weeks or so was the norm. However some good progress was had in 2005 and this roughly corresponded to items on the 2005 roadmap. The main areas of progress then, were:

1) Restructuring of the framework to support co-evolution experiments. This bascially involved placing a new interface at the center of the evolutionary search - IPopulationEvaluator. Previously this had been INetworkEvaluator and this seriously restricted the types of experiment that could easily be plugged in to the framework. IPopulationEvaluator places the onus on the developer for deciding how the population of genomes should be evaluated, e.g. using a tournament or simply evaluating each genome in turn and in isolation of the other genomes, as was the standard when using the previous version of the framework. SingleFilePopulationEvaluator provided support for all existing INetworkEvaluator based experiments, with minimal effort.

2) The restructuring was follwed by creation of an IPopulationEvaluator based experiment that evolved Tic-Tac-Toe players. A few weeks were spent experimenting with various strategies, with a pareto dominance chain approach being the main focus of attention. This experiment and Tic-Tac-Toe in general remain a focus for experimentation in 2006 as no strong players were found in 2005. In turn Tic-Tac-Toe is to be considered a stepping stone towards work on more complex board games.

3) Physical Travelling Salesperson Problem (PTSP) Experiment. This problem was put forward as a competition for GECCO 2005, and a live online league table provided a focal point for participants. A solution using SharpNEAT was found and a write-up on this site details how this was done and what improvements could be made. GECCO 2006 has two problems that could potentially be tackled with SharpNEAT although time constraints may prevent participation this year due to large scale redevelopment of the framework.

4) WaveGenerator and Function Regression experiments. Technically the wave generator was set up as a function approximation experiment and as such these two experiments were both examining the same problem from different angles. The WaveGenerator experiment in particular was devised as a precursor to financial time series data analysis and prediction experiments, which carry over into the 2006 roadmap. Insights gained from the waveform generator experiment gave more weight to the argument for a large scale redevelopment of the framework to support a wider range of graph based information processing systems - e.g. different types of neural networks or Genetic Progamming graphs.

5) Ricardo J Mendez submitted some changes to the structure of the framework, breaking the experiments into seperate library files. A mechanism for dynamic loading of experiments was also submitted. This work has yet to be released but will be released soon in an update to the old framework, and is also planned to be assimilated into the new framework.

6) New graphs for tracking progress.  These are built using a simple and lean graph control built into SharpNEAT that should provide visualisation for other experiments going forward - specifically financial data analysis. The graph control was also used to provide visualisation of the function regression and wave generator experiments.

7) Update to the speciation threshold adjustment mechanism. This helps smooth out any large changes in the number of species as old species are culled.

8) Other numerous minor bug fixes and improvements. Generally speaking, if you are running your own experiments it is always worth obtaining the latest release as there may be small fixes that have a dramatic impact on certain types of experiment.

In addition a mini-framework for extracting financial data from the web and performing real-time monitoring of London share prices was built (not freely available!). Not strictly NEAT related but building a database of financial data ready for analysis was thought to be important.  Right now this work just keeps me informed about what is going on in the markets, but to date it has certainly paid back the development time spent on it!