Evolving Data Structures Using Genetic Programming
W. Langdon. Genetic Algorithms: Proceedings of the Sixth
International Conference (ICGA95), page 295--302. Pittsburgh, PA, USA, Morgan Kaufmann, (15-19 July 1995)
Abstract
Genetic programming (GP) is a subclass of genetic
algorithms (GAs), in which evolving programs are
directly represented in the chromosome as trees.
Recently it has been shown that programs which
explicitly use directly addressable memory can be
generated using GP.
It is established good software engineering practice to
ensure that programs use memory via abstract data
structures such as stacks, queues and lists. These
provide an interface between the program and memory,
freeing the program of memory management details which
are left to the data structures to implement. The main
result presented herein is that GP can automatically
generate stacks and queues. Typically abstract data
structures support multiple operations, such as put and
get. We show that GP can simultaneously evolve all the
operations of a data structure by implementing each
such operation with its own independent program tree.
That is, the chromosome consists of a fixed number of
independent program trees. Moreover, crossover only
mixes genetic material of program trees that implement
the same operation. Program trees interact with each
other only via shared memory and shared ``Automatically
Defined Functions'' (ADFs).
ADFs, ``pass by reference'' when calling them, Pareto
selection, ``good software engineering practice'' and
partitioning the genetic population into ``demes''
where also investigated whilst evolving the queue in
order to improve the GP solutions.
%0 Conference Paper
%1 Langdon:1995:GPdata
%A Langdon, W. B.
%B Genetic Algorithms: Proceedings of the Sixth
International Conference (ICGA95)
%C Pittsburgh, PA, USA
%D 1995
%E Eshelman, L.
%I Morgan Kaufmann
%K (ADF), (FIFO) Artificial Automatic Automatically Data Defined Demes Evolution, First-in Functions Learning, Machine Object Oriented Pareto Programming, Push Queue, Stack, Structures, algorithms, down first-out fitness, genetic programming,
%P 295--302
%T Evolving Data Structures Using Genetic Programming
%U http://www.cs.ucl.ac.uk/staff/W.Langdon/ftp/papers/GPdata_icga-95.ps
%X Genetic programming (GP) is a subclass of genetic
algorithms (GAs), in which evolving programs are
directly represented in the chromosome as trees.
Recently it has been shown that programs which
explicitly use directly addressable memory can be
generated using GP.
It is established good software engineering practice to
ensure that programs use memory via abstract data
structures such as stacks, queues and lists. These
provide an interface between the program and memory,
freeing the program of memory management details which
are left to the data structures to implement. The main
result presented herein is that GP can automatically
generate stacks and queues. Typically abstract data
structures support multiple operations, such as put and
get. We show that GP can simultaneously evolve all the
operations of a data structure by implementing each
such operation with its own independent program tree.
That is, the chromosome consists of a fixed number of
independent program trees. Moreover, crossover only
mixes genetic material of program trees that implement
the same operation. Program trees interact with each
other only via shared memory and shared ``Automatically
Defined Functions'' (ADFs).
ADFs, ``pass by reference'' when calling them, Pareto
selection, ``good software engineering practice'' and
partitioning the genetic population into ``demes''
where also investigated whilst evolving the queue in
order to improve the GP solutions.
%@ 1-55860-370-0
@inproceedings{Langdon:1995:GPdata,
abstract = {Genetic programming (GP) is a subclass of genetic
algorithms (GAs), in which evolving programs are
directly represented in the chromosome as trees.
Recently it has been shown that programs which
explicitly use directly addressable memory can be
generated using GP.
It is established good software engineering practice to
ensure that programs use memory via abstract data
structures such as stacks, queues and lists. These
provide an interface between the program and memory,
freeing the program of memory management details which
are left to the data structures to implement. The main
result presented herein is that GP can automatically
generate stacks and queues. Typically abstract data
structures support multiple operations, such as put and
get. We show that GP can simultaneously evolve all the
operations of a data structure by implementing each
such operation with its own independent program tree.
That is, the chromosome consists of a fixed number of
independent program trees. Moreover, crossover only
mixes genetic material of program trees that implement
the same operation. Program trees interact with each
other only via shared memory and shared ``Automatically
Defined Functions'' (ADFs).
ADFs, ``pass by reference'' when calling them, Pareto
selection, ``good software engineering practice'' and
partitioning the genetic population into ``demes''
where also investigated whilst evolving the queue in
order to improve the GP solutions.},
added-at = {2008-06-19T17:35:00.000+0200},
address = {Pittsburgh, PA, USA},
author = {Langdon, W. B.},
biburl = {https://www.bibsonomy.org/bibtex/2dc3d5118a3350b336a0742d6040f7638/brazovayeye},
booktitle = {Genetic Algorithms: Proceedings of the Sixth
International Conference (ICGA95)},
editor = {Eshelman, L.},
interhash = {8da93f3c7dffaeb910b499ec22ea2161},
intrahash = {dc3d5118a3350b336a0742d6040f7638},
isbn = {1-55860-370-0},
keywords = {(ADF), (FIFO) Artificial Automatic Automatically Data Defined Demes Evolution, First-in Functions Learning, Machine Object Oriented Pareto Programming, Push Queue, Stack, Structures, algorithms, down first-out fitness, genetic programming,},
month = {15-19 July},
notes = {Discussed on GP mailing list 6--13 Jan 95, subj:
GPdata. Mainly as \cite{Langdon:1995:GPdataRN} but with
more details on pareto selection},
pages = {295--302},
publisher = {Morgan Kaufmann},
publisher_address = {San Francisco, CA, USA},
size = {8 pages},
timestamp = {2008-06-19T17:44:42.000+0200},
title = {Evolving Data Structures Using Genetic Programming},
url = {http://www.cs.ucl.ac.uk/staff/W.Langdon/ftp/papers/GPdata_icga-95.ps},
year = 1995
}