def maxmin_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 ensemble.parallel = True ensemble.processes = 12 def obj_function1(outcomes): return outcomes['y'] policy_levers = { "L1": (0,1), "L2": (0,1)} results = ensemble.perform_maximin_optimization(obj_function1 = obj_function1, policy_levers = policy_levers, minimax1='minimize', nrOfGenerations1=50, nrOfPopMembers1=200, minimax2 = "maximize", nrOfGenerations2 = 50, nrOfPopMembers2 = 100, ) graph_errorbars_raw(results['stats']) plt.show()
ParameterUncertainty((0.45,0.55), "tH"), ParameterUncertainty((0.1,0.3), "kk")] #specification of the outcomes outcomes = [Outcome("B4:B1076", time=True), #we can refer to a range in the normal way Outcome("P_t", time=True)] # we can also use named range #name of the sheet sheet = "Sheet1" #relative path to the Excel file workbook = r'\excel example.xlsx' if __name__ == "__main__": ema_logging.log_to_stderr(level=ema_logging.INFO) model = ExcelModel(r"./models/excelModel", "predatorPrey") ensemble = ModelEnsemble() ensemble.set_model_structure(model) ensemble.parallel = True #turn on parallel computing ensemble.processes = 2 #using only 2 cores #run 100 experiments nr_experiments = 100 results = ensemble.perform_experiments(nr_experiments)
# 'TimeHorizonGov2':50, # 'TimeHorizonGov3':50, # 'TimeHorizonGov4':50, # 'TimeHorizonGov5':50, # 'TimeHorizonInd1':50, # 'TimeHorizonInd2':50, # 'TimeHorizonInd3':50, # 'TimeHorizonInd4':50, # 'TimeHorizonInd5':50} # msi2 = EVO(r"./models", 'longTimeHorizon', defaults=defaults) msi1 = EVO('./models', 'full') #instantiate an ensemble ensemble = ModelEnsemble() #set the model on the ensemble ensemble.add_model_structure(msi1) # ensemble.add_model_structure(msi2) ensemble.parallel = True ensemble.processes = 36 #perform experiments nr_experiments = 1000 results = ensemble.perform_experiments(nr_experiments, reporting_interval=100) fn = r'.\data\full {} exp {} rep.tar.gz'.format(nr_experiments, msi1.nr_replications) save_results(results, fn)