1+ import cr_mech_coli .crm_fit as crm_fit
2+
3+ from cr_bayesian_optim .optimize_bacterialrods import main_bacterialrods_optimization
4+ from cr_bayesian_optim .plotting import *
5+ from cr_bayesian_optim .optimization import *
6+ #from skopt import gp_minimize
7+
8+ def update_test_ABM_framework (settings ):
9+ n_vertices = 8
10+ settings .constants .n_vertices = n_vertices
11+ settings .constants .n_saves = 15
12+ #settings.parameters.damping = crm_fit.SampledFloat(min=0, max=2.5, initial=1.5)
13+ #settings.parameters.damping = 2.0
14+ settings .parameters .potential_type .Mie .en = 10.
15+ settings .parameters .potential_type .Mie .em = 1.5
16+ settings .others = crm_fit .Others (True )
17+ return settings
18+
19+ '''
20+ def custom_optimizer(cost, bnds):
21+ return gp_minimize(cost,
22+ bnds,
23+ acq_func="LCB",
24+ n_calls=20,
25+ n_random_starts=3
26+ random_state=1234)
27+ # Possible variations:
28+ # - Different acquisition functions/kappa/xi/noise-?/
29+ # - Different optimization methods (e.g. differential evolution)
30+ # - Different parameter bounds or initial conditions / different constants in settings - ?
31+ '''
32+
33+
34+ if __name__ == "__main__" :
35+ res = main_bacterialrods_optimization (optimization_bayes )#, update_ABM=update_test_ABM_framework)
36+ #res = main_bacterialrods_optimization(optimization_diff_evolution, update_ABM=update_test_ABM_framework)
37+
38+ # Aquisition functions: # EI/PI: faster but less accurate (?)
39+ # MES: slower, smaller cost / does not allow parallelization
40+ # PVRS: very slow
41+
42+ path_output = 'out/' #bacterialrods_optim/'
43+ add_name = '_EI'
44+
45+ # Save and load optimization result
46+ save_optimization_result (res , path = path_output , add_filename = add_name )
47+ res = load_optimization_result (path = path_output , add_filename = add_name )
48+
49+ # Plotting (only for bayesian optimization):
50+ plot_optimization_convergence_bayes (res , path = path_output , add_name = add_name )
51+ #plot_1D_cost_approximation_bayes(res, path=path_output, add_name=add_name)
52+ plot_objective_projection_bayes (res , path = path_output , add_name = add_name )
0 commit comments