The program has been written
in such a way that the "algorithms" generated can be
modified in any way executing always correctly. This is necessary
if we want to implement a genetic algorithm.
The use of genetic algorithms for artistic purposes is now common.
See for example ref. [5]. It allows the exploration
of an algorithmic image space with countless members. The subjective
decision of the artist (I like or I dislike it) is used to select by
continue evolution the interesting forms in the image space.
In this implementation the image space is the set of all possible Julia
sets of which only 196 have been generated.
This is the beginning point for the implementation of a genetic algorithm.
In fact,the user at this point is requested to select a number of Julia sets; at the
next generation the program will still create some formulas completely randomly,
but the remaining formulas will be created by modifying randomly and
breeding the selected formulas.Figure 3 shows an example of the breeding
of two formulas.
This will continue for many generations with
results similar to what you see in figure 2. At the end the user can compute
with bigger resolution the best results and print them (see figure 4).
In this way it is possible to discover new interesting fractal formulas.