El primer ejemplo de esta sección tratará de encontrar el óptimo (máximo en este caso) de la siguiente función, propuesta por Riolo [#!Riolo92!#]:
Para resolver este problema se ha desarrollado un programa, utilizando la biblioteca OE, lo cual simplemente requiere definir la clase de los individuos, programar la función de evaluación, y elegir los objetos transformadores (operadores genéticos), selectores, terminadores, y el tipo de algoritmo que se utilizará.
Como algoritmo principal del programa se eligió un algoritmo genético simple (clase eoSGA), que básicamente lo que hace es el bucle de un AG, aplicando selección, reproducción/mutación y reemplazo.
La clase a la que pertenecen los individuos es eoBin, lo cual significa que los individuos serán cadenas de bits (como en un AG).
Como operadores de transformación se ha hecho uso de los operadores de mutación (eoBinMutation) y de cruce (eoBinCrossover).
La condición de parada del programa se estableció mediante el uso de un terminador (clase eoGenContinue) que controla el número de iteraciones que se harán.
Por último, la función de evaluación viene dada por la ecuación , de forma que, implementando dicha función, como una clase descendiente de eoEvalFunc (la que define la interfaz de cualquier función evaluadora), como se muestra en la figura , ya tendremos el programa listo para utilizarlo.
En la figura podemos observar cómo se desarrolla la ejecución del AE implementado que optimiza esta función. Vemos que en las primeras generaciones los individuos quedan bastante alejados de la solución. Conforme avanza la ejecución (generaciones 2 y 3), el AE encuentra individuos que mejoran la solución. Hacia la generación 4, se encuentra un individuo que representa una solución lo suficientemente buena como para, pasadas unas generaciones sin obtener una mejora, conformarnos con la solución obtenida y detener la ejecución.