genetic algorithm outline