  In many applications of evolutionary algorithms the computational cost of
applying operators and storing populations is comparable to the cost of fitness
evaluation. Furthermore, by knowing what exactly has changed in an individual
by an operator, it is possible to recompute fitness value much more efficiently
than from scratch. The associated time and memory improvements have been
available for simple evolutionary algorithms, few specific genetic algorithms
and in the context of gray-box optimization, but not for all algorithms, and
the main reason is that it is difficult to achieve in algorithms using large
arbitrarily structured populations.
  This paper makes a first step towards improving this situation. We show that
storing the population as a minimum spanning tree, where vertices correspond to
individuals but only contain meta-information about them, and edges store
structural differences, or patches, between the individuals, is a viable
alternative to the straightforward implementation. Our experiments suggest that
significant, even asymptotic, improvements -- including execution of crossover
operators! -- can be achieved in terms of both memory usage and computational
costs.
