lecture 6 : genetic algorithms