コード例 #1
0
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
コード例 #2
0
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)