A first attempt to evolve a table failed to satisfy objective 2 (covering the entire surface). One problem with our representation is that the distance between genotype and phenotype is big: mutations are likely to produce large changes on the structure, so detailed optimization is hard to obtain. Also, not having bricks complicates matters (our set of Lego did not include those at the time). Finally, there was little selective pressure as fitness values between 1.9 and 2.0 where nearly identically selected. In the final run we expanded the raw fitness exponentially in order to add pressure (so for example the fitness value of 123.74 in fig. 2.4 corresponds to a raw fitness of ), but this did not solve the problem of full coverage. For the successful run pictured above, objective 2 was redefined as ``covering at least 96% of the target area''.
The use of stepped fitness functions is not ideal; Pareto front techniques [55, ch. 5] should improve performance in multiobjective problems such as this one.