def HGT_simulations_main__performance_rate(): common_classes = CommonClassesCreator() number_of_activations, population_factors, \ HGT_factors, mutation_factors = common_classes.get_simulation_variables() HGT_factor = 0.5 avg_performance_rate = list() for i in xrange(1000): avg_performance_rate.append((0, [0] * i)) common_classes.create_next_HGT_process(HGT_factor) for _ in xrange(number_of_activations): current_performance_rate = get_performance_rate_of_single_run( common_classes) performance_rate_with_same_generation = avg_performance_rate[len( current_performance_rate)] avg_performance_rate[len(current_performance_rate)] = ( performance_rate_with_same_generation[0] + 1, [ a + b for a, b in zip(performance_rate_with_same_generation[1], current_performance_rate) ]) for i in xrange(len(avg_performance_rate)): if avg_performance_rate[i][0] is not 0: average_rate_for_generation_i = [ avg_rate / avg_performance_rate[i][0] for avg_rate in avg_performance_rate[i][1] ] print "performance rate for " + str(i) + " generation is: " + str( average_rate_for_generation_i)
def HGT_simulations_main__population_factor(): common_classes = CommonClassesCreator() number_of_activations, population_factors, \ HGT_factors, mutation_factors = common_classes.get_simulation_variables() HGT_factor = 0.2 number_of_generations_per_factor = list() for population_factor in population_factors: generation_number = 0 common_classes.create_next_HGT_process(HGT_factor) for _ in xrange(number_of_activations): generation_number += get_number_of_generations_of_single_run( common_classes, population_factor) avg_number_of_generations = float( generation_number) / number_of_activations print "number_of_generations for " + str( population_factor) + " population is: " + str( avg_number_of_generations) number_of_generations_per_factor.append(avg_number_of_generations) print "number_of_generations_per_factor: " + str( number_of_generations_per_factor)
def HGT_simulations_main__parallel(): common_classes = CommonClassesCreator() length, epsilon, mutation_neighborhood, tolerance = common_classes.get_common_classes( ) number_of_activations, population_factors, HGT_factors, mutation_factors = common_classes.get_simulation_variables( ) number_of_generations_per_factor = list() parallel = Parallel(n_jobs=-1) for HGT_factor in HGT_factors: HGT_process = HGTProcess(HGT_factor, length) avg_number_of_generations = sum( parallel( delayed(compute_part) (length, epsilon, mutation_neighborhood, tolerance, HGT_process, representation_class, number_of_activations / 4, get_number_of_generations_of_single_run) for _ in xrange(4))) / 4 print "number_of_generations for " + str( HGT_factor) + " factor is: " + str(avg_number_of_generations) number_of_generations_per_factor.append(avg_number_of_generations) print "number_of_generations_per_factor: " + str( number_of_generations_per_factor)
def run_models_without_precomp(): pr = cProfile.Profile() pr.enable() common_classes = CommonClassesCreator(False) compare_with_HGT_factors(common_classes) compare_with_mutation_factors(common_classes) compare_with_population_factors(common_classes) pr.disable() pstats.Stats(pr).sort_stats("time").print_stats()
def main(): common_classes = CommonClassesCreator(False) length, epsilon, mutation_neighborhood, tolerance = common_classes.get_common_classes() concept_class = MonotoneConjunction(length) performance = common_classes.get_perf_without_precomp(concept_class) mutation_probability = common_classes.get_mutation_probability() mutator = Mutator(mutation_neighborhood, performance, tolerance, mutation_probability, epsilon) algorithm = ConjunctionEvolvabilityAlgorithm(mutator, length, epsilon, performance) hypo = algorithm.learn_ideal_function(epsilon) print "HYPO IS: " + str(hypo)
def recombination_main(): common_classes = CommonClassesCreator() length, epsilon, mutation_neighborhood, tolerance = common_classes.get_common_classes( ) mutation_factor = 0.1 concept_class = MonotoneConjunction(length) performance = common_classes.get_perf_without_precomp(concept_class) recomb_process = RecombinationProcess() neighborhood = NeighborhoodWithOtherRepresentations( length, mutation_neighborhood, mutation_factor, recomb_process) recombinator = Recombinator(neighborhood, performance, tolerance, epsilon) recombination = RecombinationConjunctionAlgorithm(recombinator, length, epsilon, concept_class) recombination.learn_ideal_function(concept_class)
def HGT_main(): common_classes = CommonClassesCreator() length, epsilon, mutation_neighborhood, tolerance = common_classes.get_common_classes( ) mutation_factor = 0.1 HGT_factor = 1 concept_class = MonotoneConjunction(length) performance = common_classes.get_perf_without_precomp(concept_class) HGT_process = HGTProcess(HGT_factor, length) neighborhood = NeighborhoodWithOtherRepresentations( length, mutation_neighborhood, mutation_factor, HGT_process) HGT_mutator = HGT_Mutator(neighborhood, performance, tolerance, epsilon, HGT_process) mutation = HGTConjunctionAlgorithm(HGT_mutator, length, epsilon, performance) final_population = mutation.learn_ideal_function(concept_class) if len(final_population) <= 30: print final_population