Genetic algorithm

 Randomly generate N data
 while(1){
  Calculate evaluation function for each data
  Stochastically perform the following operations
   Select two data and perform crossover
   Select one data and perform mutation
   Select one data and keep it
  Use the new data for next generation
 }