Computers that `program themselves' has long been an aim of computer
scientists. Recently genetic programming (GP) has started to show its
promise by automatically evolving programs. Indeed in a small number of
problems GP has evolved programs whose performance is similar to or even
slightly better than that of programs written by people. The main thrust
of GP has been to automatically create functions. While these can be of
great use they contain no memory and relatively little work has
addressed automatic creation of program code including stored data. This
issue is the main focus of Genetic Programming, and Data Structures:
Genetic Programming + Data Structures = Automatic Programming!.
This book is motivated by the observation from software engineering that
data abstraction (e.g., via abstract data types) is essential in
programs created by human programmers. This book shows that abstract
data types can be similarly beneficial to the automatic production of
programs using GP.
Genetic Programming and Data Structures: Genetic Programming + Data
Structures = Automatic Programming! shows how abstract data types
(stacks, queues and lists) can be evolved using genetic programming,
demonstrates how GP can evolve general programs which solve the nested
brackets problem, recognises a Dyck context free language, and
implements a simple four function calculator. In these cases, an
appropriate data structure is beneficial compared to simple indexed
memory. This book also includes a survey of GP, with a critical review
of experiments with evolving memory, and reports investigations of real
world electrical network maintenance scheduling problems that
demonstrate that Genetic Algorithms can find low cost viable solutions
to such problems.
Genetic Programming and Data Structures: Genetic Programming + Data
Structures = Automatic Programming! should be of direct interest to
computer scientists doing research on genetic programming, genetic
algorithms, data structures, and artificial intelligence. In addition,
this book will be of interest to practitioners working in all of these
areas and to those interested in automatic programming.