本文整理汇总了Python中expWorkbench.ModelEnsemble.perform_robust_optimization方法的典型用法代码示例。如果您正苦于以下问题:Python ModelEnsemble.perform_robust_optimization方法的具体用法?Python ModelEnsemble.perform_robust_optimization怎么用?Python ModelEnsemble.perform_robust_optimization使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类expWorkbench.ModelEnsemble
的用法示例。
在下文中一共展示了ModelEnsemble.perform_robust_optimization方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: robust_optimize
# 需要导入模块: from expWorkbench import ModelEnsemble [as 别名]
# 或者: from expWorkbench.ModelEnsemble import perform_robust_optimization [as 别名]
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()
示例2: EnergyTrans
# 需要导入模块: from expWorkbench import ModelEnsemble [as 别名]
# 或者: from expWorkbench.ModelEnsemble import perform_robust_optimization [as 别名]
outcome = outcomes['total fraction new technologies']
zeros = np.zeros((outcome.shape[0], 1))
zeros[outcome[:,-1]>0.6] = 1
value = np.sum(zeros)/zeros.shape[0]
return value,
if __name__ == "__main__":
ema_logging.log_to_stderr(ema_logging.INFO)
model = EnergyTrans(r"..\data", "ESDMAElecTrans")
ensemble = ModelEnsemble()
ensemble.set_model_structure(model)
ensemble.parallel = True
policy_levers = {'Trigger subsidy T2': {'type':'range', 'values':(0,1)},
'Trigger subsidy T3': {'type':'range', 'values':(0,1)},
'Trigger subsidy T4': {'type':'range', 'values':(0,1)},
'Trigger addnewcom': {'type':'list', 'values':[0, 0.25, 0.5, 0.75, 1]}}
stats_callback, pop = ensemble.perform_robust_optimization(cases=10,
reporting_interval=100,
obj_function=obj_func,
policy_levers=policy_levers,
weights = (MAXIMIZE,),
nr_of_generations=100,
pop_size=10,
crossover_rate=0.5,
mutation_rate=0.02,
mutationRate=0.01
)
save_optimization_results((stats_callback, pop), '../data/robust test.bz2')
示例3: ModelEnsemble
# 需要导入模块: from expWorkbench import ModelEnsemble [as 别名]
# 或者: from expWorkbench.ModelEnsemble import perform_robust_optimization [as 别名]
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]
)