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); }