Genetic Algorithms and Machine Learning for Programmers