**2. Description of the Structure-based Evolutionary Design**

SED is a global random search procedure, looking for individuals best fitting a given set of specifications. These individuals are described as instruction sets, and internally represented as trees. The main steps of the whole evolutionary design can be summarized in the flowchart of Fig.1:

**Figure 1.** Flowchart of the Evolutionary Design.

After an initial step, where N individuals are picked up at random, an iterative procedure starts, which includes the evaluation of the fitness (appropriate for the problem at hand) for each individual, and the building of the next generation of the population. A larger probability of breeding is assigned to individuals with the highest fitness. The generation of new populations ends only when opportune stopping rules are met (i.e. when the individual-antenna fulfils, to a prescribed degree, the stated requirement).

The solution space, i.e., the set of admissible solutions in which the procedure looks for the optimum, has the power of the continuum. This is the main advantage of SED, since it allows exploring, and evaluating, general structure configurations, but, on the other hand, it can lead to a severely ill-conditioned synthesis problem. As a consequence, a naive implementation usually does not work, since different starting populations lead to completely different final populations, possibly containing only individuals poorly matched to the requirements (a phenomenon similar to the occurrence of traps in optimization procedures).

A suitable stabilization is therefore needed. This role can be accomplished by suitable structure requirements, or forced by imposing further constraints, not included in the structure requirements. Whenever possible, the former ones are the better choice, and should be investigated first.

Typically, a high number N of individuals for a certain number of generations must be evaluated in order to obtain a good result from the design process. Since each individual can be evaluated independently from each other, the design process is strongly parallelizable, and this can significantly reduce the computation time.
