The evolution of complete software systems
thesisposted on 02.09.2008, 08:44 by Mark S. Withall
This thesis tackles a series of problems related to the evolution of complete software systems both in terms of the underlying Genetic Programming system and the application of that system. A new representation is presented that addresses some of the issues with other Genetic Program representations while keeping their advantages. This combines the easy reproduction of the linear representation with the inheritable characteristics of the tree representation by using fixed-length blocks of genes representing single program statements. This means that each block of genes will always map to the same statement in the parent and child unless it is mutated, irrespective of changes to the surrounding blocks. This method is compared to the variable length gene blocks used by other representations with a clear improvement in the similarity between parent and child. Traditionally, fitness functions have either been created as a selection of sample inputs with known outputs or as hand-crafted evaluation functions. A new method of creating fitness evaluation functions is introduced that takes the formal specification of the desired function as its basis. This approach ensures that the fitness function is complete and concise. The fitness functions created from formal specifications are compared to simple input/output pairs and the results show that the functions created from formal specifications perform significantly better. A set of list evaluation and manipulation functions was evolved as an application of the new Genetic Program components. These functions have the common feature that they all need to be 100% correct to be useful. Traditional Genetic Programming problems have mainly been optimization or approximation problems. The list results are good but do highlight the problem of scalability in that more complex functions lead to a dramatic increase in the required evolution time. Finally, the evolution of graphical user interfaces is addressed. The representation for the user interfaces is based on the new representation for programs. In this case each gene block represents a component of the user interface. The fitness of the interface is determined by comparing it to a series of constraints, which specify the layout, style and functionality requirements. A selection of web-based and desktop-based user interfaces were evolved. With these new approaches to Genetic Programming, the evolution of complete software systems is now a realistic goal.
- Computer Science