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
def visualize_optimization():
    import cPickle
    results = cPickle.load(open("..\..\..\models\CANER\Flu\SD\maximintest.cPickle"))
#    best_case, best_individual_score, results = results
    graph_errorbars_raw(results['stats'])
    graph_pop_heatmap_raw(results['raw'])
    plt.show()
Ejemplo n.º 3
0
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()
Ejemplo n.º 4
0
def robust_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_levers = { "L1": (0,1),
                      "L2": (0,1)}
    
    def obj_func(results):
        return np.average(results['y'])        
    
    results = ensemble.perform_robust_optimization(cases=1000, 
                                                   obj_function=obj_func, 
                                                   policy_levers=policy_levers, 
                                                   minimax='minimize', 
                                                   nrOfGenerations=50, 
                                                   nrOfPopMembers=20 )
    graph_errorbars_raw(results['stats'])
    plt.show()
Ejemplo n.º 5
0
    outcome = outcomes['deceased population region 1']
    zeros = np.zeros((outcome.shape[0], 1))
    zeros[outcome[:,-1]<1000000] = 1
    value = np.sum(zeros)/zeros.shape[0] 
    return value

if __name__ == "__main__":
#    ema_logging.log_to_stderr(ema_logging.INFO)
#    model = FluModel(r'..\..\..\models\CANER\Flu\SD', "fluCase")
#       
#    ensemble = ModelEnsemble()
#    ensemble.set_model_structure(model)
#    ensemble.parallel = True
#    
#    policy_levers = {'trackperiod': (1,8),
#                     'delaytime': (0.01,2)}
#
#    res = ensemble.perform_robust_optimization(cases=1000, 
#                                               obj_function=obj_func, 
#                                               policy_levers = policy_levers,
#                                               nrOfPopMembers=50,
#                                               nrOfGenerations=50,
#                                               crossoverRate=0.7,
#                                               mutationRate=0.01)
#    cPickle.dump(res, open(r'FLU robust optimization results.cPickle', 'w'))
    
    res = cPickle.load(open(r'FLU robust optimization results.cPickle', 'r'))
    graph_pop_heatmap_raw(res['raw'])
    graph_errorbars_raw(res['stats'])
    
    plt.show()