diploid genetic algorithms