def outcome_optimize(): ema_logging.log_to_stderr(ema_logging.INFO) model = TestModel("", 'simpleModel') #instantiate the model ensemble = ModelEnsemble() #instantiate an ensemble ensemble.set_model_structure(model) #set the model on the ensemble policy = {"name": "test", "L1": 1, "L2": 1} ensemble.add_policy(policy) def obj_func(results): return results['y'] results = ensemble.perform_outcome_optimization(obj_function=obj_func, minimax = 'minimize', nrOfGenerations = 1000, nrOfPopMembers = 10) graph_errorbars_raw(results['stats']) plt.show()
if __name__ == "__main__": ema_logging.log_to_stderr(ema_logging.INFO) model = DummyModel(r"", "dummy") np.random.seed(123456789) ensemble = ModelEnsemble() ensemble.set_model_structure(model) policy_levers = {'Trigger a': {'type':'list', 'values':[0, 0.25, 0.5, 0.75, 1]}, 'Trigger b': {'type':'list', 'values':[0, 0.25, 0.5, 0.75, 1]}, 'Trigger c': {'type':'list', 'values':[0, 0.25, 0.5, 0.75, 1]}} cases = ensemble._generate_samples(10, UNION)[0] ensemble.add_policy({"name":None}) experiments = [entry for entry in ensemble._generate_experiments(cases)] for entry in experiments: entry.pop("model") entry.pop("policy") cases = experiments stats, pop = ensemble.perform_robust_optimization(cases=cases, reporting_interval=100, obj_function=obj_func, policy_levers=policy_levers, weights = (MINIMIZE,)*2, nr_of_generations=20, algorithm=epsNSGA2, pop_size=4, crossover_rate=0.5,