haploid genetic algorithms