@@ -212,6 +212,13 @@ def __init__(
212212 self .optimizer_control = optimizer_control
213213 self .surrogate_control = surrogate_control
214214
215+ # Kernel selection from fun_control (NEW)
216+ self .kernel = None
217+ self .kernel_params = None
218+ if fun_control is not None :
219+ self .kernel = fun_control .get ("kernel" , "gauss" )
220+ self .kernel_params = fun_control .get ("kernel_params" , {})
221+
215222 self .counter = 0
216223 self .success_rate = 0.0
217224 self .success_counter = 0
@@ -710,6 +717,8 @@ def surrogate_setup(self, surrogate) -> None:
710717 use_nystrom = self .surrogate_control ["use_nystrom" ],
711718 nystrom_m = self .surrogate_control ["nystrom_m" ],
712719 nystrom_seed = self .surrogate_control ["nystrom_seed" ],
720+ kernel = self .kernel ,
721+ kernel_params = self .kernel_params ,
713722 )
714723
715724 def get_spot_attributes_as_df (self ) -> pd .DataFrame :
@@ -1695,6 +1704,10 @@ def fit_surrogate(self) -> None:
16951704 logger .debug ("In fit_surrogate(): self.y: %s" , self .y )
16961705 logger .debug ("In fit_surrogate(): self.X.shape: %s" , self .X .shape )
16971706 logger .debug ("In fit_surrogate(): self.y.shape: %s" , self .y .shape )
1707+ # Pass kernel options to surrogate if Kriging is used
1708+ if hasattr (self .surrogate , "kernel" ):
1709+ self .surrogate .kernel = self .kernel
1710+ self .surrogate .kernel_params = self .kernel_params
16981711 X_points = self .X .shape [0 ]
16991712 y_points = self .y .shape [0 ]
17001713 if X_points == y_points :
0 commit comments