Genetic and Evolutionary Computation by Stefano Cagnoni & Stephen L. Smith