basic concept of genetic algorithm