Example #1
0
int		main(int ac, char **av)
{
  Population	population;
  char		*target;
  unsigned int	epochs = 0;

  if (ac == 6 && check_string(av[1]) && check_params(av))
    {
      target = av[1];
      population.setSelectionRate(atof(av[3]));
      population.setMutationRate(atof(av[4]));
      population.setPoolSize(atoi(av[5]));
      population.CreatePopulation(atoi(av[2]), strlen(target));
      while (population.getBestFitness() < 100)
	{
	  std::cout << "Epochs: " << epochs++ << std::endl;
	  population.Evaluate((Fitness)evaluate_sample, target);
	  population.Selection();
	  population.Crossover();
	  population.Mutation();
	  population.Evaluate((Fitness)evaluate_sample, target);
	  std::cout << population << std::endl;
	}
    }
  else
    std::cerr << "Usage: ./GeneticString \"[a-z](length > 2)\" pop_size(int) select_rate[0.0-1.0] mutation_rate[0.0-1.0] pool_size(int)" << std::endl;
  return (0);
}