Summary: | Over the last few decades, one has observed a remarkable increase, both in the number, and in the quality of approaches to problem solving, with an inspiration on natural evolution. It was shown how the evolutionary processes can be applied to solve scientific and engineering problems, using what is well understood as genetic, or more generally, Evolutionary Algorithms (EAs). However, in the software engineering counterpart, some correlations have not been fully matched, and often a new problem to solve implies the development of an application from scratch. So, how does this apply to problem solving ? By developing a system that will take advantage of the major features of the object-oriented paradigm, using the ANSI/ISO C++ language. By considering several abstraction's levels, therefore encapsulating the most significant building blocks of the EA, although leaving the sufficient room for specific implementations, so common in the field. A system that will be reusable, in that, under mild conditions, a wide variety of EAs can be tested (e.g., Evolution Strategies, Evolution Programming and Genetic Algorithms), either in their sheer versions, or by considering some processes of hybridization.
|