Ejemplo n.º 1
0
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()
Ejemplo n.º 2
0
                     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)