Evolutionary Algorithms in Theory and Practice