Designing Evolutionary Algorithms for Dynamic Environments