Multi-objective improvement of software using co-evolution and smart seeding

Arcuri, A., White, D.R., Clark, J. and Yao, X. (2008) Multi-objective improvement of software using co-evolution and smart seeding. Lecture Notes in Computer Science, 5361(2008), pp. 61-70. (doi: 10.1007/978-3-540-89694-4_7)

[img]
Preview
Text
55375.pdf

253kB

Abstract

Optimising non-functional properties of software is an important part of the implementation process. One such property is execution time, and compilers target a reduction in execution time using a variety of optimisation techniques. Compiler optimisation is not always able to produce semantically equivalent alternatives that improve execution times, even if such alternatives are known to exist. Often, this is due to the local nature of such optimisations. In this paper we present a novel framework for optimising existing software using a hybrid of evolutionary optimisation techniques. Given as input the implementation of a program or function, we use Genetic Programming to evolve a new semantically equivalent version, optimised to reduce execution time subject to a given probability distribution of inputs. We employ a co-evolved population of test cases to encourage the preservation of the program’s semantics, and exploit the original program through seeding of the population in order to focus the search. We carry out experiments to identify the important factors in maximising efficiency gains. Although in this work we have optimised execution time, other non-functional criteria could be optimised in a similar manner.

Item Type:Articles
Additional Information:The original publication is available at www.springerlink.com
Status:Published
Refereed:Yes
Glasgow Author(s) Enlighten ID:White, Dr David
Authors: Arcuri, A., White, D.R., Clark, J., and Yao, X.
College/School:College of Science and Engineering > School of Computing Science
Journal Name:Lecture Notes in Computer Science
Publisher:Springer
ISSN:0302-9743
Copyright Holders:Copyright © 2008 Springer-Verlag Berlin Heidelberg
First Published:First published in Lecture Notes in Computer Science 5361(2008):61-70
Publisher Policy:Reproduced in accordance with the copyright policy of the publisher

University Staff: Request a correction | Enlighten Editors: Update this record