def main(): global POPULATION_COUNT, ITERATIONS, MAX_FUNC_DEPTH file = open('data.txt', 'w') if len(sys.argv) == 3: ITERATIONS = int(sys.argv[1]) if len(sys.argv) == 3: POPULATION_COUNT = int(sys.argv[2]) f, data = create_test_data() write_init_data(file, f, data) population = create_population(POPULATION_COUNT, MAX_FUNC_DEPTH) normalizator = Normalizator(data, mistake) functions = FunctoionContainer(choose_parent_pairs2, choose_to_kill, create_children) options = Options(0.4) mutator = Mutator(population, normalizator, options, functions) print 'population: ' #for s in population: print 'm: ', mistake(s.f, data), '\t\ts.f: ', s.f for i in range(ITERATIONS): print 'population ' + str(i) + ' : ' for j in range(5): s = population[(j + 1) * (-1)] print 'm: ', mistake(s.f, data), '\t\ts.f: ', s.f if j == 1: # ITERATION_NUMBER:MISTAKE:FUNCTION write_population_data(file, i, s, mistake(s.f, data)) mutator.make_children() mutator.kill_unused() # mutator.change_random() mutator.change_age() mutator.mutate() normalizator.compute_distribuante(population) population.sort() file.close()
import etc from normalizator import Normalizator normalizator = Normalizator() candidates_attr = list(map(lambda data: {'id': data['id'], 'attributes': data['attributes'] }, etc.candidates)) candidates_attr_normalized = list() def get_spesific_values(a_list, key): temp = [] for d in a_list: temp.append(d['attributes'][key]) return temp for i in range(len(candidates_attr)): current_salary = candidates_attr[i]['attributes']['salary'] current_gpa = candidates_attr[i]['attributes']['gpa'] current_dependant = candidates_attr[i]['attributes']['dependant'] salary_normalized = normalizator.normalize_salary(get_spesific_values(candidates_attr, 'salary'), current_salary) gpa_normalized = normalizator.normalize_gpa(get_spesific_values(candidates_attr, 'gpa'), current_gpa) dependant_normalized = normalizator.normalize_dependant(get_spesific_values(candidates_attr, 'dependant'), current_dependant) candidates_attr_normalized.append([candidates_attr[i]['id'],salary_normalized, gpa_normalized, dependant_normalized]) # Create a simple weight