This paper presents the evolving objects library (EOlib), an object-oriented framework for evolutionary computation (EC) that aims to provide a flexible set of classes to build EC applications. EOlib design objective is to be able to evolve any object in which fitness makes sense. In order to do so, EO concentrates on interfaces; any object can evolve if it is endowed with an interface to do so. In this paper, we describe what features an object must have in order to evolve, and some examples of how EO has been put to practice evolving neural networks, solutions to the Mastermind game, and other novel applications.
Maarten Keijzer, Juan J. Merelo Guervós, Gu