norm_factor = 10.0 is_gen_preffered = True while 1: ini_r, ini_alpha, ini_a, ini_b = np.random.normal(1, 0.05, 4) cost_function = CostFunction(sum_data) optimizer = Optimizer(sum_data, np.array([ini_r, ini_alpha, ini_a, ini_b]), norm_factor) params_gen, score_gen = optimizer.genetics( cost_function.neg_log_likelihood, sum_data, np.array([ini_r, ini_alpha, ini_a, ini_b]), norm_factor) params, score = optimizer.nelder_mead( cost_function.neg_log_likelihood, sum_data, np.array([ini_r, ini_alpha, ini_a, ini_b]), norm_factor) if not is_gen_preffered and score_gen < 4.515: params_final.append(params) scores.append(score) break if is_gen_preffered and score < 4.515: params_final_gen.append(params_gen) scores_gen.append(score_gen) break