def test_optimize(): optimize(mapk_cascade, 1, 3, max_generation=10, overwrite=True) for i in range(1, 4): with open(MODEL_PATH + f'/out/{i:d}/optimization.log') as f: logs = f.readlines() assert logs[-1][:14] == 'Generation10: ' optimize_continue(mapk_cascade, 1, 3, max_generation=20) for i in range(1, 4): with open(MODEL_PATH + f'/out/{i:d}/optimization.log') as f: logs = f.readlines() assert logs[-1][:14] == 'Generation20: '
def run_ga(nth_paramset): if not os.path.isdir('./out'): os.mkdir('./out') try: files = os.listdir('./out/%d' % (nth_paramset)) for file in files: if any(map(file.__contains__, ('.npy', 'log'))): os.remove('./out/%d/%s' % (nth_paramset, file)) except FileNotFoundError: os.mkdir('./out/%d' % (nth_paramset)) optimize(nth_paramset)
def test_param_estim(): optimize(model, x_id=11, options={ "popsize": 3, "max_generation": 5, "allowable_error": 0.0, "local_search_method": "DE", "maxiter": 3, "workers": -1, }) with open(os.path.join(model.path, "out", "11", "optimization.log")) as f: logs = f.readlines() assert logs[-1][:13] == "Generation5: "
def test_optimize(): optimize( model=model, x_id=range(1, 4), options={ "popsize": 3, "max_generation": 3, "local_search_method": "mutation", "n_children": 15, "overwrite": True, }, ) for paramset in range(1, 4): with open( os.path.join( model.path, "out", f"{paramset:d}", "optimization.log", ) ) as f: logs = f.readlines() assert logs[-1][:13] == "Generation3: " optimize_continue( model=model, x_id=range(1, 4), options={ "popsize": 3, "max_generation": 6, "local_search_method": "Powell", }, ) for paramset in range(1, 4): with open( os.path.join( model.path, "out", f"{paramset:d}", "optimization.log", ) ) as f: logs = f.readlines() assert logs[-1][:13] == "Generation6: " optimize_continue( model=model, x_id=range(1, 4), options={ "popsize": 3, "max_generation": 9, "local_search_method": "DE", }, ) for paramset in range(1, 4): with open( os.path.join( model.path, "out", f"{paramset:d}", "optimization.log", ) ) as f: logs = f.readlines() assert logs[-1][:13] == "Generation9: "
#Model construction import Hass_2017 Hass_2017.show_info() model = Hass_2017.create() #Parameter estimation from biomass import optimize # Estimate 10 parameter sets simultaneously optimize(model=model, start=1, end=10, options={ "popsize": 5, "max_generation": 1000, "allowable_error": 0.5, "local_search_method": "mutation", "n_children": 200 }) #Visualization of simulation results from biomass import run_simulation run_simulation(model, viz_type="average", show_all=False, stdev=True) #Sensitivity analysis from biomass import run_analysis run_analysis(model, target="reaction", metric='integral', style='barplot')
def run_ga_continue(nth_paramset): if not os.path.isdir('./out/%d' % (nth_paramset)): os.mkdir('./out/%d' % (nth_paramset)) optimize(nth_paramset) else: optimize_continue(nth_paramset)