Evolving Software with Multiple Outputs and Multiple
Populations
J. Hart, and M. Shepperd. TR02-06. School of Design, Engineering and Computing,
Bournemouth University, Royal London House, Christchurch Rd, Bournemouth, BH1
3LT, UK, (July 2002)
Abstract
In this research we are concerned with the automatic
evolution of programs for control applications, the
particular example we use being software for a simple
fridge device with two inputs and three outputs. By
careful choice of the target programming language - in
a similar vein to a RISC processor - we are able to
represent programs as variable length strings and use
evolutionary computing techniques to search for fitter
individuals. We used a fitness function that summed the
fitness of each output channel, by various methods, in
an attempt to encourage a total solution using a single
population of candidate solutions. In general we were
able to successfully evolve suitable solutions,
however, the search sometimes suffered from premature
convergence once the functionality for two out of the
three output channels had evolved. More complex fitness
assessment schemes, using mechanisms such as
dynamically modifying the fitness associated with an
output channel without additional benefit. These
difficulties in attempting to do too much with a single
population pointed to a `divide and conquer' approach
whereby one (or more) populations are dedicated to
solving for one output channel alone - whilst being
exposed to all inputs. This is seen to be an acceptable
approach due to the growth in multi-tasking operating
systems and multiprocessor platforms.
%0 Report
%1 hart:2002:TR02-06
%A Hart, John
%A Shepperd, Martin
%C Royal London House, Christchurch Rd, Bournemouth, BH1
3LT, UK
%D 2002
%K algorithms, embedded evolutionary genetic programming, search, system
%N TR02-06
%T Evolving Software with Multiple Outputs and Multiple
Populations
%U http://dec.bournemouth.ac.uk/ESERG/Technical_Reports/TR02-06/TR02-06.pdf
%X In this research we are concerned with the automatic
evolution of programs for control applications, the
particular example we use being software for a simple
fridge device with two inputs and three outputs. By
careful choice of the target programming language - in
a similar vein to a RISC processor - we are able to
represent programs as variable length strings and use
evolutionary computing techniques to search for fitter
individuals. We used a fitness function that summed the
fitness of each output channel, by various methods, in
an attempt to encourage a total solution using a single
population of candidate solutions. In general we were
able to successfully evolve suitable solutions,
however, the search sometimes suffered from premature
convergence once the functionality for two out of the
three output channels had evolved. More complex fitness
assessment schemes, using mechanisms such as
dynamically modifying the fitness associated with an
output channel without additional benefit. These
difficulties in attempting to do too much with a single
population pointed to a `divide and conquer' approach
whereby one (or more) populations are dedicated to
solving for one output channel alone - whilst being
exposed to all inputs. This is seen to be an acceptable
approach due to the growth in multi-tasking operating
systems and multiprocessor platforms.
@techreport{hart:2002:TR02-06,
abstract = {In this research we are concerned with the automatic
evolution of programs for control applications, the
particular example we use being software for a simple
fridge device with two inputs and three outputs. By
careful choice of the target programming language - in
a similar vein to a RISC processor - we are able to
represent programs as variable length strings and use
evolutionary computing techniques to search for fitter
individuals. We used a fitness function that summed the
fitness of each output channel, by various methods, in
an attempt to encourage a total solution using a single
population of candidate solutions. In general we were
able to successfully evolve suitable solutions,
however, the search sometimes suffered from premature
convergence once the functionality for two out of the
three output channels had evolved. More complex fitness
assessment schemes, using mechanisms such as
dynamically modifying the fitness associated with an
output channel without additional benefit. These
difficulties in attempting to do too much with a single
population pointed to a `divide and conquer' approach
whereby one (or more) populations are dedicated to
solving for one output channel alone - whilst being
exposed to all inputs. This is seen to be an acceptable
approach due to the growth in multi-tasking operating
systems and multiprocessor platforms.},
added-at = {2008-06-19T17:35:00.000+0200},
address = {Royal London House, Christchurch Rd, Bournemouth, BH1
3LT, UK},
author = {Hart, John and Shepperd, Martin},
biburl = {https://www.bibsonomy.org/bibtex/2c2fa18f29ff6bb660dc6450583bd4dc9/brazovayeye},
institution = {School of Design, Engineering and Computing,
Bournemouth University},
interhash = {f92d2f0c4e5142faf66438cafcebde69},
intrahash = {c2fa18f29ff6bb660dc6450583bd4dc9},
keywords = {algorithms, embedded evolutionary genetic programming, search, system},
month = {July},
notes = {as \cite{hart:2002:gecco:lbp}},
number = {TR02-06},
size = {pages},
timestamp = {2008-06-19T17:41:04.000+0200},
title = {Evolving Software with Multiple Outputs and Multiple
Populations},
url = {http://dec.bournemouth.ac.uk/ESERG/Technical_Reports/TR02-06/TR02-06.pdf},
year = 2002
}