diff --git a/pymoo/core/problem.py b/pymoo/core/problem.py index 776b5089d..d4300a5e1 100644 --- a/pymoo/core/problem.py +++ b/pymoo/core/problem.py @@ -58,6 +58,23 @@ def __getstate__(self): return state +class JoblibParallelization: + + def __init__(self, aJoblibParallel, aJoblibDelayed, *args, **kwargs) -> None: + super().__init__() + self.parallel = aJoblibParallel + self.delayed = aJoblibDelayed + + def __call__(self, f, X): + return self.parallel(self.delayed(f)(x) for x in X) + + def __getstate__(self): + state = self.__dict__.copy() + state.pop("parallel", None) + state.pop("delayed", None) + return state + + class Problem: def __init__(self, n_var=-1,