def splitters() -> tp.Sequence[Optim]: optims: tp.List[Optim] = [] for num_optims in [None, 3, 5, 9, 13]: for str_optim in ["CMA", "ECMA", "DE", "TwoPointsDE"]: optim = optimizerlib_registry[str_optim] name = "Split" + str_optim + ("Auto" if num_optims is None else str(num_optims)) opt = ConfSplitOptimizer(multivariate_optimizer=optim, num_optims=num_optims).set_name(name) optims.append(opt) return optims
def progressive() -> tp.Sequence[Optim]: optims: tp.List[Optim] = [] for mutation in ["discrete", "gaussian"]: for num_optims in [None, 13, 10000]: name = ("Prog" + ("Disc" if mutation == "discrete" else "") + ("Auto" if num_optims is None else ("Inf" if num_optims == 10000 else str(num_optims)))) mv = ParametrizedOnePlusOne(noise_handling="optimistic", mutation=mutation) opt = ConfSplitOptimizer(num_optims=num_optims, progressive=True, multivariate_optimizer=mv).set_name(name) optims.append(opt) return optims