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, 
                                               mutation_rate=0.02,
                                               caching=True,
                                               eps=[0.01, 0.01]
                                               )
Ejemplo n.º 2
0
            '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,
        mutation_rate=0.02,
        caching=True,
        eps=[0.01, 0.01])