Foundations of Genetic Algorithms