abstract = "Introduction Genetic Programming (GP) [Koza, 1992;
Koza, 1994; Banzhaf et al., 1998] is usually seen as
quite demanding from the computation load and memory
use point of view. So, over the years a number of ideas
on how to improve GP performance have been proposed in
the literature. We recall the main speedup techniques
published to date in Section 13.2. Some of these
techniques are now used in many GP implementations.
Thanks to this and to the fact that the power of our
workstations is increasing exponentially (today's CPUs
are now more than 10 times faster than those used in
early GP work), nowadays we can run 50 generations a
typical GP benchmark problem with a population of 500
individuals in perhaps ten seconds on a normal
workstation. Nonetheless, the demand for more and more
efficient implementations has not stopped. This is
because extensive experimental GP studies (like
[Langdon and Poli, 1998] or [Luke and Spector, 1998])
and complex applications (like [Poli, 1996]",