Replacement Strategies to Preserve Useful Diversity in Steady-State Genetic Algorithms