tag:blogger.com,1999:blog-51256818731846885302024-03-13T03:05:08.226+00:00A Field Guide to Genetic ProgrammingWeb site in support of a freely downloadable, Creative Commons licensed introduction to genetic programmingA Field Guide to Genetic Programminghttp://www.blogger.com/profile/07238470233972875982noreply@blogger.comBlogger27125tag:blogger.com,1999:blog-5125681873184688530.post-66312764609604459122010-07-30T00:06:00.002+01:002010-07-30T00:13:56.579+01:00Just 2 days left: GPEM anniversary issue available for free!The Springer journal Genetic Programming and Evolvable Machines is celebrating its first 10 years with a special anniversary issue of articles reviewing the state of GP and considering some of its possible futures. For the month of July (which ends in two days!) the entire issue is <a href="http://www.springerlink.com/content/h46r77k291rn/">available for free download</a>. <br /><br />Included in the issue are:<br /><ul><li>Human-competitive results produced by genetic programming</li><li>Theoretical results in genetic programming: the next ten years?</li><li>Genetic Programming and Evolvable Machines: ten years of reviews</li><li>Open issues in genetic programming</li><li>Grammar-based genetic programming: a survey</li><li>Developments in Cartesian Genetic Programming: self-modifying CGP</li><li>Bio-inspired artificial intelligence: theory, methods, and technologies</li></ul>Once the month ends these will all start costing money again with two exceptions: the article on human-competitive results and the survey of 10 years of reviews will remain free in perpetuity.<br /><br />In the spirit of full disclosure, Riccardo, Bill, and I are all on the editorial board of the journal and contributed to one or more of the articles. Still, it's a cool resource marking an interesting time in the development of the field, so take advantage of it while you can!Nic McPheehttp://www.blogger.com/profile/09029078148048360140noreply@blogger.com1tag:blogger.com,1999:blog-5125681873184688530.post-69716981353795546882009-09-19T19:04:00.005+01:002009-09-19T19:29:27.249+01:00Thanks for the kind words about the Field Guide<span class="Apple-style-span" style="font-size:medium;">We occasionally have the gratifying experience of stumbling across someone who's said something nice about the Field Guide out there on the Internet. Recently, for example, Bill came across this comment on </span><span class="Apple-style-span" style="font-size:medium;"><a href="http://www.geneticprogramming.us/Further_Reading.html">GeneticProgramming.us</a></span><div><span class="Apple-style-span" style="font-family:Arial, Verdana, sans-serif;"><blockquote><span class="Apple-style-span" style="font-family:georgia;"><span class="Apple-style-span" style="font-size:medium;"><br /> The Field Guide to Genetic Programming was compiled from numerous sources to reflect the current state and practice of Genetic Programming. This book is an invaluable asset to anybody interested in Genetic Programming. I highly recommend it. It is available for free online, but it certainly doesn't hurt to have a hard copy.</span></span></blockquote></span></div><div><span class="Apple-style-span" style="font-family:Arial, Verdana, sans-serif;"><span class="Apple-style-span" style="font-family:Georgia, serif;"><span class="Apple-style-span" style="font-size:medium;">We greatly </span></span><span class="Apple-style-span" style=""><span class="Apple-style-span" style="font-family:georgia;"><span class="Apple-style-span" style="font-size:medium;">appreciate</span></span></span><span class="Apple-style-span" style="font-family:Georgia, serif;"><span class="Apple-style-span" style="font-size:medium;"> this sort of support. It's nice to know that people are finding the Field Guide useful, and are willing to spread the word. Many thanks to everyone who's put a little of their energy into our project.</span></span></span></div><div><span class="Apple-style-span" style="font-size:medium;"><br /></span></div><div><span class="Apple-style-span" style="font-size:medium;">Quite remarkably, the Field Guide continues to sell steadily on Amazon despite being freely available in multiple formats. </span><a href="http://www.amazon.com/Field-Guide-Genetic-Programming/dp/1409200736/ref=sr_1_1?ie=UTF8&s=books&qid=1253383742&sr=8-1"><span class="Apple-style-span" style="font-size:medium;">Our sales rank on Amazon.com</span></a><span class="Apple-style-span" style="font-size:medium;"> is (as of today) #198,789. This may not sound like much, but for a quite specific technical book in an area of computer science most people haven't heard of this is pretty darn excellent! A quick survey of some of the other heavy hitters in the EC book list shows that they're all ranked over 200K, with many </span><i><span class="Apple-style-span" style="font-size:medium;">much</span></i><span class="Apple-style-span" style="font-size:medium;"> higher (like over 500K). That said, </span><a href="http://www.amazon.com/Complexity-Guided-Tour-Melanie-Mitchell/dp/0195124413/ref=pd_sim_b_2"><span class="Apple-style-span" style="font-size:medium;">Melanie Mitchell's new </span></a><i><a href="http://www.amazon.com/Complexity-Guided-Tour-Melanie-Mitchell/dp/0195124413/ref=pd_sim_b_2"><span class="Apple-style-span" style="font-size:medium;">Complexity: A guided tour</span></a></i><span class="Apple-style-span" style="font-size:medium;"> (which is a general audience book) is ranked 2,981, which is a really excellent achievement - congratulations to Melanie!</span></div><div><span class="Apple-style-span" style="font-size:medium;"><br /></span></div><div><span class="Apple-style-span" style="font-size:medium;">If you're a reader of either the PDF or printed version and would like to lend a hand, feel free to leave a short review on something like Amazon - it's definitely appreciated.</span></div>Nic McPheehttp://www.blogger.com/profile/09029078148048360140noreply@blogger.com3tag:blogger.com,1999:blog-5125681873184688530.post-45499587894563885612009-03-27T21:37:00.003+00:002009-03-27T21:56:59.568+00:00Happy Birthday Field Guide!It is hard to believe it's already a year since the launch of the Field Guide to GP. It has been amazing to see it spread. We have had nearly 40,000 views of this web site (see data below), almost exactly 28,000 downloads of the book and we are rapidly approaching the 500 mark with paper copies. I suspect (also judging from the referring sites) that many of these "contacts" have been with people who had never heard of GP before, possibly not even of evolutionary computation. This was one of the targets we had in mind when we decided to write this book and make it freely available. Many colleagues have actually helped us in this, by recommending the book to others, by suggesting it as a textbook for university courses, by mentioning the book in their blogs, etc. We are very grateful to them and to all the visitors of this site and readers of the book. <br /><br />Happy first birthday Field Guide!<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwREXH_0AwUg8t1D_QpIbm2LH2jjpmYt1bi_meyYnx5vr54_A6HuDw4XKWKuGS4xrheZPjHYR0KIKILXbznSB31bsZMjZl7UBxDMXviIpsuFDiVFjRSiIDt8X7FBJ_nHc4iOOtelJyYQ4/s1600-h/field-guide-views-and-visits.png"><img style="cursor: pointer; width: 277px; height: 400px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwREXH_0AwUg8t1D_QpIbm2LH2jjpmYt1bi_meyYnx5vr54_A6HuDw4XKWKuGS4xrheZPjHYR0KIKILXbznSB31bsZMjZl7UBxDMXviIpsuFDiVFjRSiIDt8X7FBJ_nHc4iOOtelJyYQ4/s400/field-guide-views-and-visits.png" alt="" id="BLOGGER_PHOTO_ID_5317986841050771362" border="0" /></a>Riccardo Polihttp://www.blogger.com/profile/06097628710372784261noreply@blogger.com1tag:blogger.com,1999:blog-5125681873184688530.post-11672819489311778622009-02-05T09:21:00.002+00:002009-02-05T09:53:55.387+00:00Google hitsJust for fun, a few days ago I tried searching Google for "genetic programming", and got a whopping half a million hits (533,000 as of this morning).<br /><br />I could not resist trying out "field guide to genetic programming". Last time I had done it, a few months ago, we had something like 3,500 hits, which I thought was wonderful. So, nothing prepared me for this: <span style="font-weight: bold;">47,400 hits</span>!!! (as of this morning) I.e., amazingly, 11.2% of all pages that mention GP also mention the book.<br /><br />I suspect a lot of this is just due to the fact that a few big blogs somehow mentioned the book. One of the latest was a mention of the book in del.icio.us in relation to Roger Alsing's <a href="http://rogeralsing.com/2008/12/07/genetic-programming-evolution-of-mona-lisa/">Evolution of Monna Lisa</a>. (I'm not even sure that is genetic programming, but still a very cool application.)<br /><br />Many thanks!<br /><br />RiccardoRiccardo Polihttp://www.blogger.com/profile/06097628710372784261noreply@blogger.com1tag:blogger.com,1999:blog-5125681873184688530.post-29391418219466552462009-01-19T05:46:00.005+00:002009-01-19T06:01:16.870+00:00Another Bug Fixed in TinyGPMany thanks to Muhammad Atif Azad, who thoroughly analysed <a href="http://cswww.essex.ac.uk/staff/rpoli/TinyGP/">TinyGP.java</a>, the sample GP implementation in one of the appendices of the book, and uncovered another important bug.<br /><br />In the <span style="font-style: italic;">evolve</span> function the following line of code<br /><br /><span style="font-weight: bold;">if ( rd.nextDouble() > CROSSOVER_PROB ) {</span><br /><br />should be<br /><br /> <span style="font-weight: bold;">if ( rd.nextDouble() <</span><span style="font-weight: bold;"> CROSSOVER_PROB ) {</span><br /><span style="font-weight: bold;"><br /></span><span>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).<br /><br />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).<br /><br />The bug has now been fixed in the</span><span style="font-weight: bold;"> <a href="http://cswww.essex.ac.uk/staff/rpoli/TinyGP/">online version of TinyGP.java</a><br /><br />My most sincere apologies to any users of this system.</span>Riccardo Polihttp://www.blogger.com/profile/06097628710372784261noreply@blogger.com0tag:blogger.com,1999:blog-5125681873184688530.post-71696682575838868542008-11-26T04:37:00.003+00:002008-11-26T04:47:47.735+00:00Odyssy 20001The book is sky rocketing. Amazingly, 8 months (to the day!) since its launch, today we passed the 20,000 copies limit (hitting 20001 to the last check, hence the title of this post). Of these approx 98.7% are (genuine) downloads and 1.3% paper copies.<br /><br />Many thanks!A Field Guide to Genetic Programminghttp://www.blogger.com/profile/07238470233972875982noreply@blogger.com1tag:blogger.com,1999:blog-5125681873184688530.post-49749579473494399052008-11-18T09:25:00.004+00:002009-01-19T06:03:33.842+00:00A (potential) bug in TinyGPMany thanks to Muhammad Atif Azad who found a bug in my implementation of the grow method. Quoting from his email:<br /><br /><blockquote><span style="font-style: italic;">The 'grow' function returns -1 if we go past the maximum size limit. Consider the following line of code:</span><br /><br /><code>return( grow( buffer, grow( buffer, pos+1, max,depth-1), max,depth-1 ) );</code><br /><br /><span style="font-style: italic;">Let's say the nested grow returns -1. The outer grow accepts it for 'pos' i.e. index to next location in the tree to grow. There is no check inside the function grow against (pos == -1). Thus, it would raise a run time exception if used.</span><br /><br /><span style="font-style: italic;">The reason it may not have occurred so far may be that we reach the depth constraint earlier than the size limit.</span></blockquote><br />Indeed Atif is right: since by default MAX_LEN is set to 10,000, in order for the bug to occur one needs to use very big initial maximum depths so that individuals with more than 10,000 nodes may be created.<br /><br />The online version of TinyGP (available <a href="http://cswww.essex.ac.uk/staff/rpoli/TinyGP/">here</a>) has a fix for this potential bug.<br /><br />PS: In the original version of TinyGP, the code to perform point mutation replaced terminals with variables. This implied a bias in that random constants were actively removed from the population when mutation was switched on. Atif pointed this out to me recently. The current version of TinyGP does not have this bias.Riccardo Polihttp://www.blogger.com/profile/06097628710372784261noreply@blogger.com0tag:blogger.com,1999:blog-5125681873184688530.post-54421094755719062682008-05-31T07:01:00.002+01:002008-05-31T07:13:00.684+01:0010,000 downloadsYesterday, the field guide reached 10,000 downloads, just over two months from going live, averaging 150 downloads a day. Of course, as the graph at the bottom of the blog shows, many downloads happened in the first few weeks. So, in the last few weeks we seem to be averaging something like 50 downloads a day. Pretty amazing nonetheless! Many thanks!Riccardo Polihttp://www.blogger.com/profile/06097628710372784261noreply@blogger.com0tag:blogger.com,1999:blog-5125681873184688530.post-71234438454690590812008-05-08T12:03:00.004+01:002008-05-08T12:10:54.129+01:00The Field Guide goes HTMLWe have produced an HTML version of the book. This is available <a href="http://cswww.essex.ac.uk/staff/rpoli/gp-field-guide">here</a>. We used <em>htlatex</em> to do the main conversion from Latex to HTML and then <em>htmldoc</em> to split the resulting huge file into chuncks of more reasonable size. Many manual changes have then been necessary. The result is not perfect, but we think it may be good enough to be useful.<br /><br />Happy browsing!A Field Guide to Genetic Programminghttp://www.blogger.com/profile/07238470233972875982noreply@blogger.com2tag:blogger.com,1999:blog-5125681873184688530.post-41940864160385687482008-05-06T12:55:00.003+01:002008-05-06T12:57:00.522+01:00The Field Guide is available on Amazon!Over the weekend the <span style="font-style:italic;">Field Guide</span> apparently completed its complex journey into the land of major on-line retailers and is now <a href="http://www.amazon.com/Field-Guide-Genetic-Programming/dp/1409200736/ref=sr_1_4?ie=UTF8&s=books&qid=1210074541&sr=1-4">available via Amazon</a> and several other on-line vendors.Nic McPheehttp://www.blogger.com/profile/09029078148048360140noreply@blogger.com0tag:blogger.com,1999:blog-5125681873184688530.post-68246654382043653672008-05-06T11:26:00.004+01:002009-01-19T06:04:24.779+00:00Bug in TinyGP Java CodeSander Land found a bug in the constructor "tiny_gp" of the TinyGP system described in appendix B: the "x" array is initialized (lines 345-346) after the population is (line 344), causing invalid fitness evaluations during the initialization of the population, thereby wasting the first generation. The mistakes has been fixed in the code available <a href="http://cswww.essex.ac.uk/staff/rpoli/TinyGP/">here</a>. Many thanks Sander (and apologies to all users).Riccardo Polihttp://www.blogger.com/profile/06097628710372784261noreply@blogger.com2tag:blogger.com,1999:blog-5125681873184688530.post-62121059342922981462008-05-02T09:55:00.002+01:002008-05-02T10:00:43.145+01:00Table of Contents<em>1 Introduction 1</em><br />1.1 Genetic Programming in a Nutshell . . . . . . . . . . . . . . . 2<br />1.2 Getting Started . . . . . . . . . . . . . . . . . . . . . . . . . . 2<br />1.3 Prerequisites . . . . . . . . . . . . . . . . . . . . . . . . . . . 3<br />1.4 Overview of this Field Guide . . . . . . . . . . . . . . . . . . 4<br /><br /><strong>Part I Basics 7<br /></strong><br /><em>2 Representation, Initialisation and Operators in Tree-based GP 9</em><br />2.1 Representation . . . . . . . . . . . . . . . . . . . . . . . . . . 9<br />2.2 Initialising the Population . . . . . . . . . . . . . . . . . . . . 11<br />2.3 Selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14<br />2.4 Recombination and Mutation . . . . . . . . . . . . . . . . . . 15<br /><br /><em>3 Getting Ready to Run Genetic Programming 19</em><br />3.1 Step 1: Terminal Set . . . . . . . . . . . . . . . . . . . . . . . 19<br />3.2 Step 2: Function Set . . . . . . . . . . . . . . . . . . . . . . . 20<br />3.2.1 Closure . . . . . . . . . . . . . . . . . . . . . . . . . . 21<br />3.2.2 Sufficiency . . . . . . . . . . . . . . . . . . . . . . . . . 23<br />3.2.3 Evolving Structures other than Programs . . . . . . . 23<br />3.3 Step 3: Fitness Function . . . . . . . . . . . . . . . . . . . . . 24<br />3.4 Step 4: GP Parameters . . . . . . . . . . . . . . . . . . . . . 26<br />3.5 Step 5: Termination and solution designation . . . . . . . . . 27<br /><br /><em>4 Example Genetic Programming Run 29</em><br />4.1 Preparatory Steps . . . . . . . . . . . . . . . . . . . . . . . . 29<br />4.2 Step-by-Step Sample Run . . . . . . . . . . . . . . . . . . . . 31<br />4.2.1 Initialisation . . . . . . . . . . . . . . . . . . . . . . . 31<br />4.2.2 Fitness Evaluation . . . . . . . . . . . . . . . . . . . . 32<br />4.2.3 Selection, Crossover and Mutation . . . . . . . . . . . 32<br />4.2.4 Termination and Solution Designation . . . . . . . . . 35<br /><br /><strong>Part II Advanced Genetic Programming 37</strong><br /><br /><em>5 Alternative Initialisations and Operators in Tree-based GP 39</em><br />5.1 Constructing the Initial Population . . . . . . . . . . . . . . . 39<br />5.1.1 Uniform Initialisation . . . . . . . . . . . . . . . . . . 40<br />5.1.2 Initialisation may Affect Bloat . . . . . . . . . . . . . 40<br />5.1.3 Seeding . . . . . . . . . . . . . . . . . . . . . . . . . . 41<br />5.2 GP Mutation . . . . . . . . . . . . . . . . . . . . . . . . . . . 42<br />5.2.1 Is Mutation Necessary? . . . . . . . . . . . . . . . . . 42<br />5.2.2 Mutation Cookbook . . . . . . . . . . . . . . . . . . . 42<br />5.3 GP Crossover . . . . . . . . . . . . . . . . . . . . . . . . . . . 44<br />5.4 Other Techniques . . . . . . . . . . . . . . . . . . . . . . . . . 46<br /><br /><em>6 Modular, Grammatical and Developmental Tree-based GP 47</em><br />6.1 Evolving Modular and Hierarchical Structures . . . . . . . . . 47<br />6.1.1 Automatically Defined Functions . . . . . . . . . . . . 48<br />6.1.2 Program Architecture and Architecture-Altering . . . 50<br />6.2 Constraining Structures . . . . . . . . . . . . . . . . . . . . . 51<br />6.2.1 Enforcing Particular Structures . . . . . . . . . . . . . 52<br />6.2.2 Strongly Typed GP . . . . . . . . . . . . . . . . . . . 52<br />6.2.3 Grammar-based Constraints . . . . . . . . . . . . . . . 53<br />6.2.4 Constraints and Bias . . . . . . . . . . . . . . . . . . . 55<br />6.3 Developmental Genetic Programming . . . . . . . . . . . . . 57<br />6.4 Strongly Typed Autoconstructive GP with PushGP . . . . . 59<br /><br /><em>7 Linear and Graph Genetic Programming 61</em><br />7.1 Linear Genetic Programming . . . . . . . . . . . . . . . . . . 61<br />7.1.1 Motivations . . . . . . . . . . . . . . . . . . . . . . . . 61<br />7.1.2 Linear GP Representations . . . . . . . . . . . . . . . 62<br />7.1.3 Linear GP Operators . . . . . . . . . . . . . . . . . . . 64<br />7.2 Graph-Based Genetic Programming . . . . . . . . . . . . . . 65<br />7.2.1 Parallel Distributed GP (PDGP) . . . . . . . . . . . . 65<br />7.2.2 PADO . . . . . . . . . . . . . . . . . . . . . . . . . . . 67<br />7.2.3 Cartesian GP . . . . . . . . . . . . . . . . . . . . . . . 67<br />7.2.4 Evolving Parallel Programs using Indirect Encodings . 68<br /><br /><em>8 Probabilistic Genetic Programming 69</em><br />8.1 Estimation of Distribution Algorithms . . . . . . . . . . . . . 69<br />8.2 Pure EDA GP . . . . . . . . . . . . . . . . . . . . . . . . . . 71<br />8.3 Mixing Grammars and Probabilities . . . . . . . . . . . . . . 74<br /><br /><em>9 Multi-objective Genetic Programming 75</em><br />9.1 Combining Multiple Objectives into a Scalar Fitness Function 75<br />9.2 Keeping the Objectives Separate . . . . . . . . . . . . . . . . 76<br />9.2.1 Multi-objective Bloat and Complexity Control . . . . 77<br />9.2.2 Other Objectives . . . . . . . . . . . . . . . . . . . . . 78<br />9.2.3 Non-Pareto Criteria . . . . . . . . . . . . . . . . . . . 80<br />9.3 Multiple Objectives via Dynamic and Staged Fitness Functions 80<br />9.4 Multi-objective Optimisation via Operator Bias . . . . . . . . 81<br /><br /><em>10 Fast and Distributed Genetic Programming 83</em><br />10.1 Reducing Fitness Evaluations/Increasing their Effectiveness . 83<br />10.2 Reducing Cost of Fitness with Caches . . . . . . . . . . . . . 86<br />10.3 Parallel and Distributed GP are Not Equivalent . . . . . . . . 88<br />10.4 Running GP on Parallel Hardware . . . . . . . . . . . . . . . 89<br />10.4.1 Masterslave GP . . . . . . . . . . . . . . . . . . . . . 89<br />10.4.2 GP Running on GPUs . . . . . . . . . . . . . . . . . . 90<br />10.4.3 GP on FPGAs . . . . . . . . . . . . . . . . . . . . . . 92<br />10.4.4 Sub-machine-code GP . . . . . . . . . . . . . . . . . . 93<br />10.5 Geographically Distributed GP . . . . . . . . . . . . . . . . . 93<br /><br /><em>11 GP Theory and its Applications 97</em><br />11.1 Mathematical Models . . . . . . . . . . . . . . . . . . . . . . 98<br />11.2 Search Spaces . . . . . . . . . . . . . . . . . . . . . . . . . . . 99<br />11.3 Bloat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101<br />11.3.1 Bloat in Theory . . . . . . . . . . . . . . . . . . . . . 101<br />11.3.2 Bloat Control in Practice . . . . . . . . . . . . . . . . 104<br /><br /><strong>Part III Practical Genetic Programming 109</strong><br /><br /><em>12 Applications 111</em><br />12.1 Where GP has Done Well . . . . . . . . . . . . . . . . . . . . 111<br />12.2 Curve Fitting, Data Modelling and Symbolic Regression . . . 113<br />12.3 Human Competitive Results the Humies . . . . . . . . . . . 117<br />12.4 Image and Signal Processing . . . . . . . . . . . . . . . . . . . 121<br />12.5 Financial Trading, Time Series, and Economic Modelling . . 123<br />12.6 Industrial Process Control . . . . . . . . . . . . . . . . . . . . 124<br />12.7 Medicine, Biology and Bioinformatics . . . . . . . . . . . . . 125<br />12.8 GP to Create Searchers and Solvers Hyper-heuristics . . . . 126<br />12.9 Entertainment and Computer Games . . . . . . . . . . . . . . 127<br />12.10The Arts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127<br />12.11Compression . . . . . . . . . . . . . . . . . . . . . . . . . . . 128<br /><br /><em>13 Troubleshooting GP 131<br /></em>13.1 Is there a Bug in the Code? . . . . . . . . . . . . . . . . . . . 131<br />13.2 Can you Trust your Results? . . . . . . . . . . . . . . . . . . 132<br />13.3 There are No Silver Bullets . . . . . . . . . . . . . . . . . . . 132<br />13.4 Small Changes can have Big Effects . . . . . . . . . . . . . . 133<br />13.5 Big Changes can have No Effect . . . . . . . . . . . . . . . . 133<br />13.6 Study your Populations . . . . . . . . . . . . . . . . . . . . . 134<br />13.7 Encourage Diversity . . . . . . . . . . . . . . . . . . . . . . . 136<br />13.8 Embrace Approximation . . . . . . . . . . . . . . . . . . . . . 137<br />13.9 Control Bloat . . . . . . . . . . . . . . . . . . . . . . . . . . . 139<br />13.10Checkpoint Results . . . . . . . . . . . . . . . . . . . . . . . . 139<br />13.11Report Well . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139<br />13.12Convince your Customers . . . . . . . . . . . . . . . . . . . . 140<br /><br /><em>14 Conclusions 141</em><br /><br /><strong>Part IV Tricks of the Trade 143</strong><br /><br /><em>A Resources 145</em><br />A.1 Key Books . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146<br />A.2 Key Journals . . . . . . . . . . . . . . . . . . . . . . . . . . . 147<br />A.3 Key International Meetings . . . . . . . . . . . . . . . . . . . 147<br />A.4 GP Implementations . . . . . . . . . . . . . . . . . . . . . . . 147<br />A.5 On-Line Resources . . . . . . . . . . . . . . . . . . . . . . . . 148<br /><br /><em>B TinyGP 151</em><br />B.1 Overview of TinyGP . . . . . . . . . . . . . . . . . . . . . . . 151<br />B.2 Input Data Files for TinyGP . . . . . . . . . . . . . . . . . . 153<br />B.3 Source Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154<br />B.4 Compiling and Running TinyGP . . . . . . . . . . . . . . . . 162<br /><br /><em>Bibliography 167</em><br /><br /><em>Index 225</em>A Field Guide to Genetic Programminghttp://www.blogger.com/profile/07238470233972875982noreply@blogger.comtag:blogger.com,1999:blog-5125681873184688530.post-80536089550019891242008-04-27T21:35:00.004+01:002008-04-28T09:26:47.552+01:008,000 downloads reached during the weekendWithin just over a month since its launch, the book has been downloaded over 8,000 times!<br />Many thanks!Riccardo Polihttp://www.blogger.com/profile/06097628710372784261noreply@blogger.com0tag:blogger.com,1999:blog-5125681873184688530.post-88156994316105856562008-04-17T12:38:00.002+01:002008-04-17T13:03:28.595+01:00The Field Guide appears in ACM's Technews, reddit, numerous blogsSome recent <span style="font-style:italic;">Field Guide</span> sightings include a nice mention in <a href="http://technews.acm.org/archives.cfm?fo=2008-04-apr/apr-14-2008.html#357685">ACM's Technews roundup for 14 Apr 2008</a> and a listing by some kind (and unknown, to us) folks on reddit (<a href="http://reddit.com/info/6ezay/comments/">here</a> and <a href="http://reddit.com/info/6frhu/comments/">there</a>).<br /><br />Other recent bloggers to mention the book include<br /><ul><br /> <li><a href="http://blog.postmaster.gr/2008/04/04/a-field-guide-to-genetic-programming/">Postmaster</a></li><br /> <li><a href="http://biscottidanesi.blogspot.com/2008/04/free-book-and-material-about-genetic.html">Andrea Valente on Biscotti Danesi</a></li><br /> <li><a href="http://blog.uncommons.org/2008/04/07/free-genetic-programming-book/">Dan</a> (the author of the <a href="https://watchmaker.dev.java.net/">Watchmaker Framework for EC</a>)</li><br /> <li><a href="http://blojj.blogalia.com/historias/56793">JJ Merelo</a> (who says that we were on the del.icio.us hotlist on 12 Apr!)</li><br /> <li><a href="http://thekit.livejournal.com/808182.html">theKit</a> (who suggests using GP to evolve 3D designs using <a href="http://reprap.org/bin/view/Main/WebHome">RepRap</a>, an Open Source Replicating Rapid Prototyping 3d printer)</li><br /> <li>The <a href="http://www.mabuse.de/blog/2008/04/on_genetic_programming.html">Mad Scientist</a></li><br /></ul><br /><br />Thanks to everyone for the links and support. To date (about 3 weeks since release) there have been 6873 downloads of the book! Questions and comments always welcome in the comments here, or over in <a href="http://groups.google.co.uk/group/field-guide-to-genetic-programming">our discussion group</a>.Nic McPheehttp://www.blogger.com/profile/09029078148048360140noreply@blogger.com0tag:blogger.com,1999:blog-5125681873184688530.post-73136948715567647582008-04-12T12:57:00.003+01:002008-04-12T13:08:39.103+01:00Over 5,000 downloads!Man, I go away for a few days of vacation, and the downloads more than double! We're now at just over 5,000 downloads of the book, and 12 more printed copies were ordered in the last five days as well.<br /><br />Just as I was leaving, Jennifer Willies also posted <a href="http://web.mac.com/evostar/Site_2/Photos.html">a ton of good photos from the EvoStar event</a>, including <a href="http://web.mac.com/evostar/Site_2/Photos.html#20">a nice shot of the three Field Guide authors and our cover artist</a>.Nic McPheehttp://www.blogger.com/profile/09029078148048360140noreply@blogger.com0tag:blogger.com,1999:blog-5125681873184688530.post-12894290237395897872008-04-06T13:36:00.006+01:002008-04-12T12:48:33.132+01:00More photos from the Field Guide unveiling<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRqDhbjHc3qYS-X6vvltbtBMig3Gtq0WHlqxtm8i9E-3VpiWoD8wi6FbQGqYHsCXGup844In158HmzDNtfxu76CTaZZiPhEZzH_llzWOpSph3N4zATbW9sojv3N5UNKjH4Xr3zDI_ns_4/s1600-h/FieldGuidePose.jpeg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRqDhbjHc3qYS-X6vvltbtBMig3Gtq0WHlqxtm8i9E-3VpiWoD8wi6FbQGqYHsCXGup844In158HmzDNtfxu76CTaZZiPhEZzH_llzWOpSph3N4zATbW9sojv3N5UNKjH4Xr3zDI_ns_4/s320/FieldGuidePose.jpeg" border="0" alt=""id="BLOGGER_PHOTO_ID_5186164755414927874" /></a><br />Antje Schwefel shared some of her photos from EuroGP, including the shot above of us (Bill, Tyler, Nic, and Riccardo, left to right) posing in our <span style="font-style:italic;">Field Guide</span> shirts with Evelyne Lutton. Thanks to Antje for the photo!<br /><br />The <a href="http://evostar.iti.upv.es/">EvoStar 2008 site</a> also has a link now for EvoStar photos that is in fact a pointer to <a href="http://www.flickr.com/photos/tags/evostar">the "evostar" tag on Flickr</a>. These are currently dominated by the previously mentioned photos from <a href="http://www.flickr.com/photos/atalaya/sets/72157604298010020/">JJ Merelo</a>, and <a href="http://www.flickr.com/photos/nics_events/sets/72157604298456990/">Tyler and myself</a>, but there are also some nice photos from <a href="http://www.flickr.com/photos/61761673@N00/">La Singularidad Desnuda</a>, including the nice example of Riccardo's autographing handiwork below.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.flickr.com/photos/61761673@N00/2374118084/"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px;" src="http://farm3.static.flickr.com/2399/2374118084_c2ca94db04_m.jpg" border="0" alt="" /></a><br /><br />2,151 downloads and counting!Nic McPheehttp://www.blogger.com/profile/09029078148048360140noreply@blogger.com0tag:blogger.com,1999:blog-5125681873184688530.post-7147968100954780932008-04-05T08:39:00.001+01:002008-04-05T08:40:32.333+01:00Over 2,000 downloads!The PDF version of the Field Guide has now been downloaded 2,049 times from Lulu. Many thanks to everyone who's helped support the book!Nic McPheehttp://www.blogger.com/profile/09029078148048360140noreply@blogger.com0tag:blogger.com,1999:blog-5125681873184688530.post-40065228135811695612008-04-03T14:54:00.002+01:002008-04-03T15:00:48.203+01:00We've created a mailing list/discussion group for the Field GuideThere have now been over 1,800 downloads of the <span style="font-style: italic;">Field Guide</span>, and we're beginning to get some good questions, comments, and suggestions from readers. It seemed like we probably wanted to set up some sort of system to help manage and archive that data stream, so we've created a discussion group for the <span style="font-style: italic;">Field Guide</span>: <a href="http://groups.google.co.uk/group/field-guide-to-genetic-programming">http://groups.google.co.uk/group/field-guide-to-genetic-programming</a>.<br /><br />Feel free to subscribe if you've got feedback on the book that you'd like to share, or you'd just like to see other people's feedback. I would assume that the traffic on the list will remain light, but that's really up to you folks.<br /><br /><hr/><table style="padding: 5px; background-color: rgb(255, 255, 255);" border="0" cellspacing="0"><br /> <tbody><tr><td><br /> <img src="http://groups.google.co.uk/groups/img/3nb/groups_bar.gif" alt="Google Groups" height="26" width="132" /><br /> </td></tr><br /> <tr><td style="padding-left: 5px;"> <b>Subscribe to Field Guide to Genetic Programming</b> </td></tr><br /> <form action="http://groups.google.co.uk/group/field-guide-to-genetic-programming/boxsubscribe"><br /> <tr><td style="padding-left: 5px;"> Email: <input name="email" type="text"><br /> <input name="sub" value="Subscribe" type="submit"><br /><br /></td></tr><br /></form><br /><tr><td align="right"> <a href="http://groups.google.co.uk/group/field-guide-to-genetic-programming">Visit this group</a> </td></tr><br /></tbody></table>Nic McPheehttp://www.blogger.com/profile/09029078148048360140noreply@blogger.com0tag:blogger.com,1999:blog-5125681873184688530.post-68494429744378701742008-04-01T15:11:00.003+01:002008-04-01T16:18:27.493+01:00Over 1,500 downloads!<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://flickr.com/photos/nics_events/2379570169/"><img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 200px;" src="http://farm3.static.flickr.com/2364/2379570169_091daa3789_m_d.jpg" alt="" border="0" /></a>As of mid-day on Tuesday (so just under a week after the official release), we've just topped 1,500 downloads of the <span style="font-style: italic;">Field Guide</span>! We've also sold 20 printed copies, plus the 50 we sold at the EvoStar unveiling.<br /><br />J.K. Rowling doesn't have much to worry about yet on the best seller lists, but we're still quite excited by the number of people that have chosen to download the book - thanks!Nic McPheehttp://www.blogger.com/profile/09029078148048360140noreply@blogger.com0tag:blogger.com,1999:blog-5125681873184688530.post-79164050184985473502008-04-01T14:29:00.006+01:002008-04-01T15:43:22.373+01:00Field Guide sightings!<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://flickr.com/photos/atalaya/2371900374/in/set-72157604298010020"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px;" src="http://farm3.static.flickr.com/2279/2371900374_5a2d736bff.jpg" alt="" border="0" /></a><br />Several kind folks have put in a plug for the <span style="font-style: italic;">Field Guide</span> on-line:<br /><ul><li>Paul Myers on the prominent biology blog <a href="http://scienceblogs.com/pharyngula/2008/03/gp_for_the_masses.php">Pharyngula</a></li><li>On <a href="http://paulusdeblogkabouter.blogspot.com/2008/03/this-i-want-to-read.html">Paulus De Blogkabouter</a><br /></li><li>Paul Wiegand on the <a href="http://nccslab.eecs.ucf.edu/index.php/2008/03/31/new-gp-book-available-on-line-for-free/">Natural Computation and Coadaptive System Laboratory blog</a></li><li>Pier Luca Lanzi on the <a href="http://www.illigal.uiuc.edu/web/blog/2008/03/31/free-book-a-field-guide-to-genetic-programming/">Illinois GA Lab blog</a></li></ul>Many thanks to all these folks for helping spread the word. Given our non-standard publishing and distribution model, we're particularly dependent on this sort of word of mouth support. Feel free to let us know if you've posted a plug for the book (in the comments or authors AT gp-field-guide DOT org DOT uk).<br /><br />We're also looking for photos (like the one above from <a href="http://flickr.com/photos/atalaya/sets/72157604298010020/">JJ Merelo</a>) from the grand unveiling at EvoStar/EuroGP Wednesday in Naples, so please pass along those as well.Nic McPheehttp://www.blogger.com/profile/09029078148048360140noreply@blogger.com2tag:blogger.com,1999:blog-5125681873184688530.post-20220412713268131512008-03-31T02:56:00.011+01:002008-03-31T03:28:43.554+01:00Photos from the grand unveiling<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://flickr.com/photos/nics_events/2371670720/in/set-72157604298456990"><img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 200px;" src="http://farm3.static.flickr.com/2015/2371670720_05ea656a9a_m.jpg" border="0" alt="" /></a><br />Tyler Hutchison (the <span style="font-style:italic;">Field Guide</span>'s cover artist) and I have uploaded <a href="http://flickr.com/photos/nics_events/sets/72157604298456990/">all our EuroGP/EvoStar 2008 photos to Flickr</a>. This includes several shots by Tyler of the grand unveiling of the <em>Field Guide</em>, including this photo of Bill and Wolfgang Banzhaf discussing the book. We also have photos from other EvoStar events such as <a href="http://flickr.com/photos/nics_events/2371759314/in/set-72157604298456990/">Bill receiving his EvoStar award</a>, and shots around the city of Naples. <a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://flickr.com/photos/nics_events/2370992577/in/set-72157604298456990"><img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 200px;" src="http://farm3.static.flickr.com/2358/2370992577_40e9c2820f_m.jpg" border="0" alt="" /></a><br /><br />This initial upload is without any cleaning or editing, so there's a fair amount of repetition, etc., but hopefully some folks will find it useful.<br /><br />I know of one other batch of EvoStar photos that has already been uploaded: JJ Merelo has <a href="http://flickr.com/photos/atalaya/sets/72157604298010020/">a nice EvoStar set on Flickr</a>, and a slightly larger set that includes <a href="http://flickr.com/photos/atalaya/sets/72157604303708245/">his sightseeing around Naples</a>. If you have any photos from any part of the EvoStar event that you'd be willing to share, feel free to post a link in a comment here, or send us an e-mail at "authors AT gp-field-guide DOT uk DOT org". Being the vain creatures that we are, we're of course especially interested in photos of the book release and autographing :-), but any photos from the event are super cool!Nic McPheehttp://www.blogger.com/profile/09029078148048360140noreply@blogger.com1tag:blogger.com,1999:blog-5125681873184688530.post-3047250160783546642008-03-30T23:00:00.002+01:002008-03-30T23:04:28.614+01:00A huge thanks to all our proofreaders!It takes a village to raise a book, and we were extremely fortunate to have an enthusiastic and talented pool of proofreaders. They went through the <em>Field Guide</em>, helping us finding the inevitable typos, and pointing out places where our presentation didn't sparkle quite as much as we thought it did. We spent almost all of the last week before we wrapped the book simply processing their many comments. While I'm sure we didn't address <em>every</em> one of their suggestions, there were hundreds of changes made based on that feedback, and there's no question that the book is better for their hard work and generous efforts.<br /><p>To quote from the acknowledgements:<br /></p><blockquote><br /> We had the invaluable assistance of many people, and we are very grateful for their individual and collective efforts, often on very short timelines. Rick Riolo, Matthew Walker, Christian Gagne, Bob McKay, Giovanni Pazienza, and Lee Spector all provided useful suggestions based on an early technical report version. Yossi Borenstein, Caterina Cinel, Ellery Crane, Cecilia Di Chio, Stephen Dignum, Edgar Galván-López, Keisha Harriott, David Hunter, Lonny Johnson, Ahmed Kattan, Robert Keller, Andy Korth, Yevgeniya Kovalchuk, Simon Lucas, Wayne Manselle, Alberto Moraglio, Oliver Oechsle, Francisco Sepulveda, Elias Tawil, Edward Tsang, William Tozier and Christian Wagner all contributed to the final proofreading festival. Their sharp eyes and hard work did much to make the book better; any remaining errors or omissions are obviously the sole responsibility of the authors.<br /></blockquote><br /><p><br />Thanks again to everyone who helped us get the book out the door!Nic McPheehttp://www.blogger.com/profile/09029078148048360140noreply@blogger.com0tag:blogger.com,1999:blog-5125681873184688530.post-12136923540166114672008-03-29T11:57:00.007+00:002008-03-29T12:24:08.335+00:00Bill Langdon receives prestigious EvoStar award!On Thursday night at the EvoStar banquet in Naples, <a href="http://www.cs.ucl.ac.uk/staff/W.Langdon/">Bill Langdon</a> (along with <a href="http://www.lri.fr/%7Emarc/">Marc Schoenauer</a>) were the fourth and fifth recipients of the prestigious EvoStar award for Outstanding Contributions to the field of Evolutionary Computation in Europe. This is in recognition of his <span style="font-style: italic;">numerous</span> contributions in such areas as the planning and running of conferences and workshops, editing of journals and proceedings, and creation and management of key resources such as the GP Bibliography.<br /><br />The previous recipients of the award include <span style="font-style: italic;">Field Guide</span> author <a href="http://cswww.essex.ac.uk/staff/rpoli">Riccardo Poli</a>, as well as Jennifer Willies (the indefatigable admin that makes EvoStar happen year after year) and <a href="http://www.cs.mun.ca/%7Ebanzhaf/">Wolfgang Banzhaf</a>.<br /><br />Congratulations to Bill - well done and well deserved! I'll shortly be posting photos of Bill receiving his award.Nic McPheehttp://www.blogger.com/profile/09029078148048360140noreply@blogger.com0tag:blogger.com,1999:blog-5125681873184688530.post-66480289086768085632008-03-27T13:06:00.004+00:002008-03-27T13:18:40.506+00:00One heck of a party!<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.flickr.com/photos/nics_events/2352238776/"><img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 170px;" src="http://farm4.static.flickr.com/3288/2352238776_8514dc67a9_m_d.jpg" border="0" alt="" /></a><br />Last night's unveiling of <em>A Field Guide to Genetic Programming</em> was a <em>huge</em> success! We had one of the poster "stalls" with 50 copies of the book that we'd <a href="http://www.lulu.com/content/2167025">purchased from Lulu</a> as our initial "print run". We were wearing cool t-shirts sporting that wonderful cover, had the nice poster shown to the right, and even had spiffy postcards with the cover to give away.<br /><p><br />The book was a big hit with the <a href="http://evostar.iti.upv.es/">Evo* crowd</a>, and we sold out the full set of 50 pretty quickly. Lots of folks had us autograph their copies, many of which are now destined to be collector's items with the signatures of all three of the authors. Some even have the signature of <a href="http://tylersaurus.com/">Tyler Hutchison</a>, who did the nifty cover art for us and helped a lot with the roll-out.<br /><p><br />There were <em>tons</em> of photos taken at our booth, including candids of us signing and working the crowd, and posed shots with our cool Field Guide shirts. People have promised to send us photos and links, so check back in the next week or two for some of the finest in EC book release amateur photojournalism! (And if you've got a photo from the event, or a nifty shot of your copy in its place of pride on your bookshelves, please pass it along.)<br /><p><br />As mentioned before, the book is now officially released and <a href="http://www.lulu.com/content/2167025">available to any and all via lulu.com</a>, both in an inexpensive printed form (what we were selling last night) and as a free downloadable PDF.<br /><p><br />So go check it out - 50 whole Field Guide fans can't be wrong!Nic McPheehttp://www.blogger.com/profile/09029078148048360140noreply@blogger.com0tag:blogger.com,1999:blog-5125681873184688530.post-17003028735305880502008-03-26T17:06:00.001+00:002008-03-26T17:08:09.225+00:00The book is now available!The grand unveiling is going on as I type here at EuroGP 2008 in Naples. Head over to <a href="http://www.lulu.com/content/2167025">Lulu.com</a> to purchase an inexpensive printed copy or download the free PDF version!Nic McPheehttp://www.blogger.com/profile/09029078148048360140noreply@blogger.com0