Genetic Programming and Data Structures
[book]
W. B. Langdon
1998
This thesis investigates the evolution and use of abstract data types within Genetic Programming (GP). In genetic programming the principles of natural evolution ( tness based selection and recombination) acts on program code to automatically generate computer programs. The research i n t h i s t h e s i s i s m o t i v ated by the observation from software engineering that data abstraction (e.g. via abstract data types) is essential in programs created by h uman programmers. We i n vestigate
more »
... ether abstract data types can be similarly bene cial to the automatic production of programs using GP. GP can automatically \evolve" programs which solve non-trivial problems but few experiments have been reported where the evolved programs explicitly manipulate memory and yet memory is an essential component of most computer programs. So far work on evolving programs that explicitly use memory has principally used either problem speci c memory models or a simple indexed memory model consisting of a single global shared array. Whilst the latter is potentially su cient to allow any computation to evolve, it is unstructured and allows complex interaction between parts of programs which w eaken their modularity. In software engineering this is addressed by controlled use of memory using scoping rules and abstract data types, such a s s t a c ks, queues and les. This thesis makes ve main contributions: (1) Proving that abstract data types (stacks, queues and lists) can beevolved using genetic programming. (2) Demonstrating GP can evolve general programs which recognise a Dyck context free language, evaluate Reverse Polish expressions and GP with an appropriate memory structure can solve the nested brackets problem which had previously been solved using a hybrid GP. (3) In these three cases (Dyck, expression evaluation and nested brackets) an appropriate data structure is proved to bebene cial compared to indexed memory. (4) Investigations of real world electrical network maintenance scheduling problems demonstrate that Genetic Algorithms can nd low cost viable solutions to such problems. (5) A taxonomy of GP is presented, including a critical review of experiments with evolving memory. These contributions support our thesis that data abstraction can be bene cial to automatic program generation via arti cial evolution. 3 4 I w ould like to thank my supervisors (M. Levene and P. C . T releaven), Tom Westerdale, and Mauro Manela for their critisims and ideas UCL Computer Science department for not minding too much me using their machines and Andy Singleton for the initial version of GP-QUICK on which m uch o f m y c o d e w as implemented. My thanks to John Macqueen and Maurice Dunnett who introduced me to the NGC maintenance planning problem. Mike Calviou, Ursula Bryan, Daniel Waterhouse, Arthur Ekwue and Helen Cappocci for much practical assistance such as tness functions, installing SDRS2, fast DC load ow code and reviewing various draft papers (often to unreasonably short deadlines). To Laura Dekker for assistance with setting up QGAME. Lee Altenberg (of University o f H a wai'i) for directing me to the work of George Price (of UCL) and helpful comments and suggestions on this work. I would like to thank the following various anonymous reviewers who all helped me by reviewing my work and making suggestions for its improvement and supplying references to existing work. I w ould like to thank Julia Schnabel for reading and constructively criticising the many drafts of this thesis. And thanks to Dave L a wrence (of Digital Equipment Corp.) for inspiring conversation in Richard Head's (Houston). 5 6 8 Conclusions 225 8.
doi:10.1007/978-1-4615-5731-9
fatcat:yskzadfu3nchnjq5e44skb24ke