  The primary aim of automated performance improvement is to reduce the running
time of programs while maintaining (or improving on) functionality. In this
paper, Genetic Programming is used to find performance improvements in regular
expressions for an array of target programs, representing the first application
of automated software improvement for run-time performance in the Regular
Expression language. This particular problem is interesting as there may be
many possible alternative regular expressions which perform the same task while
exhibiting subtle differences in performance. A benchmark suite of candidate
regular expressions is proposed for improvement. We show that the application
of Genetic Programming techniques can result in performance improvements in all
cases.
  As we start evolution from a known good regular expression, diversity is
critical in escaping the local optima of the seed expression. In order to
understand diversity during evolution we compare an initial population
consisting of only seed programs with a population initialised using a
combination of a single seed individual with individuals generated using PI
Grow and Ramped-half-and-half initialisation mechanisms.
