Skip to content

Commit 50a5e88

Browse files
optimize_bacterialrods: main script for bacterial rods optimization
1 parent 8cc5007 commit 50a5e88

File tree

1 file changed

+52
-0
lines changed

1 file changed

+52
-0
lines changed
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
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

Comments
 (0)