Eiben, A., & Smith, J. (2003). Introduction to evolutionary computing. Berlin, Heidelberg, New York: Springer