Skip Nav Destination
Close Modal
Update search
NARROW
Format
TocHeadingTitle
Date
Availability
1-2 of 2
Barry Porter
Close
Follow your search
Access your saved searches in your account
Would you like to receive an alert when new items match your search?
Sort by
Proceedings Papers
. isal2024, ALIFE 2024: Proceedings of the 2024 Artificial Life Conference65, (July 22–26, 2024) 10.1162/isal_a_00795
Abstract
View Paper
PDF
Emergent software systems are composed of elementary building blocks, where many of those blocks have variations available which are better or worse in different deployment contexts. Genetic Improvement (GI) for source code has been proposed for creating and curating collections of such blocks, but the combination of new code synthesis with genetic mutation and crossover results in large, complex search spaces. A range of methods to aid such a search have been proposed, with the particular notion of species having appeared in the context of Genetic Algorithms (GAs) to identify individuals with similar genotypes for controlling competition, encouraging the exploration of distant local optima, maintaining diversity and avoiding premature convergence. In this paper we examine a species definition for GI for source code, a domain which has specific features: genotype similarity is largely irrelevant; distance between individuals is undefined; and the fitness landscape is extremely rugged. We propose a phenotypic species definition that captures an algorithm’s functional phenotypic characteristics, while excluding its nonfunctional phenotypic characteristics (and its particular representation in source code). We introduce our proposal in a GI for a hash table scenario, where species are characterised by divergence in probability distributions.
Proceedings Papers
. isal2022, ALIFE 2022: The 2022 Conference on Artificial Life16, (July 18–22, 2022) 10.1162/isal_a_00494
Abstract
View Paper
PDF
Emergent Software Systems take a large pool of potential building blocks, for a given system such as a web server, and learn at runtime how best to compose selected blocks from that pool in order to maximise some utility function in each set of deployment conditions that is encountered. To support this approach, at least some building blocks in the available pool must have implementation variants – alternatives which have the same functionality but achieve it using a different approach (such as different sorting algorithms or different cache eviction policies). We can automatically derive new building block variants for our pool of potential behaviour by using genetic improvement (GI), which has long proven effective for optimisation and repair of source code. When a novel deployment environment is detected, however, it is unclear which existing building block variant(s) should be used as starting points for new a GI process to tailor a new block for that environment; in this situation it would be necessary to try one GI process from every possible existing building block variant as a starting point, a process which could be extremely expensive. In this paper we present a mixed-population approach to examine whether GI can simultaneously offer both lineage selection and optimisation to find the ideal source code for a new building block variant tailored to a given environment. Using a lowest-common-ancestor approach to producing evolvable individuals, our results demonstrate strong evidence that combined lineage selection and optimisation is viable in multiple scenarios, offering far reduced compute time to locate a good individual for a novel environment.