Many thanks to Muhammad Atif Azad, who thoroughly analysed TinyGP.java, the sample GP implementation in one of the appendices of the book, and uncovered another important bug.
In the evolve function the following line of code
if ( rd.nextDouble() > CROSSOVER_PROB ) {
should be
if ( rd.nextDouble() < CROSSOVER_PROB ) {
This bug does not crash the system, but it means that the parameter CROSSOVER_PROB is interpreted as the mutation probability rather than the crossover probability (its intended purpose).
We had found and cured this bug some years ago in the C version of TinyGP, but it somehow made it into the Java version (probably because I did the conversion before the bug had been found).
The bug has now been fixed in the online version of TinyGP.java
My most sincere apologies to any users of this system.
About the book

The book is freely downloadable under a Creative Commons license as a PDF and low cost printed copies can be purchased from lulu.com. This web site will be used for information relating to the book, and other pertinent announcements. We also have a discussion group for questions and conversation related to the book.
Monday, 19 January 2009
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment