Multi-objective BO: Fit of transient photoluminescence (TrPL) and transient microwave conductivity (trMC) with rate equations
This example demonstrates how to fit transient photoluminescence (TrPL) and transient microwave conductivity (trMC) data simultaneously using a multi-objective optimization approach. The model is based on the rate equations for charge carrier dynamics in semiconductors, which include trapping and detraping processes. The model is described by the following set of differential equations:
\[TrPL = I_{PL} k_{direct} n (p + p_0)\]where \(I_{PL}\) is a scaling factor for the PL signal.
\[TrMC = I_{MC} * (r_{\mu}*n + p)\]where \(r_{\mu}\) is the mobility ratio and \(I_{MC}\) is a scaling factor for the TrMC signal.
The data fitted in this notebook is taken from the following publication: C. Kupfer et al., Journal of Material Chemistry C, 2024, 12, 95-102
[1]:
# Import necessary libraries
import warnings, os, sys, shutil
# remove warnings from the output
os.environ["PYTHONWARNINGS"] = "ignore"
warnings.filterwarnings(action='ignore', category=FutureWarning)
warnings.filterwarnings(action='ignore', category=UserWarning)
warnings.filterwarnings(action='ignore', category=RuntimeWarning)
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
from copy import deepcopy
import torch, copy, uuid
import ax, logging
from ax.utils.notebook.plotting import init_notebook_plotting, render
init_notebook_plotting() # for Jupyter notebooks
try:
from optimpv import *
from optimpv.axBOtorch.axUtils import *
from optimpv.RateEqfits.RateEqAgent import RateEqAgent
from optimpv.RateEqfits.RateEqModel import *
from optimpv.RateEqfits.Pumps import *
except Exception as e:
sys.path.append('../') # add the path to the optimpv module
from optimpv import *
from optimpv.axBOtorch.axUtils import *
from optimpv.RateEqfits.RateEqAgent import RateEqAgent
from optimpv.RateEqfits.RateEqModel import *
from optimpv.RateEqfits.Pumps import *
[INFO 08-14 09:47:26] ax.utils.notebook.plotting: Injecting Plotly library into cell. Do not overwrite or delete cell.
[INFO 08-14 09:47:26] ax.utils.notebook.plotting: Please see
(https://ax.dev/tutorials/visualizations.html#Fix-for-plots-that-are-not-rendering)
if visualizations are not rendering.
Define the parameters for the simulation
[2]:
params = []
k_direct = FitParam(name = 'k_direct', value = 3.9e-17, bounds = [1e-18,1e-16], log_scale = True, rescale = True, value_type = 'float', type='range', display_name=r'$k_{\text{direct}}$', unit='m$^{3}$ s$^{-1}$', axis_type = 'log',force_log=True)
params.append(k_direct)
k_trap = FitParam(name = 'k_trap', value = 4e-18, bounds = [1e-19,1e-17], log_scale = True, rescale = True, value_type = 'float', type='range', display_name=r'$k_{\text{trap}}$', unit='m$^{3}$ s$^{-1}$', axis_type = 'log',force_log=True)
params.append(k_trap)
k_detrap = FitParam(name = 'k_detrap', value = 3.1e-18, bounds = [1e-19,1e-17], log_scale = True, rescale = True, value_type = 'float', type='range', display_name=r'$k_{\text{detrap}}$', unit='s$^{-1}$', axis_type = 'log',force_log=True)
params.append(k_detrap)
N_t_bulk = FitParam(name = 'N_t_bulk', value = 1.6e23, bounds = [1e22,5e23], log_scale = True, rescale = True, value_type = 'float', type='range', display_name=r'$N_{\text{t,bulk}}$', unit='m$^{-3}$', axis_type = 'log',force_log=True)
params.append(N_t_bulk)
I_factor_PL = FitParam(name = 'I_factor_PL', value = 1e-32, bounds = [1e-33,1e-31], log_scale = True, rescale = True, value_type = 'float', type='range', display_name=r'$I_{\text{PL}}$', unit='-', axis_type = 'log', force_log=True)
params.append(I_factor_PL)
I_factor_MC = FitParam(name = 'I_factor_MC', value = 2.2e-26, bounds = [1e-27,1e-25], log_scale = True, rescale = True, value_type = 'float', type='range', display_name=r'$I_{\text{PL}}$', unit='-', axis_type = 'log', force_log=True)
params.append(I_factor_MC)
ratio_mu = FitParam(name = 'ratio_mu', value = 4.2, bounds = [1,10], log_scale = True, rescale = True, value_type = 'float', type='range', display_name=r'$\mu_{\text{ratio}}$', unit='-', axis_type = 'linear', force_log=False)
params.append(ratio_mu)
Load and prepare the experimental data
[3]:
# Define the path to the data
curr_dir = os.getcwd()
parent_dir = os.path.abspath('../') # path to the parent directory if not in Notebooks use os.getcwd()
path2data = os.path.join(parent_dir,'Data','perovskite_trPL_trMC')
filenames = ['S25D1_L532_F0.csv','S25D1_L532_F1.csv','S25D1_L532_F2.csv'] # list of filenames to be analyzed
res_dir = os.path.join(parent_dir,'temp') # path to the results directory
# Select Gfracs used for the data
Gfracs = [1, 0.552, 0.290, 0.136, 0.087]
[4]:
# Create a class that contains to do some basic data processing on the data
class Experiment:
""" A set of measurements """
def __init__(self, path2data, filenames, Gfracs, laserCenter=0, num_pts=1e3, take_log=False):
self.path2data = path2data
self.filenames = filenames
self.Gfracs = Gfracs
self.laserCenter = laserCenter
self.num_pts = num_pts
self.take_log = take_log
self.get_data()
pass
def get_data(self):
self.X_raw, self.y_raw_MW, self.y_raw_PL = [],[],[]
for filename in self.filenames:
# Create empty lists to store data
X,y_MW, y_PL = [],[],[]
#Load file and extract data
with open(os.path.join(self.path2data, filename)) as f:
for line in f:
tmp=line.strip("\n").split(",")
X.append(float(tmp[3]))
y_MW.append(float(tmp[4]))
if len(tmp)>8:
y_PL.append(float(tmp[10]))
else:
raise ValueError("The file does not contain PL data")
# Create output arrays
self.X_raw.append(np.array(X))
self.y_raw_MW.append(np.array(y_MW))
self.y_raw_PL.append(np.array(y_PL))
pass
def process_data(self, cut_rise=False, cut_time=None, cut_sigma=False):
# Create empty lists to store data
X_out, y_out_MW, y_out_PL = [],[],[]
self.X_processed, self.y_processed_MW, self.y_processed_PL = [],[],[]
self.signalParams={}
self.background_out_PL=[]
# Data processing:
for X, y_MW, y_PL, Gfrac in zip(self.X_raw, self.y_raw_MW, self.y_raw_PL, self.Gfracs):
# Subtract the background from MW and PL data
index = np.where(X<(-10e-9)) # Calculate the background from the average of the signal up to 10ns before the peak (this buffer is to prevent the rise of the peak to affect the background)
self.signalParams["MW_background"] = np.mean(y_MW[index])
self.signalParams["PL_background"] = np.mean(y_PL[index])
self.signalParams["MW_sigma"] = np.std(y_MW[index])
self.signalParams["PL_sigma"] = np.std(y_PL[index])
y_MW = y_MW - self.signalParams["MW_background"]
y_PL = y_PL - self.signalParams["PL_background"]
print('PL Sigma {}, PL background {}, MW Sigma {}, MW background {}'.format(self.signalParams["PL_sigma"],self.signalParams["PL_background"],self.signalParams["MW_sigma"],self.signalParams["MW_background"]))
# Find the peak position
self.signalParams["index_max_MW"] = np.argmax(abs(y_MW))
self.signalParams["index_max_PL"] = np.argmax(abs(y_PL))
# Find the sign of the peak
self.signalParams["sign_max_MW"] = np.sign(y_MW[self.signalParams["index_max_MW"]])
self.signalParams["sign_max_PL"] = np.sign(y_PL[self.signalParams["index_max_PL"]])
# Remove datapoints at the beginning of the signal
if cut_rise == "MW":
index = np.where(X >= X[self.signalParams["index_max_MW"]])
elif cut_rise == "PL":
index = np.where(X >= X[self.signalParams["index_max_PL"]])
elif cut_rise == "Time":
index = np.where(X > cut_time)
else:
index = np.where(X > self.laserCenter)
X = X[index]
# Remove datapoints before the laser peak from the MW and PL signal and make sure, that the peak is positive
y_MW = y_MW[index]*self.signalParams["sign_max_MW"]
y_PL = y_PL[index]*self.signalParams["sign_max_PL"]
# Remove datapoints that aren't significant enough (in either measurement)
if cut_sigma:
sigma = float(cut_sigma)
index = np.where((np.abs(y_MW)>sigma*self.signalParams["MW_sigma"]) & (np.abs(y_PL)>sigma*self.signalParams["PL_sigma"]))
X = X[index]
y_MW = y_MW[index]
y_PL = y_PL[index]
# Interpolate to get num_pts
X_interp = np.geomspace(X[1],X[-1],int(self.num_pts))
# Add 0 to the beginning of X_interp
X_interp = np.insert(X_interp,0,0)
y_interp_MW = np.interp(X_interp,X,y_MW)
y_interp_PL = np.interp(X_interp,X,y_PL)
# Take the log of the data
if self.take_log:
y_interp_MW = np.log10(y_interp_MW)
y_interp_PL = np.log10(y_interp_PL)
# Remove all data points where either signal is NaN
mask_NaNs = np.logical_or(np.isnan(y_interp_PL), np.isnan(y_interp_MW))
X_interp = X_interp[~mask_NaNs]
y_interp_MW = y_interp_MW[~mask_NaNs]
y_interp_PL = y_interp_PL[~mask_NaNs]
print('Removed {} Data Points while taking the logarithm!'.format(np.count_nonzero(mask_NaNs)))
# Append the data to the output
for i in range(len(X_interp)):
X_out.append([X_interp[i],Gfrac])
y_out_MW.append(y_interp_MW[i])
y_out_PL.append(y_interp_PL[i])
self.background_out_PL.append(self.signalParams["PL_sigma"]*np.sqrt(2/np.pi))
self.X_processed.append(np.array(X_interp))
self.y_processed_MW.append(np.array(y_interp_MW))
self.y_processed_PL.append(np.array(y_interp_PL))
# Convert the output to arrays
self.X = np.array(X_out)
self.y_MW = np.array(y_out_MW)
self.y_PL = np.array(y_out_PL)
pass
[5]:
# Load the data and process it
data_exp = Experiment(path2data, filenames, Gfracs, laserCenter=2.8E-8, take_log=False)
data_exp.process_data(cut_rise=False, cut_time=None ,cut_sigma=0)
X = data_exp.X
y_MW = data_exp.y_MW
y_PL = data_exp.y_PL
back_PL = data_exp.background_out_PL
# remove all point where PL is below 0
mask = np.where(y_PL<0)
y_PL = np.delete(y_PL,mask)
X = np.delete(X,mask,axis=0)
y_MW = np.delete(y_MW,mask)
back_PL = np.delete(back_PL,mask)
# remove all point where MW is below 0
mask = np.where(y_MW<0)
y_MW = np.delete(y_MW,mask)
X = np.delete(X,mask,axis=0)
y_PL = np.delete(y_PL,mask)
back_PL = np.delete(back_PL,mask)
from sklearn.preprocessing import minmax_scale
# Assign weights based on the signal strength
weight_PL = None #1/(np.abs(y_PL))
weight_MW = None #1/(np.abs(y_MW))
# weight_MW = minmax_scale(weight_MW, feature_range=(1,1000))
PL Sigma 2.9602988876119335e-05, PL background -0.003598912016122306, MW Sigma 3.780285415804477e-05, MW background -0.0007008701257225716
PL Sigma 3.0399603508164594e-05, PL background -0.003610847480546366, MW Sigma 4.040993545427417e-05, MW background -0.0008486578742130771
PL Sigma 2.5489343983201138e-05, PL background -0.0031102876606446113, MW Sigma 3.75774071903544e-05, MW background -0.0009373141997225259
[6]:
# RateEqModel parameters
fpu = 1e3 # Frequency of the pump laser in Hz
N0 = 1.041e24 # Initial carrier density in m-3
background = 0 # Background illumination
Gfracs = [1, 0.552, 0.290] # Gfracs used for the data
# Define the Agent and the target metric/loss function
metric = 'mse'
loss = 'soft_l1'
pump_args = {'N0': N0, 'fpu': fpu , 'background' : background, }
# 50 log spaced points data X, y_PL, y_MW
# t_min except 0
num_pts = 20
t_min = X[X[:,0]>0,0].min()
X_log = np.geomspace(t_min,X[:,0].max(),num_pts)
X_log = np.insert(X_log,0,0)
# get teh closest 50 points to the log spaced points
X_50 = np.zeros((int(len(X_log)*len(Gfracs)),2))
y_PL_50 = np.zeros(int(len(X_log)*len(Gfracs)))
y_MW_50 = np.zeros(int(len(X_log)*len(Gfracs)))
idx_main = 0
for g in Gfracs:
idx = 0
for i in range(len(X_log)):
index = np.argmin(abs(X[X[:,1]==g,0]-X_log[idx]))
X_50[idx_main] = X[X[:,1]==g][index]
y_PL_50[idx_main] = y_PL[X[:,1]==g][index]
y_MW_50[idx_main] = y_MW[X[:,1]==g][index]
idx += 1
idx_main += 1
RateEq = RateEqAgent(params, [X,X], [y_PL,y_MW], model = BTD_model, pump_model = initial_carrier_density, pump_args = pump_args, fixed_model_args = {}, metric = [metric,metric], loss = [loss,loss], threshold=[0.5,0.5],minimize=[True,True],exp_format=['trPL','trMC'],detection_limit=1e-5, weight=[weight_PL,weight_MW], compare_type ='log')
# Not necessary, but here we run the simulation with the parameters to test the model
# Run the simulation with the parameters
y_PL_fit = RateEq.run(parameters={},exp_format='trPL')
y_MC_fit = RateEq.run(parameters={},exp_format='trMC')
print(RateEq.run_Ax(parameters={}))
# Make a plot with 2 subplots for PL and MW
fig, (ax1, ax2) = plt.subplots(1, 2,figsize=(10,5))
for i in range(len(data_exp.X_processed)):
ax1.semilogx(data_exp.X_processed[i], data_exp.y_processed_PL[i], 'o', label=data_exp.Gfracs[i],color='C'+str(i),alpha=0.025)
ax1.plot(X[X[:,1]==Gfracs[i],0], y_PL_fit[X[:,1]==Gfracs[i]],'-',label=str(Gfracs[i]), color = 'C'+str(i), linewidth=2)
ax2.semilogx(data_exp.X_processed[i], data_exp.y_processed_MW[i], 'o', label=data_exp.Gfracs[i],color='C'+str(i),alpha=0.025)
ax2.plot(X[X[:,1]==Gfracs[i],0], y_MC_fit[X[:,1]==Gfracs[i]],'-',label=str(Gfracs[i]), color = 'C'+str(i), linewidth=2)
# ax1.plot(X_50[X_50[:,1]==Gfracs[i],0], y_PL_50[X_50[:,1]==Gfracs[i]],'o',label=str(Gfracs[i]), color = 'r')
# ax2.plot(X_50[X_50[:,1]==Gfracs[i],0], y_MW_50[X_50[:,1]==Gfracs[i]],'o',label=str(Gfracs[i]), color = 'r')
ax1.set_xscale('log')
ax1.set_yscale('log')
ax2.set_xscale('log')
ax2.set_yscale('log')
ax1.set_xlabel('Time (s)')
ax1.set_ylabel('PL (a.u.)')
ax2.set_xlabel('Time (s)')
ax2.set_ylabel('MW (a.u.)')
{'RateEq_trPL_mse_soft_l1': 0.06916844589940263, 'RateEq_trMC_mse_soft_l1': 0.0019317690776468055}
[6]:
Text(0, 0.5, 'MW (a.u.)')

Run the optimization
[7]:
from optimpv.axBOtorch.axBOtorchOptimizer import axBOtorchOptimizer
from botorch.acquisition.multi_objective.logei import qLogExpectedHypervolumeImprovement
from ax.adapter.transforms.standardize_y import StandardizeY
from ax.adapter.transforms.unit_x import UnitX
from ax.adapter.transforms.remove_fixed import RemoveFixed
from ax.adapter.transforms.log import Log
from ax.generators.torch.botorch_modular.utils import ModelConfig
from ax.generators.torch.botorch_modular.surrogate import SurrogateSpec
from gpytorch.kernels import MaternKernel
from gpytorch.kernels import ScaleKernel
from botorch.models import SingleTaskGP
model_gen_kwargs_list = None
parameter_constraints = None
model_kwargs_list = [{},{},{"torch_device":torch.device("cuda" if torch.cuda.is_available() else "cpu"),'botorch_acqf_class':qLogExpectedHypervolumeImprovement,'transforms':[RemoveFixed, Log,UnitX, StandardizeY],'surrogate_spec':SurrogateSpec(model_configs=[ModelConfig(botorch_model_class=SingleTaskGP,covar_module_class=ScaleKernel, covar_module_options={'base_kernel':MaternKernel(nu=2.5, ard_num_dims=len(params))})])}]
optimizer = axBOtorchOptimizer(params = params, agents = [RateEq], models = ['CENTER','SOBOL','BOTORCH_MODULAR'],n_batches = [1,1,40], batch_size = [1,10,2], ax_client = None, max_parallelism = -1, model_kwargs_list = model_kwargs_list, model_gen_kwargs_list = None, name = 'ax_opti')
[8]:
optimizer.optimize() # run the optimization with ax
[INFO 08-14 09:47:27] optimpv.axBOtorchOptimizer: Trial 0 with parameters: {'k_direct': -17.0, 'k_trap': -18.0, 'k_detrap': -18.0, 'N_t_bulk': 22.84948500216801, 'I_factor_PL': -32.0, 'I_factor_MC': -26.0, 'ratio_mu': 3.1622776601683795}
[INFO 08-14 09:47:27] optimpv.axBOtorchOptimizer: Trial 0 completed with results: {'RateEq_trPL_mse_soft_l1': 0.2124265652150572, 'RateEq_trMC_mse_soft_l1': 0.041115045912993864} and parameters: {'k_direct': -17.0, 'k_trap': -18.0, 'k_detrap': -18.0, 'N_t_bulk': 22.84948500216801, 'I_factor_PL': -32.0, 'I_factor_MC': -26.0, 'ratio_mu': 3.1622776601683795}
[INFO 08-14 09:47:27] optimpv.axBOtorchOptimizer: Trial 1 with parameters: {'k_direct': -17.670859748497605, 'k_trap': -18.82690000720322, 'k_detrap': -17.1558129042387, 'N_t_bulk': 23.070748492871672, 'I_factor_PL': -31.550948724150658, 'I_factor_MC': -26.365913106128573, 'ratio_mu': 3.430605637221931}
[INFO 08-14 09:47:27] optimpv.axBOtorchOptimizer: Trial 2 with parameters: {'k_direct': -16.033101772889495, 'k_trap': -17.286394026130438, 'k_detrap': -18.910255445167422, 'N_t_bulk': 22.732100383885435, 'I_factor_PL': -32.92135407216847, 'I_factor_MC': -25.170548321679235, 'ratio_mu': 2.075805918238392}
[INFO 08-14 09:47:27] optimpv.axBOtorchOptimizer: Trial 3 with parameters: {'k_direct': -16.534224066883326, 'k_trap': -18.181128572672606, 'k_detrap': -17.780641078948975, 'N_t_bulk': 23.65034819011316, 'I_factor_PL': -32.07697460986674, 'I_factor_MC': -25.86129635386169, 'ratio_mu': 9.356319722415943}
[INFO 08-14 09:47:27] optimpv.axBOtorchOptimizer: Trial 4 with parameters: {'k_direct': -17.16807210445404, 'k_trap': -17.705579238012433, 'k_detrap': -18.03609928302467, 'N_t_bulk': 22.369458094600645, 'I_factor_PL': -31.458553217351437, 'I_factor_MC': -26.665903078392148, 'ratio_mu': 1.341392104254033}
[INFO 08-14 09:47:27] optimpv.axBOtorchOptimizer: Trial 5 with parameters: {'k_direct': -17.401687882840633, 'k_trap': -18.277769397944212, 'k_detrap': -18.633117279037833, 'N_t_bulk': 22.0139305082108, 'I_factor_PL': -31.066325472667813, 'I_factor_MC': -26.193825386464596, 'ratio_mu': 6.591179333670402}
[INFO 08-14 09:47:27] optimpv.axBOtorchOptimizer: Trial 6 with parameters: {'k_direct': -16.76979310438037, 'k_trap': -17.86677952297032, 'k_detrap': -17.425630800426006, 'N_t_bulk': 23.361290177175928, 'I_factor_PL': -32.461632803082466, 'I_factor_MC': -25.279724087566137, 'ratio_mu': 1.090227382408385}
[INFO 08-14 09:47:27] optimpv.axBOtorchOptimizer: Trial 7 with parameters: {'k_direct': -16.272134436294436, 'k_trap': -18.73013568110764, 'k_detrap': -18.258433585986495, 'N_t_bulk': 22.609794302136457, 'I_factor_PL': -32.555737905204296, 'I_factor_MC': -25.68870709091425, 'ratio_mu': 4.224644908902404}
[INFO 08-14 09:47:27] optimpv.axBOtorchOptimizer: Trial 8 with parameters: {'k_direct': -17.900126891210675, 'k_trap': -17.12531342729926, 'k_detrap': -17.55000964552164, 'N_t_bulk': 22.988158412307833, 'I_factor_PL': -31.908507535234094, 'I_factor_MC': -26.774573247879744, 'ratio_mu': 2.944265732037684}
[INFO 08-14 09:47:27] optimpv.axBOtorchOptimizer: Trial 9 with parameters: {'k_direct': -17.785692831501365, 'k_trap': -18.082892518490553, 'k_detrap': -18.460875116288662, 'N_t_bulk': 23.426698181782825, 'I_factor_PL': -32.84634065628052, 'I_factor_MC': -26.51999855041504, 'ratio_mu': 5.926941591743276}
[INFO 08-14 09:47:27] optimpv.axBOtorchOptimizer: Trial 10 with parameters: {'k_direct': -16.417587706819177, 'k_trap': -17.56162785179913, 'k_detrap': -17.730929603800178, 'N_t_bulk': 22.17251003793758, 'I_factor_PL': -31.74412357993424, 'I_factor_MC': -25.94964473322034, 'ratio_mu': 1.308508921469958}
[INFO 08-14 09:47:28] optimpv.axBOtorchOptimizer: Trial 1 completed with results: {'RateEq_trPL_mse_soft_l1': 0.8306102041298384, 'RateEq_trMC_mse_soft_l1': 0.14420883791691175} and parameters: {'k_direct': -17.670859748497605, 'k_trap': -18.82690000720322, 'k_detrap': -17.1558129042387, 'N_t_bulk': 23.070748492871672, 'I_factor_PL': -31.550948724150658, 'I_factor_MC': -26.365913106128573, 'ratio_mu': 3.430605637221931}
[INFO 08-14 09:47:28] optimpv.axBOtorchOptimizer: Trial 2 completed with results: {'RateEq_trPL_mse_soft_l1': 0.7119258782589242, 'RateEq_trMC_mse_soft_l1': 0.04915297586298717} and parameters: {'k_direct': -16.033101772889495, 'k_trap': -17.286394026130438, 'k_detrap': -18.910255445167422, 'N_t_bulk': 22.732100383885435, 'I_factor_PL': -32.92135407216847, 'I_factor_MC': -25.170548321679235, 'ratio_mu': 2.075805918238392}
[INFO 08-14 09:47:28] optimpv.axBOtorchOptimizer: Trial 3 completed with results: {'RateEq_trPL_mse_soft_l1': 0.06585801093089749, 'RateEq_trMC_mse_soft_l1': 0.032704464760052065} and parameters: {'k_direct': -16.534224066883326, 'k_trap': -18.181128572672606, 'k_detrap': -17.780641078948975, 'N_t_bulk': 23.65034819011316, 'I_factor_PL': -32.07697460986674, 'I_factor_MC': -25.86129635386169, 'ratio_mu': 9.356319722415943}
[INFO 08-14 09:47:28] optimpv.axBOtorchOptimizer: Trial 4 completed with results: {'RateEq_trPL_mse_soft_l1': 0.7386904541268153, 'RateEq_trMC_mse_soft_l1': 0.5398420988065009} and parameters: {'k_direct': -17.16807210445404, 'k_trap': -17.705579238012433, 'k_detrap': -18.03609928302467, 'N_t_bulk': 22.369458094600645, 'I_factor_PL': -31.458553217351437, 'I_factor_MC': -26.665903078392148, 'ratio_mu': 1.341392104254033}
[INFO 08-14 09:47:28] optimpv.axBOtorchOptimizer: Trial 5 completed with results: {'RateEq_trPL_mse_soft_l1': 1.3695584468366273, 'RateEq_trMC_mse_soft_l1': 0.21009375473808678} and parameters: {'k_direct': -17.401687882840633, 'k_trap': -18.277769397944212, 'k_detrap': -18.633117279037833, 'N_t_bulk': 22.0139305082108, 'I_factor_PL': -31.066325472667813, 'I_factor_MC': -26.193825386464596, 'ratio_mu': 6.591179333670402}
[INFO 08-14 09:47:28] optimpv.axBOtorchOptimizer: Trial 6 completed with results: {'RateEq_trPL_mse_soft_l1': 0.1390562706842795, 'RateEq_trMC_mse_soft_l1': 0.12069243474906655} and parameters: {'k_direct': -16.76979310438037, 'k_trap': -17.86677952297032, 'k_detrap': -17.425630800426006, 'N_t_bulk': 23.361290177175928, 'I_factor_PL': -32.461632803082466, 'I_factor_MC': -25.279724087566137, 'ratio_mu': 1.090227382408385}
[INFO 08-14 09:47:28] optimpv.axBOtorchOptimizer: Trial 7 completed with results: {'RateEq_trPL_mse_soft_l1': 0.2615035985072862, 'RateEq_trMC_mse_soft_l1': 0.037987807790511585} and parameters: {'k_direct': -16.272134436294436, 'k_trap': -18.73013568110764, 'k_detrap': -18.258433585986495, 'N_t_bulk': 22.609794302136457, 'I_factor_PL': -32.555737905204296, 'I_factor_MC': -25.68870709091425, 'ratio_mu': 4.224644908902404}
[INFO 08-14 09:47:28] optimpv.axBOtorchOptimizer: Trial 8 completed with results: {'RateEq_trPL_mse_soft_l1': 0.4473813993500424, 'RateEq_trMC_mse_soft_l1': 0.32039813918241666} and parameters: {'k_direct': -17.900126891210675, 'k_trap': -17.12531342729926, 'k_detrap': -17.55000964552164, 'N_t_bulk': 22.988158412307833, 'I_factor_PL': -31.908507535234094, 'I_factor_MC': -26.774573247879744, 'ratio_mu': 2.944265732037684}
[INFO 08-14 09:47:28] optimpv.axBOtorchOptimizer: Trial 9 completed with results: {'RateEq_trPL_mse_soft_l1': 0.6927414217980199, 'RateEq_trMC_mse_soft_l1': 0.1290980310351877} and parameters: {'k_direct': -17.785692831501365, 'k_trap': -18.082892518490553, 'k_detrap': -18.460875116288662, 'N_t_bulk': 23.426698181782825, 'I_factor_PL': -32.84634065628052, 'I_factor_MC': -26.51999855041504, 'ratio_mu': 5.926941591743276}
[INFO 08-14 09:47:28] optimpv.axBOtorchOptimizer: Trial 10 completed with results: {'RateEq_trPL_mse_soft_l1': 0.1458586340611654, 'RateEq_trMC_mse_soft_l1': 0.31185747922430807} and parameters: {'k_direct': -16.417587706819177, 'k_trap': -17.56162785179913, 'k_detrap': -17.730929603800178, 'N_t_bulk': 22.17251003793758, 'I_factor_PL': -31.74412357993424, 'I_factor_MC': -25.94964473322034, 'ratio_mu': 1.308508921469958}
[INFO 08-14 09:47:32] optimpv.axBOtorchOptimizer: Trial 11 with parameters: {'k_direct': -16.0, 'k_trap': -18.716799330791837, 'k_detrap': -19.0, 'N_t_bulk': 22.0, 'I_factor_PL': -32.16713565025098, 'I_factor_MC': -25.0, 'ratio_mu': 1.0}
[INFO 08-14 09:47:32] optimpv.axBOtorchOptimizer: Trial 12 with parameters: {'k_direct': -16.0, 'k_trap': -18.660458384371893, 'k_detrap': -18.592740950140634, 'N_t_bulk': 22.186832400594145, 'I_factor_PL': -32.22888743443646, 'I_factor_MC': -26.728574944505677, 'ratio_mu': 3.0634110657055564}
[INFO 08-14 09:47:33] optimpv.axBOtorchOptimizer: Trial 11 completed with results: {'RateEq_trPL_mse_soft_l1': 0.15164809152053627, 'RateEq_trMC_mse_soft_l1': 0.012869399916969115} and parameters: {'k_direct': -16.0, 'k_trap': -18.716799330791837, 'k_detrap': -19.0, 'N_t_bulk': 22.0, 'I_factor_PL': -32.16713565025098, 'I_factor_MC': -25.0, 'ratio_mu': 1.0}
[INFO 08-14 09:47:33] optimpv.axBOtorchOptimizer: Trial 12 completed with results: {'RateEq_trPL_mse_soft_l1': 0.18175678829017272, 'RateEq_trMC_mse_soft_l1': 1.4323909650291822} and parameters: {'k_direct': -16.0, 'k_trap': -18.660458384371893, 'k_detrap': -18.592740950140634, 'N_t_bulk': 22.186832400594145, 'I_factor_PL': -32.22888743443646, 'I_factor_MC': -26.728574944505677, 'ratio_mu': 3.0634110657055564}
[INFO 08-14 09:47:37] optimpv.axBOtorchOptimizer: Trial 13 with parameters: {'k_direct': -16.540709315509783, 'k_trap': -18.373775350836873, 'k_detrap': -17.508770284956825, 'N_t_bulk': 22.56334079375068, 'I_factor_PL': -32.06708114044625, 'I_factor_MC': -25.511795337869522, 'ratio_mu': 6.47978032018717}
[INFO 08-14 09:47:37] optimpv.axBOtorchOptimizer: Trial 14 with parameters: {'k_direct': -16.68766931183837, 'k_trap': -18.689054032496067, 'k_detrap': -18.211795628221868, 'N_t_bulk': 23.534303657173105, 'I_factor_PL': -31.67813818396366, 'I_factor_MC': -25.0, 'ratio_mu': 7.662518255821472}
[INFO 08-14 09:47:37] optimpv.axBOtorchOptimizer: Trial 13 completed with results: {'RateEq_trPL_mse_soft_l1': 0.07662489557927321, 'RateEq_trMC_mse_soft_l1': 0.2001470153153586} and parameters: {'k_direct': -16.540709315509783, 'k_trap': -18.373775350836873, 'k_detrap': -17.508770284956825, 'N_t_bulk': 22.56334079375068, 'I_factor_PL': -32.06708114044625, 'I_factor_MC': -25.511795337869522, 'ratio_mu': 6.47978032018717}
[INFO 08-14 09:47:37] optimpv.axBOtorchOptimizer: Trial 14 completed with results: {'RateEq_trPL_mse_soft_l1': 0.2835129470453279, 'RateEq_trMC_mse_soft_l1': 0.9479971156465652} and parameters: {'k_direct': -16.68766931183837, 'k_trap': -18.689054032496067, 'k_detrap': -18.211795628221868, 'N_t_bulk': 23.534303657173105, 'I_factor_PL': -31.67813818396366, 'I_factor_MC': -25.0, 'ratio_mu': 7.662518255821472}
[INFO 08-14 09:47:40] optimpv.axBOtorchOptimizer: Trial 15 with parameters: {'k_direct': -16.648749793264297, 'k_trap': -18.138471300711373, 'k_detrap': -17.277426073061516, 'N_t_bulk': 23.024026062564538, 'I_factor_PL': -32.245277112991424, 'I_factor_MC': -25.797835432759246, 'ratio_mu': 1.476709503938623}
[INFO 08-14 09:47:40] optimpv.axBOtorchOptimizer: Trial 16 with parameters: {'k_direct': -16.0, 'k_trap': -17.54880451722571, 'k_detrap': -17.047580795778288, 'N_t_bulk': 23.673691495215323, 'I_factor_PL': -32.2362166900493, 'I_factor_MC': -25.43304814344934, 'ratio_mu': 8.326639564508913}
[INFO 08-14 09:47:40] optimpv.axBOtorchOptimizer: Trial 15 completed with results: {'RateEq_trPL_mse_soft_l1': 0.08178332861720383, 'RateEq_trMC_mse_soft_l1': 0.07407187171331442} and parameters: {'k_direct': -16.648749793264297, 'k_trap': -18.138471300711373, 'k_detrap': -17.277426073061516, 'N_t_bulk': 23.024026062564538, 'I_factor_PL': -32.245277112991424, 'I_factor_MC': -25.797835432759246, 'ratio_mu': 1.476709503938623}
[INFO 08-14 09:47:40] optimpv.axBOtorchOptimizer: Trial 16 completed with results: {'RateEq_trPL_mse_soft_l1': 0.33307012890319765, 'RateEq_trMC_mse_soft_l1': 0.016035199364073716} and parameters: {'k_direct': -16.0, 'k_trap': -17.54880451722571, 'k_detrap': -17.047580795778288, 'N_t_bulk': 23.673691495215323, 'I_factor_PL': -32.2362166900493, 'I_factor_MC': -25.43304814344934, 'ratio_mu': 8.326639564508913}
[INFO 08-14 09:47:44] optimpv.axBOtorchOptimizer: Trial 17 with parameters: {'k_direct': -16.0, 'k_trap': -19.0, 'k_detrap': -19.0, 'N_t_bulk': 22.0, 'I_factor_PL': -32.314335336233846, 'I_factor_MC': -25.0, 'ratio_mu': 1.0}
[INFO 08-14 09:47:44] optimpv.axBOtorchOptimizer: Trial 18 with parameters: {'k_direct': -17.229933183558867, 'k_trap': -19.0, 'k_detrap': -19.0, 'N_t_bulk': 23.69897000433602, 'I_factor_PL': -32.4859009670012, 'I_factor_MC': -25.78017834116488, 'ratio_mu': 10.0}
[INFO 08-14 09:47:44] optimpv.axBOtorchOptimizer: Trial 17 completed with results: {'RateEq_trPL_mse_soft_l1': 0.22928528702337392, 'RateEq_trMC_mse_soft_l1': 0.015425658177466772} and parameters: {'k_direct': -16.0, 'k_trap': -19.0, 'k_detrap': -19.0, 'N_t_bulk': 22.0, 'I_factor_PL': -32.314335336233846, 'I_factor_MC': -25.0, 'ratio_mu': 1.0}
[INFO 08-14 09:47:44] optimpv.axBOtorchOptimizer: Trial 18 completed with results: {'RateEq_trPL_mse_soft_l1': 0.2371652913671718, 'RateEq_trMC_mse_soft_l1': 0.5688596705468565} and parameters: {'k_direct': -17.229933183558867, 'k_trap': -19.0, 'k_detrap': -19.0, 'N_t_bulk': 23.69897000433602, 'I_factor_PL': -32.4859009670012, 'I_factor_MC': -25.78017834116488, 'ratio_mu': 10.0}
[INFO 08-14 09:47:48] optimpv.axBOtorchOptimizer: Trial 19 with parameters: {'k_direct': -16.425333770915152, 'k_trap': -18.43000380212545, 'k_detrap': -18.991085287003468, 'N_t_bulk': 22.92753152784255, 'I_factor_PL': -32.38692967070929, 'I_factor_MC': -25.326510438212036, 'ratio_mu': 1.1418715570853575}
[INFO 08-14 09:47:48] optimpv.axBOtorchOptimizer: Trial 20 with parameters: {'k_direct': -16.388186073960867, 'k_trap': -17.047443139236737, 'k_detrap': -18.819337809537096, 'N_t_bulk': 23.026921562169434, 'I_factor_PL': -32.239811521658694, 'I_factor_MC': -25.73503802253468, 'ratio_mu': 1.6446527480275714}
[INFO 08-14 09:47:48] optimpv.axBOtorchOptimizer: Trial 19 completed with results: {'RateEq_trPL_mse_soft_l1': 0.12802307163660487, 'RateEq_trMC_mse_soft_l1': 0.014282875629603176} and parameters: {'k_direct': -16.425333770915152, 'k_trap': -18.43000380212545, 'k_detrap': -18.991085287003468, 'N_t_bulk': 22.92753152784255, 'I_factor_PL': -32.38692967070929, 'I_factor_MC': -25.326510438212036, 'ratio_mu': 1.1418715570853575}
[INFO 08-14 09:47:48] optimpv.axBOtorchOptimizer: Trial 20 completed with results: {'RateEq_trPL_mse_soft_l1': 0.13239258254208774, 'RateEq_trMC_mse_soft_l1': 0.11350629827540315} and parameters: {'k_direct': -16.388186073960867, 'k_trap': -17.047443139236737, 'k_detrap': -18.819337809537096, 'N_t_bulk': 23.026921562169434, 'I_factor_PL': -32.239811521658694, 'I_factor_MC': -25.73503802253468, 'ratio_mu': 1.6446527480275714}
[INFO 08-14 09:47:51] optimpv.axBOtorchOptimizer: Trial 21 with parameters: {'k_direct': -16.70479667511333, 'k_trap': -18.39595493846553, 'k_detrap': -17.076337370532727, 'N_t_bulk': 23.249344109498256, 'I_factor_PL': -32.06608082518063, 'I_factor_MC': -25.938921594922924, 'ratio_mu': 9.428835328311632}
[INFO 08-14 09:47:51] optimpv.axBOtorchOptimizer: Trial 22 with parameters: {'k_direct': -16.332620626540187, 'k_trap': -17.754655520486523, 'k_detrap': -17.327589923386068, 'N_t_bulk': 23.20690799294612, 'I_factor_PL': -32.380885107724374, 'I_factor_MC': -25.160181300248368, 'ratio_mu': 5.083279012491543}
[INFO 08-14 09:47:51] optimpv.axBOtorchOptimizer: Trial 21 completed with results: {'RateEq_trPL_mse_soft_l1': 0.09952440853485367, 'RateEq_trMC_mse_soft_l1': 0.10412501818584019} and parameters: {'k_direct': -16.70479667511333, 'k_trap': -18.39595493846553, 'k_detrap': -17.076337370532727, 'N_t_bulk': 23.249344109498256, 'I_factor_PL': -32.06608082518063, 'I_factor_MC': -25.938921594922924, 'ratio_mu': 9.428835328311632}
[INFO 08-14 09:47:51] optimpv.axBOtorchOptimizer: Trial 22 completed with results: {'RateEq_trPL_mse_soft_l1': 0.16463967909825694, 'RateEq_trMC_mse_soft_l1': 0.20870310921272361} and parameters: {'k_direct': -16.332620626540187, 'k_trap': -17.754655520486523, 'k_detrap': -17.327589923386068, 'N_t_bulk': 23.20690799294612, 'I_factor_PL': -32.380885107724374, 'I_factor_MC': -25.160181300248368, 'ratio_mu': 5.083279012491543}
[INFO 08-14 09:47:54] optimpv.axBOtorchOptimizer: Trial 23 with parameters: {'k_direct': -16.514454108208444, 'k_trap': -18.71928325981853, 'k_detrap': -18.687495514128337, 'N_t_bulk': 23.40399246299772, 'I_factor_PL': -32.4408692447768, 'I_factor_MC': -25.502073668034768, 'ratio_mu': 1.5937962295313104}
[INFO 08-14 09:47:54] optimpv.axBOtorchOptimizer: Trial 24 with parameters: {'k_direct': -18.0, 'k_trap': -17.70556265477529, 'k_detrap': -18.223099671074674, 'N_t_bulk': 23.16558072937316, 'I_factor_PL': -33.0, 'I_factor_MC': -25.0, 'ratio_mu': 1.842026525973906}
[INFO 08-14 09:47:54] optimpv.axBOtorchOptimizer: Trial 23 completed with results: {'RateEq_trPL_mse_soft_l1': 0.13641139215750897, 'RateEq_trMC_mse_soft_l1': 0.012182534569581627} and parameters: {'k_direct': -16.514454108208444, 'k_trap': -18.71928325981853, 'k_detrap': -18.687495514128337, 'N_t_bulk': 23.40399246299772, 'I_factor_PL': -32.4408692447768, 'I_factor_MC': -25.502073668034768, 'ratio_mu': 1.5937962295313104}
[INFO 08-14 09:47:54] optimpv.axBOtorchOptimizer: Trial 24 completed with results: {'RateEq_trPL_mse_soft_l1': 0.9817630307624801, 'RateEq_trMC_mse_soft_l1': 1.433628419775518} and parameters: {'k_direct': -18.0, 'k_trap': -17.70556265477529, 'k_detrap': -18.223099671074674, 'N_t_bulk': 23.16558072937316, 'I_factor_PL': -33.0, 'I_factor_MC': -25.0, 'ratio_mu': 1.842026525973906}
[INFO 08-14 09:47:57] optimpv.axBOtorchOptimizer: Trial 25 with parameters: {'k_direct': -16.587337159220223, 'k_trap': -18.769290973279052, 'k_detrap': -18.595094569784024, 'N_t_bulk': 23.640186465665124, 'I_factor_PL': -32.33265571940023, 'I_factor_MC': -25.5796846909423, 'ratio_mu': 2.4890096213776327}
[INFO 08-14 09:47:57] optimpv.axBOtorchOptimizer: Trial 26 with parameters: {'k_direct': -16.650902500377487, 'k_trap': -17.533324753490948, 'k_detrap': -18.131865473365423, 'N_t_bulk': 22.111566657017942, 'I_factor_PL': -32.131432591372025, 'I_factor_MC': -25.77986037055342, 'ratio_mu': 1.0593176900885966}
[INFO 08-14 09:47:57] optimpv.axBOtorchOptimizer: Trial 25 completed with results: {'RateEq_trPL_mse_soft_l1': 0.09525244181425396, 'RateEq_trMC_mse_soft_l1': 0.02239755965213508} and parameters: {'k_direct': -16.587337159220223, 'k_trap': -18.769290973279052, 'k_detrap': -18.595094569784024, 'N_t_bulk': 23.640186465665124, 'I_factor_PL': -32.33265571940023, 'I_factor_MC': -25.5796846909423, 'ratio_mu': 2.4890096213776327}
[INFO 08-14 09:47:57] optimpv.axBOtorchOptimizer: Trial 26 completed with results: {'RateEq_trPL_mse_soft_l1': 0.08520389999767763, 'RateEq_trMC_mse_soft_l1': 0.0865221663062532} and parameters: {'k_direct': -16.650902500377487, 'k_trap': -17.533324753490948, 'k_detrap': -18.131865473365423, 'N_t_bulk': 22.111566657017942, 'I_factor_PL': -32.131432591372025, 'I_factor_MC': -25.77986037055342, 'ratio_mu': 1.0593176900885966}
[INFO 08-14 09:48:01] optimpv.axBOtorchOptimizer: Trial 27 with parameters: {'k_direct': -16.580558471191388, 'k_trap': -17.958762010961824, 'k_detrap': -18.852904044258437, 'N_t_bulk': 22.335795002928023, 'I_factor_PL': -32.37941745255305, 'I_factor_MC': -25.544685392015705, 'ratio_mu': 8.490538778410093}
[INFO 08-14 09:48:01] optimpv.axBOtorchOptimizer: Trial 28 with parameters: {'k_direct': -16.65830166499865, 'k_trap': -18.93218392016848, 'k_detrap': -18.710666839349063, 'N_t_bulk': 22.887190465519257, 'I_factor_PL': -32.25620479590659, 'I_factor_MC': -25.9631300408524, 'ratio_mu': 3.4329839951049426}
[INFO 08-14 09:48:01] optimpv.axBOtorchOptimizer: Trial 27 completed with results: {'RateEq_trPL_mse_soft_l1': 0.10699451166197971, 'RateEq_trMC_mse_soft_l1': 0.2652166063274346} and parameters: {'k_direct': -16.580558471191388, 'k_trap': -17.958762010961824, 'k_detrap': -18.852904044258437, 'N_t_bulk': 22.335795002928023, 'I_factor_PL': -32.37941745255305, 'I_factor_MC': -25.544685392015705, 'ratio_mu': 8.490538778410093}
[INFO 08-14 09:48:01] optimpv.axBOtorchOptimizer: Trial 28 completed with results: {'RateEq_trPL_mse_soft_l1': 0.08558411659408893, 'RateEq_trMC_mse_soft_l1': 0.04648032284372494} and parameters: {'k_direct': -16.65830166499865, 'k_trap': -18.93218392016848, 'k_detrap': -18.710666839349063, 'N_t_bulk': 22.887190465519257, 'I_factor_PL': -32.25620479590659, 'I_factor_MC': -25.9631300408524, 'ratio_mu': 3.4329839951049426}
[INFO 08-14 09:48:07] optimpv.axBOtorchOptimizer: Trial 29 with parameters: {'k_direct': -16.41333475261263, 'k_trap': -19.0, 'k_detrap': -17.0, 'N_t_bulk': 23.69897000433602, 'I_factor_PL': -32.333008999675144, 'I_factor_MC': -25.577569608482392, 'ratio_mu': 1.0}
[INFO 08-14 09:48:07] optimpv.axBOtorchOptimizer: Trial 30 with parameters: {'k_direct': -16.599156894878547, 'k_trap': -19.0, 'k_detrap': -19.0, 'N_t_bulk': 23.69897000433602, 'I_factor_PL': -32.15703066205809, 'I_factor_MC': -25.839750940191514, 'ratio_mu': 1.0}
[INFO 08-14 09:48:07] optimpv.axBOtorchOptimizer: Trial 29 completed with results: {'RateEq_trPL_mse_soft_l1': 0.11092407929563608, 'RateEq_trMC_mse_soft_l1': 0.09263035856524615} and parameters: {'k_direct': -16.41333475261263, 'k_trap': -19.0, 'k_detrap': -17.0, 'N_t_bulk': 23.69897000433602, 'I_factor_PL': -32.333008999675144, 'I_factor_MC': -25.577569608482392, 'ratio_mu': 1.0}
[INFO 08-14 09:48:07] optimpv.axBOtorchOptimizer: Trial 30 completed with results: {'RateEq_trPL_mse_soft_l1': 0.07528508623665742, 'RateEq_trMC_mse_soft_l1': 0.12739236417027966} and parameters: {'k_direct': -16.599156894878547, 'k_trap': -19.0, 'k_detrap': -19.0, 'N_t_bulk': 23.69897000433602, 'I_factor_PL': -32.15703066205809, 'I_factor_MC': -25.839750940191514, 'ratio_mu': 1.0}
[INFO 08-14 09:48:13] optimpv.axBOtorchOptimizer: Trial 31 with parameters: {'k_direct': -16.366600798966346, 'k_trap': -19.0, 'k_detrap': -17.0, 'N_t_bulk': 23.69897000433602, 'I_factor_PL': -32.40965758744152, 'I_factor_MC': -25.479925518149614, 'ratio_mu': 1.0}
[INFO 08-14 09:48:13] optimpv.axBOtorchOptimizer: Trial 32 with parameters: {'k_direct': -16.0, 'k_trap': -18.781002714047915, 'k_detrap': -17.479731428864586, 'N_t_bulk': 22.54360036090441, 'I_factor_PL': -32.22403334607084, 'I_factor_MC': -25.0, 'ratio_mu': 8.197381768629542}
[INFO 08-14 09:48:13] optimpv.axBOtorchOptimizer: Trial 31 completed with results: {'RateEq_trPL_mse_soft_l1': 0.1519964503298099, 'RateEq_trMC_mse_soft_l1': 0.06245607102239603} and parameters: {'k_direct': -16.366600798966346, 'k_trap': -19.0, 'k_detrap': -17.0, 'N_t_bulk': 23.69897000433602, 'I_factor_PL': -32.40965758744152, 'I_factor_MC': -25.479925518149614, 'ratio_mu': 1.0}
[INFO 08-14 09:48:13] optimpv.axBOtorchOptimizer: Trial 32 completed with results: {'RateEq_trPL_mse_soft_l1': 0.17936742802012562, 'RateEq_trMC_mse_soft_l1': 0.32220218444596327} and parameters: {'k_direct': -16.0, 'k_trap': -18.781002714047915, 'k_detrap': -17.479731428864586, 'N_t_bulk': 22.54360036090441, 'I_factor_PL': -32.22403334607084, 'I_factor_MC': -25.0, 'ratio_mu': 8.197381768629542}
[INFO 08-14 09:48:18] optimpv.axBOtorchOptimizer: Trial 33 with parameters: {'k_direct': -16.56230437135582, 'k_trap': -19.0, 'k_detrap': -17.0, 'N_t_bulk': 22.0, 'I_factor_PL': -32.18739512592793, 'I_factor_MC': -25.787379167097452, 'ratio_mu': 1.0}
[INFO 08-14 09:48:18] optimpv.axBOtorchOptimizer: Trial 34 with parameters: {'k_direct': -16.418365194855987, 'k_trap': -19.0, 'k_detrap': -17.0, 'N_t_bulk': 22.0, 'I_factor_PL': -32.32653473535474, 'I_factor_MC': -25.525640952729518, 'ratio_mu': 1.0}
[INFO 08-14 09:48:18] optimpv.axBOtorchOptimizer: Trial 33 completed with results: {'RateEq_trPL_mse_soft_l1': 0.07459161168568462, 'RateEq_trMC_mse_soft_l1': 0.14580409482752676} and parameters: {'k_direct': -16.56230437135582, 'k_trap': -19.0, 'k_detrap': -17.0, 'N_t_bulk': 22.0, 'I_factor_PL': -32.18739512592793, 'I_factor_MC': -25.787379167097452, 'ratio_mu': 1.0}
[INFO 08-14 09:48:18] optimpv.axBOtorchOptimizer: Trial 34 completed with results: {'RateEq_trPL_mse_soft_l1': 0.10572879421992942, 'RateEq_trMC_mse_soft_l1': 0.06447269082401963} and parameters: {'k_direct': -16.418365194855987, 'k_trap': -19.0, 'k_detrap': -17.0, 'N_t_bulk': 22.0, 'I_factor_PL': -32.32653473535474, 'I_factor_MC': -25.525640952729518, 'ratio_mu': 1.0}
[INFO 08-14 09:48:24] optimpv.axBOtorchOptimizer: Trial 35 with parameters: {'k_direct': -16.447625696100495, 'k_trap': -19.0, 'k_detrap': -17.0, 'N_t_bulk': 23.69897000433602, 'I_factor_PL': -32.304680581280316, 'I_factor_MC': -25.542657186546652, 'ratio_mu': 1.0}
[INFO 08-14 09:48:24] optimpv.axBOtorchOptimizer: Trial 36 with parameters: {'k_direct': -16.653931763556585, 'k_trap': -19.0, 'k_detrap': -17.0, 'N_t_bulk': 22.0, 'I_factor_PL': -32.18755172490947, 'I_factor_MC': -25.924341800348913, 'ratio_mu': 1.0}
[INFO 08-14 09:48:24] optimpv.axBOtorchOptimizer: Trial 35 completed with results: {'RateEq_trPL_mse_soft_l1': 0.0970671305360149, 'RateEq_trMC_mse_soft_l1': 0.06425117933110114} and parameters: {'k_direct': -16.447625696100495, 'k_trap': -19.0, 'k_detrap': -17.0, 'N_t_bulk': 23.69897000433602, 'I_factor_PL': -32.304680581280316, 'I_factor_MC': -25.542657186546652, 'ratio_mu': 1.0}
[INFO 08-14 09:48:24] optimpv.axBOtorchOptimizer: Trial 36 completed with results: {'RateEq_trPL_mse_soft_l1': 0.08375123389263761, 'RateEq_trMC_mse_soft_l1': 0.1949152453334997} and parameters: {'k_direct': -16.653931763556585, 'k_trap': -19.0, 'k_detrap': -17.0, 'N_t_bulk': 22.0, 'I_factor_PL': -32.18755172490947, 'I_factor_MC': -25.924341800348913, 'ratio_mu': 1.0}
[INFO 08-14 09:48:31] optimpv.axBOtorchOptimizer: Trial 37 with parameters: {'k_direct': -16.338536568620572, 'k_trap': -19.0, 'k_detrap': -19.0, 'N_t_bulk': 23.69897000433602, 'I_factor_PL': -32.08309535725362, 'I_factor_MC': -25.847619220874606, 'ratio_mu': 7.945032103482657}
[INFO 08-14 09:48:31] optimpv.axBOtorchOptimizer: Trial 38 with parameters: {'k_direct': -16.0, 'k_trap': -19.0, 'k_detrap': -19.0, 'N_t_bulk': 23.69897000433602, 'I_factor_PL': -31.0, 'I_factor_MC': -25.0, 'ratio_mu': 1.0}
[INFO 08-14 09:48:31] optimpv.axBOtorchOptimizer: Trial 37 completed with results: {'RateEq_trPL_mse_soft_l1': 0.06442906816426541, 'RateEq_trMC_mse_soft_l1': 0.025072522827972232} and parameters: {'k_direct': -16.338536568620572, 'k_trap': -19.0, 'k_detrap': -19.0, 'N_t_bulk': 23.69897000433602, 'I_factor_PL': -32.08309535725362, 'I_factor_MC': -25.847619220874606, 'ratio_mu': 7.945032103482657}
[INFO 08-14 09:48:31] optimpv.axBOtorchOptimizer: Trial 38 completed with results: {'RateEq_trPL_mse_soft_l1': 0.4753839210876416, 'RateEq_trMC_mse_soft_l1': 0.02339654077604525} and parameters: {'k_direct': -16.0, 'k_trap': -19.0, 'k_detrap': -19.0, 'N_t_bulk': 23.69897000433602, 'I_factor_PL': -31.0, 'I_factor_MC': -25.0, 'ratio_mu': 1.0}
[INFO 08-14 09:48:39] optimpv.axBOtorchOptimizer: Trial 39 with parameters: {'k_direct': -16.31032185718822, 'k_trap': -19.0, 'k_detrap': -19.0, 'N_t_bulk': 23.69897000433602, 'I_factor_PL': -31.963237527592838, 'I_factor_MC': -25.19899992229813, 'ratio_mu': 1.0}
[INFO 08-14 09:48:39] optimpv.axBOtorchOptimizer: Trial 40 with parameters: {'k_direct': -16.00334378058392, 'k_trap': -19.0, 'k_detrap': -19.0, 'N_t_bulk': 23.69897000433602, 'I_factor_PL': -31.78052162794187, 'I_factor_MC': -25.0, 'ratio_mu': 1.0}
[INFO 08-14 09:48:39] optimpv.axBOtorchOptimizer: Trial 39 completed with results: {'RateEq_trPL_mse_soft_l1': 0.06325216192157779, 'RateEq_trMC_mse_soft_l1': 0.02474369145327948} and parameters: {'k_direct': -16.31032185718822, 'k_trap': -19.0, 'k_detrap': -19.0, 'N_t_bulk': 23.69897000433602, 'I_factor_PL': -31.963237527592838, 'I_factor_MC': -25.19899992229813, 'ratio_mu': 1.0}
[INFO 08-14 09:48:39] optimpv.axBOtorchOptimizer: Trial 40 completed with results: {'RateEq_trPL_mse_soft_l1': 0.0666687115733704, 'RateEq_trMC_mse_soft_l1': 0.02353757555786906} and parameters: {'k_direct': -16.00334378058392, 'k_trap': -19.0, 'k_detrap': -19.0, 'N_t_bulk': 23.69897000433602, 'I_factor_PL': -31.78052162794187, 'I_factor_MC': -25.0, 'ratio_mu': 1.0}
[INFO 08-14 09:48:47] optimpv.axBOtorchOptimizer: Trial 41 with parameters: {'k_direct': -16.66707309367938, 'k_trap': -19.0, 'k_detrap': -19.0, 'N_t_bulk': 23.69897000433602, 'I_factor_PL': -32.10122091628312, 'I_factor_MC': -25.494591183057523, 'ratio_mu': 1.0}
[INFO 08-14 09:48:47] optimpv.axBOtorchOptimizer: Trial 42 with parameters: {'k_direct': -16.071535461840085, 'k_trap': -19.0, 'k_detrap': -19.0, 'N_t_bulk': 23.69897000433602, 'I_factor_PL': -31.90494340470793, 'I_factor_MC': -25.138652706262306, 'ratio_mu': 1.0}
[INFO 08-14 09:48:47] optimpv.axBOtorchOptimizer: Trial 41 completed with results: {'RateEq_trPL_mse_soft_l1': 0.08920661166439992, 'RateEq_trMC_mse_soft_l1': 0.027017313505598217} and parameters: {'k_direct': -16.66707309367938, 'k_trap': -19.0, 'k_detrap': -19.0, 'N_t_bulk': 23.69897000433602, 'I_factor_PL': -32.10122091628312, 'I_factor_MC': -25.494591183057523, 'ratio_mu': 1.0}
[INFO 08-14 09:48:47] optimpv.axBOtorchOptimizer: Trial 42 completed with results: {'RateEq_trPL_mse_soft_l1': 0.06718214502469788, 'RateEq_trMC_mse_soft_l1': 0.020995084473999448} and parameters: {'k_direct': -16.071535461840085, 'k_trap': -19.0, 'k_detrap': -19.0, 'N_t_bulk': 23.69897000433602, 'I_factor_PL': -31.90494340470793, 'I_factor_MC': -25.138652706262306, 'ratio_mu': 1.0}
[INFO 08-14 09:48:55] optimpv.axBOtorchOptimizer: Trial 43 with parameters: {'k_direct': -18.0, 'k_trap': -19.0, 'k_detrap': -19.0, 'N_t_bulk': 23.69897000433602, 'I_factor_PL': -33.0, 'I_factor_MC': -27.0, 'ratio_mu': 1.0}
[INFO 08-14 09:48:55] optimpv.axBOtorchOptimizer: Trial 44 with parameters: {'k_direct': -16.239270105734015, 'k_trap': -19.0, 'k_detrap': -19.0, 'N_t_bulk': 23.69897000433602, 'I_factor_PL': -32.1058777176009, 'I_factor_MC': -25.233290301438725, 'ratio_mu': 1.373372428220253}
[INFO 08-14 09:48:55] optimpv.axBOtorchOptimizer: Trial 43 completed with results: {'RateEq_trPL_mse_soft_l1': 0.9694180499713552, 'RateEq_trMC_mse_soft_l1': 0.6650937465598612} and parameters: {'k_direct': -18.0, 'k_trap': -19.0, 'k_detrap': -19.0, 'N_t_bulk': 23.69897000433602, 'I_factor_PL': -33.0, 'I_factor_MC': -27.0, 'ratio_mu': 1.0}
[INFO 08-14 09:48:55] optimpv.axBOtorchOptimizer: Trial 44 completed with results: {'RateEq_trPL_mse_soft_l1': 0.07587401395005244, 'RateEq_trMC_mse_soft_l1': 0.015322709960135406} and parameters: {'k_direct': -16.239270105734015, 'k_trap': -19.0, 'k_detrap': -19.0, 'N_t_bulk': 23.69897000433602, 'I_factor_PL': -32.1058777176009, 'I_factor_MC': -25.233290301438725, 'ratio_mu': 1.373372428220253}
[INFO 08-14 09:49:04] optimpv.axBOtorchOptimizer: Trial 45 with parameters: {'k_direct': -16.462179082326617, 'k_trap': -19.0, 'k_detrap': -19.0, 'N_t_bulk': 23.69897000433602, 'I_factor_PL': -32.10591777853019, 'I_factor_MC': -25.80159060824638, 'ratio_mu': 5.101845708432205}
[INFO 08-14 09:49:04] optimpv.axBOtorchOptimizer: Trial 46 with parameters: {'k_direct': -16.0, 'k_trap': -19.0, 'k_detrap': -19.0, 'N_t_bulk': 23.69897000433602, 'I_factor_PL': -31.286798302009633, 'I_factor_MC': -25.83705530155947, 'ratio_mu': 10.0}
[INFO 08-14 09:49:04] optimpv.axBOtorchOptimizer: Trial 45 completed with results: {'RateEq_trPL_mse_soft_l1': 0.06587417962992159, 'RateEq_trMC_mse_soft_l1': 0.015971005303345276} and parameters: {'k_direct': -16.462179082326617, 'k_trap': -19.0, 'k_detrap': -19.0, 'N_t_bulk': 23.69897000433602, 'I_factor_PL': -32.10591777853019, 'I_factor_MC': -25.80159060824638, 'ratio_mu': 5.101845708432205}
[INFO 08-14 09:49:04] optimpv.axBOtorchOptimizer: Trial 46 completed with results: {'RateEq_trPL_mse_soft_l1': 0.23756896143980777, 'RateEq_trMC_mse_soft_l1': 0.09033048979631442} and parameters: {'k_direct': -16.0, 'k_trap': -19.0, 'k_detrap': -19.0, 'N_t_bulk': 23.69897000433602, 'I_factor_PL': -31.286798302009633, 'I_factor_MC': -25.83705530155947, 'ratio_mu': 10.0}
[INFO 08-14 09:49:10] optimpv.axBOtorchOptimizer: Trial 47 with parameters: {'k_direct': -16.062191549465116, 'k_trap': -19.0, 'k_detrap': -17.0, 'N_t_bulk': 22.0, 'I_factor_PL': -31.852182673039472, 'I_factor_MC': -25.037071058450035, 'ratio_mu': 1.0}
[INFO 08-14 09:49:10] optimpv.axBOtorchOptimizer: Trial 48 with parameters: {'k_direct': -16.407276222668134, 'k_trap': -17.0, 'k_detrap': -19.0, 'N_t_bulk': 23.69897000433602, 'I_factor_PL': -31.982844172037957, 'I_factor_MC': -25.975934757142, 'ratio_mu': 10.0}
[INFO 08-14 09:49:10] optimpv.axBOtorchOptimizer: Trial 47 completed with results: {'RateEq_trPL_mse_soft_l1': 0.06363193117930077, 'RateEq_trMC_mse_soft_l1': 0.01784022690090259} and parameters: {'k_direct': -16.062191549465116, 'k_trap': -19.0, 'k_detrap': -17.0, 'N_t_bulk': 22.0, 'I_factor_PL': -31.852182673039472, 'I_factor_MC': -25.037071058450035, 'ratio_mu': 1.0}
[INFO 08-14 09:49:10] optimpv.axBOtorchOptimizer: Trial 48 completed with results: {'RateEq_trPL_mse_soft_l1': 0.3163715267368654, 'RateEq_trMC_mse_soft_l1': 0.12498131249367983} and parameters: {'k_direct': -16.407276222668134, 'k_trap': -17.0, 'k_detrap': -19.0, 'N_t_bulk': 23.69897000433602, 'I_factor_PL': -31.982844172037957, 'I_factor_MC': -25.975934757142, 'ratio_mu': 10.0}
[INFO 08-14 09:49:20] optimpv.axBOtorchOptimizer: Trial 49 with parameters: {'k_direct': -16.197582735585467, 'k_trap': -17.659866278299425, 'k_detrap': -19.0, 'N_t_bulk': 23.69897000433602, 'I_factor_PL': -31.948630827196414, 'I_factor_MC': -25.15944147634858, 'ratio_mu': 1.0}
[INFO 08-14 09:49:20] optimpv.axBOtorchOptimizer: Trial 50 with parameters: {'k_direct': -16.35061107713115, 'k_trap': -18.252788842683007, 'k_detrap': -19.0, 'N_t_bulk': 23.69897000433602, 'I_factor_PL': -32.161085902170164, 'I_factor_MC': -25.467999194375384, 'ratio_mu': 2.0106896924561712}
[INFO 08-14 09:49:20] optimpv.axBOtorchOptimizer: Trial 49 completed with results: {'RateEq_trPL_mse_soft_l1': 0.14044565045255775, 'RateEq_trMC_mse_soft_l1': 0.24851416625821887} and parameters: {'k_direct': -16.197582735585467, 'k_trap': -17.659866278299425, 'k_detrap': -19.0, 'N_t_bulk': 23.69897000433602, 'I_factor_PL': -31.948630827196414, 'I_factor_MC': -25.15944147634858, 'ratio_mu': 1.0}
[INFO 08-14 09:49:20] optimpv.axBOtorchOptimizer: Trial 50 completed with results: {'RateEq_trPL_mse_soft_l1': 0.08589482552166183, 'RateEq_trMC_mse_soft_l1': 0.04359016845942598} and parameters: {'k_direct': -16.35061107713115, 'k_trap': -18.252788842683007, 'k_detrap': -19.0, 'N_t_bulk': 23.69897000433602, 'I_factor_PL': -32.161085902170164, 'I_factor_MC': -25.467999194375384, 'ratio_mu': 2.0106896924561712}
[INFO 08-14 09:49:28] optimpv.axBOtorchOptimizer: Trial 51 with parameters: {'k_direct': -16.2838879555011, 'k_trap': -18.377033376665292, 'k_detrap': -19.0, 'N_t_bulk': 23.69897000433602, 'I_factor_PL': -32.1293927627656, 'I_factor_MC': -25.761705424517203, 'ratio_mu': 5.7344289737491145}
[INFO 08-14 09:49:28] optimpv.axBOtorchOptimizer: Trial 52 with parameters: {'k_direct': -16.0, 'k_trap': -19.0, 'k_detrap': -19.0, 'N_t_bulk': 23.69897000433602, 'I_factor_PL': -31.85600257946235, 'I_factor_MC': -25.597807442406893, 'ratio_mu': 5.470769250384148}
[INFO 08-14 09:49:28] optimpv.axBOtorchOptimizer: Trial 51 completed with results: {'RateEq_trPL_mse_soft_l1': 0.08421222890395841, 'RateEq_trMC_mse_soft_l1': 0.01644050480030801} and parameters: {'k_direct': -16.2838879555011, 'k_trap': -18.377033376665292, 'k_detrap': -19.0, 'N_t_bulk': 23.69897000433602, 'I_factor_PL': -32.1293927627656, 'I_factor_MC': -25.761705424517203, 'ratio_mu': 5.7344289737491145}
[INFO 08-14 09:49:28] optimpv.axBOtorchOptimizer: Trial 52 completed with results: {'RateEq_trPL_mse_soft_l1': 0.06982125638835823, 'RateEq_trMC_mse_soft_l1': 0.04931478211967377} and parameters: {'k_direct': -16.0, 'k_trap': -19.0, 'k_detrap': -19.0, 'N_t_bulk': 23.69897000433602, 'I_factor_PL': -31.85600257946235, 'I_factor_MC': -25.597807442406893, 'ratio_mu': 5.470769250384148}
[INFO 08-14 09:49:36] optimpv.axBOtorchOptimizer: Trial 53 with parameters: {'k_direct': -16.31278813274531, 'k_trap': -18.18995702831595, 'k_detrap': -17.0, 'N_t_bulk': 23.69897000433602, 'I_factor_PL': -32.270370337443055, 'I_factor_MC': -25.734328568439352, 'ratio_mu': 5.428626821685653}
[INFO 08-14 09:49:36] optimpv.axBOtorchOptimizer: Trial 54 with parameters: {'k_direct': -17.04381167195376, 'k_trap': -17.0, 'k_detrap': -19.0, 'N_t_bulk': 23.69897000433602, 'I_factor_PL': -32.482941633373606, 'I_factor_MC': -25.956226128580955, 'ratio_mu': 1.3951584908221342}
[INFO 08-14 09:49:36] optimpv.axBOtorchOptimizer: Trial 53 completed with results: {'RateEq_trPL_mse_soft_l1': 0.1262460959180749, 'RateEq_trMC_mse_soft_l1': 0.05099694370061503} and parameters: {'k_direct': -16.31278813274531, 'k_trap': -18.18995702831595, 'k_detrap': -17.0, 'N_t_bulk': 23.69897000433602, 'I_factor_PL': -32.270370337443055, 'I_factor_MC': -25.734328568439352, 'ratio_mu': 5.428626821685653}
[INFO 08-14 09:49:36] optimpv.axBOtorchOptimizer: Trial 54 completed with results: {'RateEq_trPL_mse_soft_l1': 0.34612243521721453, 'RateEq_trMC_mse_soft_l1': 0.2450731719504171} and parameters: {'k_direct': -17.04381167195376, 'k_trap': -17.0, 'k_detrap': -19.0, 'N_t_bulk': 23.69897000433602, 'I_factor_PL': -32.482941633373606, 'I_factor_MC': -25.956226128580955, 'ratio_mu': 1.3951584908221342}
[INFO 08-14 09:49:48] optimpv.axBOtorchOptimizer: Trial 55 with parameters: {'k_direct': -16.5973439573163, 'k_trap': -18.964582037344936, 'k_detrap': -19.0, 'N_t_bulk': 23.69897000433602, 'I_factor_PL': -31.930785521918516, 'I_factor_MC': -25.853653812684012, 'ratio_mu': 3.677828085260246}
[INFO 08-14 09:49:48] optimpv.axBOtorchOptimizer: Trial 56 with parameters: {'k_direct': -16.309695709894733, 'k_trap': -19.0, 'k_detrap': -19.0, 'N_t_bulk': 23.687110051729704, 'I_factor_PL': -32.23965152666106, 'I_factor_MC': -25.15654058070672, 'ratio_mu': 1.0}
[INFO 08-14 09:49:48] optimpv.axBOtorchOptimizer: Trial 55 completed with results: {'RateEq_trPL_mse_soft_l1': 0.11521959823988759, 'RateEq_trMC_mse_soft_l1': 0.018491552413382628} and parameters: {'k_direct': -16.5973439573163, 'k_trap': -18.964582037344936, 'k_detrap': -19.0, 'N_t_bulk': 23.69897000433602, 'I_factor_PL': -31.930785521918516, 'I_factor_MC': -25.853653812684012, 'ratio_mu': 3.677828085260246}
[INFO 08-14 09:49:48] optimpv.axBOtorchOptimizer: Trial 56 completed with results: {'RateEq_trPL_mse_soft_l1': 0.09824564767575605, 'RateEq_trMC_mse_soft_l1': 0.03315788631943617} and parameters: {'k_direct': -16.309695709894733, 'k_trap': -19.0, 'k_detrap': -19.0, 'N_t_bulk': 23.687110051729704, 'I_factor_PL': -32.23965152666106, 'I_factor_MC': -25.15654058070672, 'ratio_mu': 1.0}
[INFO 08-14 09:49:58] optimpv.axBOtorchOptimizer: Trial 57 with parameters: {'k_direct': -16.0, 'k_trap': -19.0, 'k_detrap': -19.0, 'N_t_bulk': 22.0, 'I_factor_PL': -32.02994460675584, 'I_factor_MC': -25.061989666075203, 'ratio_mu': 1.0}
[INFO 08-14 09:49:58] optimpv.axBOtorchOptimizer: Trial 58 with parameters: {'k_direct': -16.0, 'k_trap': -19.0, 'k_detrap': -19.0, 'N_t_bulk': 22.0, 'I_factor_PL': -32.17763651922106, 'I_factor_MC': -25.24040527707494, 'ratio_mu': 1.913617628374403}
[INFO 08-14 09:49:58] optimpv.axBOtorchOptimizer: Trial 57 completed with results: {'RateEq_trPL_mse_soft_l1': 0.09964911930994447, 'RateEq_trMC_mse_soft_l1': 0.026028835369545256} and parameters: {'k_direct': -16.0, 'k_trap': -19.0, 'k_detrap': -19.0, 'N_t_bulk': 22.0, 'I_factor_PL': -32.02994460675584, 'I_factor_MC': -25.061989666075203, 'ratio_mu': 1.0}
[INFO 08-14 09:49:58] optimpv.axBOtorchOptimizer: Trial 58 completed with results: {'RateEq_trPL_mse_soft_l1': 0.15636379058984984, 'RateEq_trMC_mse_soft_l1': 0.03837695428997412} and parameters: {'k_direct': -16.0, 'k_trap': -19.0, 'k_detrap': -19.0, 'N_t_bulk': 22.0, 'I_factor_PL': -32.17763651922106, 'I_factor_MC': -25.24040527707494, 'ratio_mu': 1.913617628374403}
[INFO 08-14 09:50:08] optimpv.axBOtorchOptimizer: Trial 59 with parameters: {'k_direct': -16.200534416321776, 'k_trap': -18.677178774768503, 'k_detrap': -19.0, 'N_t_bulk': 23.69897000433602, 'I_factor_PL': -31.91591293352435, 'I_factor_MC': -25.829682615071203, 'ratio_mu': 10.0}
[INFO 08-14 09:50:08] optimpv.axBOtorchOptimizer: Trial 60 with parameters: {'k_direct': -16.56730254197331, 'k_trap': -18.567106944356794, 'k_detrap': -19.0, 'N_t_bulk': 23.69897000433602, 'I_factor_PL': -32.074362757925144, 'I_factor_MC': -25.805666258697595, 'ratio_mu': 3.43124042984465}
[INFO 08-14 09:50:08] optimpv.axBOtorchOptimizer: Trial 59 completed with results: {'RateEq_trPL_mse_soft_l1': 0.06280678636532633, 'RateEq_trMC_mse_soft_l1': 0.026139136174121447} and parameters: {'k_direct': -16.200534416321776, 'k_trap': -18.677178774768503, 'k_detrap': -19.0, 'N_t_bulk': 23.69897000433602, 'I_factor_PL': -31.91591293352435, 'I_factor_MC': -25.829682615071203, 'ratio_mu': 10.0}
[INFO 08-14 09:50:08] optimpv.axBOtorchOptimizer: Trial 60 completed with results: {'RateEq_trPL_mse_soft_l1': 0.07197069861096228, 'RateEq_trMC_mse_soft_l1': 0.014270078572208522} and parameters: {'k_direct': -16.56730254197331, 'k_trap': -18.567106944356794, 'k_detrap': -19.0, 'N_t_bulk': 23.69897000433602, 'I_factor_PL': -32.074362757925144, 'I_factor_MC': -25.805666258697595, 'ratio_mu': 3.43124042984465}
[INFO 08-14 09:50:16] optimpv.axBOtorchOptimizer: Trial 61 with parameters: {'k_direct': -18.0, 'k_trap': -18.867615159064183, 'k_detrap': -19.0, 'N_t_bulk': 22.0, 'I_factor_PL': -32.21005260014645, 'I_factor_MC': -27.0, 'ratio_mu': 10.0}
[INFO 08-14 09:50:16] optimpv.axBOtorchOptimizer: Trial 62 with parameters: {'k_direct': -16.50326951120375, 'k_trap': -18.51840543979102, 'k_detrap': -19.0, 'N_t_bulk': 22.0, 'I_factor_PL': -31.98027373643314, 'I_factor_MC': -25.922643829267113, 'ratio_mu': 5.905636055311425}
[INFO 08-14 09:50:16] optimpv.axBOtorchOptimizer: Trial 61 completed with results: {'RateEq_trPL_mse_soft_l1': 0.6175306830890785, 'RateEq_trMC_mse_soft_l1': 0.2119166419775751} and parameters: {'k_direct': -18.0, 'k_trap': -18.867615159064183, 'k_detrap': -19.0, 'N_t_bulk': 22.0, 'I_factor_PL': -32.21005260014645, 'I_factor_MC': -27.0, 'ratio_mu': 10.0}
[INFO 08-14 09:50:16] optimpv.axBOtorchOptimizer: Trial 62 completed with results: {'RateEq_trPL_mse_soft_l1': 0.08650897572968308, 'RateEq_trMC_mse_soft_l1': 0.0278463200612884} and parameters: {'k_direct': -16.50326951120375, 'k_trap': -18.51840543979102, 'k_detrap': -19.0, 'N_t_bulk': 22.0, 'I_factor_PL': -31.98027373643314, 'I_factor_MC': -25.922643829267113, 'ratio_mu': 5.905636055311425}
[INFO 08-14 09:50:23] optimpv.axBOtorchOptimizer: Trial 63 with parameters: {'k_direct': -16.393964707467212, 'k_trap': -18.276595194973517, 'k_detrap': -19.0, 'N_t_bulk': 23.69897000433602, 'I_factor_PL': -32.39680886057675, 'I_factor_MC': -25.51416070092313, 'ratio_mu': 2.0955866170636743}
[INFO 08-14 09:50:23] optimpv.axBOtorchOptimizer: Trial 64 with parameters: {'k_direct': -16.03172985349872, 'k_trap': -18.429810037248988, 'k_detrap': -19.0, 'N_t_bulk': 23.69897000433602, 'I_factor_PL': -32.12025031997549, 'I_factor_MC': -25.73535677060485, 'ratio_mu': 10.0}
[INFO 08-14 09:50:23] optimpv.axBOtorchOptimizer: Trial 63 completed with results: {'RateEq_trPL_mse_soft_l1': 0.15831099877855603, 'RateEq_trMC_mse_soft_l1': 0.0383043974142927} and parameters: {'k_direct': -16.393964707467212, 'k_trap': -18.276595194973517, 'k_detrap': -19.0, 'N_t_bulk': 23.69897000433602, 'I_factor_PL': -32.39680886057675, 'I_factor_MC': -25.51416070092313, 'ratio_mu': 2.0955866170636743}
[INFO 08-14 09:50:23] optimpv.axBOtorchOptimizer: Trial 64 completed with results: {'RateEq_trPL_mse_soft_l1': 0.14398627499666894, 'RateEq_trMC_mse_soft_l1': 0.032362817240711106} and parameters: {'k_direct': -16.03172985349872, 'k_trap': -18.429810037248988, 'k_detrap': -19.0, 'N_t_bulk': 23.69897000433602, 'I_factor_PL': -32.12025031997549, 'I_factor_MC': -25.73535677060485, 'ratio_mu': 10.0}
[INFO 08-14 09:50:29] optimpv.axBOtorchOptimizer: Trial 65 with parameters: {'k_direct': -16.0, 'k_trap': -19.0, 'k_detrap': -17.0, 'N_t_bulk': 23.69897000433602, 'I_factor_PL': -32.037139877662426, 'I_factor_MC': -25.0, 'ratio_mu': 1.0}
[INFO 08-14 09:50:29] optimpv.axBOtorchOptimizer: Trial 66 with parameters: {'k_direct': -16.0, 'k_trap': -19.0, 'k_detrap': -19.0, 'N_t_bulk': 22.0, 'I_factor_PL': -31.57995194688038, 'I_factor_MC': -25.079485095483598, 'ratio_mu': 1.0}
[INFO 08-14 09:50:29] optimpv.axBOtorchOptimizer: Trial 65 completed with results: {'RateEq_trPL_mse_soft_l1': 0.10469140900376672, 'RateEq_trMC_mse_soft_l1': 0.010407170824932699} and parameters: {'k_direct': -16.0, 'k_trap': -19.0, 'k_detrap': -17.0, 'N_t_bulk': 23.69897000433602, 'I_factor_PL': -32.037139877662426, 'I_factor_MC': -25.0, 'ratio_mu': 1.0}
[INFO 08-14 09:50:29] optimpv.axBOtorchOptimizer: Trial 66 completed with results: {'RateEq_trPL_mse_soft_l1': 0.10060751835051818, 'RateEq_trMC_mse_soft_l1': 0.030330731997275873} and parameters: {'k_direct': -16.0, 'k_trap': -19.0, 'k_detrap': -19.0, 'N_t_bulk': 22.0, 'I_factor_PL': -31.57995194688038, 'I_factor_MC': -25.079485095483598, 'ratio_mu': 1.0}
[INFO 08-14 09:50:37] optimpv.axBOtorchOptimizer: Trial 67 with parameters: {'k_direct': -16.446883507713455, 'k_trap': -18.527497819983676, 'k_detrap': -19.0, 'N_t_bulk': 23.69897000433602, 'I_factor_PL': -32.052439331705, 'I_factor_MC': -25.887868132524297, 'ratio_mu': 6.470714369427326}
[INFO 08-14 09:50:37] optimpv.axBOtorchOptimizer: Trial 68 with parameters: {'k_direct': -16.4786599058476, 'k_trap': -19.0, 'k_detrap': -19.0, 'N_t_bulk': 22.0, 'I_factor_PL': -32.151232718474, 'I_factor_MC': -25.374652365844433, 'ratio_mu': 1.0}
[INFO 08-14 09:50:37] optimpv.axBOtorchOptimizer: Trial 67 completed with results: {'RateEq_trPL_mse_soft_l1': 0.06384257034552476, 'RateEq_trMC_mse_soft_l1': 0.012798080476926543} and parameters: {'k_direct': -16.446883507713455, 'k_trap': -18.527497819983676, 'k_detrap': -19.0, 'N_t_bulk': 23.69897000433602, 'I_factor_PL': -32.052439331705, 'I_factor_MC': -25.887868132524297, 'ratio_mu': 6.470714369427326}
[INFO 08-14 09:50:37] optimpv.axBOtorchOptimizer: Trial 68 completed with results: {'RateEq_trPL_mse_soft_l1': 0.06883572689180717, 'RateEq_trMC_mse_soft_l1': 0.016111397448144604} and parameters: {'k_direct': -16.4786599058476, 'k_trap': -19.0, 'k_detrap': -19.0, 'N_t_bulk': 22.0, 'I_factor_PL': -32.151232718474, 'I_factor_MC': -25.374652365844433, 'ratio_mu': 1.0}
[INFO 08-14 09:50:43] optimpv.axBOtorchOptimizer: Trial 69 with parameters: {'k_direct': -16.45239564529533, 'k_trap': -19.0, 'k_detrap': -19.0, 'N_t_bulk': 23.69897000433602, 'I_factor_PL': -32.13519827220574, 'I_factor_MC': -25.626659368381997, 'ratio_mu': 2.5023763644743693}
[INFO 08-14 09:50:43] optimpv.axBOtorchOptimizer: Trial 70 with parameters: {'k_direct': -16.830788741415954, 'k_trap': -18.44084967340186, 'k_detrap': -19.0, 'N_t_bulk': 23.69897000433602, 'I_factor_PL': -32.018419989401515, 'I_factor_MC': -25.791649849146854, 'ratio_mu': 1.6992641239966795}
[INFO 08-14 09:50:44] optimpv.axBOtorchOptimizer: Trial 69 completed with results: {'RateEq_trPL_mse_soft_l1': 0.06666965401652103, 'RateEq_trMC_mse_soft_l1': 0.012212823225022262} and parameters: {'k_direct': -16.45239564529533, 'k_trap': -19.0, 'k_detrap': -19.0, 'N_t_bulk': 23.69897000433602, 'I_factor_PL': -32.13519827220574, 'I_factor_MC': -25.626659368381997, 'ratio_mu': 2.5023763644743693}
[INFO 08-14 09:50:44] optimpv.axBOtorchOptimizer: Trial 70 completed with results: {'RateEq_trPL_mse_soft_l1': 0.12929180554308273, 'RateEq_trMC_mse_soft_l1': 0.04164544095809841} and parameters: {'k_direct': -16.830788741415954, 'k_trap': -18.44084967340186, 'k_detrap': -19.0, 'N_t_bulk': 23.69897000433602, 'I_factor_PL': -32.018419989401515, 'I_factor_MC': -25.791649849146854, 'ratio_mu': 1.6992641239966795}
[INFO 08-14 09:50:50] optimpv.axBOtorchOptimizer: Trial 71 with parameters: {'k_direct': -16.380688662960438, 'k_trap': -18.624007130589803, 'k_detrap': -19.0, 'N_t_bulk': 23.69897000433602, 'I_factor_PL': -32.053237953861924, 'I_factor_MC': -25.86280180842483, 'ratio_mu': 8.134165303857666}
[INFO 08-14 09:50:50] optimpv.axBOtorchOptimizer: Trial 72 with parameters: {'k_direct': -16.0, 'k_trap': -19.0, 'k_detrap': -17.0, 'N_t_bulk': 23.69897000433602, 'I_factor_PL': -31.751444470789046, 'I_factor_MC': -25.15888953994949, 'ratio_mu': 1.619531343592779}
[INFO 08-14 09:50:50] optimpv.axBOtorchOptimizer: Trial 71 completed with results: {'RateEq_trPL_mse_soft_l1': 0.06262321666171422, 'RateEq_trMC_mse_soft_l1': 0.01517975542229033} and parameters: {'k_direct': -16.380688662960438, 'k_trap': -18.624007130589803, 'k_detrap': -19.0, 'N_t_bulk': 23.69897000433602, 'I_factor_PL': -32.053237953861924, 'I_factor_MC': -25.86280180842483, 'ratio_mu': 8.134165303857666}
[INFO 08-14 09:50:50] optimpv.axBOtorchOptimizer: Trial 72 completed with results: {'RateEq_trPL_mse_soft_l1': 0.0667537048622111, 'RateEq_trMC_mse_soft_l1': 0.024508227071122324} and parameters: {'k_direct': -16.0, 'k_trap': -19.0, 'k_detrap': -17.0, 'N_t_bulk': 23.69897000433602, 'I_factor_PL': -31.751444470789046, 'I_factor_MC': -25.15888953994949, 'ratio_mu': 1.619531343592779}
[INFO 08-14 09:50:56] optimpv.axBOtorchOptimizer: Trial 73 with parameters: {'k_direct': -16.468621742059106, 'k_trap': -18.59174528962651, 'k_detrap': -17.0, 'N_t_bulk': 22.0, 'I_factor_PL': -32.18800702473694, 'I_factor_MC': -25.293229072284095, 'ratio_mu': 1.0}
[INFO 08-14 09:50:56] optimpv.axBOtorchOptimizer: Trial 74 with parameters: {'k_direct': -16.773892699727384, 'k_trap': -17.74987708488745, 'k_detrap': -19.0, 'N_t_bulk': 23.69897000433602, 'I_factor_PL': -32.53900564033455, 'I_factor_MC': -25.321363646253246, 'ratio_mu': 1.135153202538747}
[INFO 08-14 09:50:56] optimpv.axBOtorchOptimizer: Trial 73 completed with results: {'RateEq_trPL_mse_soft_l1': 0.07151923830458928, 'RateEq_trMC_mse_soft_l1': 0.01901019574955365} and parameters: {'k_direct': -16.468621742059106, 'k_trap': -18.59174528962651, 'k_detrap': -17.0, 'N_t_bulk': 22.0, 'I_factor_PL': -32.18800702473694, 'I_factor_MC': -25.293229072284095, 'ratio_mu': 1.0}
[INFO 08-14 09:50:56] optimpv.axBOtorchOptimizer: Trial 74 completed with results: {'RateEq_trPL_mse_soft_l1': 0.20826236641875662, 'RateEq_trMC_mse_soft_l1': 0.34551508298233546} and parameters: {'k_direct': -16.773892699727384, 'k_trap': -17.74987708488745, 'k_detrap': -19.0, 'N_t_bulk': 23.69897000433602, 'I_factor_PL': -32.53900564033455, 'I_factor_MC': -25.321363646253246, 'ratio_mu': 1.135153202538747}
[INFO 08-14 09:51:03] optimpv.axBOtorchOptimizer: Trial 75 with parameters: {'k_direct': -16.400903146741733, 'k_trap': -18.739993716895693, 'k_detrap': -18.09545969065341, 'N_t_bulk': 22.0, 'I_factor_PL': -32.17494481195831, 'I_factor_MC': -25.359169980503978, 'ratio_mu': 1.0}
[INFO 08-14 09:51:03] optimpv.axBOtorchOptimizer: Trial 76 with parameters: {'k_direct': -16.0, 'k_trap': -19.0, 'k_detrap': -17.879187839766377, 'N_t_bulk': 23.69897000433602, 'I_factor_PL': -31.746267501651346, 'I_factor_MC': -25.095293235076213, 'ratio_mu': 1.0}
[INFO 08-14 09:51:04] optimpv.axBOtorchOptimizer: Trial 75 completed with results: {'RateEq_trPL_mse_soft_l1': 0.07150413724567306, 'RateEq_trMC_mse_soft_l1': 0.020559470084482445} and parameters: {'k_direct': -16.400903146741733, 'k_trap': -18.739993716895693, 'k_detrap': -18.09545969065341, 'N_t_bulk': 22.0, 'I_factor_PL': -32.17494481195831, 'I_factor_MC': -25.359169980503978, 'ratio_mu': 1.0}
[INFO 08-14 09:51:04] optimpv.axBOtorchOptimizer: Trial 76 completed with results: {'RateEq_trPL_mse_soft_l1': 0.06734343438035584, 'RateEq_trMC_mse_soft_l1': 0.01934059910839725} and parameters: {'k_direct': -16.0, 'k_trap': -19.0, 'k_detrap': -17.879187839766377, 'N_t_bulk': 23.69897000433602, 'I_factor_PL': -31.746267501651346, 'I_factor_MC': -25.095293235076213, 'ratio_mu': 1.0}
[INFO 08-14 09:51:16] optimpv.axBOtorchOptimizer: Trial 77 with parameters: {'k_direct': -18.0, 'k_trap': -17.0, 'k_detrap': -17.0, 'N_t_bulk': 22.0, 'I_factor_PL': -32.901893779624714, 'I_factor_MC': -27.0, 'ratio_mu': 10.0}
[INFO 08-14 09:51:16] optimpv.axBOtorchOptimizer: Trial 78 with parameters: {'k_direct': -16.480808717305543, 'k_trap': -18.356546686914186, 'k_detrap': -17.0, 'N_t_bulk': 22.0, 'I_factor_PL': -32.297717031854816, 'I_factor_MC': -25.311119030173014, 'ratio_mu': 1.0}
[INFO 08-14 09:51:16] optimpv.axBOtorchOptimizer: Trial 77 completed with results: {'RateEq_trPL_mse_soft_l1': 0.8946148699613126, 'RateEq_trMC_mse_soft_l1': 0.19336627625526503} and parameters: {'k_direct': -18.0, 'k_trap': -17.0, 'k_detrap': -17.0, 'N_t_bulk': 22.0, 'I_factor_PL': -32.901893779624714, 'I_factor_MC': -27.0, 'ratio_mu': 10.0}
[INFO 08-14 09:51:16] optimpv.axBOtorchOptimizer: Trial 78 completed with results: {'RateEq_trPL_mse_soft_l1': 0.09076260110936962, 'RateEq_trMC_mse_soft_l1': 0.01871318575521075} and parameters: {'k_direct': -16.480808717305543, 'k_trap': -18.356546686914186, 'k_detrap': -17.0, 'N_t_bulk': 22.0, 'I_factor_PL': -32.297717031854816, 'I_factor_MC': -25.311119030173014, 'ratio_mu': 1.0}
[INFO 08-14 09:51:29] optimpv.axBOtorchOptimizer: Trial 79 with parameters: {'k_direct': -16.485385932011866, 'k_trap': -19.0, 'k_detrap': -18.270411342995665, 'N_t_bulk': 23.69897000433602, 'I_factor_PL': -32.197321245371036, 'I_factor_MC': -25.421761625449264, 'ratio_mu': 1.1840926090268107}
[INFO 08-14 09:51:29] optimpv.axBOtorchOptimizer: Trial 80 with parameters: {'k_direct': -16.590788331066054, 'k_trap': -19.0, 'k_detrap': -17.507780304627012, 'N_t_bulk': 22.0, 'I_factor_PL': -32.27038376780672, 'I_factor_MC': -25.3672669828069, 'ratio_mu': 1.0}
[INFO 08-14 09:51:29] optimpv.axBOtorchOptimizer: Trial 79 completed with results: {'RateEq_trPL_mse_soft_l1': 0.07241001807858094, 'RateEq_trMC_mse_soft_l1': 0.01149478037692786} and parameters: {'k_direct': -16.485385932011866, 'k_trap': -19.0, 'k_detrap': -18.270411342995665, 'N_t_bulk': 23.69897000433602, 'I_factor_PL': -32.197321245371036, 'I_factor_MC': -25.421761625449264, 'ratio_mu': 1.1840926090268107}
[INFO 08-14 09:51:29] optimpv.axBOtorchOptimizer: Trial 80 completed with results: {'RateEq_trPL_mse_soft_l1': 0.08328499212169227, 'RateEq_trMC_mse_soft_l1': 0.024359092557170392} and parameters: {'k_direct': -16.590788331066054, 'k_trap': -19.0, 'k_detrap': -17.507780304627012, 'N_t_bulk': 22.0, 'I_factor_PL': -32.27038376780672, 'I_factor_MC': -25.3672669828069, 'ratio_mu': 1.0}
[INFO 08-14 09:51:37] optimpv.axBOtorchOptimizer: Trial 81 with parameters: {'k_direct': -16.0, 'k_trap': -19.0, 'k_detrap': -17.32975884043125, 'N_t_bulk': 23.69897000433602, 'I_factor_PL': -31.724407457053037, 'I_factor_MC': -25.0, 'ratio_mu': 1.0}
[INFO 08-14 09:51:37] optimpv.axBOtorchOptimizer: Trial 82 with parameters: {'k_direct': -16.34228858954551, 'k_trap': -19.0, 'k_detrap': -18.311380701528336, 'N_t_bulk': 22.0, 'I_factor_PL': -32.17162384306241, 'I_factor_MC': -25.29443363192323, 'ratio_mu': 1.0}
[INFO 08-14 09:51:37] optimpv.axBOtorchOptimizer: Trial 81 completed with results: {'RateEq_trPL_mse_soft_l1': 0.06899894746901802, 'RateEq_trMC_mse_soft_l1': 0.0076493153143673} and parameters: {'k_direct': -16.0, 'k_trap': -19.0, 'k_detrap': -17.32975884043125, 'N_t_bulk': 23.69897000433602, 'I_factor_PL': -31.724407457053037, 'I_factor_MC': -25.0, 'ratio_mu': 1.0}
[INFO 08-14 09:51:37] optimpv.axBOtorchOptimizer: Trial 82 completed with results: {'RateEq_trPL_mse_soft_l1': 0.0748793352014605, 'RateEq_trMC_mse_soft_l1': 0.018048838723984773} and parameters: {'k_direct': -16.34228858954551, 'k_trap': -19.0, 'k_detrap': -18.311380701528336, 'N_t_bulk': 22.0, 'I_factor_PL': -32.17162384306241, 'I_factor_MC': -25.29443363192323, 'ratio_mu': 1.0}
[INFO 08-14 09:51:46] optimpv.axBOtorchOptimizer: Trial 83 with parameters: {'k_direct': -16.010345951210333, 'k_trap': -19.0, 'k_detrap': -17.76339856962452, 'N_t_bulk': 23.69897000433602, 'I_factor_PL': -31.810755880039245, 'I_factor_MC': -25.0, 'ratio_mu': 1.0}
[INFO 08-14 09:51:46] optimpv.axBOtorchOptimizer: Trial 84 with parameters: {'k_direct': -16.37842285180389, 'k_trap': -19.0, 'k_detrap': -19.0, 'N_t_bulk': 23.69897000433602, 'I_factor_PL': -32.04543992347738, 'I_factor_MC': -25.50748096836689, 'ratio_mu': 1.7086412902207293}
[INFO 08-14 09:51:46] optimpv.axBOtorchOptimizer: Trial 83 completed with results: {'RateEq_trPL_mse_soft_l1': 0.06543616219199366, 'RateEq_trMC_mse_soft_l1': 0.006959826587001672} and parameters: {'k_direct': -16.010345951210333, 'k_trap': -19.0, 'k_detrap': -17.76339856962452, 'N_t_bulk': 23.69897000433602, 'I_factor_PL': -31.810755880039245, 'I_factor_MC': -25.0, 'ratio_mu': 1.0}
[INFO 08-14 09:51:46] optimpv.axBOtorchOptimizer: Trial 84 completed with results: {'RateEq_trPL_mse_soft_l1': 0.06292406514311244, 'RateEq_trMC_mse_soft_l1': 0.015659407536464887} and parameters: {'k_direct': -16.37842285180389, 'k_trap': -19.0, 'k_detrap': -19.0, 'N_t_bulk': 23.69897000433602, 'I_factor_PL': -32.04543992347738, 'I_factor_MC': -25.50748096836689, 'ratio_mu': 1.7086412902207293}
[INFO 08-14 09:51:58] optimpv.axBOtorchOptimizer: Trial 85 with parameters: {'k_direct': -16.52645347751719, 'k_trap': -17.0, 'k_detrap': -17.0, 'N_t_bulk': 22.0, 'I_factor_PL': -32.25848876681863, 'I_factor_MC': -25.54627516712489, 'ratio_mu': 1.0}
[INFO 08-14 09:51:58] optimpv.axBOtorchOptimizer: Trial 86 with parameters: {'k_direct': -16.478549030097717, 'k_trap': -17.0, 'k_detrap': -17.0, 'N_t_bulk': 23.69897000433602, 'I_factor_PL': -32.33046428726867, 'I_factor_MC': -25.585833310443796, 'ratio_mu': 1.0}
[INFO 08-14 09:51:58] optimpv.axBOtorchOptimizer: Trial 85 completed with results: {'RateEq_trPL_mse_soft_l1': 0.08088404815565564, 'RateEq_trMC_mse_soft_l1': 0.04513063931011585} and parameters: {'k_direct': -16.52645347751719, 'k_trap': -17.0, 'k_detrap': -17.0, 'N_t_bulk': 22.0, 'I_factor_PL': -32.25848876681863, 'I_factor_MC': -25.54627516712489, 'ratio_mu': 1.0}
[INFO 08-14 09:51:58] optimpv.axBOtorchOptimizer: Trial 86 completed with results: {'RateEq_trPL_mse_soft_l1': 0.43299417563710607, 'RateEq_trMC_mse_soft_l1': 0.06564102049402765} and parameters: {'k_direct': -16.478549030097717, 'k_trap': -17.0, 'k_detrap': -17.0, 'N_t_bulk': 23.69897000433602, 'I_factor_PL': -32.33046428726867, 'I_factor_MC': -25.585833310443796, 'ratio_mu': 1.0}
[INFO 08-14 09:52:08] optimpv.axBOtorchOptimizer: Trial 87 with parameters: {'k_direct': -16.228283593546863, 'k_trap': -19.0, 'k_detrap': -17.573601562107456, 'N_t_bulk': 22.96188829434489, 'I_factor_PL': -31.96427495919765, 'I_factor_MC': -25.12073290701165, 'ratio_mu': 1.0}
[INFO 08-14 09:52:08] optimpv.axBOtorchOptimizer: Trial 88 with parameters: {'k_direct': -16.454185006553473, 'k_trap': -18.40657034600752, 'k_detrap': -19.0, 'N_t_bulk': 22.762652128130167, 'I_factor_PL': -32.11685577923068, 'I_factor_MC': -25.72570342072133, 'ratio_mu': 3.114727363617275}
[INFO 08-14 09:52:08] optimpv.axBOtorchOptimizer: Trial 87 completed with results: {'RateEq_trPL_mse_soft_l1': 0.061591004779082414, 'RateEq_trMC_mse_soft_l1': 0.013709730961414923} and parameters: {'k_direct': -16.228283593546863, 'k_trap': -19.0, 'k_detrap': -17.573601562107456, 'N_t_bulk': 22.96188829434489, 'I_factor_PL': -31.96427495919765, 'I_factor_MC': -25.12073290701165, 'ratio_mu': 1.0}
[INFO 08-14 09:52:08] optimpv.axBOtorchOptimizer: Trial 88 completed with results: {'RateEq_trPL_mse_soft_l1': 0.06639599269449503, 'RateEq_trMC_mse_soft_l1': 0.024406291805835423} and parameters: {'k_direct': -16.454185006553473, 'k_trap': -18.40657034600752, 'k_detrap': -19.0, 'N_t_bulk': 22.762652128130167, 'I_factor_PL': -32.11685577923068, 'I_factor_MC': -25.72570342072133, 'ratio_mu': 3.114727363617275}
[INFO 08-14 09:52:17] optimpv.axBOtorchOptimizer: Trial 89 with parameters: {'k_direct': -16.45152820371035, 'k_trap': -17.0, 'k_detrap': -17.188078774651427, 'N_t_bulk': 22.0, 'I_factor_PL': -32.308235018474065, 'I_factor_MC': -25.69893926762499, 'ratio_mu': 3.3540279438318517}
[INFO 08-14 09:52:17] optimpv.axBOtorchOptimizer: Trial 90 with parameters: {'k_direct': -16.66033779923993, 'k_trap': -18.60705334654594, 'k_detrap': -17.0, 'N_t_bulk': 23.006748031929042, 'I_factor_PL': -32.20602344156087, 'I_factor_MC': -25.404293395069484, 'ratio_mu': 1.0}
[INFO 08-14 09:52:17] optimpv.axBOtorchOptimizer: Trial 89 completed with results: {'RateEq_trPL_mse_soft_l1': 0.09811572615672004, 'RateEq_trMC_mse_soft_l1': 0.03299321831426916} and parameters: {'k_direct': -16.45152820371035, 'k_trap': -17.0, 'k_detrap': -17.188078774651427, 'N_t_bulk': 22.0, 'I_factor_PL': -32.308235018474065, 'I_factor_MC': -25.69893926762499, 'ratio_mu': 3.3540279438318517}
[INFO 08-14 09:52:17] optimpv.axBOtorchOptimizer: Trial 90 completed with results: {'RateEq_trPL_mse_soft_l1': 0.08271935477331338, 'RateEq_trMC_mse_soft_l1': 0.029531225347384726} and parameters: {'k_direct': -16.66033779923993, 'k_trap': -18.60705334654594, 'k_detrap': -17.0, 'N_t_bulk': 23.006748031929042, 'I_factor_PL': -32.20602344156087, 'I_factor_MC': -25.404293395069484, 'ratio_mu': 1.0}
[9]:
# get the best parameters and update the params list in the optimizer and the agent
ax_client = optimizer.ax_client # get the ax client
optimizer.update_params_with_best_balance() # update the params list in the optimizer with the best parameters
RateEq.params = optimizer.params # update the params list in the agent with the best parameters
# print the best parameters
print('Best parameters:')
for p in optimizer.params:
print(p.name, 'fitted value:', p.value)
Best parameters:
k_direct fitted value: 9.76459081245553e-17
k_trap fitted value: 1e-19
k_detrap fitted value: 1.7242547472709221e-18
N_t_bulk fitted value: 4.999999999999999e+23
I_factor_PL fitted value: 1.5461232820170082e-32
I_factor_MC fitted value: 1e-25
ratio_mu fitted value: 1.0
[10]:
# Plot optimization results
data = ax_client.summarize()
all_metrics = optimizer.all_metrics
plt.figure()
plt.plot(np.minimum.accumulate(data[all_metrics]), label="Best value seen so far")
plt.yscale("log")
plt.xlabel("Iteration")
plt.ylabel("Target metric: " + metric + " with " + loss + " loss")
plt.legend()
plt.title("Best value seen so far")
plt.show()

[11]:
import matplotlib
# import itertools
from itertools import combinations
comb = list(combinations(optimizer.all_metrics, 2))
threshold_list = []
for i in range(len(optimizer.agents)):
for j in range(len(optimizer.agents[i].threshold)):
threshold_list.append(optimizer.agents[i].threshold[j])
threshold_comb = list(combinations(threshold_list, 2))
pareto = ax_client.get_pareto_frontier(use_model_predictions=False)
cm = matplotlib.colormaps.get_cmap('viridis')
df = get_df_from_ax(params, optimizer)
# create pareto df
dum_dic = {}
for eto in pareto:
for metr in optimizer.all_metrics:
if metr not in dum_dic.keys():
dum_dic[metr] = []
dum_dic[metr].append(eto[1][metr][0])
df_pareto = pd.DataFrame(dum_dic)
for c,t_c in zip(comb,threshold_comb):
plt.figure(figsize=(10, 10))
plt.scatter(df[c[0]],df[c[1]],c=df.index, cmap=cm, marker='o', s=100) # plot the points with color according to the iteration
cbar = plt.colorbar()
cbar.set_label('Iteration')
sorted_df = df_pareto.sort_values(by=c[0])
plt.plot(sorted_df[c[0]],sorted_df[c[1]],'r')
plt.scatter(t_c[0],t_c[1],c='r', marker='x', s=100) # plot the threshold
plt.xlabel(c[0])
plt.ylabel(c[1])
plt.xscale('log')
plt.yscale('log')
plt.show()

[12]:
# Run the simulation with the parameters
y_PL_fit = RateEq.run(parameters={},exp_format='trPL')
y_MC_fit = RateEq.run(parameters={},exp_format='trMC')
print(RateEq.run_Ax(parameters={}))
# Make a plot with 2 subplots for PL and MW
fig, (ax1, ax2) = plt.subplots(1, 2,figsize=(10,5))
for i in range(len(Gfracs)):
ax1.semilogx(X[X[:,1]==Gfracs[i],0], y_PL[X[:,1]==Gfracs[i]], 'o', color='C'+str(i),alpha=0.025)
ax1.plot(X[X[:,1]==Gfracs[i],0], y_PL_fit[X[:,1]==Gfracs[i]],'-', color = 'C'+str(i), linewidth=2)
ax2.semilogx(X[X[:,1]==Gfracs[i],0], y_MW[X[:,1]==Gfracs[i]], 'o', color='C'+str(i),alpha=0.025)
ax2.plot(X[X[:,1]==Gfracs[i],0], y_MC_fit[X[:,1]==Gfracs[i]],'-', color = 'C'+str(i), linewidth=2)
ax1.set_xscale('log')
ax1.set_yscale('log')
ax2.set_xscale('log')
ax2.set_yscale('log')
ax1.set_xlabel('Time (s)')
ax1.set_ylabel('PL (a.u.)')
ax2.set_xlabel('Time (s)')
ax2.set_ylabel('MW (a.u.)')
plt.show()
{'RateEq_trPL_mse_soft_l1': 0.06543616219199366, 'RateEq_trMC_mse_soft_l1': 0.006959826587001672}

[14]:
# Plot the density of the exploration of the parameters
# this gives a nice visualization of where the optimizer focused its exploration and may show some correlation between the parameters
plot_dens = True
if plot_dens:
from optimpv.posterior.posterior import *
best_parameters = {}
for p in optimizer.params:
best_parameters[p.name] = p.value
fig_dens, ax_dens = plot_density_exploration(params, optimizer = optimizer, best_parameters = best_parameters, optimizer_type = 'ax')

Scipy optimization
In the previous step, BO really struggles to fine-tune the parameters to get a good fit. This is related to the high degree of correlation between the parameters. Thus using classical optimization methods like scipy’s minimize
can be more efficient in improving the fit further without running BO for too long. Since the model evaluation is here quite cheap this is a good approach. It is good to note that only using scipy’s minimize
without the BO step is not necessarily a good idea
especially when a good starting point is not known. Here the BO provides a good starting point for the scipy optimization that usually converges much faster and with less risk of getting stuck in local minima.
[15]:
params_scipy = deepcopy(RateEq.params) # make copies of the parameters
RateEq2 = deepcopy(RateEq) # make a copy of the agent
from optimpv.scipyOpti.scipyOptimizer import ScipyOptimizer
scipyOpti = ScipyOptimizer(params=params_scipy, agents=RateEq2, method='L-BFGS-B', options={}, name='scipy_opti', parallel_agents=True, max_parallelism=os.cpu_count()-1, verbose_logging=True, objective_weights=[1,10])
[16]:
scipyOpti.optimize(multi_objective=True) # run the optimization with scipy
Starting optimization using L-BFGS-B method
Optimization completed with status: CONVERGENCE: NORM OF PROJECTED GRADIENT <= PGTOL
Final objective value: 0.0844788976369335
[16]:
message: CONVERGENCE: NORM OF PROJECTED GRADIENT <= PGTOL
success: True
status: 0
fun: 0.0844788976369335
x: [-1.638e+01 -1.700e+01 -1.744e+01 2.285e+01 -3.196e+01
-2.560e+01 3.975e+00]
nit: 64
jac: [-3.286e-06 -1.378e-03 -2.087e-06 -8.882e-07 -1.066e-06
5.329e-06 0.000e+00]
nfev: 672
njev: 84
hess_inv: <7x7 LbfgsInvHessProduct with dtype=float64>
[17]:
# get the best parameters and update the params list in the optimizer and the agent
RateEq2.params = scipyOpti.params # update the params list in the agent with the best parameters.append
# print the best parameters
print('Best parameters:')
for p in scipyOpti.params:
print(p.name, 'fitted value:', p.value)
Best parameters:
k_direct fitted value: 4.183802071461863e-17
k_trap fitted value: 1e-17
k_detrap fitted value: 3.664395888213564e-18
N_t_bulk fitted value: 7.079872565085466e+22
I_factor_PL fitted value: 1.0992605398723196e-32
I_factor_MC fitted value: 2.4931173945059494e-26
ratio_mu fitted value: 3.9746028453946787
[18]:
# Run the simulation with the parameters
y_PL_fit = RateEq2.run(parameters={},exp_format='trPL')
y_MC_fit = RateEq2.run(parameters={},exp_format='trMC')
print(RateEq2.run_Ax(parameters={}))
# Make a plot with 2 subplots for PL and MW
fig, (ax1, ax2) = plt.subplots(1, 2,figsize=(10,5))
for i in range(len(Gfracs)):
ax1.semilogx(X[X[:,1]==Gfracs[i],0], y_PL[X[:,1]==Gfracs[i]], 'o', color='C'+str(i),alpha=0.025)
ax1.plot(X[X[:,1]==Gfracs[i],0], y_PL_fit[X[:,1]==Gfracs[i]],'-', color = 'C'+str(i), linewidth=2)
ax2.semilogx(X[X[:,1]==Gfracs[i],0], y_MW[X[:,1]==Gfracs[i]], 'o', color='C'+str(i),alpha=0.025)
ax2.plot(X[X[:,1]==Gfracs[i],0], y_MC_fit[X[:,1]==Gfracs[i]],'-', color = 'C'+str(i), linewidth=2)
ax1.set_xscale('log')
ax1.set_yscale('log')
ax2.set_xscale('log')
ax2.set_yscale('log')
ax1.set_xlabel('Time (s)')
ax1.set_ylabel('PL (a.u.)')
ax2.set_xlabel('Time (s)')
ax2.set_ylabel('MW (a.u.)')
plt.show()
{'RateEq_trPL_mse_soft_l1': 0.06653047241779042, 'RateEq_trMC_mse_soft_l1': 0.0017948425219143083}
