def mutate(parameters): if random.random() < 0.002: return genetic.random_individual_parameters() new = dict(**parameters) if random.random() < 0.02: new['palette_1'] = random.choice(xrange(256*256*256)) if random.random() < 0.02: new['palette_2'] = random.choice(xrange(256*256*256)) if random.random() < 0.02: new['palette_3'] = random.choice(xrange(256*256*256)) if random.random() < 0.02: new['palette_4'] = random.choice(xrange(256*256*256)) if random.random() < 0.02: new['palette_5'] = random.choice(xrange(256*256*256)) if random.random() < 0.01: new['colors_limit'] = random.choice([3,4,5]) if random.random() < 0.1: new['h_left_above'] = not new['h_left_above'] if random.random() < 0.1: new['h_right_above'] = not new['h_right_above'] if random.random() < 0.1: new['c_top_above'] = not new['c_top_above'] if random.random() < 0.1: new['k_top_above'] = not new['k_top_above'] return new
def populate_current_generation_if_empty(): if not Database.current_generation_is_empty(): return print "Adding new random individuals to generation." for i in xrange(0, Constants.POPULATION_SIZE): newIndividualParameters = genetic.random_individual_parameters() Database.add_individual_to_current_generation(newIndividualParameters)