Evolutionary Computation 2 by Zbigniew Michalewicz, Thomas Baeck & D.B. Fogel